Archiwa: Admin - Strona 22 z 33 - Security Bez Tabu

Dziesiątki tysięcy routerów ASUS przejętych w kampanii „WrtHug”. Co wiemy i jak się bronić

Wprowadzenie do problemu / definicja luki

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).
  • Kluczowe CVE: CVE-2023-41345/6/7/8, CVE-2023-39780, CVE-2024-12912, CVE-2025-2492 (AiCloud).

Kontekst / historia / powiązania

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-2492improper 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

  1. 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.
  2. 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).
  3. 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.
  4. 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.
  5. 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).
  6. 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.
  • Najprostsza detekcja: sprawdzenie certyfikatu TLS AiCloud (100 lat).
  • Remediacja ≠ patch: przy podejrzeniu infekcji reset do fabrycznych + ręczna rekonfiguracja, dopiero potem aktualizacja; dla EoL – wymiana.
  • Zagrożenie strategiczne: rosnący trend ORB na urządzeniach brzegowych – cichsze, długotrwałe kampanie.

Źródła / bibliografia

  1. SecurityScorecard STRIKE – Operation WrtHug, The Global Espionage Campaign Hiding in Your Home Router (19.11.2025). (SecurityScorecard)
  2. The Register – Tens of thousands more ASUS routers pwned by suspected, evolving China operation (19.11.2025). (The Register)
  3. GreyNoise – Stealthy Backdoor Campaign Affecting Thousands of ASUS Routers (28.05.2025). (greynoise.io)
  4. NVD – CVE-2023-39780 (ASUS RT-AX55 OS command injection). (nvd.nist.gov)
  5. NVD – CVE-2025-2492 (ASUS AiCloud improper authentication control). (nvd.nist.gov)

CVE‑2025‑42944 – SAP NetWeaver AS Java

TL;DR

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.


Artefakty i logi

ŹródłoCo zbieraćEID / polaWzorce / wskazówkiUwagi
SAP AS Java defaultTrace.* / logi RMIBłędy RMI‑P4, nieudane żądania, przeciążenia kolejkicom.sap.engine.services.rmi_p4.*Wpisy o przetwarzaniu żądań P4, błędach połączeń, anomalie kolejkiPrzykładowe komunikaty RMI‑P4 potwierdza KBA SAP (P4/50004, kolejka).
Windows SecurityTworzenie procesów po udanej RCE4688Rodzic: java.exe/jstart.exe/sapstartsrv.exeDziecko: cmd.exe/powershell.exe/wscript.exeKorelować z czasem ruchu na P4
SysmonStart procesu / sieć1, 3, 10ParentImage jak wyżej; połączenia z/do *:5NN04
Linux auditdexecve/fork potomków Javytype=EXECVEppid/exe = java/jstart/sapstartsrv + sh/bash
Zeek / FWRuch przychodzący na P4dest_port50004–59904 i końcówka …04 (wzorzec 5NN04)Segmentacja i allowlista źródeł
AWS CloudTrailZmiany SG otwierające P4AuthorizeSecurityGroupIngress/Egress, CreateSecurityGrouptoPort w [50004..59904] (w przybliżeniu wzorzec 5NN04)Wykrywa „otwarcie świata” na P4 w chmurze
K8s auditWystawienie P4 z klastracreate/patch Service/Ingressspec.ports.port: 5NN04 / nodePort kończący się …04Jeś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.
  • Nietypowe argumenty potomnych (/c, -c, wget, curl, nc, zapisy do /tmp/%TEMP%).
  • Nagły wzrost błędów RMI‑P4 w defaultTrace koreluje z ruchem na P4 i alertami EDR.
  • Zmiany Security Group/NSG odsłaniające P4 ⟶ pierwsze próby skanowania/połączeń (Zeek).
  • Brak P4S (SSL) i brak ACL/allowlist dla P4 w ICM/WAF ⟶ ryzyko wyższe.

False positives / tuning

  • Legalne działania administracyjne/upgrade’owe AS Java mogą krótkotrwale wywoływać skrypty systemowe.
  • Ogranicz do hostów SAP, kont serwisowych (<SID>adm), okien zmian i baseline’u procesów.
  • Whitelistuj znane źródła administracyjne (jump‑hosty), a alertuj Internet/nieznane ASN.
  • W regułach sieciowych uwzględnij fakt, że P4 = 5NN04, więc dopasowanie końcówki …04 zwiększa precyzję.

Playbook reagowania (IR)

  1. Identyfikacja/triage: potwierdź alert (proces potomek od Javy + ruch na 5NN04).
  2. Izolacja: odetnij host/y SAP od niezaufanych sieci; tymczasowo zablokuj 5NN04 na brzegu/WAF.
  3. Forensics wstępne:
    • Windows: pobierz 4688/Sysmon oraz C:\usr\sap\*\J00\work\defaultTrace*.
    • Linux: journalctl/auditd, /usr/sap/<SID>/J*/work/defaultTrace*.
  4. Weryfikacja ekspozycji portu:
    • Linux: ss -lntp | awk '$4 ~ /:5[0-9]{2}04/ {print}'
    • Windows (PS): Get-NetTCPConnection | ? { $_.LocalPort -ge 50004 -and $_.LocalPort -le 59904 -and ($_.LocalPort % 100 -eq 4) }
  5. Patche / hardening: zastosuj SAP Note #3634501 (fix) i #3660659 (JVM serialFilter).
  6. Rekonesans kompromitacji: szukaj anomalii w kontach, nietypowych plikach w %TEMP%//tmp, połączeń wychodzących C2.
  7. Eradykacja/odzyskanie: po patchu uruchom kontrolę integralności, rotację haseł/kluczy, przywrócenie zaufanej konfiguracji ICM/WAF.
  8. Lessons learned: zamknij ekspozycje P4, egzekwuj allowlist, monitoruj porty 5NN**.

