
Co znajdziesz w tym artykule?
- 1 TL;DR
- 2 Krótka definicja techniczna
- 3 Gdzie występuje / przykłady platform
- 4 Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)
- 5 6) Artefakty i logi
- 6 Detekcja (praktyczne reguły)
- 7 Heurystyki / korelacje
- 8 False positives / tuning
- 9 Playbook reagowania (IR)
- 10 Przykłady z kampanii / case studies
- 11 Lab — przykładowe komendy
- 12 Mapowania (Mitigations, powiązane techniki)
- 13 Źródła / dalsza literatura
- 14 15) Checklisty dla SOC / CISO (krótko)
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, ładowaniemsxml*.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/K8s – nie 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ło | Artefakt / pole | Co szukać | Uwagi |
|---|---|---|---|
| Sysmon EID 1/ProcessCreate | ParentImage=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/ActiveX | Typowy post‑exploit (payload). |
| Sysmon EID 7/ImageLoaded | ImageLoaded ~ \msxml*.dll | Ładowanie biblioteki MSXML w kontekście przeglądarki/Office | Koreluj z EID 1. |
| Sysmon EID 11/FileCreate | Tworzenie plików w %TEMP%, %APPDATA% po wizycie na stronie | Wskaźnik droppera | |
| Security 4688 | Tworzenie procesu (Windows) | Lustrzane do Sysmon EID 1 | |
| WFP 5156 / Proxy | Połączenia HTTP(S) do nieznanych domen bezpośrednio po wizycie na stronie; UA zaw. MSIE/Trident | Korelacja czasu/Referrer | |
| Aplikacja 1000/1001 | Błędy IE/wyjątki | Czasem towarzyszą RCE | |
| IDS/IPS/WAF | Sygnatury „MSIE MSXML CVE‑2012‑1889” | Trafienia podczas wizyty na stronie | Przykładowa sygnatura Broadcom. |
| CloudTrail | — | Nie dotyczy (klient‑side). Możliwa analiza S3 GetObject jako źródła payloadu. | Patrz sekcja 7 (zapytanie pomocnicze). |
| K8s audit | — | Nie dotyczy | |
| M365 Unified Audit | — | Nie 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ładujemsxml*.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,rundll32z 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)
- Triage & izolacja: odłącz host (EDR isolate), zapisz pamięć RAM/dysk jeśli to możliwe.
- Szybkie KQL/Splunk: wyszukaj łańcuch parent browser/Office → LOLBIN/script engine (zapytania z sekcji 7).
- Inwentaryzacja MSXML (PowerShell, tylko w labie/IR):
gci "$env:WINDIR\System32" -Filter "msxml*.dll" | Select Name, @{n='Version';e={(Get-Item $_.FullName).VersionInfo.FileVersion}} - Zabij procesy / usuń artefakty:
taskkill /IM iexplore.exe /F; zidentyfikuj pliki z%TEMP%/%APPDATA%powiązane czasowo,Get-FileHash. - Blokada źródeł: domeny/URL z proxy/EDR; jeżeli payload z S3 — zablokuj bucket/klucz na bramie.
- Łatanie: wdroż MS12‑043 (KB2719985, KB2721691, KB2596856/KB2687497 dla MSXML5/Office) oraz usuń MSXML 4.0 (EoL).
- Hunting retrospektywny (7–30 dni): sprawdź podobne sekwencje, zbieżne domeny, UA MSIE.
- 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.
- 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 1Zweryfikuj, że reguły z sekcji 7 wyłapują procesy potomne/LOLBIN‑y. - 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*.dlljeśli środowisko ładuje biblioteki) wyzwala alert.
- Uruchom
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*.dllw 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.