Archiwa: PowerShell - Strona 27 z 32 - Security Bez Tabu

CVE-2012-1889 — MSXML Uninitialized Memory Corruption

TL;DR

  • CVE‑2012‑1889 to podatność RCE w Microsoft XML Core Services 3.0/4.0/5.0/6.0 (MSXML) wyzwalana przez przeglądarkę/ActiveX — masowo wykorzystywana w kampaniach watering‑hole (drive‑by).
  • Realistyczne mapowanie do ATT&CK: T1189 (wejście przez stronę), T1203 (eksploatacja klienta), T1204.001 (kliknięcie w link).
  • Detekcja: korelacja dziecko procesu iexplore.exe/Office ⇒ cmd.exe/powershell.exe/mshta.exe/rundll32.exe, ładowanie msxml*.dll, artefakty proxy/IDS (sygnatury CVE‑2012‑1889).
  • Priorytet: systemy z MSXML 4.0 (EoL) i legacy IE; podatność jest w CISA KEV — traktuj jako must‑patch.
  • Remediacja: MS12‑043 + usunięcie MSXML 4.0; krótkoterminowo (historycznie) „Fix it” blokował CLSID/ActiveX.

Krótka definicja techniczna

CVE‑2012‑1889 to błąd niezainicjalizowanego dostępu do pamięci w MSXML (klasa use‑after‑free), który podczas wywołań API obiektów DOM/ActiveX (np. getDefinition / get_definition) pozwala złośliwej stronie WWW doprowadzić do zdalnego wykonania kodu w kontekście użytkownika. Najczęściej exploit był dostarczany przez IE (ActiveX) w scenariuszu drive‑by lub jako zawartość dokumentów Office (MSXML5).


Gdzie występuje / przykłady platform

  • Windows (klient/VDI/serwery terminalowe) – Internet Explorer/ActiveX, MSXML 3/4/6 w systemie; MSXML 5 w Office 2003/2007.
  • Active Directory środowiska korporacyjne – wektory przez stacje użytkowników domenowych (przeglądarka).
  • M365/Exchange/SharePoint (historycznie) – dokumenty/komponenty wykorzystujące MSXML5.
  • Chmury (AWS/Azure/GCP) – wektorem jest klient użytkownika; payloady bywały hostowane na serwerach/obiektach web/S3 (telemetria proxy/CloudTrail pomocna, ale sama podatność nie dotyczy usług chmurowych).
  • ESXi/K8snie dotyczy bezpośrednio (klient‑side).

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

MSXML udostępnia obiekty COM/ActiveX do pracy z XML (DOM/SAX/XMLHTTP). W podatnych wersjach wywołanie metod na niezainicjalizowanym węźle mogło skutkować korupcją pamięci (UAF) i przekierowaniem sterowania do shellcode (typowo po heap‑sprayu). Atakujący osadzali kod w zainfekowanych stronach („watering‑hole”), iframe’ach lub reklamach (malvertising). Mechanizm działał bez dodatkowej interakcji poza odwiedzeniem strony (lub kliknięciem linku) i był aktywnie wykorzystywany przed poprawką (zero‑day); Microsoft opublikował tymczasowy „Fix it” oraz finalny biuletyn MS12‑043 z łatami dla MSXML 3/4/5/6.

Dlaczego skuteczne: powszechność MSXML/IE w tamtym okresie, niski próg aktywacji (wizyta na stronie), możliwość obejścia zabezpieczeń przeglądarki (wówczas). Kampanie Elderwood i VOHO używały m.in. tego CVE w łańcuchach SWC (strategic web compromise).


6) Artefakty i logi

ŹródłoArtefakt / poleCo szukaćUwagi
Sysmon EID 1/ProcessCreateParentImage=iexplore.exe/winword.exe/excel.exe/powerpnt.exe; Image w {cmd.exe,powershell.exe,mshta.exe,wscript.exe,cscript.exe,rundll32.exe,regsvr32.exe,bitsadmin.exe,certutil.exe}Dziecko procesu po renderowaniu treści/ActiveXTypowy post‑exploit (payload).
Sysmon EID 7/ImageLoadedImageLoaded ~ \msxml*.dllŁadowanie biblioteki MSXML w kontekście przeglądarki/OfficeKoreluj z EID 1.
Sysmon EID 11/FileCreateTworzenie plików w %TEMP%, %APPDATA% po wizycie na stronieWskaźnik droppera
Security 4688Tworzenie procesu (Windows)Lustrzane do Sysmon EID 1
WFP 5156 / ProxyPołączenia HTTP(S) do nieznanych domen bezpośrednio po wizycie na stronie; UA zaw. MSIE/TridentKorelacja czasu/Referrer
Aplikacja 1000/1001Błędy IE/wyjątkiCzasem towarzyszą RCE
IDS/IPS/WAFSygnatury „MSIE MSXML CVE‑2012‑1889”Trafienia podczas wizyty na stroniePrzykładowa sygnatura Broadcom.
CloudTrailNie dotyczy (klient‑side). Możliwa analiza S3 GetObject jako źródła payloadu.Patrz sekcja 7 (zapytanie pomocnicze).
K8s auditNie dotyczy
M365 Unified AuditNie dotyczy

Detekcja (praktyczne reguły)

Sigma (Windows / process_creation)

title: Suspicious Child from IE/Office After MSXML Rendering (CVE-2012-1889 Context)
id: 9f9f0f3e-7a4c-4c4b-9e1b-1889cve-msxml
status: experimental
description: Wykrywa potencjalny post-exploit po drive-by (IE/Office → LOLBIN/skr. interpretery)
author: Badacz CVE
date: 2025/11/05
logsource:
  category: process_creation
  product: windows
detection:
  parent_browsers:
    ParentImage|endswith:
      - '\iexplore.exe'
      - '\winword.exe'
      - '\excel.exe'
      - '\powerpnt.exe'
  suspicious_children:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\mshta.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\rundll32.exe'
      - '\regsvr32.exe'
      - '\bitsadmin.exe'
      - '\certutil.exe'
  condition: parent_browsers and suspicious_children
fields:
  - CommandLine
  - ParentCommandLine
  - Image
  - ParentImage
  - User
falsepositives:
  - Dodatki/plug-iny Office, instalatory/dystrybutory oprogramowania
level: high
references:
  - https://learn.microsoft.com/en-us/security-updates/securitybulletins/2012/ms12-043
  - https://nvd.nist.gov/vuln/detail/CVE-2012-1889

(MS12‑043/NVD potwierdzają kontekst RCE klienta; reguła celuje w fazę po‑eksploatacyjną.)

Splunk (Sysmon)

index=endpoint sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
| eval parent=lower(coalesce(ParentImage,ParentProcessName))
| eval child=lower(Image)
| search parent IN ("*\\iexplore.exe","*\\winword.exe","*\\excel.exe","*\\powerpnt.exe")
| search child IN ("*\\cmd.exe","*\\powershell.exe","*\\mshta.exe","*\\wscript.exe","*\\cscript.exe","*\\rundll32.exe","*\\regsvr32.exe","*\\bitsadmin.exe","*\\certutil.exe")
| table _time, Computer, User, ParentImage, CommandLine, Image, ParentCommandLine

KQL (Microsoft 365 Defender)

let parents = dynamic(["iexplore.exe","winword.exe","excel.exe","powerpnt.exe"]);
let children = dynamic(["cmd.exe","powershell.exe","mshta.exe","wscript.exe","cscript.exe","rundll32.exe","regsvr32.exe","bitsadmin.exe","certutil.exe"]);
DeviceProcessEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName in~ (parents)
| where FileName in~ (children)
| join kind=leftsemi (
    DeviceImageLoadEvents
    | where FileName startswith_cs "msxml" // korelacja ładowania MSXML
) on DeviceId, InitiatingProcessId
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine, InitiatingProcessCommandLine, AccountName

CloudTrail Lake (pomocniczo: hostowanie payloadu na S3/CloudFront)

Uwaga: sama podatność jest kliencka; to zapytanie pomaga znaleźć źródła plików potencjalnie serwujące exploity/payloady do przeglądarek użytkowników (np. S3/public bucket).

SELECT eventTime, userAgent, sourceIPAddress,
       requestParameters.key AS object_key, recipientAccountId
FROM   $EDS
WHERE  eventSource = 's3.amazonaws.com'
  AND  eventName = 'GetObject'
  AND  (userAgent LIKE '%MSIE%' OR userAgent LIKE '%Trident/%')
  AND  (object_key LIKE '%.hta' OR object_key LIKE '%.js' OR object_key LIKE '%.cab' OR object_key LIKE '%.dll' OR object_key LIKE '%.exe')
ORDER BY eventTime DESC
LIMIT 200;

Elastic / EQL

process where event.type == "start" and
  process.parent.name in ("iexplore.exe","winword.exe","excel.exe","powerpnt.exe") and
  process.name in ("cmd.exe","powershell.exe","mshta.exe","wscript.exe","cscript.exe","rundll32.exe","regsvr32.exe","bitsadmin.exe","certutil.exe")

Heurystyki / korelacje

  • Sekwencja czasu: wizyta na stronie (proxy) → iexplore.exe ładuje msxml*.dll (EID 7) → proces‑dziecko LOLBIN/script engine (EID 1) → plik w %TEMP% (EID 11).
  • Punkt ciężkości: hosty z MSXML 4.0 (brak wsparcia, duże ryzyko), legacy IE/tryb kompatybilności.
  • Źródło payloadu: domeny niedawno zarejestrowane/CDN‑y/obiekty S3 z publicznym dostępem (UA MSIE/Trident).
  • Proxy + IDS: trafienie sig. „MSIE MSXML CVE‑2012‑1889” + korelacja z pobraniem pliku i uruchomieniem dziecka przeglądarki.

False positives / tuning

  • Prawdziwe aktualizatory/instalatory wywołujące skrypty z aplikacji Office/IE (rzadkie dziś, ale możliwe w środowiskach legacy).
  • Dodatki Office/COM mogą sporadycznie tworzyć procesy pomocnicze — ogranicz listę do „red flag” (mshta, wscript, cscript, rundll32 z nietypowymi argumentami).
  • Warunek czasowy i kierunek: ucinaj FP, jeśli brak poprzedzającego ruchu web lub brak ładowania msxml*.dll.
  • Rozważ listy wyjątków dla znanych ścieżek podpisanych instalatorów.

Playbook reagowania (IR)

  1. Triage & izolacja: odłącz host (EDR isolate), zapisz pamięć RAM/dysk jeśli to możliwe.
  2. Szybkie KQL/Splunk: wyszukaj łańcuch parent browser/Office → LOLBIN/script engine (zapytania z sekcji 7).
  3. Inwentaryzacja MSXML (PowerShell, tylko w labie/IR): gci "$env:WINDIR\System32" -Filter "msxml*.dll" | Select Name, @{n='Version';e={(Get-Item $_.FullName).VersionInfo.FileVersion}}
  4. Zabij procesy / usuń artefakty: taskkill /IM iexplore.exe /F; zidentyfikuj pliki z %TEMP%/%APPDATA% powiązane czasowo, Get-FileHash.
  5. Blokada źródeł: domeny/URL z proxy/EDR; jeżeli payload z S3 — zablokuj bucket/klucz na bramie.
  6. Łatanie: wdroż MS12‑043 (KB2719985, KB2721691, KB2596856/KB2687497 dla MSXML5/Office) oraz usuń MSXML 4.0 (EoL).
  7. Hunting retrospektywny (7–30 dni): sprawdź podobne sekwencje, zbieżne domeny, UA MSIE.
  8. Lessons learned: egzekwuj politykę „remove legacy ActiveX/MSXML4”, wymuś modernizację przeglądarek.