Przykłady z kampanii / case studies

  • 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).

Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK):

  • M1051 – Update Software: szybkie wdrożenie not #3634501 (fix) + #3660659 (serialFilter).
  • M1030 – Network Segmentation: ogranicz zasięg P4 do VLAN‑ów admin/jump‑host; brak dostępu z Internetu.
  • M1037 – Filter Network Traffic: WAF/NGFW — allowlista do P4/P4S, TLS preferowany (P4S).
  • M1031 – Network Intrusion Prevention: sygnatury/analiza protokołu, blokowanie anomalii RMI/P4.
  • M1048 – Application Isolation & Sandboxing: ograniczenie uprawnień konta procesu AS Java.

Powiązane techniki ATT&CK:

  • T1190,
  • T1210,
  • T1059

Źródła / dalsza lektura

  • NVD: opis, wektor, daty → CVE‑2025‑42944. (NVD)
  • SAP Security Notes: #3634501 (fix), #3660659 (hardening jdk.serialFilter). (strony wymagają dostępu) — linki referencyjne z NVD. (NVD)
  • Onapsis (Oct 2025 Patch Day): tło hardeningu i jdk.serialFilter. (Onapsis)
  • Arctic Wolf (Sep 2025): przegląd luki, brak PoC/eksploatacji w momencie publikacji. (Arctic Wolf)
  • The Hacker News (Oct 2025): kontekst i wzmianka o dodatkowym utwardzeniu. (The Hacker News)
  • Tenable (Nessus Plugin 270696): detale skanera i potwierdzenie zakresu (AS Java, CVSS 10). (Tenable®)
  • SAP Help (AS Java Ports): P4 = 5NN04, P4S/P4HTTP. (SAP Help Portal)
  • MITRE ATT&CK v18 — wersje i techniki: wersja bieżąca, T1190/T1210/T1059. (MITRE ATT&CK)

Checklisty dla SOC / CISO

SOC (operacyjna)

  • Reguły: Sigma (proc‑child Java→cmd/sh), SPL/KQL/EQL wdrożone.
  • Korelacje: ruch na 5NN04 + proces potomny cmd/sh.
  • Telemetria SAP: zbieranie defaultTrace.* i logów RMI‑P4.
  • Monitoring chmury: alerty na AuthorizeSecurityGroupIngress/Egress dla portów 50004–59904.
  • Wizualizacja źródeł z Internetu próbujących P4 (Zeek/FW).

CISO (strategiczna)

  • Patch wg SAP #3634501 + hardening #3660659 na wszystkich krajobrazach.
  • Segmentacja: P4 tylko z sieci admin/jump‑host; brak ekspozycji publicznej.
  • WAF/NGFW: allowlista + wymuszenie P4S (TLS) tam gdzie możliwe.
  • Ćwiczenia IR: scenariusz RCE w SAP; gotowe playbooki i retencja logów ≥ 90 dni.
  • Przegląd uprawnień dla kont procesu AS Java; zasada najmniejszych uprawnień.

CVE-2019-11580 — Atlassian Crowd/Crowd Data Center RCE przez pdkinstall

TL;DR

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.
  • Chmury: AWS (EC2 + ALB/WAF), Azure (VM + App Gateway/WAF), GCP (Compute Engine + HTTP(S) LB).
  • 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łoEID / typCo 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 sukcesemEndpoint potwierdzony w analizach; logi WAF/ALB/AGW zawierają URI/metodę.
Aplikacja Crowd (atlassian-crowd.log)log4jWpisy dot. instalacji/ładowania pluginów, błędów UPM, wyjątków OSGiLokalizacja/konfiguracja logów Crowd.
Tomcat (catalina.out)logNiespodziewane błędy serwletów/przeładowanie klas tuż po podejrzanym żądaniuCrowd loguje zarówno do własnego logu, jak i Tomcata.
Windows4688 (Process Create), 7045 (Service Install), Sysmon 1/3/11ParentImage=java.exe uruchamia cmd.exe/powershell.exe, sieć wychodząca, tworzenie JAR w katalogach pluginówKorelować z czasem żądań HTTP
Linuxauditd EXECVE / EDRPPID=java uruchamia /bin/sh, curl/wget, „reverse shell” artefakty
K8s (jeśli Crowd w K8s)Ingress/Nginx accessURI jak wyżej; wzrost 5xx; nietypowe źródła
AWSWAF/ALB logs (CloudWatch/S3)httpRequest.uri zawiera ścieżkę; metoda POSTCloudWatch Logs Insights/Athena do analizy
AzureApp Gateway/WAFrequestUri_s zawiera ścieżkę; httpMethod_s = POSTDane w AzureDiagnostics
M365nie dotyczy bezpośrednioCrowd integruje się z M365/IdP, ale luka jest po stronie Crowd
CloudTrailnie 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.

  1. 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.
  2. 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).
  3. Zachowanie dowodów
    • Zrzut logów: web, atlassian-crowd.log, catalina.out; snapshot VM.
    • Hash/backup katalogów pluginów.
  4. Łowiectwo zagrożeń (host)
    • Linux: grep -E "uploadplugin|multipart|pdkinstall" /var/log/nginx/access.log* grep -i "plugin" $CROWD_HOME/logs/atlassian-crowd.log find $CROWD_HOME -type f -name "*.jar" -mmin -4320
    • Windows (PowerShell/Sysmon): filtruj EventID 1 (ParentImage=java.exe) → cmd.exe/powershell.exe.
  5. Eradykacja
    • Patch do wersji z poprawką (3.0.5/3.1.6/3.2.8/3.3.5/3.4.4 lub nowszej).
    • Jeżeli patch odroczony: usuń pdkinstall-plugin z instalacji i bundla (instrukcja vendor).
    • Usuń nieznane pluginy, przywróć baseline, zrestartuj usługę (kontrolując logi po starcie).
  6. Odzyskiwanie i weryfikacja
    • Testy funkcjonalne, monitorowanie podwyższone przez 7–14 dni, rotacja haseł/kluczy używanych przez Crowd (integracje AD/LDAP).
  7. Lekcje / hardening
    • WAF rule per‑URI, segmentacja DMZ, wymuszenie SSO/AdminVPN, FIM katalogów pluginów.

