Amerykańska agencja CISA potwierdziła aktywne ataki na krytyczną podatność w Oracle Identity Manager (OIM), dodając ją do katalogu Known Exploited Vulnerabilities (KEV). Luka CVE-2025-61757 dotyczy komponentu REST WebServices i umożliwia zdalne przejęcie OIM bez uwierzytelnienia (pre-auth RCE). Oracle załatał błąd w październikowym CPU 2025. Federalnym agencjom w USA nakazano usunięcie ryzyka do 12 grudnia 2025 r.
Skutki: pełne przejęcie OIM, wpływ na CIA: H/H/H, CVSS 9.8
Wersje podatne:12.2.1.4.0 oraz 14.1.2.1.0
Wektor: sieć, brak uwierzytelnienia, niska złożoność ataku
Status: potwierdzona eksploatacja; pozycja w CISA KEV; poprawka w CPU October 2025.
Kontekst / historia / powiązania
OIM to centralny element ładu tożsamości w wielu organizacjach (prowizjonowanie, recertyfikacje, role). Po publikacji analizy technicznej przez Searchlight Cyber SANS ISC zauważył w logach skany i próby ataków z końca sierpnia–początku września 2025, co sugeruje wcześniejsze zainteresowanie podatnością. CISA po weryfikacji dodała CVE do KEV, co oznacza wiarygodne dowody na wykorzystanie w warunkach rzeczywistych.
Analiza techniczna / szczegóły luki
Zgodnie z macierzą ryzyka Oracle, problem dotyczy braku wymuszenia uwierzytelnienia dla krytycznej funkcji w interfejsie REST WebServices OIM. Atakujący z dostępem sieciowym do OIM może bez logowania wywołać endpointy prowadzące do zdalnego wykonania kodu i pełnego przejęcia instancji OIM. Parametry CVSS: 9.8 / AV:N / AC:L / PR:N / UI:N / S:U / C:H / I:H / A:H.
Zakres dotkniętych wersji: Oracle potwierdza wpływ na 12.2.1.4.0 oraz 14.1.2.1.0. To właśnie te gałęzie są powszechnie wdrażane on-prem i w środowiskach hybrydowych, co zwiększa powierzchnię ataku.
Praktyczne konsekwencje / ryzyko
Przejęcie IGA/IAM: kompromitacja OIM = możliwość zmiany uprawnień, kreacji kont z wysokimi rolami, manipulacji procesami aprobat.
Lateral movement: z OIM atakujący może uzyskać dostęp do systemów zależnych (ERP/HR/AD/SSO) i danych wrażliwych.
Trwałość i ukrywanie śladów: tworzenie kont serwisowych, modyfikacja workflow i reguł recertyfikacji.
Ryzyko łańcucha dostaw: organizacje integrujące OIM z EBS/ERP/HRMS mogą odczuć efekt domina. Powyższe ryzyka są spójne z oceną NVD oraz ostrzeżeniami mediów branżowych po dodaniu luki do KEV.
Rekomendacje operacyjne / co zrobić teraz
Patch now: natychmiast zastosuj CPU October 2025 dla OIM. Zweryfikuj, że instancje są na poziomie buildów adresujących CVE-2025-61757.
Tymczasowe ograniczenie ekspozycji: jeśli patchowanie wymaga okna serwisowego, odetnij REST WebServices OIM od internetu (WAF/NGFW/segregacja), dopuszczając wyłącznie zaufane źródła (allow-list).
Hunting i detekcja (ostatnie 90 dni):
logi HTTP/Proxy/WAF: nietypowe wywołania endpointów OIM REST bez nagłówków autoryzacji; wzrost 4xx/5xx; nietypowe metody.
OIM/DB: tworzenie kont/zasobów poza standardowymi workflow; zmiany ról o wysokich uprawnieniach; modyfikacje polityk.
Sieć: nagłe połączenia OIM → systemy downstream (AD/LDAP/ERP) z nowych adresów. Wskazówki co do okresu i charakteru aktywności potwierdzają obserwacje SANS ISC.
Hardening: wymuś mTLS/WAF, włącz rate limiting dla REST, ogranicz do minimum role techniczne OIM używane przez integracje.
IR gotowość: przygotuj playbook „OIM compromise”: izolacja węzła, rotacja tajemnic (DB, LDAP, integracje), przegląd i czyszczenie zmian w rolach/workflow.
Compliance: sprawdź wpływ na procesy audytowe (recertyfikacje dostępów) — potencjalnie wymagane re-cert po incydencie.
Uwaga dla administracji publicznej USA: jeżeli podlegasz dyrektywom CISA, termin remediacji to 12 grudnia 2025 r. (dla FCEB). Traktuj to jako silną wskazówkę priorytetyzacji również w sektorze prywatnym.
Różnice / porównania z innymi przypadkami
W ostatnich miesiącach widzieliśmy falę nadużyć błędów w oprogramowaniu Oracle (m.in. E-Business Suite), ale CVE-2025-61757 jest szczególnie groźna, bo dotyka warstwy tożsamości. W przeciwieństwie do typowych RCE w usługach peryferyjnych, tutaj atak przekłada się bezpośrednio na eskalację uprawnień w całym ekosystemie. To odróżnia OIM od incydentów skupionych wyłącznie na eksfiltracji danych aplikacyjnych.
Podsumowanie / kluczowe wnioski
To jest „drop-everything patch”. Pre-auth RCE w OIM (CVSS 9.8) jest już aktywnie wykorzystywany.
Zasięg: wersje 12.2.1.4.0 i 14.1.2.1.0; komponent REST WebServices.
Terminy: dla podmiotów objętych dyrektywami CISA — 12.12.2025 na remediację.
SecurityWeek — CISA Confirms Exploitation of Recent Oracle Identity Manager Vulnerability (24 listopada 2025). Źródło potwierdzenia KEV i terminu remediacji. (SecurityWeek)
SANS ISC Diary — Oracle Identity Manager Exploit Observation from September (CVE-2025-61757) (wczesne obserwacje skanów/prób). (SANS Internet Storm Center)
Dark Reading — Critical Flaw in Oracle Identity Manager Under Exploitation (szerszy kontekst ostatnich kampanii wobec ekosystemu Oracle). (Dark Reading)
Luka CVE‑2025‑0111 pozwala uwierzytelnionemu napastnikowi z dostępem sieciowym do interfejsu zarządzania PAN‑OS odczytywać pliki systemowe czytelne przez użytkownika nobody. Ryzyko rośnie przy wystawieniu interfejsu na Internet (np. port 4443 na interfejsie dataplane z profilem management). Producent udostępnił wydania naprawcze oraz sygnatury Threat ID 510000/510001 (pakiet Apps&Threats ≥ 8943). W praktyce: załataj, ogranicz źródła IP do zaufanych, sprawdź, czy nie doszło do łańcuchowej eksploatacji z CVE‑2025‑0108/CVE‑2024‑9474, i zrotuj sekrety, jeśli masz podejrzenie naruszenia.
Krótka definicja techniczna
Authenticated File Read w portalu zarządzania PAN‑OS: błąd kontroli ścieżki (CWE‑73), który umożliwia po zalogowaniu oraz z dostępem sieciowym do UI odczyt plików z systemu plików urządzenia, o ile są one czytelne przez konto systemowe nobody. To naruszenie poufności bez bezpośredniego wpływu na integralność/ dostępność.
Gdzie występuje / przykłady platform
Fizyczne NGFW (PA‑Series) oraz VM‑Series (on‑prem/ESXi, AWS/Azure/GCP) — jeśli interfejs zarządzania dostępny z niezaufanej sieci.
CN‑Series (Kubernetes) — gdy profil management nadany interfejsowi dataplane/Service LB i port mgmt (typ. 4443) dostępny publicznie.
Nie dotyczy:Cloud NGFW i Prisma Access.
Szczegółowy opis techniki (jak działa, cele, dlaczego jest skuteczna)
Wadliwa walidacja/normalizacja ścieżek w webowym interfejsie zarządzania PAN‑OS pozwala po pomyślnym uwierzytelnieniu wykonywać zapytania skutkujące odczytem plików (zakres: pliki czytelne przez nobody). Skuteczność ataku rośnie, gdy:
Interfejs mgmt jest osiągalny z Internetu (bez filtrów źródeł); 2) napastnik dysponuje ważnymi poświadczeniami (np. uzyskanymi inną techniką); 3) podatność jest łączona w łańcuch z innymi błędami (np. CVE‑2025‑0108 i CVE‑2024‑9474), co obserwowano w praktyce. Ujawnione pliki mogą zawierać metadane/konfiguracje ułatwiające eskalację i dalsze działania (rekonesans, wyciek).
Status i ocena producenta: CVSS‑BT 7.1 (HIGH), Exploitation: ATTACKED. Producent wydał poprawki dla gałęzi 10.1, 10.2, 11.1, 11.2 oraz wskazał, że starsze EoL (9.x/10.0/11.0) uznaje się za podatne i nie będą łatane.
Artefakty i logi
Źródło/warstwa
Typ/plik/log
Wskaźniki/klucze
Uwagi
PAN‑OS Threat log
Sygnatury Threat ID 510000/510001
threatid, action, src, dst, app, rule
Wydane w Apps&Threats ≥ 8943 — blokada/alert prób eksploatacji.
PAN‑OS System log
Zdarzenia logowania/administracji
anomalne logowania do UI, zmiany w profilu mgmt
Do korelacji z dostępem z zewnętrznych ASN.
PAN‑OS web‑server access (mp‑log)
Dostępy do /php/* / UI
Nietypowe źródła, wzorce żądań
W praktyce forwardowane przez syslog lub inspekcja na urządzeniu.
PAN‑OS Traffic log
Ruch do portów 443/4443 na IP zarządzania
dst_port in (443,4443), action=allow, źródła spoza RFC1918
Służy do wykrywania ekspozycji/nieautoryzowanych źródeł.
(index=pan* sourcetype=pan:threat)
| eval threatid_str=tostring(threatid)
| where threatid_str IN ("510000","510001") OR like(threat_name, "%CVE-2025-0111%")
| stats count min(_time) as first_seen max(_time) as last_seen by src dst app rule action threatid threat_name vsys
Dostęp do UI mgmt z Internetu:
(index=pan* sourcetype=pan:traffic action=allowed)
(dest_port IN (443,4443))
NOT (cidrmatch("10.0.0.0/8", src_ip) OR cidrmatch("172.16.0.0/12", src_ip) OR cidrmatch("192.168.0.0/16", src_ip))
| lookup firewall_mgmt_ips ip as dest_ip OUTPUTNEW device role
| search role="mgmt"
| stats dc(src_ip) as uniq_sources values(src_ip) as sources count by dest_ip rule app vsys
KQL (Microsoft Sentinel / AMA + CEF)
// Threat IDs 510000/510001 (CEF -> DeviceEventClassID)
CommonSecurityLog
| where DeviceVendor =~ "Palo Alto Networks"
| where DeviceEventClassID in ("510000","510001") or AdditionalExtensions contains "CVE-2025-0111"
| summarize count(), min(TimeGenerated), max(TimeGenerated) by SourceIP, DestinationIP, DeviceEventClassID, Activity, DeviceAction
// Ruch do UI mgmt z Internetu (443/4443) -> wymaga listy IP mgmt w watchliście
let MgmtIPs = dynamic(["198.51.100.10","203.0.113.5"]); // przykład
CommonSecurityLog
| where DeviceVendor =~ "Palo Alto Networks" and Activity has_cs "TRAFFIC"
| where DestinationPort in ("443","4443") and DestinationIP in (MgmtIPs)
| where ipv4_is_private(SourceIP) == false
| summarize by TimeGenerated, SourceIP, DestinationIP, DestinationPort, DeviceAction
AWS CloudTrail Lake (SQL) — ekspozycja mgmt przez SG/ELB
-- Zmiany otwierające 443/4443 na 0.0.0.0/0
SELECT eventTime, eventSource, eventName,
userIdentity.sessionContext.sessionIssuer.arn AS actor,
requestParameters
FROM aws_cloudtrail_events
WHERE eventName IN ('AuthorizeSecurityGroupIngress','CreateSecurityGroup','CreateLoadBalancerListeners','ModifyLoadBalancerAttributes')
AND (requestParameters LIKE '%0.0.0.0/0%')
AND (requestParameters LIKE '%443%' OR requestParameters LIKE '%4443%')
ORDER BY eventTime DESC;
Elastic / EQL
any where event.dataset == "panw.threat" and
(panw.threat.id in ("510000","510001") or message =~ "CVE-2025-0111")
Heurystyki / korelacje
Dostęp do UI z zewnętrznych ASN ⟺ logowanie admina ⟺ odczyt/zmiany konfiguracji (System log).
Wyzwolenie Threat ID 510000/510001 ⟺ ciągłe próby z jednego źródła ⟺ brak wcześniejszej aktywności tego IP.
Nagłe upublicznienie portu 4443/443 (CloudTrail/K8s audit) ⟺ nowe alerty Threat ⟺ zmiany haseł/kluczy w krótkim oknie czasu.
False positives / tuning
Ruch z monitoringu/NAC/VPN podszywający się pod „zewnętrzny” (np. testy dostępności).
Maintenance (serwis dostawcy) — jednorazowy dostęp spoza korp.
Dla sygnatur — testowe skanery i pentesty w labie. Tuning: listy zaufanych źródeł, mapowanie IP mgmt w SIEM, korelacja z oknami serwisowymi.
Playbook reagowania (IR)
Triage/izolacja ekspozycji
Zidentyfikuj, czy UI mgmt jest publicznie dostępny; jeśli tak, zablokuj/ogranicz źródła (ACL, SG, WAF) do zaufanych IP.
Patching
Zaktualizuj do wersji naprawczej: 10.1.14‑h9+, 10.2.x‑h21/h24/h14/h12/h6/… (wg tabeli), 11.1.6‑h1+/11.1.4‑h13+/11.1.2‑h18+, 11.2.4‑h4+ lub 11.2.5+. Starsze EoL — migracja/wymiana.
Zabezpieczenia prewencyjne
Włącz/zweryfikuj subskrypcję Threat Prevention i sygnatury Threat ID 510000/510001 (Apps&Threats ≥ 8943).
Hunting
Przejrzyj logi Threat/System/Traffic pod kątem prób/udanych dostępów.
Oceń korelację z CVE‑2025‑0108/CVE‑2024‑9474 (możliwe łańcuchy).
Remediacja sekrety (gdy podejrzenie nadużycia):
Zmień master key (AES‑256‑GCM), hasła/PSK/secrety, unieważnij i wydaj ponownie certyfikaty z kluczami prywatnymi na urządzeniu.
Edukacja i kontrola zmian
Wymuś politykę „jump‑box only” do UI mgmt; przegląd SG/ACL/Ingress.
Przykłady z kampanii / case studies
Eksploatacja łańcuchowa: producent i niezależne raporty wskazały próby łączenia CVE‑2025‑0108 + CVE‑2024‑9474 + CVE‑2025‑0111 na niezałatanych i źle zabezpieczonych interfejsach mgmt.
Advisory/monitoring: Armis i HKCERT klasyfikują ryzyko jako wysokie; zalecają priorytetowy patching i ograniczenie ekspozycji.
Bazy podatności: NVD/CVE.org/Tenable/Rapid7 dokumentują charakter luki, wektor i brak wpływu na Cloud NGFW/Prisma Access.
Tylko w odizolowanym labie. Nie wykonuj testów wobec cudzych systemów. Scenariusz ma zweryfikować detekcje i hardening, nie eksploatować luki.
Weryfikacja wersji i contentu (CLI PAN‑OS):
show system info → sprawdź sw-version.
request content upgrade check / request content upgrade download latest / request content upgrade install version <>=8943 (upewnij się, że Threat ID 510000/510001 są obecne).
Tymczasowe logowanie dostępu do UI
Skonfiguruj forwarding System/Threat/Traffic do SIEM.
Z dozwolonego hosta wewnętrznego wygeneruj benign ruch do UI: curl -k https://<fw-mgmt>:4443/ (sprawdź, czy powstają zapisy w Traffic/System).
Testy detekcji w SIEM
Uruchom podane zapytania Splunk/KQL/Elastic; w razie braku rzeczywistych zdarzeń skorzystaj z generatorów logów testowych (np. sample CEF) z symbolicznymthreatid=510000 (bez faktycznej próby eksploatacji).
Hardening
Zaimplementuj listę zaufanych źródeł (ACL/SG) i regułę „jump‑box only”; potwierdź, że ruch spoza listy nie dociera do UI.
Mapowania (Mitigations, powiązane techniki)
Mitigations (ATT&CK)
M1051 — Update Software (aktualizacje PAN‑OS do wersji naprawczych).
M1037 — Filter Network Traffic (restrykcja źródeł do UI, tylko zaufane IP).
M1030 — Network Segmentation (dostęp przez jump‑host/VPN).
M1042 — Disable or Remove Feature or Program (wyłączenie profilu mgmt na interfejsach dataplane, jeśli zbędny).
Co: Pre‑auth RCE w FortiOS/FortiProxy SSL‑VPN (FortiGate) — CVE‑2023‑27997 („XORtigate”).
Jak: nadpisanie bufora (heap) poprzez parametr enc w endpointzie /remote/hostcheck_validate, co umożliwia wykonanie kodu bez logowania.
Ryzyko: krytyczne, aktywnie wykorzystywane, w KEV (CISA).
Naprawa: aktualizacja co najmniej do FortiOS 6.0.17 / 6.2.15 / 6.4.13 / 7.0.12 / 7.2.5 oraz odpowiednie wersje FortiProxy; w razie potrzeby tymczasowo wyłączyć SSL‑VPN.
ATT&CK: T1190 (Initial Access). Wskazane korelacje z T1133 (External Remote Services) oraz T1210 (Exploitation of Remote Services) dla ruchu/powykorzystaniowych zachowań.
Krótka definicja techniczna
CVE‑2023‑27997 to błąd heap‑based buffer overflow (CWE‑122/CWE‑787) w komponencie SSL‑VPN FortiOS/FortiProxy umożliwiający zdalne wykonanie kodu na urządzeniu bez uwierzytelnienia poprzez „specjalnie spreparowane” żądania HTTP/HTTPS do publicznego interfejsu VPN.
Gdzie występuje / przykłady platform
Network Devices (FortiGate/FortiProxy) — urządzenia brzegowe z włączonym SSL‑VPN. (Matryca ATT&CK obejmuje „Network Devices”).
Chmura/edge: gdy FortiGate stoi za ALB/WAF (AWS/Azure/GCP), ślady ataków w logach ALB/WAF/Load Balancer. [Mimo że sama podatność dotyczy urządzenia, telemetria może być w logach chmurowych.]
Windows/AD/Azure/M365/K8s/ESXi: pośrednio — jako dalsze cele po początkowym włamaniu (lateral movement), nie jako wektor podatności.
Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)
Atakujący składa pre‑auth żądania HTTP(S) do portalu SSL‑VPN FortiGate. Kluczową rolę odgrywa endpoint /remote/hostcheck_validate i parametr enc, którego długość i dekodowanie są błędnie weryfikowane. Błąd pozwala na nadpisanie pamięci sterty i w konsekwencji wykonanie kodu. Badanie LEXFO opisuje też zależności od /remote/info (do pobrania „salt”) oraz charakter „XOR‑overflow” wykorzystywany do manipulacji pamięcią. W praktyce umożliwia to początkowy dostęp (Initial Access) i często ominięcie MFA, ponieważ atak następuje przed uwierzytelnieniem.
Fortinet potwierdził krytyczność problemu (FG‑IR‑23‑097), publikując łatki i zalecając niezwłoczną aktualizację; CISA dodała CVE do KEV (Known Exploited Vulnerabilities).
Żądania do /remote/hostcheck_validate z parametrem enc=; skoki 4xx/5xx
Najlepiej zbierać jako syslog/CEF do SIEM.
FortiGate Event (log IDs)
logid, action, user
Zalew SSL‑VPN login fail (np. ...user-ssl-login-fail...) lub niestandardowe wzorce
Przydatne do korelacji szumu skanowania z exploitami.
Crashlog
diag debug crashlog read
Wpisy o sslvpnd, sygnały, restarty
Materiał dowodowy na awarie procesu.
ALB/WAF/Reverse Proxy
request_uri, user_agent, status, bytes
/remote/hostcheck_validate, enc=; piki z pojedynczych IP
Gdy urządzenie stoi za LB/WAF.
Windows EID
—
[nie dotyczy]
Bezpośrednio brak artefaktów Windows.
AWS CloudTrail
—
[nie dotyczy]
CloudTrail nie rejestruje treści HTTP; szukaj w ALB/WAF (CloudWatch Logs).
K8s audit
—
[nie dotyczy]
M365 audit
—
[nie dotyczy]
Detekcja (praktyczne reguły)
Sigma (FortiGate / proxy logs)
title: FortiGate SSL-VPN hostcheck_validate enc Anomaly (CVE-2023-27997)
id: 4d6f70b0-6b8a-4a3a-9be1-enc-hostcheck
status: experimental
description: Wykrywa żądania do /remote/hostcheck_validate z parametrem enc= (pre-auth) – możliwe wykorzystanie CVE-2023-27997.
references:
- https://nvd.nist.gov/vuln/detail/cve-2023-27997
- https://blog.lexfo.fr/xortigate-cve-2023-27997.html
- https://www.cisa.gov/news-events/alerts/2023/06/13/cisa-adds-one-known-exploited-vulnerability-catalog
tags:
- attack.t1190
- cve.2023-27997
logsource:
category: firewall
product: fortinet
detection:
sel_path:
url|contains: "/remote/hostcheck_validate"
sel_param:
url|contains: "enc="
# alternatywne pola spotykane w CEF/LEEF
sel_alt1:
cs-uri-stem|contains: "/remote/hostcheck_validate"
sel_alt2:
cs-uri-query|contains: "enc="
condition: (sel_path and sel_param) or (sel_alt1 and sel_alt2)
fields:
- src_ip
- dst_ip
- url
- http_method
- http_status
falsepositives:
- Starsze klienty FortiClient wykonujące host-check (rzadkie)
level: high
Splunk (SPL)
Wyszukaj podejrzane żądania i skoki błędów:
index=network (sourcetype=fortigate* OR sourcetype=proxy*)
("|/remote/hostcheck_validate" OR cs_uri_stem="/remote/hostcheck_validate")
("enc=" OR cs_uri_query="*enc=*")
| bin _time span=5m
| stats count count(eval(http_status>=400 AND http_status<600)) AS errs
values(http_method) AS methods
values(http_status) AS statuses
by _time, src_ip, dest_ip, uri, user
| where count>=5 OR errs>=3
Crashes sslvpnd (system events):
index=network sourcetype=fortigate:syslog ("sslvpnd" OR "SSL VPN Watchdog" OR "daemon crash")
| stats count latest(msg) AS any_message by _time, host
KQL (Microsoft Sentinel — CommonSecurityLog lub CEF z FortiGate)
let t = 5m;
CommonSecurityLog
| where DeviceVendor =~ "Fortinet"
| where RequestURL has "/remote/hostcheck_validate" and RequestURL has "enc="
| summarize cnt = count(), statuses = make_set(FlexString1) by bin(TimeGenerated, t), SourceIP, DestinationIP, RequestURL
| where cnt >= 5
AWS — CloudWatch Logs Insights (ALB/WAF access logs; nie CloudTrail)
fields @timestamp, @message, httpRequest.clientIp as src
| filter requestURI like /\/remote\/hostcheck_validate/ and @message like /enc=/
| stats count() as hits, countif(elb_status_code like /5\d\d|4\d\d/) as errs by bin(5m), src, requestURI
| filter hits >= 5 or errs >= 3
Elastic (Kibana KQL + EQL)
KQL (HTTP/Proxy index):
url.path : "/remote/hostcheck_validate" and url.query : "*enc=*"
EQL (jeśli parsowane do pól http/url):
sequence by source.ip with maxspan=5m
[ network where url.path == "/remote/hostcheck_validate" and url.query : "*enc=*" ]
[ any where process.name == "sslvpnd" and event.action in ("crash","restart") ]
Heurystyki / korelacje
Wzorzec żądań: burst żądań do /remote/hostcheck_validate z enc= z pojedynczego IP + wysoki udział 4xx/5xx → koreluj z restartem/crashem sslvpnd w ±5 min.
Pre‑auth charakter: brak user w logu, brak sesji, nietypowy User‑Agent (skanery/custom).
Post‑exploitation: nagłe utworzenie/zmiana konta admina (np. fortigate-tech-support) lub odczyt konfiguracji — sygnał znany z incydentów wokół CVE‑2023‑27997.
Trwałość na urządzeniu: modyfikacje w przestrzeni plików SSL‑VPN (np. katalog językowy) i techniki „symlink” opisywane przez Fortinet jako metoda ukrywania artefaktów po wcześniejszych exploitach — warto hunting.
False positives / tuning
Prawdziwe host‑checki starych klientów FortiClient mogą dotykać hostcheck_validate, jednak wolumen jest niewielki i statusy HTTP są zazwyczaj 200/302.
Skanery bezpieczeństwa/VAS mogą generować pojedyncze hity.
Tuning: whitelisty źródeł administracyjnych, progi wolumetryczne (np. ≥5 w 5 min), statusy ≥400, brak user, nietypowe geolokalizacje/GEO‑ASN.
Playbook reagowania (IR)
Identyfikacja ekspozycji
Zbierz listę FortiGate/FortiProxy z włączonym SSL‑VPN i sprawdź wersje (get system status).
Jeżeli urządzenie podatne i dostępne z Internetu — podnieś priorytet.
Zweryfikuj kontrolę administracyjną: nieautoryzowane konta admin (np. fortigate-tech-support), anomalie w konfiguracji.
Forensyka na urządzeniu
Sprawdź katalogi językowe SSL‑VPN pod kątem podejrzanych plików/symlinków (wątek post‑exploitation opisany przez Fortinet).
Remediacja haseł/kluczy
Po kompromitacji: rotacja poświadczeń, kluczy VPN, certyfikatów; sprawdź integracje LDAP/Radius.
Hardening
Ogranicz ekspozycję panelu/portu VPN do zaufanych adresów; włącz WAF/geo‑IP rate‑limit/DoS‑policy.
Zgłoszenie i lessons learned
Odnotuj w rejestrze incydentów; zaktualizuj reguły, dashboardy, runbooki.
Przykłady z kampanii / case studies
CISA KEV: CVE‑2023‑27997 dodane 13 czerwca 2023 do katalogu KEV — wymóg szybkiej remediacji.
Fortinet PSIRT (06.2023): ograniczone przypadki wykorzystania „in the wild”; zalecenie natychmiastowego upgrade, brak powiązania z Volt Typhoon w dacie publikacji.
Raporty branżowe (2024–2025): CVE pojawia się w zestawieniach „routinely exploited”; organy rządowe ostrzegały przed utrzymaną obecnością na FortiOS po patchach (konieczny threat hunting).
Lab (bezpieczne testy)
Tylko w kontrolowanym labie (izolowane FortiGate/FortiProxy). Celem jest detekcja, nie eksploatacja.
Przygotowanie:
Urządzenie testowe FortiGate z włączonym SSL‑VPN, wersja podatna (offline, bez Internetu).
SIEM (np. Splunk/Elastic/Sentinel) z odbiorem syslog/CEF.
Generowanie normalnego ruchu:
Z klienta FortiClient zestaw połączenie → powstaną logi tunnel-up / tunnel-down (do porównania).
Generowanie podejrzanych wzorców (bez exploitów):
Wyślij wielokrotne żądania GET do /remote/hostcheck_validate?enc=AA z różnych IP źródłowych (np. z testowych kontenerów) — celem jest wygenerowanie charakterystycznego wzorca URI i 4xx w logach (nie dostarczać Keystream/PoC).
Zweryfikuj, czy reguły z pkt 7 aktywują alerty, a dashboardy pokazują piki 4xx/5xx.
Symulacja awarii procesu:
(Opcjonalnie) ręcznie zrestartuj usługę SSL‑VPN, aby przetestować korelację z logami „daemon restart/crash” bez wymuszania błędu w pamięci.
Walidacja:
Przejrzyj korelacje: burst /remote/hostcheck_validate + restart sslvpnd + brak user + 4xx.
VPN jest bramą do firmowej sieci – ułatwia pracę zdalną, ale dla atakujących stanowi atrakcyjny cel. Wystarczy jedno przejęte konto lub luka w VPN, by intruz zyskał dostęp do zasobów wewnętrznych. Przykładowo, głośny atak na Colonial Pipeline w 2021 rozpoczął się od wykradzionych danych dostępowych VPN bez wymuszonego MFA, co sparaliżowało krytyczną infrastrukturę. To pokazuje, że kompromitacja VPN niesie poważne konsekwencje – od wycieku danych po zatrzymanie działalności firmy.
Nowo ujawniona kampania Operation WrtHug kompromituje dziesiątki tysięcy domowych i SOHO routerów ASUS WRT, przede wszystkim urządzenia EoL (poza wsparciem). Badacze ze STRIKE (SecurityScorecard) szacują, że ponad 50 tys. unikatowych adresów IP należących do zainfekowanych routerów było widocznych w ciągu ostatnich 6 miesięcy. Wspólnym wskaźnikiem infekcji jest identyczny, samopodpisany certyfikat TLS na usłudze AiCloud z nietypowym 100-letnim terminem ważności od kwietnia 2022 r.. Kampania łączy się taktykami i zasięgiem z operacjami klasy ORB (Operational Relay Box), które służą do skrytego pośredniczenia w ruchu na potrzeby cyber-szpiegostwa.
W skrócie
Skala: ≥50 000 zainfekowanych routerów ASUS, głównie w Tajwanie i Azji Płd-Wsch., ale również w USA, Rosji i Europie.
Wektor: łańcuch n-day na AiCloud + zestaw błędów OS command injection i auth bypass w starszych firmware’ach ASUS WRT.
IoC: wspólny self-signed cert (AiCloud) z ważnością 100 lat.
Powiązania: zbieżność TTP z wcześniejszą kampanią AyySSHush na routery ASUS (GREYNOISE).
W maju 2025 r. GreyNoise opisał cichą kampanię AyySSHush: trwałe tylne wejście w tysiącach routerów ASUS, z wykorzystaniem CVE-2023-39780, modyfikacji konfiguracji SSH oraz przechowywania artefaktów w NVRAM (przetrwanie restartów i aktualizacji). WrtHug dzieli część TTP (wykorzystanie tych samych rodzin błędów i celów), ale STRIKE notuje zaledwie 7 hostów z nakładającą się infekcją, więc traktuje WrtHug jako oddzielną kampanię – potencjalnie tego samego lub skoordynowanych aktorów.
Analiza techniczna / szczegóły luki
Łańcuch ataku w WrtHug opiera się na publicznie znanych (n-day) błędach w ASUS WRT oraz podatnościach AiCloud:
OS command injection:
CVE-2023-41345 / 41346 / 41347 / 41348 – rodzina błędów powiązana z mechanizmami tokenowymi oraz „apply” w panelu, w praktyce skorelowana z CVE-2023-39780 (RT-AX55; wstrzyknięcie komend po uwierzytelnieniu).
AiCloud (arbitrary command / auth bypass):
CVE-2024-12912 – błąd w AiCloud pozwalający na wykonanie poleceń (CVSS 7.2, NVD).
CVE-2025-2492 – improper authentication control w AiCloud (CVSS 9.2); możliwe wywołanie funkcji bez autoryzacji przygotowanym żądaniem.
Artefakt/kondensator IoC: na zainfekowanych urządzeniach usługa AiCloud prezentuje ten sam certyfikat TLS, samopodpisany, z okresem ważności 100 lat (od 04.2022). To najprostszy punkt zaczepienia dla huntów i detekcji.
Modele na celowniku: raporty wymieniają m.in. 4G-AC55U/860U, DSL-AC68U, GT-AC5300, GT-AX11000, RT-AC1200HP/1300G+/1300UHP i inne starsze/EoL wersje. (Lista może nie być kompletna; kluczowe jest sprawdzenie statusu wsparcia danego modelu).
Praktyczne konsekwencje / ryzyko
Skryte proxy/relay (ORB): urządzenia stają się węzłami ukrywającymi ruch na potrzeby eksfiltracji i rozpoznania – mniejsze ryzyko DDoS, większy nacisk na szpiegostwo i pivoting.
Trwałość: atak często przetrwa aktualizacje firmware’u (konfiguracja w NVRAM, zmiany SSH), więc „patch ≠ remediacja”.
Ekspozycja MŚP i domów: domowe/SoHo routery bywają pomijane w procesach hardeningu, a AiCloud bywa wystawiony do Internetu bez MFA i segmentacji.
Rekomendacje operacyjne / co zrobić teraz
Szybki hunting IoC
Sprawdź, czy AiCloud prezentuje nietypowy, samopodpisany cert z datą ważności do 2122 r.. Jeśli tak – traktuj jako wysoki wskaźnik kompromitacji.
Weryfikacja AiCloud i dostępu zdalnego
Jeżeli urządzenie jest EoL lub brak łatki – wyłącz AiCloud i każdy zdalny dostęp z Internetu (HTTP/HTTPS, SSH, WAN admin).
Remediacja trwałości
Jeżeli podejrzewasz kompromitację: pełny factory reset, następnie ręczna, czysta konfiguracja (nie przywracaj kopii!), sprawdź authorized_keys, porty SSH (GREYNOISE raportował niestandardowy TCP/53282), usuń obce klucze.
Aktualizacje firmware’u
Zastosuj najnowsze firmware’y naprawiające m.in. CVE-2025-2492 (AiCloud) oraz luki z 2023 r. W przypadku EoL – wymiana urządzenia.
Hardening
Zmień hasła admina, włącz MFA (jeśli wspierane), ogranicz panel do LAN/VPN, wyłącz UPnP, stosuj ACL/geo-IP na brzegu, segmentuj sieć (IoT/Wi-Fi gości oddzielnie). (Dobre praktyki na bazie ogólnych zaleceń i obserwacji z raportów).
Monitoring i bloki
Blokuj znane IP/porty z raportów (np. 53282/TCP dla SSH), loguj odwołania do AiCloud, ustaw alerty na zmiany certyfikatów i włączenie SSH.
Różnice / porównania z innymi przypadkami (jeśli dotyczy)
WrtHug vs. AyySSHush: oba celują w ASUS WRT i łączą CVE-2023-39780, ale WrtHug ma wyraźny IoC TLS (100-letni cert) na AiCloud i inną dystrybucję geograficzną; AyySSHush akcentował trwałość przez NVRAM/SSH. Mało hostów z podwójną infekcją → różne klastry/etapy jednego lub skoordynowanych aktorów.
Botnet vs. ORB: klasyczne botnety = hałaśliwe DDoS/kripto-koparki; ORB = ciche szlaki ruchu dla operacji APT (maskowanie źródła, pivot). WrtHug ma profil ORB-like.
Podsumowanie / kluczowe wnioski
Słabe ogniwo #1: EoL routery z włączonym AiCloud i zdalnym dostępem.
Krytyczna podatność deserializacji w SAP NetWeaver AS Java (RMI‑P4) pozwala nieautoryzowanemu napastnikowi zdalnie wykonać dowolne komendy systemowe przez wysłanie złośliwych obiektów Java na otwarty port P4 (5NN04/50004). Należy załatać wg not SAP #3634501 oraz wdrożyć dodatkowe filtrowanie deserializacji JVM wg #3660659, a także ograniczyć ekspozycję portu P4 tylko do zaufowanych sieci. Brak publicznych dowodów eksploatacji/PoC w momencie publikacji dostawców, ale ryzyko jest maksymalne (CVSS 10).
Krótka definicja techniczna
CVE‑2025‑42944 to błąd deserializacji niezaufanych obiektów Java w module RMI‑P4 SAP NetWeaver AS Java. Wystawiony port P4 (np. 50004) przyjmuje obiekty, które po zdeserializowaniu mogą uruchomić dowolny kod/komendy OS w kontekście procesu aplikacyjnego — bez uwierzytelnienia.
Gdzie występuje / przykłady platform
Windows / Linux: serwery z SAP NetWeaver AS Java (procesy java, jstart, sapstartsrv).
AD / ESXi: pośrednio — jeśli hosty SAP są członkiem domeny/VM; wektor RMI‑P4 pozostaje usługą aplikacyjną.
Chmury (AWS/Azure/GCP): NetWeaver na IaaS — krytyczne są Security Groups/NSG, które mogą otworzyć 5NN04 na świat.
Kubernetes: rzadkie, ale jeśli AS Java działa w kontenerze, zagrożeniem jest Service/LoadBalancer/NodePort wystawiający 5NN04.
M365: brak bezpośredniego wpływu; telemetryka MDE może pomóc w detekcji skutków (procesy). Porty P4/P4S/P4HTTP zgodnie z dokumentacją SAP.
Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)
RMI‑P4 to protokół zdalnych wywołań w AS Java. Usługa nasłuchuje na porcie 5NN04 (np. 50004) i obsługuje obiekty Java przesyłane do deserializacji. W CVE‑2025‑42944 brak właściwej walidacji powoduje, że przesłany złośliwy obiekt (tzw. gadget chain) zostaje zdeserializowany, co może zakończyć się wykonaniem komend systemowych (np. powłoki), skutkując pełnym naruszeniem C/I/A aplikacji. SAP wydał poprawkę (#3634501) oraz późniejsze zalecenia utwardzające z #3660659 — w tym zastosowanie JVM‑wide jdk.serialFilter dla klas dozwolonych/blokowanych, co ogranicza powierzchnię gadgetów.
Uwaga kontekstowa: niektóre źródła branżowe raportowały brak obserwacji PoC/eksploatacji w czasie publikacji, lecz historycznie luki RCE w SAP są szybko weaponizowane po ujawnieniu poprawek. Priorytet: patch + segmentacja + filtracja P4.
toPort w [50004..59904] (w przybliżeniu wzorzec 5NN04)
Wykrywa „otwarcie świata” na P4 w chmurze
K8s audit
Wystawienie P4 z klastra
create/patchService/Ingress
spec.ports.port: 5NN04 / nodePort kończący się …04
Jeśli NetWeaver w kontenerach
M365 Unified Audit Log
–
–
[brak zastosowania]
Detekcja skutków via MDE (telemetria endpoint)
Detekcja (praktyczne reguły)
Sigma (Windows – proces potomny od Javy/SAP)
title: SAP NetWeaver AS Java -> podejrzany interpreter poleceń (CVE-2025-42944)
id: 4c7b3c8b-7b5f-4f5f-9f1a-jnr-p4-rce
status: experimental
description: Wykrywa uruchomienie cmd/PowerShell przez procesy java/jstart/sapstartsrv (skutek RMI-P4 RCE).
references:
- https://nvd.nist.gov/vuln/detail/CVE-2025-42944
- https://onapsis.com/blog/sap-security-patch-day-october-2025/
logsource:
product: windows
category: process_creation
detection:
parent_java:
ParentImage|endswith:
- '\java.exe'
- '\jstart.exe'
- '\sapstartsrv.exe'
child_shell:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\wscript.exe'
- '\cscript.exe'
condition: parent_java and child_shell
fields:
- Image
- CommandLine
- ParentImage
- ParentCommandLine
- User
falsepositives:
- Rzadkie zadania serwisowe/upgrade AS Java wywołujące skrypty systemowe
level: high
tags:
- attack.t1059
- attack.t1190
- attack.t1210
Wariant Linux/auditd (skrót):
logsource:
product: linux
service: auditd
detection:
parent_java: selection where exe endswith "java" or "jstart" or "sapstartsrv"
child_shell: selection where a0 in ("sh","bash","zsh","ksh")
condition: parent_java and child_shell
Splunk (SPL)
A. Proces potomny od Javy/SAP (Win Security 4688 lub Sysmon 1)
(index=win* (sourcetype=WinEventLog:Security EventCode=4688)
OR (sourcetype=XmlWinEventLog:Microsoft-Windows-Sysmon/Operational EventCode=1))
| eval parent=coalesce(ParentImage, ParentProcessName)
| eval child=coalesce(Image, NewProcessName)
| where match(lower(parent), "(\\\\|/)java\\.exe$|(\\\\|/)jstart\\.exe$|(\\\\|/)sapstartsrv\\.exe$")
AND match(lower(child), "(\\\\|/)cmd\\.exe$|(\\\\|/)powershell\\.exe$|(\\\\|/)wscript\\.exe$|(\\\\|/)cscript\\.exe$")
| stats count min(_time) max(_time) values(CommandLine) by host parent child user
B. Połączenia przychodzące na P4 (Zeek/FW)
(index=net* OR index=zeek* OR index=firewall*)
| eval port_str=tostring(dest_port)
| where dest_port>=50004 AND dest_port<=59904 AND like(port_str,"%04")
| stats dc(src_ip) as uniq_src count by dest_ip dest_port
| sort - count
KQL (Microsoft Defender/Defender for Cloud)
A. Proces potomny od Javy/SAP
DeviceProcessEvents
| where InitiatingProcessFileName in~ ("java.exe","jstart.exe","sapstartsrv.exe")
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","sh","bash")
| summarize cnt=count(), firstSeen=min(Timestamp), lastSeen=max(Timestamp)
by DeviceName, InitiatingProcessAccountName, InitiatingProcessFileName, FileName, ProcessCommandLine
B. Ruch na P4 (wejściowy)
DeviceNetworkEvents
| where RemotePort between (50004 .. 59904) and RemotePort % 100 == 4
| where Direction in ("Inbound","Listen") or Action =~ "Allowed"
| summarize cnt=count(), sources=dcount(RemoteIP) by DeviceName, RemotePort, Protocol, InitiatingProcessFileName
CloudTrail (AWS) — otwarcie portu 5NN04 w SG (CloudTrail Lake SQL)
SELECT eventTime, eventName, userIdentity.type AS actor,
requestParameters.groupId AS sg,
json_extract_scalar(requestParameters, '$.toPort') AS toPort,
sourceIPAddress
FROM aws_cloudtrail_events
WHERE eventSource='ec2.amazonaws.com'
AND eventName IN ('AuthorizeSecurityGroupIngress','AuthorizeSecurityGroupEgress','CreateSecurityGroup')
AND CAST(json_extract_scalar(requestParameters, '$.toPort') AS INT) BETWEEN 50004 AND 59904
AND LIKE(json_extract_scalar(requestParameters, '$.toPort'), '%04')
ORDER BY eventTime DESC;
Elastic / EQL
Proces potomny od Javy/SAP → interpreter poleceń
process where event.type == "start" and
(process.parent.name in ("java","jstart","sapstartsrv") or
process.parent.executable : "*\\java.exe") and
process.name in ("cmd.exe","powershell.exe","sh","bash","zsh","ksh")
Heurystyki / korelacje (co łączyć)
Inbound na P4 (5NN04/50004) z Internetu ⟶ w krótkim czasie dziecko cmd/sh od procesu java/jstart.
Materiały branżowe (Arctic Wolf) wskazywały brak obserwowanej eksploatacji i publicznego PoC w chwili publikacji, choć luki SAP są atrakcyjne i szybko weaponizowane po patchach.
Dodatkowy hardening (JVM jdk.serialFilter) został opisany przez Onapsis i powiązany z notą SAP #3660659 — warto wdrożyć nawet po aktualizacji.
Komunikaty prasowe/serwisy bezpieczeństwa szeroko opisywały wagę CVE‑2025‑42944 (CVSS 10.0) oraz że został ujęty w wrześniowych i październikowych poradnikach SAP.
Lab (bezpieczne testy) — przykładowe komendy
Tylko w odizolowanym labie. Celem jest weryfikacja detekcji, nie wykorzystanie luki.
Symulacja dziecka cmd od Javy (Windows):# skompiluj prostą klasę Java uruchamiającą bezpieczną komendę echo @" public class P4Echo { public static void main(String[] args) throws Exception { new ProcessBuilder("cmd.exe","/c","echo lab-test").inheritIO().start().waitFor(); } } "@ | Set-Content .\P4Echo.java javac P4Echo.java java P4Echo Oczekiwany efekt: trigger reguł Sigma/Splunk/KQL (rodzic java.exe → dziecko cmd.exe).
Ruch na port P4 (bez payloadu), do testu korelacji sieciowej:# Linux/WSL: próba TCP handshake do P4 nc -vz <host_sap> 50004 Oczekiwany efekt: wpisy w logach FW/Zeek; brak błędów aplikacji (brak payloadu).
Weryfikacja portów SAP wg dokumentacji: sprawdź, że P4 to 5NN04 (np. 50004).
Krytyczna luka w Atlassian Crowd i Crowd Data Center umożliwiała (bez uwierzytelnienia) przesłanie i zainstalowanie arbitralnego pluginu przez endpoint administracyjny — w efekcie zdalne wykonanie kodu (RCE). Wpływ: pełne przejęcie hosta aplikacyjnego/Tomcata, często zakończone doinstalowaniem webshella i dalszą penetracją sieci. Naprawa: aktualizacja do wersji 3.0.5/3.1.6/3.2.8/3.3.5/3.4.4 lub nowszej; doraźnie usunięcie paczki pdkinstall-plugin. Detekcja: szukaj żądań do /crowd/admin/uploadplugin.action oraz anomalii „java → sh/cmd” na hoście.
Krótka definicja techniczna
CVE‑2019‑11580 wynika z błędnie pozostawionego w buildach produkcyjnych pluginu developerskiego pdkinstall, który pozwalał (także bez autoryzacji) na upload i instalację komponentów OSGi/JAR. Umożliwia to instalację złośliwego pluginu i wykonanie kodu w kontekście procesu aplikacyjnego (Tomcat/Java), co skutkuje RCE.
Gdzie występuje / przykładowe platformy
Systemy: Linux/Unix (typowo), Windows (usługa Crowd/Tomcat).
Środowiska: bare metal, VM (ESXi/Hyper‑V), kontenery/K8s (Crowd w kontenerze lub jako Helm chart), reverse proxy (NGINX/Apache), WAF.
Tożsamość: Crowd integruje się z AD/LDAP/Azure AD/M365, ale sama luka dotyczy Crowd, nie tych usług.
Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)
Przyczyna: w buildach Crowd błędnie włączono pdkinstall development plugin. Pozwalał on na instalację pluginów również na instancjach produkcyjnych.
Wektor: żądanie HTTP do endpointu administracyjnego odpowiedzialnego za upload pluginów (np. ścieżka zawierająca /crowd/admin/uploadplugin.action). Po stronie serwera plugin jest ładowany i wykonywany w kontekście aplikacji.
Skutki: wykonanie dowolnego kodu (Java/serwlety), możliwość dropu webshella, ruchu bocznego, kradzieży poświadczeń i pivotu. W praktyce technika była powszechnie wykorzystywana do instalacji webshelli.
Zasięg wersji: dotyczy wersji 2.1.0 ≤ v < 3.0.5, 3.1.0 ≤ v < 3.1.6, 3.2.0 ≤ v < 3.2.8, 3.3.0 ≤ v < 3.3.5, 3.4.0 ≤ v < 3.4.4; naprawione w 3.0.5 / 3.1.6 / 3.2.8 / 3.3.5 / 3.4.4. CVSS v3.1: 9.8 (CRITICAL).
Artefakty i logi (SOC „punkty zaczepienia”)
Źródło
EID / typ
Co obserwować
Przykłady / uwagi
Web access (NGINX/Apache/ALB/WAF)
HTTP access
Żądania do /crowd/admin/uploadplugin.action, metody POST/PUT, wzrost 4xx/5xx przed sukcesem
Endpoint potwierdzony w analizach; logi WAF/ALB/AGW zawierają URI/metodę.
Crowd integruje się z M365/IdP, ale luka jest po stronie Crowd
CloudTrail
—
nie dotyczy (aplikacyjny HTTP, nie API AWS)
Traktuj CloudTrail pobocznie (zmiany infra)
Detekcja (praktyczne reguły)
Sigma (webserver → próby uploadu pluginu)
title: Atlassian Crowd CVE-2019-11580 - Podejrzany upload pluginu
id: 4c8f5ee1-7f6a-4a7c-9b8e-cc9a2cfe9e9a
status: experimental
description: Wykrywa żądania do endpointu uploadu pluginów Crowd często nadużywanego w CVE-2019-11580.
references:
- https://confluence.atlassian.com/crowd/crowd-security-advisory-2019-05-22-970260700.html
- https://nvd.nist.gov/vuln/detail/CVE-2019-11580
- https://www.rapid7.com/db/modules/exploit/multi/http/atlassian_crowd_pdkinstall_plugin_upload_rce/
logsource:
category: webserver
detection:
sel_path:
url|contains: '/crowd/admin/uploadplugin.action'
cs-uri-stem|contains: '/crowd/admin/uploadplugin.action'
sel_method:
http_method|contains:
- POST
- PUT
cs-method|contains:
- POST
- PUT
condition: sel_path and sel_method
fields:
- src_ip
- url
- http_user_agent
- http_referer
- status
falsepositives:
- Legalna instalacja/aktualizacja pluginu przez admina (okno serwisowe)
level: high
tags:
- attack.T1190
- cve.2019-11580
(endpoint/metoda potwierdzone w źródłach)
Splunk (SPL) — logi www
index=web (sourcetype=access_combined OR sourcetype=aws:alb:accesslogs OR sourcetype=nginx:ingress)
| eval uri=coalesce(cs_uri_stem, uri_path, request, uri)
| eval method=coalesce(cs_method, method, http_method)
| search uri="/crowd/admin/uploadplugin.action" method IN ("POST","PUT")
| stats count min(_time) as first max(_time) as last values(status) as http_status by src_ip, uri, method, useragent
| where count>=1
KQL (Azure) — App Gateway/WAF
AzureDiagnostics
| where Category in ("ApplicationGatewayAccessLog","ApplicationGatewayFirewallLog")
| where requestUri_s has "/crowd/admin/uploadplugin.action"
| where httpMethod_s in ("POST","PUT")
| project TimeGenerated, clientIP_s, requestUri_s, httpMethod_s, httpStatus_d, userAgent_s
AWS — CloudWatch Logs Insights (WAF/ALB)
fields @timestamp, httpRequest.clientIp, httpRequest.uri, httpRequest.httpMethod, terminatingRuleId
| filter httpRequest.uri like '/crowd/admin/uploadplugin.action'
| filter httpRequest.httpMethod in ['POST','PUT']
| sort @timestamp desc
Elastic / EQL — post‑exploitation na hoście (Java → shell)
process where event.type == "start" and
process.parent.name : ("java","java.exe","tomcat","catalina.sh","catalina.bat") and
process.name : ("bash","sh","cmd.exe","powershell.exe","curl","wget","nc","socat")
Heurystyki / korelacje (co łączyć)
Łańcuch czasowy:(1) żądanie do /crowd/admin/uploadplugin.action → (2) nagły 200/302 lub 5xx→200 → (3) na hoście java uruchamia sh/cmd → (4)połączenie wychodzące na nietypowe IP/port.
Integracja z WAF: wysoki odsetek 4xx/5xx na tej ścieżce + próby multipart POST od pojedynczego źródła.
FIM/baseline: nowe .jar w katalogach pluginów Crowd; nagłe zmiany w atlassian-bundled-plugins.zip.
False positives / tuning
Legalne okna administracyjne (instalacja/aktualizacja pluginów) — stosuj allowlist IP/adminów oraz korelację z change window.
Skanery podatności/Nuclei — zwykle GET/HEAD i brak dalszych artefaktów hostowych.
Reverse proxy health checks — nie używają POST/PUT na admin‑endpointach. Tuning: ogranicz alerty do POST/PUT + 2xx/3xx i wyklucz znane sieci adminów; koreluj z host‑EDR (Java→shell).
Playbook reagowania (IR) — kroki & komendy
Kontekst tylko defensywny. Wykonuj wyłącznie w środowisku, którego jesteś administratorem.
Triage & potwierdzenie
Sprawdź wersję Crowd (podatne pasma); jeżeli poniżej 3.4.4 (lub odpowiedni fix dla linii), traktuj jako incydent krytyczny.
Przejrzyj WAF/ALB/NGINX: żądania do /crowd/admin/uploadplugin.action.
Izolacja
Tymczasowo zablokuj dostęp do ścieżki na WAF/reverse proxy (rule deny URI).
Rozważ odłączenie hosta od Internetu (zachowując dostęp IR).