Przykłady z kampanii / case studies

  • Elderwood Project (2012) — łańcuch watering‑hole wykorzystujący m.in. CVE‑2012‑1889 obok CVE‑2012‑1875/CVE‑2012‑0779. Raport Symantec dokumentuje listę zerodayów i modus operandi.
  • VOHO / RSA FirstWatch — kompromitacje stron branżowych z przekierowaniami do exploitów, m.in. XML Core Services (CVE‑2012‑1889).
  • Zscaler (2013) — obserwacje, że exploity na CVE‑2012‑1889 „wciąż żyją” w dzikich kampaniach (obfuskowane strony dla graczy).

Lab — przykładowe komendy

Wyłącznie w izolowanym labie. Nie używamy exploitów. Celem jest wygenerowanie telemetrii odpowiadającej post‑eksploitowi (T1189/T1203/T1204.001), aby zweryfikować reguły.

  1. Atomic Red Team (Invoke‑Atomic) # Przygotowanie Set-ExecutionPolicy Bypass -Scope Process -Force iwr https://raw.githubusercontent.com/redcanaryco/invoke-atomicredteam/master/install.ps1 -UseB -OutFile install.ps1 .\install.ps1 # Przykładowe atomiki pokrewne (execution / user execution) Invoke-AtomicTest T1204.002 -ShowDetails # Malicious File (bezpieczne warianty) Invoke-AtomicTest T1204.002 -TestNumbers 1 Zweryfikuj, że reguły z sekcji 7 wyłapują procesy potomne/LOLBIN‑y.
  2. Symulacja post‑eksploatacyjna z przeglądarki
    • Uruchom iexplore.exe (w labie) i ręcznie uruchom benigny proces (np. notepad.exe) z EDR console lub skryptu testowego, aby zasymulować „dziecko przeglądarki”.
    • Potwierdź, że Sysmon EID 1 + korelacja z EID 7 (ładowanie msxml*.dll jeśli środowisko ładuje biblioteki) wyzwala alert.

Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK Enterprise):

  • M1051 — Update Software (łatanie MSXML/IE/Office).
  • M1042 — Disable or Remove Feature or Program (usunąć MSXML 4.0, wyłączyć ActiveX/nieużywane komponenty).
  • M1021 — Restrict Web‑Based Content (URL filtering, blokada typów plików/iframe/legacy UA).
  • M1031 — Network Intrusion Prevention (IDS/IPS sygnatury dla znanych exploitów/payloadów).

Powiązane techniki ATT&CK:

  • T1189 — Drive‑by Compromise (Initial Access).
  • T1203 — Exploitation for Client Execution (Execution).
  • T1204.001 — User Execution: Malicious Link (Execution).

Źródła / dalsza literatura

  • Microsoft Security Bulletin MS12‑043 – szczegóły poprawki, produkty i KB. (Microsoft Learn)
  • Microsoft Security Advisory 2719615 – opis podatności i „Fix it”. (Microsoft Learn)
  • NVD: CVE‑2012‑1889 – opis, CVSS, wpis w CISA KEV. (NVD)
  • ESET / WeLiveSecurity – analiza techniczna (UAF, get_definition). (We Live Security)
  • Symantec: The Elderwood Project – kampanie watering‑hole, lista CVE (w tym 2012‑1889).
  • Krebs on Security – VOHO/watering‑hole z wykorzystaniem CVE‑2012‑1889. (Krebs on Security)
  • Broadcom/Symantec – sygnatura IDS „MSIE MSXML CVE‑2012‑1889”. (Broadcom)
  • ATT&CK techniki – T1189 / T1203 / T1204.001 (wersje i daty modyfikacji). (MITRE ATT&CK)

15) Checklisty dla SOC / CISO (krótko)

SOC (operacyjnie):

  • Włącz i zbieraj Sysmon (EID 1/3/7/11/13) + Security 4688/5156; korelacje parent‑child (IE/Office → LOLBIN).
  • Monitoruj ładowanie msxml*.dll w kontekście przeglądarki/Office.
  • Reguły na UA MSIE/Trident + pobrania .hta/.js/.cab/.dll/.exe i referrery do iFrame.
  • IDS/IPS/WAF – aktywne sygnatury dla CVE‑2012‑1889.
  • Prowadź threat hunting za okres przed‑ i po‑patchu (MS12‑043).

CISO (strategicznie):

  • Usuwanie MSXML 4.0 i wyłączenie ActiveX w środowisku (jeśli jeszcze obecne).
  • Wymuszenie łatek MS12‑043 (compliance), weryfikacja zgodności na hostach VDI/TS.
  • Polityka Restrict Web‑Based Content (URL filtering, blokada rzadkich typów).
  • Program NIDS/NIPS (M1031) oraz telemetria proxy z korelacją do endpointów.
  • Regularne testy z Atomic Red Team (kontrola pokrycia detekcji).

Uwagi końcowe: CVE‑2012‑1889 jest starszą, ale dobrze udokumentowaną podatnością z bogatą historią realnych nadużyć. Nawet dziś bywa przydatna do huntingu retro oraz do budowy uniwersalnych detekcji post‑exploit po Drive‑by Compromise. W praktyce kluczowe są: łatanie (MS12‑043), eliminacja komponentów legacy (MSXML4/ActiveX) oraz korelacje telemetryjne opisane wyżej.

CVE-2012-1723 — Oracle Java SE HotSpot (bytecode verifier) RCE

TL;DR

Błąd w podsystemie HotSpot/bytecode verifier Javy umożliwia zdalne wykonanie kodu oraz ucieczkę z sandboxa po wejściu na złośliwą stronę lub uruchomieniu nieufnego apletu/JNLP. W praktyce był intensywnie wykorzystywany przez zestawy exploitów (np. Blackhole) do początkowej infekcji stacji roboczych. Aktualizacja JRE/JDK do 7u5/6u33+ i blokada treści web to kluczowe działania. Mapa do ATT&CK: T1189 + T1203.


Krótka definicja techniczna

CVE-2012-1723 to krytyczna podatność RCE w Oracle Java SE (HotSpot) polegająca na błędnej optymalizacji i niewystarczającym sprawdzaniu typów w weryfikatorze bajtkodu dla instrukcji dostępu do pól/statycznych, co umożliwia sandbox escape i wykonanie dowolnego kodu w kontekście użytkownika.


Gdzie występuje / przykładowe platformy

  • Windows / macOS / Linux (endpointy z JRE/JDK, dawne wtyczki przeglądarek NPAPI, Java Web Start) — scenariusz klienta (najczęstszy).
  • AD / M365 / ESXi / K8s / chmury (AWS/Azure/GCP): brak bezpośredniego wektora — wpływ pośredni poprzez kompromitację stacji użytkownika i dalsze TTPs (np. kradzież sesji/danych po inicjalnym dostępie). [Nie dotyczy bezpośrednio].

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

Błąd wynika z nieprawidłowej optymalizacji i niedostatecznej kontroli typów przez weryfikator bajtkodu HotSpot dla instrukcji GETFIELD/PUTFIELD/GETSTATIC/PUTSTATIC, co prowadzi do niespójności typów i obejścia kontroli bezpieczeństwa. Skutkiem jest ucieczka z sandboxa JRE i możliwość załadowania dodatkowych klas z podwyższonymi uprawnieniami, a dalej RCE. Podatność była wieloplatformowa i szybko trafiła do Blackhole exploit kit oraz do modułów narzędzi ofensywnych, przez co stała się powszechna w kampaniach drive‑by.

Z punktu widzenia ofiary inicjatorem jest zwykle przeglądarka otwierająca stronę z applet/JAR/JNLP, co powoduje załadowanie złośliwej klasy Javy i eksploitację bez dodatkowej interakcji użytkownika (CVSS UI:N). Efektem wtórnym bywają procesy potomne (np. cmd.exe, powershell.exe) lub pobieranie dodatkowych plików (droppers).


Artefakty i logi