Przykłady z kampanii / case studies

  • CISA (AA21‑209A): luka była rutynowo wykorzystywana do instalacji webshelli na serwerach ofiar.
  • KEV: CVE‑2019‑11580 ujęty w CISA Known Exploited Vulnerabilities — zalecana pilna aktualizacja.
  • Detekcje rynkowe: dostawcy NDR/IDS publikowali sygnatury/artefakty dla tego CVE (m.in. opis ryzyka i łańcucha eksploatacji).

Lab (bezpieczne testy) — przykładowe komendy

Uwaga: Poniższe testy nie eksploatują luki. Służą do walidacji detekcji w kontrolowanym labie.

  1. Generowanie śladu www (WAF/NGINX/ALB)
# symulacja niegroźnego ruchu do admin-URI (powinno zwrócić 401/403/404/405)
curl -I -X POST https://lab.example.com/crowd/admin/uploadplugin.action
  1. Walidacja korelacji hostowej (Linux)
# kontrolowany start i szybkie zakończenie powłoki, do sprawdzenia korelacji "java -> sh"
sudo -u crowd bash -c 'true'   # wygeneruj bezpieczny event exec
  1. FIM (plik JAR w katalogu pluginów — lab only)
# NIE w produkcji: sprawdź, czy FIM łapie nowe JAR-y
touch $CROWD_HOME/shared/plugins/test-fim.jar

Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK Enterprise):

  • M1051 — Update Software: szybka aktualizacja Crowd do wersji zawierającej fix.
  • M1042 — Disable or Remove Feature or Program: usunięcie pdkinstall-plugin i zbędnych komponentów.
  • M1030 — Network Segmentation: odseparowanie Crowd w DMZ/segmencie publikacyjnym.
  • M1047 — Audit: stały przegląd logów aplikacyjnych i kontroli integrity komponentów.

Powiązane techniki ATT&CK:

  • T1190,
  • T1505.003,
  • T1105,
  • T1059 .

Źródła / dalsza literatura

  • Atlassian: Crowd Security Advisory 2019‑05‑22 — wersje podatne, wersje naprawcze, mitigacja. (Atlassian Documentation)
  • NVD: opis i CVSS dla CVE‑2019‑11580. (NVD)
  • Rapid7 (opis modułu wykrywającego endpoint uploadu pluginu). (Rapid7)
  • CISA: Top Routinely Exploited Vulnerabilities — użycie do instalacji webshelli; KEV. (CISA)
  • Atlassian: lokalizacja i konfiguracja logów Crowd/Tomcat. (Atlassian Documentation)
  • ATT&CK: T1190, T1505.003, T1105, T1059 (wersje i zakres). (MITRE ATT&CK)

Checklisty dla SOC / CISO

SOC (operacyjna):

  • Monitoruj POST/PUT na /crowd/admin/uploadplugin.action (www/WAF/ALB).
  • Koreluj z hostem: javash/cmd, nowe *.jar w katalogach pluginów.
  • Wdróż reguły Sigma/SPL/KQL z §7 i testy z §12.
  • Ustal allowlist IP adminów Crowd i okna serwisowe.
  • Myślistwo: poszukaj webshelli/serwletów nietypowych (hash/baseline).

CISO/Architekt (strategiczna):

  • Patch policy: Crowd ≥ naprawione wersje (3.0.5/3.1.6/3.2.8/3.3.5/3.4.4) lub nowsze.
  • Segmentacja DMZ i WAF z regułą blokującą wrażliwy URI.
  • FIM katalogów pluginów i podpisywanie komponentów (jeśli możliwe).
  • Przeglądy audit logów UPM i retencja logów aplikacyjnych.
  • Procedury IR: izolacja, backup artefaktów, rotacja sekretów systemów zintegrowanych (AD/LDAP/M365).

Status vendor: aktualizacja opublikowana 22 maja 2019; patche dostępne dla linii 3.0.x–3.4.x; problem jest ujęty w KEV.

CVE-2015-3113 — Adobe Flash Player RCE

TL;DR

Krytyczna luka w Adobe Flash Player (CVE‑2015‑3113) umożliwiała zdalne wykonanie kodu poprzez przepełnienie bufora na stercie, m.in. po wejściu na złośliwą stronę lub kliknięciu odsyłacza w kampanii phishingowej. Zero‑day wykorzystywany był w operacji Clandestine Wolf (APT3), z łańcuchem: e‑mail → profilowanie JS → załadowanie pliku SWF/FLV → ROP/DEP/ASLR bypass → zrzut backdoora (SHOTPUT). Detekcja: obserwuj pobrania .swf, procesy/załadowane moduły Flash oraz nietypowe dzieci procesów Flash (cmd/powershell/wscript). Ponieważ Flash jest EOL (12.2020), każde użycie Flash w 2025 r. jest co najmniej podejrzane.


Krótka definicja techniczna

CVE‑2015‑3113 to luka typu heap‑based buffer overflow w Adobe Flash Player (przed 13.0.0.296; 14.x–18.x < 18.0.0.194 dla Windows/OS X; Linux < 11.2.202.468), pozwalająca zdalnie wykonać kod przy przetwarzaniu specjalnie spreparowanych treści Flash; w czerwcu 2015 była aktywnie wykorzystywana na wolności.