ŹródłoCo zbieraćPrzykłady / wskazówki
Windows SecurityEID 4688 (tworzenie procesu)ParentImage=...\\java.exe/javaw.exe uruchamia cmd.exe, powershell.exe, wscript.exe, rundll32.exe, mshta.exe.
SysmonEID 1 (Process Create), 3 (Network Connect), 11 (FileCreate)Łańcuch java[w].exe → {shell/script}; połączenia HTTP/HTTPS do domen niskiej reputacji; zapisy .jar/.class w %TEMP%.
Proxy/HTTP logsŻądania do *.jar/*.jnlp; UA Java/; referrer do świeżo zarejestrowanych domenKorelować z następnymi procesami potomnymi i zapisami w profilu użytkownika.
EDR/AVDetekcje apletów i loaderówNazwy: Exploit:Java/CVE-2012-1723 (Microsoft), sygnatury IDS/IPS (Symantec/Broadcom).
DNSRozwiązania domen wykorzystywanych w kampaniachDomeny jednorazowe, fast‑flux.
CloudTrail (S3 Data Events)*Rzadkie — pobrania GetObject .jar przez konta korp.eventSource='s3.amazonaws.com' AND eventName='GetObject' AND requestParameters.key LIKE '%.jar' — tylko jeśli włączone Data Events/Lake.
K8s audit / M365[brak bezpośrednich artefaktów]Nie dotyczy — klientowa eksploitacja Javy.

* Uwaga: większość scenariuszy drive‑by nie przechodzi przez konta AWS ofiary.


Detekcja (praktyczne reguły)

Sigma (Sysmon / Windows)

title: Java Spawning Suspicious Children (CVE-2012-1723 Pattern)
id: 8da0d2b5-4f2b-4a1e-9f1e-1723java-rce
status: experimental
description: Wykrywa uruchamianie podejrzanych procesów potomnych przez java.exe/javaw.exe
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2012-1723
  - https://attack.mitre.org/techniques/T1203/
  - https://attack.mitre.org/techniques/T1189/
tags:
  - attack.t1203
  - attack.t1189
logsource:
  product: windows
  service: sysmon
detection:
  parent_java:
    ParentImage|endswith:
      - '\java.exe'
      - '\javaw.exe'
  child_susp:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\rundll32.exe'
      - '\mshta.exe'
  condition: parent_java and child_susp
falsepositives:
  - Narzędzia deweloperskie (Maven/Gradle), instalatory
level: high

Splunk (SPL, Sysmon EID=1)

index=endpoint sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
| eval parent=lower(ParentImage), child=lower(Image)
| search parent="*\\java.exe" OR parent="*\\javaw.exe"
| search child="*\\cmd.exe" OR child="*\\powershell.exe" OR child="*\\wscript.exe" OR child="*\\cscript.exe" OR child="*\\rundll32.exe" OR child="*\\mshta.exe"
| stats count min(_time) as first_seen max(_time) as last_seen by host, ParentImage, ParentCommandLine, Image, CommandLine, User, process_guid, parent_process_guid

KQL (Microsoft 365 Defender)

DeviceProcessEvents
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","rundll32.exe","mshta.exe")
| summarize count(), first_seen=min(Timestamp), last_seen=max(Timestamp)
  by DeviceName, InitiatingProcessAccountName, InitiatingProcessFileName, FileName,
     InitiatingProcessCommandLine, CommandLine, InitiatingProcessSHA256, SHA256

(Opcjonalnie, korelacja ruchu sieciowego):

DeviceNetworkEvents
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
| where RemoteUrl has_any (".jar",".jnlp",".class")
| summarize dcount(RemoteUrl), makeset(RemoteUrl) by DeviceName, InitiatingProcessFileName, bin(Timestamp, 15m)

AWS (CloudTrail Lake / Athena — tylko gdy włączone S3 Data Events)

-- CloudTrail Lake / Athena (przykład): pobrania *.jar* przez tożsamości korp.
SELECT eventTime, userIdentity.arn, sourceIPAddress, requestParameters.bucketName as bucket,
       requestParameters.key as objectKey, userAgent
FROM cloudtrail_logs
WHERE eventSource = 's3.amazonaws.com'
  AND eventName = 'GetObject'
  AND requestParameters.key LIKE '%.jar'
  AND userAgent LIKE 'Java/%';

Wymaga rejestrowania Data Events dla S3 i zapytań Lake/Athena.

Elastic (EQL)

process where
  process.parent.name in ("java.exe","javaw.exe") and
  process.name in ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","rundll32.exe","mshta.exe")

Heurystyki / korelacje (co łączyć)

  • Łańcuch czasowy (±5 min): (Proxy/EDR) pobranie *.jar/*.jnlp(Sysmon) java[w].exe start → proces potomny z interpretatorem/skryptem → (Sysmon 3) nowa sesja sieciowa C2.
  • UA i referer: User-Agent: Java/ + domena świeżo zarejestrowana + brak wcześniejszych hitów w organizacji.
  • Ścieżki plików: zapisy w %TEMP%, %USERPROFILE%\AppData\Local\Temp\ z rozszerzeniami .jar/.class, po których następuje wykonanie EXE/DLL.
  • EDR/AV: alarmy typu Exploit:Java/CVE-2012-1723 skorelowane z ruchem do nowych domen.

False positives / tuning

  • Deweloperzy Java (Maven/Gradle/ant) mogą sporadycznie uruchamiać powłokę — whitelisting hostów dev, podpisanych ścieżek narzędzi (np. maven wrapper) i repozytoriów artefaktów.
  • Instalatory (np. launchery gier/aplikacji na Javie) — filtruj po katalogu Program Files\Java\bin\java.exe vs. embedded JRE w katalogu aplikacji.
  • Agreguj alert dopiero, gdy co najmniej dwa warunki spełnione: java → child proc i pobranie *.jar/.jnlp z nieznanej domeny.

Playbook reagowania (IR)

  1. Kwalifikacja/izolacja: odłącz host od sieci (EDR izolacja).
  2. Identyfikacja wersji JRE/JDK: java -version; w Windows sprawdź HKLM\Software\JavaSoft\Java Runtime Environment\*.
  3. Zabezpieczenie dowodów: ram dump (jeśli polityka pozwala), MFT/$UsnJrnl, prefetch, zestaw logów (Sysmon, proxy, DNS).
  4. Triage wskaźników: hashe pobranych JAR/EXE, domeny, UA Java/.
  5. Remediacja: usuń artefakty, zablokuj domeny/URL-e, zaktualizuj JRE/JDK do 7u5/6u33+ (lub nowszych LTS), wyłącz przestarzałe wtyczki Java/Java Web Start.
  6. Hunt (24–72h wstecz): wzorzec java[w].exe → {cmd/powershell/...} + GET *.jar w proxy/DNS.
  7. Lessons learned: egzekwuj M1021/M1048/M1051 (Mitigations, poniżej).

Przykłady z kampanii / case studies

  • Blackhole exploit kit (2012): szybka integracja exploitu na CVE‑2012‑1723; ataki drive‑by masowo infekowały hosty przez aplety Javy; publiczny opis procesu wykorzystania i ucieczki z sandboxa.
  • Microsoft WDSI: rodzina detekcji Exploit:Java/CVE‑2012‑1723 — aplet pobiera i uruchamia dodatkowe pliki z zewnętrznego hosta po wejściu na zhakowaną stronę.
  • Sygnatury IPS (Broadcom/Symantec): gotowe reguły sieciowe podkomponentu HotSpot dla tego CVE.
  • CISA KEV: CVE wpisany do Known Exploited Vulnerabilities (wymóg patchowania dla FCEB). Informacja widnieje m.in. na karcie NVD (odniesienie do KEV).

Lab (bezpieczne testy) — symulacja dla SOC

Cel: przetestować reguły bez eksploitacji — wygenerować podejrzany łańcuch java → shell.

  1. Kod (bezpieczny): TestSpawn.java import java.io.*; public class TestSpawn { public static void main(String[] args) throws Exception { new ProcessBuilder("cmd.exe", "/c", "echo HelloFromJava").start().waitFor(); } }
  2. Budowa i uruchomienie (host testowy/VM): javac TestSpawn.java jar --create --file test.jar TestSpawn.class java -cp . TestSpawn java -jar test.jar
  3. Oczekiwane artefakty: Sysmon EID=1 (java.execmd.exe), opcjonalnie EID=3 (połączenia, jeśli dodać curl w ProcessBuilder).
  4. Weryfikacja: sprawdź, czy zadziałały Sigma/SPL/KQL/EQL z sekcji 7.

Uwaga: Testy wyłącznie w odizolowanej VM i ze znanym, niewinnym ładunkiem.


Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK Enterprise):

  • M1051 — Update Software: szybkie łatki JRE/JDK (7u5/6u33+).
    • M1042 — Disable or Remove Feature or Program: usuń/wyłącz wtyczkę Java, Java Web Start.
    • M1021 — Restrict Web‑Based Content: proxy/WAF/filtry treści blokujące *.jar/*.jnlp.
    • M1048 — Application Isolation and Sandboxing: sandboxing przeglądarki/aplikacji.
    • M1031 — Network Intrusion Prevention: sygnatury IDS/IPS dla znanych kampanii.

Powiązane techniki ATT&CK:

  • T1189 — Drive‑by Compromise (wejście na stronę inicjuje eksploatację).
  • T1203 — Exploitation for Client Execution (podatność w aplikacji klienckiej — Java).

Źródła / dalsza lektura

  • NVD (CVE-2012-1723): opis, CVSS 3.1 (9.8), wzmianka o KEV, historia zmian. (NVD)
  • Oracle Java SE CPU — czerwiec 2012 (tekstowa risk matrix): opis CVE‑2012‑1723 (HotSpot), dotknięte wersje, scenariusz klienta. (Oracle)
  • Tenable (Nessus 64848): wersje naprawcze 7u5/6u33/5.0u36/1.4.2_38. (Tenable®)
  • OpenJDK (mailing list): powiązanie z Issues in client compiler (S7152811). (mail.openjdk.java.net)
  • ESET WeLiveSecurity: analiza (błąd w weryfikatorze bajtkodu, Blackhole). (We Live Security)
  • Microsoft WDSI: Exploit:Java/CVE-2012-1723 — zachowanie zagrożenia. (Microsoft)
  • Broadcom/Symantec: sygnatura Web Attack: Oracle Java SE CVE‑2012‑1723. (Broadcom)
  • ATT&CK v18 (Version history): aktualna wersja ramy. (MITRE ATT&CK)
  • ATT&CK techniki: T1189, T1203. (MITRE ATT&CK)
  • AWS (CloudTrail/Athena/Lake): przykłady zapytań i wymagania dla Data Events. (AWS Documentation)

Checklisty dla SOC / CISO (krótko)

SOC (operacyjne):

  • Wdrożone reguły: Sigma/EQL/KQL/SPL z korelacją java[w].exe → child + *.jar/.jnlp
  • Blokady proxy: *.jar, *.jnlp, UA Java/ z Internetu, wyjątki tylko dla zaufanych repozytoriów
  • Polowanie na hosty z niezałatanym JRE/JDK; inwentaryzacja wersji
  • Blokada/wycofanie wtyczek Java/Java Web Start (jeśli jeszcze obecne)
  • Feed KEV — CVE-2012-1723 oznaczone jako exploited-in-the-wild (priorytet)

CISO (strategiczne):

  • Polityka M1051: SLA na łatki dla RCE w komponentach klienckich
  • M1042/M1048: eliminacja legacy pluginów + izolacja aplikacji przeglądarkowych
  • M1021/M1031: restrykcja treści web i IPS na granicy
  • Program zarządzania technologiami starszymi (EOL) oraz egzekwowanie standardów oprogramowania

Uwaga o ryzyku: CVE‑2012‑1723 pozostaje klasycznym przykładem, jak jedna luka w środowisku klienckim może zapewnić atakującym natychmiastowy punkt wejścia (Initial Access) i wykonanie kodu (Execution). Nawet dziś, w retrospektywie, jej wzorce artefaktów (Java → child proc, pobrania JAR) są cennymi sygnałami do budowy analityk behawioralnych w SOC.

EDR vs MDR vs XDR

Czym się różnią i co wybrać?

EDR, MDR, XDR – trzy popularne skróty w świecie cyberbezpieczeństwa, często pojawiające się w ofertach dostawców i dyskusjach specjalistów. Oznaczają odpowiednio Endpoint Detection and Response, Managed Detection and Response oraz Extended Detection and Response. Choć brzmią podobnie, reprezentują różne podejścia do wykrywania zagrożeń i reagowania na nie.

Czytaj dalej „EDR vs MDR vs XDR”

CVE-2012-0507 — Java SE (AtomicReferenceArray, type confusion)

TL;DR

CVE‑2012‑0507 to błąd type confusion w Java SE (klasa AtomicReferenceArray), umożliwiający zdalne wykonanie kodu przez złośliwy aplet na stronie (drive‑by). Luka była masowo wykorzystywana w 2012 r. (m.in. Blackhole EK i botnet Flashback), szczególnie na macOS, gdzie łatka pojawiła się z opóźnieniem. SOC powinien łączyć telemetry z przeglądarek/proxy (pobrania JAR), EDR (łańcuch procesów java[w].exe → LOLBIN), Sysmon (EID 1/3/11/22) i M365 UrlClickEvents. Podstawowe mitygacje: aktualizacje (M1051), wyłączenie/odinstalowanie wtyczki Java (M1042), restrykcja treści web (M1021), kontrola egzekucji (M1038).

Krótka definicja techniczna

CVE‑2012‑0507 to podatność w Java Runtime Environment (JRE 7u2 i starsze, 6u30 i starsze, 5.0u33 i starsze) w module Concurrency; nieprawidłowe sprawdzanie typów w AtomicReferenceArray pozwala atakującemu ominąć sandbox i wykonać dowolny kod w kontekście użytkownika po otwarciu złośliwego apletu/aplikacji Java Web Start.

Gdzie występuje / przykłady platform

  • Windows / Linux / macOS: przeglądarka z wtyczką Java/Java Web Start. W 2012 r. Flashback masowo infekował macOS przez CVE‑2012‑0507 (ponad 550k–600k hostów), m.in. z powodu opóźnienia w wydaniu łatki dla Java na macOS.
  • VDI/DaaS, stacje adminów, serwery jump: ryzyko przy swobodnym surfowaniu z podatną wtyczką.
  • Chmura / M365: wektor kliknięcia z e‑maila/Teams (telemetria UrlClickEvents), hosty w VDI w chmurze.
  • Przeglądarki: drive‑by przez skompromitowane witryny, malvertising, iFrame; klasyczny T1189.

Szczegółowy opis techniki (jak działa, cele, skuteczność)

CVE‑2012‑0507 umożliwia eskalację uprawnień apletu poprzez błędną obsługę typów w AtomicReferenceArray. Poprzez manipulację obiektem zserializowanym atakujący doprowadza do type confusion i zapisu referencji poza oczekiwanym typem, co skutkuje wyjściem z sandboxa Javy i RCE. W praktyce exploit był osadzany w stronie www; odwiedziny (lub przeklikany link) inicjowały pobranie JAR i łańcuch dalszej egzekucji/pobrania ładunku (np. przez exploit kity typu Blackhole), czyli T1189 → T1203, często poprzedzone T1204.001.

Dlaczego skuteczna?
W 2012 r. wtyczki Java były powszechne; rozproszenie wersji, opóźnienia łatek (zwł. macOS) i automatyczne uruchamianie apletów w przeglądarkach sprzyjało cichym kompromitacjom (drive‑by). Kampania Flashback osiągnęła setki tysięcy ofiar; Oracle załatało błąd w lutym 2012, a Apple dostarczyło aktualizację dla macOS dopiero na początku kwietnia.


Artefakty i logi (tabela)

Zdarzenie / ArtefaktWindows (EID/Sysmon)macOS/LinuxProxy/WAF/ALB/CFCloudTrailK8s auditM365 (Defender XDR)
Pobranie JAR/apletu z WWWSysmon EID 3 (połączenie), EID 22 (DNS); Security 5156Unified Logging (Safari/Chrome net events)ALB/CloudFront/WAF: UA Java/*, ścieżka *.jarn/dn/dUrlClickEvents (klik źródła), DeviceNetworkEvents (host)
Egzekucja exploitaSysmon EID 1: java.exe/javaw.exeprocess: java w unify/journald/auditd (execve)DeviceProcessEvents (jeśli MDE)
Łańcuch: Java → LOLBIN (np. rundll32, mshta, wscript, powershell)Sysmon EID 1 z ParentImage=java[w].exeparent: java → child: sh/bash/pythonDeviceProcessEvents korelacja InitiatingProcessFileName
Zapisy dropperaSysmon EID 11 (file create), EID 13 (reg set)File audit/journaldProxy: kolejny GET (payload)DeviceFileEvents

Uwaga: to ataki klienckie – CloudTrail nie rejestruje procesów na hostach; w chmurze szukaj korelacji w ALB/CF/WAF/NGFW oraz telemetry endpointów.

Detekcja (praktyczne reguły)

Sigma (Sysmon/Windows) – Java → podejrzany child

title: Java Spawns Suspicious Child Process (CVE-2012-0507 tradecraft)
id: 5c4b6a0e-9d7a-4d8f-8b28-java-child-suspicious
status: experimental
description: Wykrywa łańcuch java.exe/javaw.exe uruchamiający interpretery/LOLBIN po potencjalnym drive-by (np. Blackhole/Flashback-era).
references:
  - https://attack.mitre.org/techniques/T1189/
  - https://attack.mitre.org/techniques/T1203/
logsource:
  product: windows
  category: process_creation
detection:
  selection_parent:
    ParentImage|endswith:
      - '\java.exe'
      - '\javaw.exe'
  selection_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\mshta.exe'
      - '\rundll32.exe'
      - '\regsvr32.exe'
      - '\msiexec.exe'
  condition: selection_parent and selection_child
fields:
  - CommandLine
  - ParentCommandLine
  - Image
  - ParentImage
falsepositives:
  - Instalatory/launchery oparte na Java (Install4j/Launch4j)
level: high
tags:
  - attack.t1189
  - attack.t1203

Splunk (Sysmon + Proxy)

# Child processes z Java (Sysmon)
index=endpoint sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
(ParentImage="*\\java.exe" OR ParentImage="*\\javaw.exe")
Image IN ("*\\powershell.exe","*\\cmd.exe","*\\wscript.exe","*\\cscript.exe","*\\rundll32.exe","*\\mshta.exe","*\\regsvr32.exe","*\\msiexec.exe")
| stats count earliest(_time) as first latest(_time) as last by host, ParentImage, ParentCommandLine, Image, CommandLine, ParentProcessGuid, ProcessGuid

# Proxy/secure web gateway: pobrania JAR z UA Java (dostosuj pola)
index=proxy (cs_user_agent="Java*" OR user_agent="Java*") (uri_path="*.jar" OR url="*.jar")
| stats count by src_ip, user, url, user_agent

KQL (Defender for Endpoint / Microsoft 365 Defender)

// 1) Child processy z Java
DeviceProcessEvents
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
| where FileName in~ ("powershell.exe","cmd.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe","msiexec.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, FileName, ProcessCommandLine

// 2) Pobrania JAR przez procesy Java
DeviceNetworkEvents
| where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
| where RemoteUrl endswith ".jar" or RequestUrl endswith ".jar"
| summarize cnt=count(), firstSeen=min(Timestamp), lastSeen=max(Timestamp) by DeviceName, InitiatingProcessFileName, RemoteUrl

// 3) Kliknięcia linków (MDO Safe Links)
UrlClickEvents
| where Url has ".jar" or Url has "java" // dopasuj pod kampanie
| project Timestamp, AccountUpn, Url, ActionType, Workload, IPAddress, ThreatTypes

(„UrlClickEvents” w Advanced Hunting zawiera pełny URL i werdykt kliknięcia.)

AWS (CloudWatch Logs Insights — ALB/CloudFront/WAF)*

fields @timestamp, @message
| filter @message like /User-Agent=.*Java\/[0-9]/ and @message like /\.jar/
| sort @timestamp desc
| limit 100

(*CloudTrail nie loguje żądań HTTP do aplikacji; użyj logów ALB/CloudFront/WAF lub NGFW.)

Elastic / EQL

// Java -> LOLBIN
process where process.parent.name in ("java.exe","javaw.exe") and
           process.name in ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe","msiexec.exe")

// HTTP: UA Java + JAR (przykładowy ECS)
network where network.protocol == "http" and
             http.request.method == "GET" and
             http.request.headers.user_agent : "Java*" and
             url.path : "*.jar"

Heurystyki / korelacje

  • Łańcuch czasowy: browser → java[w].exe → LOLBIN → outbound (HTTP/DNS) w krótkim oknie.
  • Proxy/NGFW: UA „Java/*” oraz *.jar z domen o niskiej reputacji → koreluj z procesami Java na hostach.
  • macOS: brak Gatekeeper promptów przy apletach w WWW (historycznie); sprawdzaj ~/Library/LaunchAgents po nietypowych wpisach.
  • Zestawy exploitów: obserwuj wzorce Blackhole/Blacole (historyczne IOC/telemetria) jako retro‑threat hunting.

False positives / tuning

  • Instalatory oparte na Java (Install4j/Launch4j) uruchamiają msiexec.exe/regsvr32.exewhitelist po ścieżce, podpisie i hashu.
  • Narzędzia deweloperskie (Gradle/Maven) – generują ruch HTTP; filtruj po docelowych repo (repo.maven.org, wew. Artifactory).
  • UA „Java/*” bywa używany przez skrypty integracyjne — weryfikuj hosty serwerowe vs. stacje użytkowników.

Playbook reagowania (IR)

  1. Izoluj host/VDI (EDR „isolate”).
  2. Zabezpiecz artefakty: pamięć, %TEMP%/Downloads, ~/Library/ (macOS), logi proxy/EDR.
  3. Weryfikuj wersje Javy i wtyczek:
    • Windows (PowerShell): Get-ItemProperty 'HKLM:\SOFTWARE\JavaSoft\Java Runtime Environment' | select CurrentVersion
    • macOS: /usr/libexec/java_home -V
  4. Analiza drzew procesów: szukaj java[w].execmd/powershell/mshta/rundll32/....
  5. Zidentyfikuj źródło: domene/URL z UrlClickEvents i proxy; odetnij na FW/DNS.
  6. Eradykacja: odinstaluj/wyłącz plugin Java w przeglądarkach (M1042), zaktualizuj JRE/JDK (M1051).
  7. Hunting wsteczny: wzorce z pkt 7 i 8, retro na 2012‑style TTP (dla zestawów lab/archiwum).
  8. Lessons learned: polityka disable‑by‑default dla wtyczek, ASR/AppControl (M1038), URL filtering (M1021).

Przykłady z kampanii / case studies

  • OSX/Flashback (2012) — masowe infekcje macOS (550k–600k hostów) przez CVE‑2012‑0507; Apple wydało aktualizację w kwietniu 2012 i dodało narzędzia usuwające.
  • Blackhole Exploit Kit (2012) — zestaw exploitów zaczął obsługiwać CVE‑2012‑0507, znacząco zwiększając skuteczność drive‑by.

Lab (bezpieczne testy) — przykładowe komendy

Cel: wygenerować telemetrię detekcyjną, bez exploita.

  • Proxy/ALB telemetry: serwuj plik hello.jar z wewn. HTTP i symuluj pobranie „klient‑Java”: # serwer python3 -m http.server 8000 # klient (symulacja UA Java z curl) curl -A "Java/1.6.0_31" http://<lab-web>:8000/hello.jar -o /tmp/hello.jar Następnie uruchom zapytania (Splunk/Elastic/KQL/Insights) z sekcji 7.
  • EDR/Sysmon łańcuch procesów (symulacja benign): uruchom legalną aplikację Java, a oddzielnie (ręcznie) proces pomocniczy, by sprawdzić reguły korelacyjne — nie symuluj złośliwego kodu.
  • M365: wyślij do siebie e‑mail z bezpiecznym linkiem do hello.jar w labie i sprawdź UrlClickEvents (czy klik i domena są odnotowane).

Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK):

  • M1051 – Update Software (szybkie łatanie JRE/JDK; polityki patch).
  • M1042 – Disable or Remove Feature or Program (wyłączenie/odinstalowanie wtyczki Java w przeglądarkach).
  • M1021 – Restrict Web‑Based Content (URL filtering, blokowanie typów plików, skanowanie pobrań).
  • M1038 – Execution Prevention (AppControl/ASR, blokada uruchamiania niepodpisanych binariów).
  • M1037 – Filter Network Traffic (blokada znanych domen EK/C2, polityki egress).
  • M1017 – User Training (świadomość dot. linków/ostrzeżeń przeglądarki).

Powiązane techniki:

  • T1189 — Drive‑by Compromise – Exploit ładuje się po wejściu na stronę (watering hole/malvertising/iFrame), skanuje wersje wtyczek i serwuje JAR z exploitem; po skutecznym RCE dropper pobiera właściwy malware.
  • T1203 — Exploitation for Client Execution – Wykorzystanie luki w aplikacji klienckiej (tu: plugin/Java Web Start) do wykonania kodu — bez potrzeby interakcji poza wejściem na stronę.
  • T1204.001 — User Execution: Malicious Link – Często poprzedza drive‑by; kliknięcie linku kieruje do strony serwującej exploit i uruchamia T1203.

Źródła / dalsza literatura

  • MITRE ATT&CK: T1189, T1203, T1204 (sub‑tech). (MITRE ATT&CK)
  • ATT&CK wersjonowanie: v18.0 (Oct 28, 2025). (MITRE ATT&CK)
  • NVD / CVE record: opis, zakres wersji. (NVD)
  • Oracle CPU (Feb 2012) – advisory i tabeli ryzyka/wersje. (Oracle)
  • Analiza techniczna typu type confusion (AtomicReferenceArray). (media.blackhat.com)
  • Flashback/ekosystem 2012: ESET whitepaper/blog, Dr.Web liczby, przegląd prasy. (web-assets.esetstatic.com)
  • Blackhole EK: wpisy ESET, Krebs, overview MS/F‑Secure. (We Live Security)
  • M365 UrlClickEvents – schema/detekcja klików. (Microsoft Learn)

Checklisty dla SOC / CISO (krótko)

SOC

  • Reguły detekcji: Java → LOLBIN (Endpoint + Sigma/SPL/KQL/EQL).
  • Korelacje: UA Java/* + *.jar + proces java[w].exe.
  • Blokady: FW/DNS dla domen kampanii; zasady SWG (blok JAR).
  • Telemetria: Sysmon EID 1/3/11/22 wdrożone i wysyłane.
  • Retrospektywa na 2012‑style TTP (archiwalne logi/laby).

CISO

  • Polityka disable‑by‑default dla przeglądarkowych wtyczek/Java.
  • Patch SLA dla JRE/JDK (M1051) i egzekucja wytycznych.
  • URL filtering/SSL inspection (M1021/M1037) i polityki egress.
  • AppControl/ASR (M1038) na stacjach użytkowników.
  • Program szkoleniowy nt. drive‑by/kliknięć (M1017).

CVE-2012-0158 — MSCOMCTL.OCX RCE w dokumentach Office

TL;DR

CVE‑2012‑0158 to klasyczna luka RCE w bibliotekach Windows Common Controls (ActiveX MSCOMCTL.OCX — m.in. kontrolki ListView/TreeView). Była masowo wykorzystywana poprzez złośliwe pliki RTF/DOC dostarczane e‑mailem; po otwarciu dokumentu dochodziło do wykonania kodu z uprawnieniami użytkownika. Microsoft załatał błąd w biuletynie MS12‑027 (2012‑04‑10), ale podatność pozostawała długo popularna w kampaniach APT i trafiła do katalogu CISA KEV. Dla SOC: monitoruj dzieci procesów Office (Word/Excel → cmd.exe/powershell.exe/wscript.exe), wymuś ASR „Block Office creating child processes”, blokuj/otwieraj w Protected View pliki RTF i egzekwuj aktualizacje.


Krótka definicja techniczna

Błąd stanowi przepełnienie bufora/pamięci w kontrolkach ActiveX (ListView, ListView2, TreeView, TreeView2) biblioteki MSCOMCTL.OCX. Specjalnie przygotowany dokument Office/RTF lub strona WWW może doprowadzić do zdalnego wykonania kodu (RCE) w kontekście ofiary (typowo przez osadzenie obiektu OLE/objocx w RTF).


Gdzie występuje / przykłady platform

  • Windows (stacje robocze z MS Office 2003/2007/2010) — główna powierzchnia ataku; komponent jest współdzielony z innymi produktami (np. SQL Server, BizTalk, Commerce Server).
  • M365/Exchange Online — wektor dostarczenia (załączniki); detekcja przez Defender for Office 365 (tabele EmailEvents, EmailAttachmentInfo w Advanced Hunting).
  • AD/Entra ID — kontekst tożsamości ofiary (późniejsze działania po przejęciu).
  • AWS/Azure/GCP — często hosting plików przynęt (S3/Blob/HTTP); przydatna telemetria z CloudTrail dla GetObject z nieznanych źródeł. [praktyka SOC]
  • Kubernetes/ESXi — nie dotyczy samej luki; możliwe tylko jako dalsze cele po kompromitacji użytkownika.

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

  • Mechanizm: złośliwy plik (najczęściej RTF) zawiera osadzony obiekt OLE z deklaracją kontrolki ActiveX (\object/\objocx). Renderowanie przez Worda wywołuje kod z biblioteki MSCOMCTL.OCX, co powoduje naruszenie pamięci i przekazanie sterowania attackerowi.
  • Skuteczność: wektor „zero‑click poza otwarciem” dla użytkownika (wystarczy otworzyć dokument), szeroko stosowany 2012‑2017; widoczny w wielu kampaniach, nawet po opublikowaniu łatki MS12‑027.
  • Łatki: MS12‑027 (10.04.2012) adresuje CVE‑2012‑0158 w Windows Common Controls; późniejszy MS12‑060 (08.2012) łata inną podatność w tej samej bibliotece (TabStrip, CVE‑2012‑1856), co podkreśliło potrzebę stałych aktualizacji.
  • Zagrożone produkty: Office 2003/2007/2010 oraz inne oprogramowanie korzystające z MSCOMCTL.OCX (m.in. SQL Server, Commerce Server, BizTalk, Visual Basic 6 runtime).

Artefakty i logi (co zbierać)

PlatformaŹródło danychZdarzenie/IDKluczowe pola / wzorceWskazówki analityczne
WindowsSysmonEID 1 (Process Create)ParentImage=WINWORD.EXE/EXCEL.EXE/POWERPNT.EXE + Image in (cmd.exe,powershell.exe,wscript.exe,mshta.exe,regsvr32.exe,rundll32.exe)Typowy łańcuch po eksploitacji dokumentu. Koreluj z CommandLine (URL, -enc, FromBase64String).
WindowsSysmonEID 7 (Image Loaded)ImageLoaded kończy się na \mscomctl.ocx przez WINWORD.EXERzadkie w zdrowych dokumentach; wzmacnia pewność analityki procesów.
WindowsSysmonEID 3 (Network Connect)Image=WINWORD.EXE lub dziecko → połączenia HTTP/HTTPSDokumenty przynęt często dociągały payloady; patrz hosty niesankcjonowane.
WindowsSecurityEvent ID 4688Procesy jak wyżej; NewProcessName, CreatorProcessNameAlternatywa dla środowisk bez Sysmon.
M365Defender for Office 365 (AH)tabele EmailEvents, EmailAttachmentInfoAttachmentFileType in (rtf, doc, docx); DetectionTechnology/ActionTypeTelemetria o załącznikach i kampaniach e‑mail; koreluj z host telemetry.
M365Unified Audit / MailItemsAccessedZdarzenia dostępu do wiadomościIP, klient, operacjaPomaga ocenić skalę kompromitacji skrzynek.
AWSCloudTrail (data events S3)GetObject, HeadObjectrequestParameters.key ~ `.(rtfdocx?)$, userAgent, sourceIPAddress`
Azure/GCP/K8s/ESXiNie dotyczy bezpośrednio luki; tylko kontekstowe telemetry (np. proxy, CASB).

Detekcja (praktyczne reguły)

Sigma (gotowa reguła)

title: Office Spawns Suspicious Child Process (CVE-2012-0158 Post-Ex)
id: 0b2c9c9a-5b6a-4a9b-b2d9-cc15e2150158
status: experimental
description: >
  Wykrywa aplikacje Office tworzące podejrzane procesy potomne
  (typowe po wykorzystaniu dokumentów, w tym CVE-2012-0158).
author: Badacz CVE
date: 2025/11/05
tags:
  - attack.t1203
  - attack.t1566.001
  - attack.t1204.002
  - cve.2012-0158
logsource:
  category: process_creation
  product: windows
detection:
  parent_office:
    ParentImage|endswith:
      - '\WINWORD.EXE'
      - '\EXCEL.EXE'
      - '\POWERPNT.EXE'
  suspicious_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\mshta.exe'
      - '\rundll32.exe'
      - '\regsvr32.exe'
  condition: parent_office and suspicious_child
falsepositives:
  - legalne dodatki/deployment (udokumentowane wyjątki)
level: high

Splunk (SPL)

(index=endpoint OR index=sysmon)
(
  (sourcetype=XmlWinEventLog:Microsoft-Windows-Sysmon/Operational EventCode=1)
  OR (sourcetype=WinEventLog:Security EventCode=4688)
)
| eval ParentImage=coalesce(ParentImage, CreatorProcessName)
| eval Image=coalesce(Image, NewProcessName)
| search ParentImage IN ("*\\WINWORD.EXE","*\\EXCEL.EXE","*\\POWERPNT.EXE")
| search Image IN ("*\\cmd.exe","*\\powershell.exe","*\\wscript.exe","*\\cscript.exe","*\\mshta.exe","*\\rundll32.exe","*\\regsvr32.exe")
| stats count min(_time) as firstTime max(_time) as lastTime by host user ParentImage Image CommandLine ParentCommandLine
| where count>=1

KQL (Microsoft 365 Defender AH)

// Office -> suspicious child
DeviceProcessEvents
| where InitiatingProcessFileName in~ ("WINWORD.EXE","EXCEL.EXE","POWERPNT.EXE")
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe")
| project Timestamp, DeviceName, AccountName, InitiatingProcessFileName, FileName, ProcessCommandLine, InitiatingProcessCommandLine
| order by Timestamp desc
// Word/Excel ładuje mscomctl.ocx (wzmacniacz hipotezy)
DeviceImageLoadEvents
| where InitiatingProcessFileName in~ ("WINWORD.EXE","EXCEL.EXE")
| where FolderPath endswith @"\mscomctl.ocx"

AWS CloudTrail — CloudWatch Logs Insights (S3 data events)

fields @timestamp, eventSource, eventName, requestParameters.bucketName as bucket, requestParameters.key as key, sourceIPAddress, userAgent
| filter eventSource = "s3.amazonaws.com" and eventName in ["GetObject","HeadObject"]
| filter key like /.*\.(rtf|doc|docx)$/i
| sort @timestamp desc
| limit 100

Elastic / EQL

process
where
  process.parent.name in ("WINWORD.EXE","EXCEL.EXE","POWERPNT.EXE") and
  process.name in ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe")

Heurystyki / korelacje (co łączyć)

  • Office → interpreter skryptów w krótkim interwale czasu + sieć (pobrania) = mocny sygnał post‑eksploatacyjny. (T1059 po T1203/T1204).
  • Skanowanie treści RTF pod kątem tokenów \object, \objocx, MSComctlLib.ListViewCtrl.2 (wskaźnik heurystyczny; niejednoznaczny).
  • Załączniki RTF/DOC w M365 (EmailAttachmentInfo) + DeviceProcessEvents (dzieci WINWORD.EXE).
  • Image load mscomctl.ocx przez Word + brak wcześniejszych makr/OLE w dokumencie → dodatkowy kontekst.
  • ASR: „Block all Office applications from creating child processes” — jeżeli trigger → wysoka wiarygodność.

False positives / tuning

  • Legalne wtyczki Office/rozwiązania DLP/drukarki wirtualne potrafią tworzyć procesy potomne; wprowadź allow‑listy podpisanych binariów i znanych ścieżek.
  • Środowiska developerskie (VBA, add‑ins) — filtruj zaufanych wydawców certyfikatów.
  • mscomctl.ocx może być ładowany także przez aplikacje legacy (VB6) — użyj dodatkowych warunków: parent=WINWORD/EXCEL, CommandLine z nietypowymi przełącznikami.
  • Na bramce pocztowej: samo wystąpienie \objocx w RTF to sygnał podejrzany, nie rozstrzygający (stosuj sandbox/MDO).

Playbook reagowania (IR)

  1. Izoluj hosta z alertu (EDR).
  2. Zabezpiecz artefakty: próbka pliku, prefetch, memoria, Process Tree, DeviceProcessEvents/DeviceImageLoadEvents.
  3. Weryfikacja aktualizacji (PowerShell; różne KB wg produktu z MS12‑027): Get-HotFix -Id KB2664258,KB2598039,KB2598041,KB2597112 -ErrorAction SilentlyContinue Get-ChildItem "C:\Windows\System32\MSCOMCTL.OCX","C:\Windows\SysWOW64\MSCOMCTL.OCX" -ErrorAction SilentlyContinue | Select FullName,@{n='FileVersion';e={$_.VersionInfo.FileVersion}} (Lista KB wg biuletynu MS12‑027 i wariantów produktowych).
  4. Łańcuch zdarzeń: wyszukaj inne hosty z tym samym załącznikiem (EmailEvents + SHA256 z EmailAttachmentInfo), a następnie koreluj z host telemetry.
  5. Blokady: dodaj hash/URL do blokady w MDO/EOP/Proxy; włącz/utwardź ASR „Block Office creating child processes”.
  6. Naprawa: wymuś instalację MS12‑027, a także późniejszych zbiorczych aktualizacji Office/Windows; wdroż Exploit Protection/DEP/ASLR.
  7. Komunikacja i hardening: włącz Protected View i File Block dla RTF w organizacji, zwłaszcza dla skrzynek o podwyższonym ryzyku.

Przykłady z kampanii / case studies

  • 2012 — pierwsza fala szerokich ataków z RTF/DOC; w RTF widoczne \objocx.
  • 2013 — analiza Kaspersky: RTF/DOC dla Office 2003/2007/2010; mimo łatki wciąż obserwowane infekcje.
  • 2016 — „Word bug that won’t die”: luki wciąż używane w realnych kampaniach phishingowych.
  • 2017 — kampanie przeciw organizacjom w Wietnamie, dokumenty polityczne, przypisywane m.in. 1937CN.
  • APT (MITRE) — np. Aoqin Dragon wykorzystywała CVE‑2012‑0158 do uzyskania wykonania.
  • CISA — CVE‑2012‑0158 w zestawieniach „Top Routinely Exploited” i w katalogu KEV.

Lab (bezpieczne testy) — przykładowe zadania

Uwaga: poniższe kroki nie zawierają exploitów ani makr ofensywnych; służą wyłącznie do weryfikacji detekcji.

Lab‑1: Heurystyka RTF w bramce/MDO

  1. Utwórz harmless.rtf zawierający nieszkodliwy tekst oraz nagłówek z ciągiem \object/\objocx (bez osadzania binariów OLE).
  2. Wyślij na skrzynkę testową M365 i sprawdź, czy polityki (MDO Safe Attachments/Sandbox) oraz reguły treści podnoszą alert/znacznik podejrzany.
  3. Koreluj EmailAttachmentInfo ↔ host telemetry (brak uruchomionych procesów wtórnych powinien dać „clean”).

Lab‑2: Analityka „Office → child process” (symulacja zachowania, bez dokumentu)

  1. Uruchom ręcznie Word, a następnie w tym samym czasie uruchom testowo powershell.exe -nop -c "Write-Host Test" (symulacja artefaktów procesowych bez łańcucha infekcji).
  2. Sprawdź, czy reguły Sigma/Splunk/KQL wyłapują przypadki dziecko procesu Office (w środowisku produkcyjnym zadziała to na realnych incydentach).
  3. W środowiskach z ASR, potwierdź, że reguła „Block Office creating child processes” blokuje podobny łańcuch.

Lab‑3: Telemetria mscomctl.ocx (obserwacja)

  • Monitoruj DeviceImageLoadEvents dla WINWORD.EXEmscomctl.ocx (zwykle pusto). To testuje pipeline logów i zapytania KQL, bez ryzyka.

Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK):

  • M1051 — Update Software: egzekwuj aktualizacje (MS12‑027 i późniejsze biuletyny Office/Windows).
  • M1042 — Disable or Remove Feature or Program: usuń starsze komponenty/formaty; blokuj RTF w File Block.
  • M1050 — Exploit Protection: włącz DEP/ASLR/Exploit Protection politykami.
  • M1017 — User Training: szkolenia anty‑phishing, higiena otwierania załączników.

Techniki pokrewne:

  • T1566.001 (Spearphishing Attachment) — nośnik.
  • T1204.002 (User Execution: Malicious File) — warunek powodzenia.
  • T1059 (Command and Scripting Interpreter) — post‑eksploatacja.

Źródła / dalsza literatura

  • Microsoft Security Bulletin MS12‑027 (MSCOMCTL.OCX RCE). (Microsoft Learn)
  • NVD/CVE wpisy szczegółowe. (NVD)
  • Blog Microsoft SRD o MS12‑027. (Microsoft)
  • McAfee: „CVE‑2012‑0158 exploit in the wild”. (McAfee)
  • Kaspersky: „The curious case of a CVE‑2012‑0158 exploit”. (Securelist)
  • Sophos: „The Word bug that just won’t die”. (Sophos News)
  • Fortinet: kampanie w Wietnamie (1937CN). (Fortinet)
  • CISA: KEV i „Top Routinely Exploited”. (CISA)
  • MITRE ATT&CK: T1203, T1566.001, T1204.002. (MITRE ATT&CK)
  • Attack Surface Reduction — „Block Office creating child processes”. (Microsoft Learn)
  • Exploit Protection (Windows). (Microsoft Learn)
  • MDO Advanced Hunting: EmailEvents, EmailAttachmentInfo. (Microsoft Learn)

Checklisty dla SOC / CISO (krótko)

SOC (operacyjnie):

  • Alerty na Office → interpreter (reguły z sekcji 7).
  • Korelacja MDO załącznikihost telemetry (hash, nadawca, kampania).
  • Watchlist domen/URL z kampanii; blokady w bramkach.
  • Raportowanie i „mass search” po mscomctl.ocx load (wzmocnienie hipotezy).
  • Retencja logów: min. 90 dni dla e‑mail + endpoint.

CISO (strategicznie):

  • Egzekwuj aktualizacje (M1051) i compliance na stacjach z Office.
  • ASR: włącz „Block Office creating child processes” dla ogółu, wyjątki per‑grupa.
  • Protected View / File Block dla RTF w całej organizacji.
  • Awareness (M1017): szkolenia, symulacje phishingu.
  • Testy kontrolne (purple team) — weryfikacja detekcji bez exploitów.

CVE-2011-0609 — Adobe Flash/Reader (Authplay) RCE w kampaniach spear‑phishingowych

TL;DR

Krytyczny błąd w Adobe Flash Player oraz w komponencie Authplay bibliotek Adobe Reader/Acrobat (CVE‑2011‑0609) umożliwiał zdalne wykonanie kodu przez spreparowane pliki SWF. W 2011 r. był aktywnie wykorzystywany w atakach z załącznikami XLS (osadzony SWF), m.in. w incydencie RSA SecurID. Detekcja: korelacja Email → Office/Reader → podejrzany child‑process/C2, blokada starych Flash/Reader, sandboxing załączników.


Krótka definicja techniczna

CVE‑2011‑0609 to luka (memory corruption/unspecified) w Adobe Flash Player 10.2.154.13 i starszych (Windows/macOS/Linux/Solaris, Android), Adobe AIR 2.5.1 i starszych oraz w Authplay.dll/AuthPlayLib.bundle używanym przez Adobe Reader/Acrobat 9.x–9.4.2 oraz 10.x–10.0.1. Otwarcie złośliwego SWF (np. osadzonego w pliku Excel) skutkuje RCE w kontekście aplikacji.


Gdzie występuje / przykłady platform

  • Windows / macOS / Linux / Solaris (endpointy) — przeglądarki i Office/Reader ładujące wtyczkę Flash/komponent Authplay.
  • Android (mobile) — podatne wydania Flash 10.1.106.16 i starsze.
  • Active Directory — punkt rozprzestrzenienia po początkowym foothold; nie jest bezpośrednio podatne.
  • M365 — wektor mailowy (Exchange/Defender for Office 365: Safe Attachments/Safe Links, Message trace).
  • AWS/Azure/GCP — brak bezpośredniej podatności; możliwa telemetria z WorkMail/SES/WorkSpaces, VPC Flow/Firewall do korelacji C2.
  • Kubernetes/ESXi — nie dotyczy bezpośrednio; przydatne do detekcji lateral movement po inicjalnym włamaniu.
    (Flash i Authplay są EOL; nadal warto utrzymywać detekcję retro/archiwalną dla threat huntingu i IR).

Szczegółowy opis techniki (jak działa, cele, skuteczność)

Ataki wykorzystywały SWF z exploitem osadzony w pliku .xls wysyłanym jako spear‑phishing. Po otwarciu arkusza Excel ładował komponent Flash/ActiveX, wykonywał payload w pamięci i uruchamiał proces podrzędny (np. dropper/loader), typowo ustanawiający łączność C2 i dogrywający RAT (w publicznych opisach wskazywano m.in. Poison Ivy). W kampanii na RSA załącznik o nazwie “2011 Recruitment plan.xls” prowadził do kradzieży poufnych danych SecurID. Ta taktyka była skuteczna z powodu: zaufania do dokumentów Office, łańcucha User Execution → Client Exploitation, braku patchy i ograniczonej widoczności korelacyjnej między warstwą e‑mail, procesami na hoście i ruchem sieciowym.


Artefakty i logi (tabela — EID, CloudTrail, K8s audit, M365)

KategoriaŹródłoID/OperacjaWzorzec / PolaCo oznacza
WindowsSysmonEID 1 (ProcessCreate)ParentImage in (EXCEL.EXE,AcroRd32.exe,WINWORD.EXE) + Image in (cmd.exe,powershell.exe,wscript.exe,mshta.exe,rundll32.exe)Nietypowe child‑procesy po otwarciu dokumentu/Readera (wskaźnik exploit→payload).
SysmonEID 3 (NetworkConnect)ParentImage jak wyżej; dest na świeże domeny/DGA/dynamic DNSWczesne C2 po exploitacji.
SysmonEID 7 (ImageLoaded)ImageLoaded endswith authplay.dll / Flash*.ocx z nieaktualnych ścieżekŁadowanie wrażliwego komponentu.
SysmonEID 11 (FileCreate)Tworzenie dropperów w %APPDATA%, %TEMP% (np. *.tmp, *.dat)Artefakty pierwszego etapu.
Windows Security4688Jak EID 1 (jeśli brak Sysmon)Procesy uruchomione przez Office/Reader.
Windows PowerShell4104Nieoczekiwane skrypty po otwarciu plikuWskaźnik T1059.
M365Defender for Office 365EmailEventsAttachmentExtension="xls" + ThreatTypes/MalwareVerdict + DetectionMethod=SafeAttachmentsZatrzymane/wykryte załączniki ze SWF/osadzonymi obiektami.
Unified Audit LogMailItemsAccessed/SendKorelacja adresatów/wątków phishingowychZasięg kampanii.
Proxy/DNSSecure Web Gateway / resolverUser-Agent Office/Reader → outbound, świeże domeny, nietypowe SNIPotwierdzenie C2 po otwarciu dokumentu.
AWS (telemetria)CloudWatch/VPC FlowNietypowe wyjścia z hostów WorkSpaces/EC2 po zdarzeniu e‑mailKorelacja sieciowa (brak bezpośredniego CloudTrail dla kontentu maili).
CloudTrail[brak danych / nie dotyczy] — CloudTrail nie rejestruje zawartości załącznikówUżyć WorkMail Message Flow/SES logs, VPC Flow.
K8s audit[brak danych / nie dotyczy]Dotyczy etapów późniejszych (lateral movement), nie samej CVE.

Detekcja (praktyczne reguły)

Sigma (Windows — Office/Reader uruchamia interpreter/shell po Flash/Authplay)

title: Office/Reader Suspicious Child Process (CVE-2011-0609 Tradecraft)
id: 6c6f3a3c-8f8c-4f2e-91c3-ofs-cve20110609
status: stable
description: Wykrywa uruchomienie interpreterów/shelli przez EXCEL/AcroRd32/Word – wzorzec obserwowany w eksploatacji SWF/Authplay (2011).
author: Badacz CVE
date: 2025/11/05
logsource:
  product: windows
  category: process_creation
detection:
  parent_office:
    ParentImage|endswith:
      - '\EXCEL.EXE'
      - '\AcroRd32.exe'
      - '\WINWORD.EXE'
  suspicious_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\mshta.exe'
      - '\rundll32.exe'
  condition: parent_office and suspicious_child
falsepositives:
  - Dodatki/plug‑iny wywołujące narzędzia systemowe (rzadkie)
level: high
tags:
  - attack.t1204.002
  - attack.t1203
  - attack.t1059
  - cve.2011.0609

Splunk (Sysmon EID 1 + 3)

index=endpoint (sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1)
| where like(ParentImage,"%\\EXCEL.EXE") OR like(ParentImage,"%\\AcroRd32.exe") OR like(ParentImage,"%\\WINWORD.EXE")
| where match(Image,"(?i)\\(cmd|powershell|wscript|cscript|mshta|rundll32)\\.exe$")
| stats earliest(_time) as firstSeen latest(_time) as lastSeen values(CommandLine) values(ParentCommandLine) by Computer, Image, ParentImage, ParentProcessGuid, ProcessGuid
| join type=left ProcessGuid
    [ search index=endpoint sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=3
      | stats values(DestinationIp) values(DestinationHostname) by ProcessGuid ]
| sort - lastSeen

KQL (Defender for Endpoint + MDO korelacja)

// 1) Host: podejrzane child-procesy po Office/Reader
DeviceProcessEvents
| where InitiatingProcessFileName in~ ("EXCEL.EXE","AcroRd32.exe","WINWORD.EXE")
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe","mshta.exe","rundll32.exe")

// 2) E-mail: załączniki .xls ze złą reputacją
let suspiciousMail =
EmailEvents
| where AttachmentCount > 0 and tostring(AttachmentExtensions) has_cs "xls"
| where ThreatTypes has_any ("Malware","Phish") or MalwareFilterVerdict in~ ("Malware","HighConfMalware");
suspiciousMail
| project NetworkMessageId, RecipientEmailAddress, SenderFromDomain
| join kind=innerunique (
  DeviceProcessEvents
  | where InitiatingProcessFileName in~ ("EXCEL.EXE","AcroRd32.exe")
  | project Timestamp, DeviceId, InitiatingProcessParentCreationTime, InitiatingProcessFileName, FileName, ProcessCommandLine, NetworkMessageId
) on NetworkMessageId

AWS (CloudWatch Logs Insights — Amazon WorkMail Message Flow / alternatywnie SES)

Jeśli używasz Amazon WorkMail/SES z loggingiem do CloudWatch/S3:

fields @timestamp, fromAddress, recipient, attachmentExtension, malwareVerdict, attachmentMimeType
| filter attachmentExtension="xls"
| filter malwareVerdict="MALICIOUS"
  or like(attachmentMimeType, "%shockwave%")
  or like(attachmentMimeType, "%flash%")
| sort @timestamp desc

(CloudTrail nie zawiera treści e‑maili; użyj WorkMail Message Flow / SES event logs oraz VPC Flow do wskazania ewentualnego C2).

Elastic / EQL

process where
  process.parent.name in ("EXCEL.EXE","AcroRd32.exe","WINWORD.EXE") and
  process.name in ("cmd.exe","powershell.exe","wscript.exe","mshta.exe","rundll32.exe")

Heurystyki / korelacje

  • Łańcuch czasowy: Email (.xls z osadzonym SWF) → uruchomienie Office/Reader → child‑process → połączenie sieciowe do świeżej domeny → zapis droppera w %TEMP%/%APPDATA%.
  • Artefakty Flash/Authplay: ładowanie authplay.dll/Flash*.ocx przez Office/Reader w momencie otwarcia pliku.
  • Pola do pivotowania: NetworkMessageIdDeviceProcessEvents ↔ proxy/DNS; hash załącznika ↔ sandbox verdict.
  • Treść socjotechniki: tematy rekrutacyjne/HR (“Recruitment plan”), krótka treść maila zachęcająca do otwarcia załącznika.

False positives / tuning

  • Legalne dodatki Office/Reader mogą incydentalnie uruchamiać narzędzia systemowe (rzadkie).
  • Zastosuj tuning po wersjach: skup się na hostach, gdzie w telemetrycznych śladach widać obiekty Flash/Authplay lub historyczne wersje Reader/Flash (jeśli utrzymywane w VDI/legacy).
  • Kontekst e‑mail: preferuj zdarzenia z verdictem Malware/High‑confidence lub z sandboxu (MDO Safe Attachments/3rd‑party).
  • Sieć: ogranicz alerty tylko do outbound na świeże/dynamiczne domeny i/lub niedawno zarejestrowane certyfikaty.

Playbook reagowania (IR)

  1. Triage & izolacja hosta (EDR isolate/quarantine).
  2. Zabezpieczenie artefaktów: hash i kopia pliku .xls, volatile data (listy procesów, połączenia, moduły).
    • Windows (PowerShell, konto z uprawnieniami IR): Get-Process EXCEL,AcroRd32 -IncludeUserName Get-ChildItem $env:TEMP | Sort LastWriteTime -desc | Select -First 20 Get-FileHash "C:\Path\to\Attachment.xls" -Algorithm SHA256
  3. Hunting w skali organizacji: IOC = hash załącznika / domeny C2 / temat maila; wyszukaj w EmailEvents/MessageTrace i w EDR.
  4. Blokady: reguła w Secure Email Gateway/MDO na typ załączników (XLS z OLE/ActiveX), blokada starych komponentów Flash/Authplay.
  5. Eradykacja: usuń dropper/RAT, unieważnij poświadczenia z hosta, sprawdź persistence (usługi/Run Keys/Tasks).
  6. Lessons learned: wdroż patch‑management, makra ograniczone, otwieranie załączników w izolacji (sandbox/VDI).

Przykłady z kampanii / case studies

  • Incydent RSA SecurID (marzec 2011): spear‑phishing z „2011 Recruitment plan.xls”, osadzony SWF wykorzystał CVE‑2011‑0609, po czym doinstalowano backdoor (m.in. raportowano Poison Ivy) i kradziono dane związane z SecurID.
  • Wnioski branżowe: Adobe ostrzegało o aktywnej eksploatacji w ukierunkowanych atakach; aktualizacje zostały opublikowane w drugiej połowie marca 2011 r.

Lab (bezpieczne testy) — przykładowe komendy

Cel: zweryfikować, czy Twoje detektory wychwytują łańcuch Email/Office → child‑process/C2 bez używania realnego exploita.

  • Test 1 (host): z poziomu kontenera testowego/VDI uruchom kontrolowany child‑process z Office (np. otwarcie pliku, który uruchamia calc/whoami przez zgodny z polityką add‑in) i sprawdź, czy reguły Sigma/Splunk/KQL go łapią.
  • Test 2 (poczta): wyślij do skrzynki testowej plik XLS z nieszkodliwym osadzonym obiektem (np. formularz OLE bez makr) i obserwuj, czy Safe Attachments nadaje verdict i czy pipeline korelacyjny łączy NetworkMessageId ↔ DeviceProcessEvents.
  • Atomic Red Team (alternatywa): użyj atomików dla T1204.002 i T1566.001 (wersje bezpieczne/PUA), by wygenerować telemetryczne ślady bez rzeczywistej eksploatacji.

Mapowania (Mitigations, powiązane techniki)

Mitigations ATT&CK:

  • M1051 — Update Software: natychmiastowe łatki Flash/Reader (historycznie) i rygorystyczny patch management.
  • M1031 — Network Intrusion Prevention: IDS/IPS do blokady znanych C2/eksploatacji w ruchu.
  • M1047 — Audit: regularne audyty konfiguracji, telemetrii, list uprawnień.

Powiązane techniki (ATT&CK):

  • T1566.001 — Spearphishing Attachment (wektor początkowy).
  • T1204.002 — User Execution: Malicious File (uruchomienie przez użytkownika).
  • T1203 — Exploitation for Client Execution (RCE w aplikacji klienckiej).
  • T1105 — Ingress Tool Transfer (dogrywanie narzędzi/RAT).
  • T1059 — Command & Scripting Interpreter (uruchomienie poleceń/payloadów).

Źródła / dalsza literatura

  • Adobe Security Advisory APSA11‑01 (opis wektora: SWF w Excelu; aktywna eksploatacja). (adobe.com)
  • NVD/CVE — szczegóły produktu/wersji podatnych. (NVD)
  • CERT/CC VU#192052 (informacja o biuletynie z poprawką). (kb.cert.org)
  • Kaspersky/QuickHeal (informacja o wydaniu poprawek). (Securelist)
  • Case study RSA: Infosecurity‑Magazine, The Register, Wired, F‑Secure. (Infosecurity Magazine)
  • ATT&CK (T1566.001, T1204.002, T1203; Detection Strategies). (MITRE ATT&CK)
  • Wersjonowanie ATT&CK (aktualna v18.0). (MITRE ATT&CK)

15) Checklisty dla SOC / CISO

SOC:

  • Korelacja EmailEvents ↔ DeviceProcessEvents ↔ DNS/Proxy dla załączników .xls.
  • Aktywne reguły na Office/Reader → shell/interpreter (Sigma/SIEM).
  • Hunting: authplay.dll / Flash*.ocx załadowane przez Office/Reader (historyczne hosty/VDI).
  • Blokady w SEG/MDO: OLE/ActiveX w dokumentach Office z internetu.
  • Sandboxing załączników (dynamic + static) i automatyczna kwarantanna.

CISO:

  • Egzekwowanie M1051 (patch management) i EOL hygiene (wyeliminować Flash/Authplay).
  • NIPS/SSL inspection dla wczesnego C2 (M1031).
  • Szkolenia z rozpoznawania spear‑phishingu; procedury zgłoszeń.
  • Testy kontrolne (Purple Team/Atomic) mapowane do T1566.001/T1204.002/T1203.

Uwaga końcowa: Flash/Reader wersje z 2011 r. są dziś wygasłe, ale ślady i techniki (phishing + client‑side RCE) pozostają aktualne. Warto utrzymywać detekcje oparte na wzorcu zachowania (ATT&CK), nie na konkretnym CVE.

CVE-2010-3333 — Microsoft Office RTF Stack Buffer Overflow (MS10‑087)

TL;DR

CVE‑2010‑3333 to luka typu stack‑based buffer overflow w parserze RTF pakietu Microsoft Office. Otworzenie lub nawet podgląd (Outlook używający Worda jako czytnika) specjalnie spreparowanego RTF może prowadzić do zdalnego wykonania kodu z uprawnieniami użytkownika. Luka była aktywnie wykorzystywana (znajduje się w CISA KEV) i często dostarczana jako załącznik e‑mail (ATT&CK T1566.001), a samo wykonanie to T1203. Kluczowe sygnały: WINWORD.EXE otwiera plik .rtf i uruchamia proces potomny (np. cmd.exe, powershell.exe). Patch: biuletyn MS10‑087.


Krótka definicja techniczna

CVE‑2010‑3333 opisuje błąd przepełnienia stosu w składniku obsługi RTF Microsoft Office (m.in. Word), umożliwiający uruchomienie dowolnego kodu po przetworzeniu złośliwego RTF. Mechanizm bywał wywoływany m.in. przez właściwość pFragments w obiektach RTF (Office Art/Shape), co skutkuje korupcją pamięci i przejęciem przepływu sterowania.


Gdzie występuje / przykłady platform

  • Windows (Office XP/2003/2007/2010) – zagrożone wersje przed MS10‑087, często wektor: e‑mail/załącznik RTF.
  • macOS (Office 2004/2008/2011; Open XML File Format Converter) – również podatne, aktualizacje w ramach MS10‑087/KB.
  • M365/Exchange Online/Outlook – tor dostarczenia (skanowanie i telemetryka: EmailEvents, EmailAttachmentInfo).

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

Luka polega na błędzie zapisu poza granice bufora (CWE‑787) w kodzie analizującym dane RTF. Wystarczy, aby ofiara otworzyła lub podejrzała wiadomość/plik RTF – w konfiguracjach z Wordem jako czytnikiem w Outlook 2007/2010 samo „Preview Pane” może wyzwolić exploit. Po udanym przepełnieniu stosu atakujący uzyskuje wykonanie kodu w kontekście użytkownika. Praktycznie wszystkie ówczesne edycje Office dla Windows i macOS były podatne przed łatą MS10‑087. Skuteczność wynika z: popularności RTF/Office, niskiej świadomości ryzyka „podglądu”, oraz łatwości dostarczenia przez e‑mail (T1566.001).

Wykorzystanie w kampaniach: technika T1203 jest powszechnie nadużywana; MITRE wskazuje grupy (np. Aoqin Dragon, Transparent Tribe), które historycznie korzystały m.in. z CVE‑2010‑3333.


Artefakty i logi (co zbierać)

WarstwaŹródło/logCo obserwowaćIdentyfikator / polaUwagi
Endpoint (Windows)SysmonProcesy potomne WINWORD.EXEcmd.exe, powershell.exe, wscript.exe, mshta.exe, rundll32.exe, regsvr32.exeEID 1 (Process creation), ParentImage, CommandLinePodstawowy sygnał wykonania po eksploatacji.
Endpoint (Windows)SecurityTworzenie procesu4688Alternatywa dla Sysmon.
Endpoint (Windows)SysmonPołączenia sieciowe procesu potomnegoEID 3Eksfiltracja/ładowanie 2. etapu.
AplikacjeAplikation ErrorAwaria WINWORD.EXE po otwarciu RTFEID 1000Czasem skutek nieudanego exploitu.
Poczta M365Defender XDR – EmailEventsDostarczenie załącznika .rtf, verdict (Malware/Phish), NetworkMessageIdTabela EmailEventsKorelować z host‑telemetry (czas/odbiorca).
Poczta M365EmailAttachmentInfoFileType/AttachmentExtension = rtfTabela EmailAttachmentInfoRozszerzenie + wielkość, nadawca.
Poczta M365EmailPostDeliveryEventsAkcje ZAP (usunięcie, przeniesienie)ActionType (np. ZAP)Przydatne do potwierdzenia mitigacji.
CloudAWS CloudTrail (Data Events)(opcjonalnie) pobranie złośliwego RTF z S3s3:GetObject (włączone Data Events)Tylko jeśli wektor to link do pliku w S3; nie jest typowy dla tej CVE.

Uwaga: CVE‑2010‑3333 znajduje się w katalogu CISA Known Exploited Vulnerabilities – podnosi to priorytet reagowania.


Detekcja (praktyczne reguły)

Sigma (Windows / Process Creation)

title: Office Child Process — Possible RTF Exploit (CVE-2010-3333)
id: 6d5e3c3a-6c8a-4a3c-9a0b-rtf3333
status: experimental
description: Wykrywa podejrzane procesy potomne uruchamiane przez WINWORD.EXE po otwarciu pliku RTF (T1203, T1566.001).
references:
  - https://detection.fyi/sigmahq/sigma/windows/process_creation/proc_creation_win_office_susp_child_processes/
logsource:
  category: process_creation
  product: windows
detection:
  selection_parent:
    ParentImage|endswith:
      - '\WINWORD.EXE'
  selection_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\mshta.exe'
      - '\rundll32.exe'
      - '\regsvr32.exe'
  condition: selection_parent and selection_child
falsepositives:
  - Zdarzenia OLE/Packager (np. osadzenie obrazu uruchamia MSPAINT)
  - Skrypty administracyjne uruchamiane celowo z dokumentów (rzadkie)
level: high
tags:
  - attack.t1203
  - attack.t1566.001

Źródło wzorca: repozytorium Sigma/„Suspicious Microsoft Office Child Process”.

Splunk (SPL)

index=win* (source="WinEventLog:Microsoft-Windows-Sysmon/Operational" OR EventCode=4688)
| eval ParentImage=coalesce(ParentImage,Process_Parent_Image)
| search ParentImage="*\\WINWORD.EXE"
| eval Image=coalesce(Image,New_Process_Name)
| where like(Image,"%\\cmd.exe") OR like(Image,"%\\powershell.exe") OR like(Image,"%\\wscript.exe") OR like(Image,"%\\mshta.exe") OR like(Image,"%\\rundll32.exe") OR like(Image,"%\\regsvr32.exe")
| stats values(CommandLine) values(ParentCommandLine) count by _time host User Image ParentImage

Kontekst i dobre praktyki pracy na Sysmon EID 1 w Splunk.

Microsoft 365 Defender / Sentinel (KQL – Advanced Hunting)

// 1) Procesy potomne Worda związane z exploitami/LOLBinami
DeviceProcessEvents
| where Timestamp > ago(7d)
| where InitiatingProcessFileName =~ "WINWORD.EXE"
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe")
| project Timestamp, DeviceName, AccountName, FileName, ProcessCommandLine, InitiatingProcessCommandLine, InitiatingProcessSHA1

// 2) Korelacja z mailem i załącznikiem RTF (ta sama ofiara ~ +/- 2h)
| join kind=leftouter (
    EmailAttachmentInfo
    | where Timestamp > ago(7d)
    | where AttachmentExtension =~ "rtf"
    | project RecipientEmailAddress, NetworkMessageId, AttachmentFileName, Timestamp
) on $left.AccountUpn == $right.RecipientEmailAddress

Dokumentacja tabel EmailEvents/EmailAttachmentInfo/EmailPostDeliveryEvents.

CloudTrail query (opcjonalnie – gdy RTF hostowany w S3)

# wymagane włączone Data Events dla S3
aws cloudtrail lookup-events \
  --lookup-attributes AttributeKey=EventName,AttributeValue=GetObject \
  --start-time 2025-11-01T00:00:00Z --end-time 2025-11-04T23:59:59Z \
  --query 'Events[?contains(CloudTrailEvent, `.rtf`)].[EventTime,Username,Resources]'

Użyteczne tylko, gdy kampania używała linku do RTF w S3 (nie typowy wektor tej CVE).

Elastic / EQL

process where
  process.name in ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe") and
  parent.process.name == "WINWORD.EXE"

Predefiniowana reguła „Suspicious MS Office Child Process” (Elastic).


Heurystyki / korelacje

  • Word → LOLBin: drzewo procesu WINWORD.EXE → „living‑off‑the‑land” (rundll32, regsvr32, mshta) w 0–5 min od otwarcia .rtf.
  • Mail → Host: EmailEvents.NetworkMessageId (M365) skorelowany z aktywnością użytkownika na stacji (ten sam odbiorca/UPN).
  • Preview pane: zdarzenie może wystąpić bez eksplicytnego „Open”, gdy włączony podgląd wiadomości RTF w Outlook (Word jako czytnik).
  • Awaria Worda (EID 1000) tuż po otwarciu RTF – ślad nieudanego exploitu.
  • Wzorzec nazwy przynęty: historycznie spotykane tematy/lury (np. „New Year’s Greeting Card” po rosyjsku), ale nie ufaj IOC‑om statycznym – stawiaj na zachowanie.

False positives / tuning

  • OLE/Packager w Wordzie może legitymnie odpalać mspaint.exe, iexplore.exe itp. – whitelistuj konkretne aplikacje/osadzenia (np. klasy COM/ProgID).
  • Skrypty administracyjne uruchamiane z dokumentu w środowiskach deweloperskich – oznaczaj kontekst (grupy, ścieżki share’ów, podpisy).
  • Tuning po CommandLine (np. -enc, -nop, -w hidden dla PowerShell) i po ParentCommandLine zawierającym ścieżkę do .rtf.
  • Na poziomie poczty – filtry auf falszywe pozytywy dla szablonów RTF generowanych przez systemy legacy (sprawdź reputację nadawcy + DKIM/DMARC).

Playbook reagowania (IR)

  1. Triage i izolacja: odłącz host (EDR/MDI).
  2. Zabezpiecz dowody:
    • Zrzut listy procesów i drzew: Get-Process | Sort-Object ProcessName Get-CimInstance Win32_Process | Where-Object {$_.ParentProcessId -ne 0} | Select Name,ProcessId,ParentProcessId,CommandLine | Sort Name
    • Zbierz dzienniki Sysmon/Windows: wevtutil epl Microsoft-Windows-Sysmon/Operational C:\IR\sysmon.evtx wevtutil epl Security C:\IR\security.evtx
  3. Korelacja z pocztą (M365):
    • Sprawdź EmailEvents po RecipientEmailAddress i NetworkMessageId (Advanced Hunting/Sentinel).
  4. Blokuj odbiorcę/nadawcę kampanii (policy DLP/transport rules; ZAP, jeśli nie zadziałał).
  5. Patching: potwierdź, że host ma zainstalowany biuletyn MS10‑087 / odpowiednie KB.
  6. Eradykacja: usuń plik RTF, artefakty 2. etapu, wpisy Autostartu (jeśli wystąpiły).
  7. Lessons learned: reguły ASR (blokada procesów potomnych Office), blokady rozszerzeń RTF w bramkach mailowych.

Przykłady z kampanii / case studies

  • Aoqin Dragon – wykorzystywał m.in. CVE‑2010‑3333 (T1203) w atakach ukierunkowanych.
  • Transparent Tribe – w przeszłości używał dokumentów RTF do execute (T1203), w tym CVE‑2010‑3333.
  • Przynęty tematyczne raportowane przez Microsoft (WDSI) – np. „New Year’s Greeting Card” (ru), „Bilawar Bhutto Sex Scandal” – przykład socjotechniki dla RTF.

Lab (bezpieczne testy) — przykładowe komendy

Cel: sprawdzić, czy telemetria i reguły działają bez użycia złośliwego exploit‑RTF.

  1. Telemetria procesów potomnych (pozytywny, lecz „dobry” sygnał):
    • W Wordzie: Wstaw → Obiekt → Obraz mapy bitowej (Paint) → zapis i zamknięcie. To uruchomi mspaint.exe jako dziecko WINWORD.EXE, co pozwoli przetestować pipeline logowania i reguły (powinno być dopuszczone jako FP do wykluczenia).
  2. Sprawdzenie parsowania RTF offline:
    • Użyj narzędzi analitycznych do statycznego wglądu (np. rtfdump.py, oletools rtfobj) na bezpiecznych plikach referencyjnych. Szukaj znaczników \object, \objdata, anomalii w strukturze (np. nietypowe wielkości).
  3. Korelacja z M365:
    • Wyślij do skrzynki testowej nieszkodliwy RTF i zweryfikuj, że pojawia się w EmailAttachmentInfo oraz że KQL łączy dane z DeviceProcessEvents.

Mapowania (Mitigations, Powiązane techniki)

Mitigations (ATT&CK)

  • M1051 – Update Software: stosuj poprawki (MS10‑087/KB) i regularny patching pakietu Office/Outlook.
  • M1042 – Disable or Remove Feature or Program: wyłącz/usuń zbędne komponenty Office/RTF w viewerach, rozważ blokady uruchamiania procesów potomnych Office (ASR/AppControl).
  • Dodatkowo: szkolenia użytkowników, filtrowanie i inspekcja poczty (powiązanie z T1566).

Powiązane techniki ATT&CK (H3)

  • T1203 — Exploitation for Client Execution -Atakujący uruchamia kod poprzez exploit w aplikacji klienckiej (tu: Word/RTF). Platforms: Windows, macOS; Tactic: Execution. Ver. 1.5 (modyf. 24‑10‑2025).
  • T1566.001 — Phishing: Spearphishing Attachment -Dostarczanie złośliwego RTF jako załącznika e‑mail, często z przynętami tematów. Tactic: Initial Access.
  • T1204 — User Execution – Skuteczność zależy od interakcji użytkownika (otwarcie/podgląd).

Źródła / dalsza literatura

  • NVD – CVE‑2010‑3333: opis, wersje podatne, CVSS, KEV (CISA). (NVD)
  • Microsoft MS10‑087 (Security Bulletin): szczegóły ataku przez podgląd RTF w Outlook (Word jako czytnik), listy wersji i KB. (Microsoft Learn)
  • Rapid7 (Metasploit module): kontekst właściwości pFragments w parserze RTF. (Rapid7)
  • MITRE ATT&CK T1203 (ver. 1.5, v18) – przykłady grup wykorzystujących CVE‑2010‑3333. (MITRE ATT&CK)
  • ATT&CK T1566.001 – spearphishing attachment (kontekst dostarczenia). (MITRE ATT&CK)
  • Microsoft WDSI – Exploit:Win32/CVE‑2010‑3333 – przykładowe tematy przynęt. (microsoft.com)
  • M365 Defender – EmailEvents / EmailPostDeliveryEvents – dokumentacja schematów. (Microsoft Learn)
  • Sigma – „Suspicious Microsoft Office Child Process”. (detection.fyi)
  • Elastic – prebuilt EQL „Suspicious MS Office Child Process”. (Elastic)
  • Splunk blog/research – praca z Sysmon EID 1; oraz analityka „Office spawning cmd.exe”. (Splunk)

Checklisty dla SOC / CISO

SOC

  • Reguły: Office → LOLBins (Sigma/Splunk/KQL/EQL) włączone i przetestowane.
  • Korelacja EmailEventsDeviceProcessEvents po UPN/NetworkMessageId.
  • Zbieranie Sysmon (EID 1/3) i Windows Security (4688) z hostów użytkowników.
  • Alert na awarie Worda (EID 1000) w kontekście otwarcia .rtf.
  • Blokady/ASR: „Block Office applications from creating child processes”.

CISO

  • Potwierdzony patch level (MS10‑087) dla wszystkich stacji z Office.
  • Polityka pocztowa: sandbox/preview dla RTF, DMARC/DKIM, ZAP aktywny.
  • Testy skuteczności detekcji (bezpieczne laby) i cykliczne ćwiczenia IR.
  • Program świadomości użytkowników nt. załączników RTF (T1566.001).

Uwaga końcowa: CVE‑2010‑3333 ma w NVD CVSS v3.1 = 7.8 (HIGH) oraz CVSS v2 = 9.3 (HIGH); traktuj jako wysoki priorytet i utrzymuj łatki/kompensacje.