Gdzie występuje / przykłady platform

  • Endpointy: Windows (IE/Edge Legacy/Chrome/Firefox), macOS (Safari/Firefox/Chrome), Linux (Firefox/Chromium – PPAPI/NPAPI).
  • Scenariusze ataku: phishing z linkiem do serwisu z exploitem, drive‑by po wejściu na zainfekowaną stronę; znane cele zawierały m.in. Windows 7 (IE) i Firefox na XP.
  • Stan dzisiaj: Flash Player zakończył życie 31.12.2020 (blokada uruchomienia od 12.01.2021) — użycie w sieci produkcyjnej to incydent ryzyka.

Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)

Kampania Operation Clandestine Wolf przypisywana APT3 wykorzystywała e‑maile z odsyłaczami do przejętych witryn. Po kliknięciu ofiara była przekierowywana do skryptów profilujących (JS), które sprawdzały wersje przeglądarki/wtyczek. Następnie serwer dostarczał parę plików SWF + FLV wykorzystujących CVE‑2015‑3113. Exploit uzyskiwał arbitralny zapis/odczyt, wykonywał łańcuch ROP omijający DEP/ASLR, a finalnie odpalał shellcode i zrzucał backdoora SHOTPUT. Efekt: zdalne RCE i trwała kontrola hosta.

Dlaczego skuteczna?
(1) popularność Flash w 2015, (2) atak drive‑by nie wymagał pobierania plików przez użytkownika, (3) łańcuch exploitów obchodził mechanizmy łagodzące (DEP/ASLR), (4) szybka adopcja w ekosystemie exploit kitów (np. Magnitude).


Artefakty i logi

WarstwaArtefakt / źródłoWskaźniki / polaUwagi
Windows (Sysmon)EID 1 Process CreateImage/ParentImage: FlashPlayer.exe, FlashUtil*.exe, FlashPlayerPlugin*.exe; dzieci: cmd.exe, powershell.exe, wscript.exe, rundll32.exe, regsvr32.exeNietypowe dziecko procesu Flash = silny sygnał RCE. Nazwy procesów potwierdza Adobe Flash Player Admin Guide.
Windows (Sysmon)EID 7 Image LoadedImageLoaded = \pepflashplayer.dll (Chrome/Chromium)Obserwuj załadowanie w procesach przeglądarki.
Windows (Application)EID 1000 Application ErrorAwaria modułów Flash/pepflashNagłe crashe Flash niedługo przed nietypowym procesem‑dzieckiem.
Proxy/NGFW/DNSDostęp HTTP/S do *.swf, MIME application/x-shockwave-flashurl, mime, user_agent, referrerKoreluj z kliknięciami z e‑maila (M365).
M365 DefenderEmailUrlInfo, UrlClickEventsUrl, UrlDomain, kliknięcia Safe LinksŁącz URL .swf z hostami, które uruchomiły procesy Flash.
MITRE ATT&CK (kontekst)APT3 + SHOTPUTProfilowanie, dostarczenie backdooraDo korelacji z TTP grupy.
AWS (opcjonalnie)CloudTrail Lake (S3 Data Events)GetObject na kluczach %.swfWymaga włączonych data events.
CDNCloudFront Access Logs / Athenacs-uri-stem like '%.swf', sc-content-typePrzy hostowaniu/pośrednictwie treści.

Detekcja (praktyczne reguły)

Sigma (Windows / Sysmon – anomalie dzieci procesów Flash)

title: Flash Plugin Spawns Suspicious Child (CVE-2015-3113 Context)
id: 5a8b2f3b-8ce3-49d0-9f1f-6a2e1d1f3f31
status: experimental
description: Wykrywa nietypowe dzieci procesów Flash (cmd/powershell/skrpty), co bywa obserwowane przy RCE (np. CVE-2015-3113).
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2015-3113
  - https://cloud.google.com/blog/topics/threat-intelligence/operation-clandestine-wolf-adobe-flash-zero-day/
tags:
  - attack.t1203
  - attack.t1189
  - attack.t1566.002
  - cve.2015-3113
logsource:
  category: process_creation
  product: windows
detection:
  sel_parent:
    ParentImage|contains:
      - '\FlashPlayer'
      - '\FlashUtil'
      - '\FlashPlayerPlugin'
  sel_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\rundll32.exe'
      - '\regsvr32.exe'
  condition: sel_parent and sel_child
fields:
  - ParentImage
  - ParentCommandLine
  - Image
  - CommandLine
falsepositives:
  - Rzadkie narzędzia korporacyjne wołane z aplikacji opartej na Flash (dziś skrajnie rzadkie)
level: high

Splunk (SPL)

1) Flash uruchomiony przez przeglądarkę

index=sysmon EventCode=1
(ParentImage="*\\iexplore.exe" OR ParentImage="*\\chrome.exe" OR ParentImage="*\\firefox.exe" OR ParentImage="*\\msedge.exe")
(Image="*\\FlashPlayer*.exe" OR Image="*\\FlashUtil*.exe" OR Image="*\\FlashPlayerPlugin*.exe")
| stats count min(_time) max(_time) by host, ParentImage, Image, CommandLine, ParentCommandLine

2) Dzieci procesów Flash

index=sysmon EventCode=1
(ParentImage="*\\FlashPlayer*.exe" OR ParentImage="*\\FlashUtil*.exe" OR ParentImage="*\\FlashPlayerPlugin*.exe")
(Image="*\\cmd.exe" OR Image="*\\powershell.exe" OR Image="*\\wscript.exe" OR Image="*\\rundll32.exe" OR Image="*\\regsvr32.exe")
| table _time host ParentImage Image CommandLine

3) Proxy/HTTP — pobrania .swf

index=proxy (uri_path="*.swf" OR mime_type="application/x-shockwave-flash")
| stats count by src_ip, user, uri, http_status, user_agent, referrer

KQL (Microsoft Defender / M365)

Defender for Endpoint — dzieci procesów Flash

DeviceProcessEvents
| where InitiatingProcessFileName in~ ("FlashPlayer.exe","FlashPlayerPlugin.exe","FlashUtil32.exe","FlashUtil64.exe")
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","rundll32.exe","regsvr32.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine, InitiatingProcessCommandLine

MDO — kliknięcia linków .swf

UrlClickEvents
| where Url endswith ".swf" or Url has ".swf?"
| summarize Clicks=count() by UrlDomain, Url, AccountUpn, Timestamp

MDO — adresy URL w wiadomościach

EmailUrlInfo
| where Url endswith ".swf" or Url has ".swf?"
| join kind=leftouter EmailEvents on NetworkMessageId
| project Timestamp, SenderFromAddress, RecipientEmailAddress, Url, UrlDomain, Subject, ThreatTypes

(Definicje tabel: EmailUrlInfo, UrlClickEvents — dokumentacja Microsoft).

CloudTrail / CloudWatch (AWS)

Założenie: włączone S3 Data Events lub logi CloudFront.

CloudTrail Lake SQL (AWS CLI): wyszukaj pobrania *.swf z bucketów

SELECT eventTime, sourceIPAddress, userIdentity.principalId, requestParameters.bucketName AS bucket,
       requestParameters.key AS objectKey
FROM event_data_store
WHERE eventSource = 's3.amazonaws.com'
  AND eventName   = 'GetObject'
  AND requestParameters.key LIKE '%.swf'
  AND eventTime > TIMESTAMP '2025-11-01 00:00:00';

(Wymaga włączonych data events).

CloudFront / Athena (przykład):

SELECT date, time, cs_host, cs_uri_stem, sc_status, sc_content_type, c_ip, cs_user_agent
FROM cloudfront_logs
WHERE cs_uri_stem LIKE '%.swf'
ORDER BY date, time DESC;

Elastic EQL

process where
  process.parent.name in ("FlashPlayer.exe","FlashPlayerPlugin.exe","FlashUtil32.exe","FlashUtil64.exe") and
  process.name in ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","rundll32.exe","regsvr32.exe")

Heurystyki / korelacje

  • Klik .swf ⇒ proces Flash ⇒ podejrzane dziecko ⇒ połączenie wychodzące (czasowo blisko) — korelacja M365 (UrlClickEvents / EmailUrlInfo) + EDR + egress DNS/HTTP.
  • Załadowanie pepflashplayer.dll przez przeglądarkę, następnie nietypowe zachowanie (np. nagłe powershell.exe).
  • Rzadko używane dziś MIME application/x-shockwave-flash w ruchu web — traktuj jako anomalię.
  • Artefakty APT3/SHOTPUT (nietypowe rozpoznanie hosta/użytkowników/sieci po kompromitacji) jako sygnały post‑exploitation do korelacji (np. lista kont, netstat).

False positives / tuning

  • Dziedzictwo wewnętrzne: pojedyncze kioski/offline‑aplikacje z zawartością SWF (dziś wyjątkowe). Użyj allowlist domen/aplikacji biznesowych i ogranicz reguły do organizacji/OU, gdzie jakiekolwiek Flash jest dopuszczone.
  • Narzędzia administracyjne mogą incydentalnie wywołać interpretery (np. skrypty logowania), ale rodzicem nie powinien być proces Flash.
  • Ustal okno czasowe (np. ±5 min od kliknięcia URL .swf) i filtruj znane testy w labie.

Playbook reagowania (SOC/IR)

  1. Zablokuj źródło: domenę/URL z .swf w proxy/DNS firewall; wypchnij blokadę przez EDR.
  2. Izoluj host z alertem (EDR quarantine).
  3. Triage artefaktów:
    • Procesy potomne Flash, dropy w %APPDATA%, połączenia C2.
    • Zrzut pamięci procesu przeglądarki/Flash (jeśli polityka na to pozwala).
  4. Hunting rozprzestrzenienie: użyj zapytań (SPL/KQL/EQL powyżej) w horyzoncie 7–30 dni.
  5. Patch & harden: potwierdź brak Flash w flocie (wycofanie EOL), wymuś aktualizacje przeglądarek.
  6. Eradykacja: usuń artefakty, przeinstaluj przeglądarkę, unieważnij poświadczenia pozyskane po kompromitacji.
  7. Lessons learned: blokada typów/MIME, EDR policy na podejrzane dzieci procesów, kampania edukacyjna „nie klikaj .swf”.

Przykłady z kampanii / case studies

  • Operation Clandestine Wolf (APT3/UPS) — phishing z odsyłaczami do przejętych witryn; profilowanie JS; exploit CVE‑2015‑3113; backdoor SHOTPUT (Backdoor.APT.CookieCutter). Branże: A&D, telco, high‑tech, transport, budownictwo.
  • Eksploatacja na szeroką skalę — szybka adopcja w exploit kitach (np. Magnitude) w 2015 r.

Lab (bezpieczne testy) — tylko w kontrolowanym środowisku

Nie instaluj Flash w produkcji. Nie testujemy exploitu — jedynie łańcuch detekcji.

  • Symulacja ruchu web
    • curl -I https://lab.example.org/test.swf (serwuj neutralny plik binarny z nagłówkiem Content-Type: application/x-shockwave-flash).
    • Zweryfikuj, że proxy/NGFW/Athena (CloudFront) odnotowały żądanie *.swf.
  • Symulacja korelacji M365
    • Wyślij na skrzynkę testową e‑mail z linkiem do https://lab.example.org/test.swf.
    • Sprawdź EmailUrlInfo / UrlClickEvents (KQL z sekcji 7).
  • Symulacja anomalii procesów
    • Zastępczo uruchom aplikację, która imituje wzorzec: proces „AplikacjaGUI.exe” → cmd.exe /c whoami. Reguły powinny złapać schemat „aplikacja multimedialna → interpreter”. (Bez użycia Flash).

Mapowania

Mitigations (ATT&CK):

  • M1050 Exploit Protection — ASR/Exploit Guard/EDR exploit prevention.
  • M1033 Limit Software Installation — blokada instalacji wtyczek/dodatków; usunięcie Flash.
  • M1040 Behavior Prevention on Endpoint — blokuj podejrzane łańcuchy (Flash → skrypty/LOLBins).
  • M1017 User Training — prewencja kliknięć w odsyłacze .swf.

Powiązane techniki (kaskada):

  • T1105 Ingress Tool Transfer — dociąganie backdoora po RCE.
  • T1027 Obfuscated/Compressed Files & Information — xor/steganografia/packery w payloadach.

Źródła / dalsza literatura

  • NVD: opis, wersje, „exploited in the wild” (VI 2015). (NVD)
  • Mandiant/FireEye: Operation Clandestine Wolf, łańcuch ataku, SHOTPUT (APT3). (Google Cloud)
  • SecurityWeek: zero‑day, cele (IE na Win7, Firefox na XP), powiązanie z APT3. (SecurityWeek)
  • Trend Micro: adopcja w exploit kitach (Magnitude). (www.trendmicro.com)
  • Adobe: EOL Flash (31.12.2020). (Adobe)
  • Adobe Flash Player 32 Admin Guide: procesy/plik DLL (FlashUtil*, pepflashplayer.dll). (open-flash.github.io)
  • MITRE ATT&CK: T1189, T1566.002, T1203; wersja v18.0. (MITRE ATT&CK)
  • Microsoft Defender: tabele EmailUrlInfo, UrlClickEvents. (Microsoft Learn)
  • AWS: CloudTrail Data Events, CloudFront/Athena zapytania. (AWS Documentation)

Checklisty dla SOC / CISO

SOC (operacyjne):

  • Włączone telemetry: Sysmon (EID 1/7), proxy/DNS, M365 Defender (EmailUrlInfo/UrlClickEvents).
  • Reguły: Sigma (Flash → cmd/powershell), SPL/KQL/EQL z sekcji 7.
  • Korelacja: klik .swf ↔ procesy Flash ↔ dziecko/egress DNS/HTTP.
  • Blokady: MIME application/x-shockwave-flash, rozszerzenie .swf w bramkach.
  • Hunting retro 30 dni: dzieci procesów Flash i ruch do domen z kampanii (wg TI).

CISO (strategiczne):

  • Potwierdzić brak Flash w organizacji (EOL).
  • Polityka „deny by default” dla wtyczek przeglądarek.
  • Wymuszony Exploit Protection/EDR (M1050/M1040).
  • Szkolenia użytkowników (M1017) z naciskiem na klikalność linków.
  • Gotowość IR: playbook powyżej, retencja logów ≥ 30–90 dni.

Pentest (Test Penetracyjny) — Co To Jest? Kompletny Przewodnik

Co to jest test penetracyjny (pentest)?

Test penetracyjny (ang. penetration test, potocznie pentest) to kontrolowany, celowy atak symulowany na system informatyczny, aplikację lub sieć, przeprowadzany w celu oceny bezpieczeństwa tego systemu. Innymi słowy, jest to zaplanowane “hakowanie” własnej infrastruktury – etyczny atak wykonywany za zgodą właściciela systemu.

Czytaj dalej „Pentest (Test Penetracyjny) — Co To Jest? Kompletny Przewodnik”

Google łata nowy zero-day w Chrome (CVE-2025-13223) aktywnie wykorzystywany w atakach

Wprowadzenie do problemu / definicja luki

Google wydał awaryjną aktualizację przeglądarki Chrome, aby usunąć wysokiej wagi lukę CVE-2025-13223 w silniku JavaScript V8. Błąd ma charakter type confusion i jest już aktywnie wykorzystywany („exploit in the wild”). Łatka została udostępniona w wersjach 142.0.7444.175/.176 dla Windows, 142.0.7444.176 dla macOS oraz 142.0.7444.175 dla Linuksa.

W skrócie

  • Co: CVE-2025-13223 – błąd type confusion w V8 (możliwa korupcja sterty, potencjalne RCE).
  • Status: aktywnie wykorzystywany; Google ogranicza szczegóły do czasu zaktualizowania większości użytkowników.
  • Wersje z poprawką: 142.0.7444.175/.176 (Win), 142.0.7444.176 (macOS), 142.0.7444.175 (Linux).
  • Ocena wstępna: media branżowe raportują CVSS ~8.8 (wysoka).

Kontekst / historia / powiązania

To już siódmy zero-day w Chrome w 2025 r., jaki Google musiał łatać awaryjnie. Poprzednie przypadki obejmowały m.in. inne błędy w V8 oraz luki umożliwiające eskalację uprawnień lub ominięcie piaskownicy. Google tradycyjnie wstrzymuje publikację szczegółów technicznych do czasu rozpowszechnienia aktualizacji.

Analiza techniczna / szczegóły luki

CVE-2025-13223 to błąd klasy type confusion w V8 (JS/WebAssembly). Tego typu podatności wynikają z nieprawidłowych założeń co do typu obiektu w czasie wykonania, co może prowadzić do błędów pamięci (heap corruption). W praktyce możliwe jest wyzwolenie podatności poprzez spreparowaną stronę HTML i uzyskanie zdalnego odczytu/zapisu pamięci procesu przeglądarki — w określonych warunkach aż do zdalnego wykonania kodu (RCE) lub obejścia izolacji.

Zakres dotkniętych wersji: Chrome przed 142.0.7444.175/176 (desktop). Dystrybucje i advisories (NVD, Ubuntu, NHS) potwierdzają charakter podatności i progi wersji.

Praktyczne konsekwencje / ryzyko

  • Atak bezplikowy przez przeglądarkę: wystarczy wejście na złośliwą stronę lub wczytanie złośliwej reklamy/iframe, aby wyzwolić błąd.
  • Potencjalne RCE/eskalacja w łańcuchu exploitów: luki V8 są często łączone z innymi błędami (np. sandbox escape) w pełne łańcuchy ataków.
  • Profil celów: TAG często wiąże zero-daye z kampaniami APT/spyware wymierzonymi w osoby wysokiego ryzyka (dziennikarze, opozycja). Choć w tym przypadku brak jeszcze szczegółów atrybucji, Google potwierdza aktywną eksploatację.

Rekomendacje operacyjne / co zrobić teraz

  1. Natychmiastowa aktualizacja przeglądarki na stacjach roboczych i serwerach z GUI:
    • Chrome → MenuPomocInformacje o Google ChromeAktualizuj i Uruchom ponownie. Wersja docelowa: 142.0.7444.175/.176 (zależnie od OS).
  2. Zarządzanie flotą (Intune/Google Admin/Jamf): wymuś roll-out kanału Stable 142.0.7444.175/176; monitoruj wskaźnik zgodności. (Na podstawie wersji z ogłoszenia Stable Channel.)
  3. Chromium-based: sprawdź aktualizacje w przeglądarkach pochodnych (Edge, Brave, Opera), ponieważ podatność dotyczy V8. (Wniosek z charakteru luki; weryfikuj advisories vendorów).
  4. Hardening przeglądarki do czasu pełnej zgodności:
    • włącz Site Isolation, ogranicz uprawnienia JS dla niezaufanych domen (np. polityki ExtensionInstallBlacklist/URLBlacklist), rozważ uBO/NoScript w środowiskach wrażliwych;
    • egzekwuj automatyczne aktualizacje i restart przeglądarki (GPO/MDM).
  5. Detekcja i reagowanie:
    • monitoruj anomalia w procesach chrome.exe/chromium (spawn nieoczekiwanych child-processów, zrzuty pamięci, niepodpisane DLL);
    • telemetria przeglądania: nietypowe crashe V8, błędy Render Process gone po wejściu na daną domenę mogą wskazywać na testowanie exploitów.
  6. Zarządzanie ryzykiem:
    • zaktualizuj rejestr podatności i KPI patchowania;
    • jeśli organizacja stosuje allowlistę stron, tymczasowo ogranicz odwiedzanie nieznanych domen na stanowiskach o wysokiej wrażliwości.

Różnice / porównania z innymi przypadkami

Google w 2025 r. kilkukrotnie łatał zero-daye w V8. W odróżnieniu od wrześniowej luki CVE-2025-10585 (również type confusion), obecna podatność dotyczy gałęzi 142 i ma podobny wektor (spreparowany HTML/JS). W obu przypadkach Google ogranicza szczegóły do czasu powszechnego wdrożenia łatki.

Podsumowanie / kluczowe wnioski

  • Zaktualizuj Chrome do 142.0.7444.175/.176 jak najszybciej — exploit już krąży.
  • Luka dotyczy V8 (type confusion) i może prowadzić do RCE w odpowiednich warunkach.
  • Organizacje powinny wymusić restart przeglądarki po instalacji oraz audytować zgodność floty.

Źródła / bibliografia

  • Chrome Releases – Stable Channel Update for Desktop (17 listopada 2025): wersje i status exploitu. (Chrome Releases)
  • BleepingComputer – omówienie i kontekst siódmego zero-daya w 2025 r. (BleepingComputer)
  • NVD (NIST) – opis techniczny CVE-2025-13223 (V8, type confusion, heap corruption). (NVD)
  • SecurityWeek – wzmianka o CVSS 8.8 i implikacjach dla RCE. (SecurityWeek)
  • NHS Digital Cyber Alert – wersje zawierające poprawkę i status „exploited”. (NHS England Digital)

Fortinet ostrzega: nowa luka w FortiWeb (CVE-2025-58034) jest aktywnie wykorzystywana. Co z krytycznym CVE-2025-64446?

Wprowadzenie do problemu / definicja luki

19 listopada 2025 r. Fortinet potwierdził nową podatność w FortiWeb — CVE-2025-58034 — która jest już wykorzystywana w atakach. Błąd sklasyfikowano jako CWE-78 (command injection) i oceniono na CVSS 6.7 (średnia). Atak wymaga autoryzacji napastnika, ale pozwala wykonywać nieautoryzowane komendy systemowe poprzez spreparowane żądania HTTP lub komendy CLI. Fortinet wydał poprawki w najnowszych wydaniach FortiWeb i zaleca pilną aktualizację.

W skrócie

  • Nowa luka: CVE-2025-58034 (command injection, CVSS 6.7) — aktywnie wykorzystywana. Wymaga autoryzacji.
  • Wpływ: wykonanie poleceń OS na urządzeniu FortiWeb przez autoryzowanego atakującego.
  • Wersje do aktualizacji (wg Fortinet/THN):
    • 8.0.0–8.0.1 → zaktualizuj do 8.0.2+
    • 7.6.0–7.6.5 → zaktualizuj do 7.6.6+
    • 7.4.0–7.4.10 → zaktualizuj do 7.4.11+
    • 7.2.0–7.2.11 → zaktualizuj do 7.2.12+
    • 7.0.0–7.0.11 → zaktualizuj do 7.0.12+
  • Powiązana krytyczna luka: CVE-2025-64446 (path traversal, bez autoryzacji, wykorzystywana w atakach; naprawiona w 8.0.2; dodana do CISA KEV).

Kontekst / historia / powiązania

Zaledwie kilka dni wcześniej społeczność bezpieczeństwa nagłaśniała CVE-2025-64446 w FortiWeb, którą Fortinet naprawił w wersji 8.0.2. Ta luka umożliwia niezalogowanemu napastnikowi uruchamianie poleceń administracyjnych i tworzenie kont admina — stąd jej krytyczność i szybkie dodanie do katalogu CISA KEV. Dzisiejsze ogłoszenie o CVE-2025-58034 dokłada kolejny wektor, tym razem wymagający autoryzacji i klasyfikowany jako command injection. Organizacje powinny traktować oba problemy łącznie i planować skoordynowane działania naprawcze.

Analiza techniczna / szczegóły luki

CVE-2025-58034 (command injection)

  • Mechanizm: niewłaściwa neutralizacja specjalnych znaków w kontekście wywołań systemowych (CWE-78).
  • Warunek: napastnik musi być uwierzytelniony (np. przejęte konto, reuse haseł, inne luki łańcuchowe).
  • Skutek: wykonanie komend OS na urządzeniu FortiWeb przez HTTP/CLI.
  • Zakres wersji: 7.0.0–7.0.11, 7.2.0–7.2.11, 7.4.0–7.4.10, 7.6.0–7.6.5, 8.0.0–8.0.1.

CVE-2025-64446 (path traversal)

  • Mechanizm: błąd typu relative path traversal (CWE-23) w komponentach GUI/CGI FortiWeb.
  • Warunek: brak autoryzacji — atak możliwy z internetu.
  • Skutek: możliwość wykonywania poleceń administracyjnych i dostęp do panelu/websocket CLI; przypadki tworzenia kont admina.
  • Status: aktywnie wykorzystywana; wymagana aktualizacja; CISA KEV.

Praktyczne konsekwencje / ryzyko

  • Lateral movement i trwałość: w obu przypadkach wykonanie komend OS może posłużyć do instalacji backdoorów, pivotu w sieci i kradzieży sekretów/API keys.
  • Podmiana konfiguracji WAF: atakujący mogą wyłączyć reguły, dodać wyjątki, modyfikować polityki — co otwiera drogę do dalszych włamań przez aplikacje chronione przez FortiWeb.
  • Ucieczka z wykrycia: z poziomu OS możliwe jest czyszczenie logów, modyfikacja syslog/forwardingu i ukrywanie aktywności.
  • Ryzyko łańcuchowe: CVE-2025-58034 może być łączona z kradzieżą poświadczeń lub innymi błędami w celu eskalacji (np. przerzucenie się z autoryzowanego na uprzywilejowany kontekst).

Rekomendacje operacyjne / co zrobić teraz

  1. Natychmiastowa aktualizacja FortiWeb do wersji 8.0.2 lub wyższej (dla gałęzi 8.0) oraz odpowiednio: 7.6.6+ / 7.4.11+ / 7.2.12+ / 7.0.12+. Priorytet dla urządzeń z GUI/HTTP wystawionym do internetu.
  2. Ogranicz ekspozycję zarządzania: jeśli nie możesz patchować od razu, zablokuj HTTP/HTTPS na interfejsach zewnętrznych; dostęp administracyjny tuneluj przez VPN/SSH z allow-listą adresów.
  3. Hunting po incydencie (post-patch):
    • przejrzyj logi systemowe i konfigurację pod kątem niespodziewanych zmian;
    • sprawdź nowe/zmodyfikowane konta admina, nieznane obiekty polityk i harmonogramy zadań;
    • porównaj sumy kontrolne plików krytycznych; zweryfikuj integralność obrazów/firmware.
  4. Telemetria i detekcje: ustaw reguły na nietypowe żądania do GUI/CGI (CVE-2025-64446) i anomalie w CLI/websocket; monitoruj komendy systemowe wychodzące z FortiWeb.
  5. Segmentacja i zasada najmniejszych uprawnień: ogranicz, do jakich zasobów FortiWeb ma dostęp (np. bazy sygnatur, repo backupów), aby ograniczyć skutki kompromitacji.

Różnice / porównania z innymi przypadkami

  • Model ataku:
    • CVE-2025-58034 – wymaga autoryzacji, zatem często jest drugi etap łańcucha (po przejęciu konta).
    • CVE-2025-64446bez autoryzacji, może być wektorem wejściowym z internetu.
  • Krytyczność: 6.7 vs 9.8 i dodanie do CISA KEV w przypadku 64446 (obowiązek szybkiego patchowania w instytucjach federalnych USA).
  • Skutki ataku: obie luki prowadzą do wykonywania poleceń, ale 64446 łatwiej zautomatyzować i masowo skanować; 58034 zwiększa głębokość kompromitacji po uzyskaniu konta.

Podsumowanie / kluczowe wnioski

  • Dwa równoległe zagrożenia dla FortiWeb — CVE-2025-58034 (auth RCE przez command injection) i CVE-2025-64446 (unauth path traversal → admin commands) — wymagają natychmiastowych aktualizacji.
  • Priorytetyzuj 8.0.2+ (oraz odpowiednie wersje maintenance) i zamykanie publicznego zarządzania do czasu wdrożenia poprawek.
  • Po aktualizacji wykonaj aktywny threat hunting i weryfikację konfiguracji, zwłaszcza kont administracyjnych.

Źródła / bibliografia

  1. The Hacker News — ogłoszenie Fortinet/zakres wersji dla CVE-2025-58034 (19.11.2025). (The Hacker News)
  2. GitHub Advisory — opis CVE-2025-58034 (CWE-78, wersje podatne). (GitHub)
  3. HKCERT — biuletyn: CVE-2025-58034 wykorzystywana w atakach. (hkcert.org)
  4. Rapid7 — analiza: CVE-2025-64446 (nieautoryzowane komendy, tworzenie kont admina, naprawa w 8.0.2). (Rapid7)
  5. CISA KEV — wpis dla CVE-2025-64446 (status: exploited; wymagane terminy łatania). (CISA)