
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 Artefakty i logi (co zbierać)
- 6 Detekcja (praktyczne reguły)
- 7 Heurystyki / korelacje (co łączyć)
- 8 False positives / tuning
- 9 Playbook reagowania (IR)
- 10 Przykłady z kampanii / case studies
- 11 Lab (bezpieczne testy) — przykładowe zadania
- 12 Mapowania (Mitigations, powiązane techniki)
- 13 Źródła / dalsza literatura
- 14 Checklisty dla SOC / CISO (krótko)
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,EmailAttachmentInfow 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
GetObjectz 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 bibliotekiMSCOMCTL.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 danych | Zdarzenie/ID | Kluczowe pola / wzorce | Wskazówki analityczne |
|---|---|---|---|---|
| Windows | Sysmon | EID 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). |
| Windows | Sysmon | EID 7 (Image Loaded) | ImageLoaded kończy się na \mscomctl.ocx przez WINWORD.EXE | Rzadkie w zdrowych dokumentach; wzmacnia pewność analityki procesów. |
| Windows | Sysmon | EID 3 (Network Connect) | Image=WINWORD.EXE lub dziecko → połączenia HTTP/HTTPS | Dokumenty przynęt często dociągały payloady; patrz hosty niesankcjonowane. |
| Windows | Security | Event ID 4688 | Procesy jak wyżej; NewProcessName, CreatorProcessName | Alternatywa dla środowisk bez Sysmon. |
| M365 | Defender for Office 365 (AH) | tabele EmailEvents, EmailAttachmentInfo | AttachmentFileType in (rtf, doc, docx); DetectionTechnology/ActionType | Telemetria o załącznikach i kampaniach e‑mail; koreluj z host telemetry. |
| M365 | Unified Audit / MailItemsAccessed | Zdarzenia dostępu do wiadomości | IP, klient, operacja | Pomaga ocenić skalę kompromitacji skrzynek. |
| AWS | CloudTrail (data events S3) | GetObject, HeadObject | requestParameters.key ~ `.(rtf | docx?)$, userAgent, sourceIPAddress` |
| Azure/GCP/K8s/ESXi | — | — | — | Nie 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 (dzieciWINWORD.EXE). - Image load
mscomctl.ocxprzez 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.ocxmoż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
\objocxw RTF to sygnał podejrzany, nie rozstrzygający (stosuj sandbox/MDO).
Playbook reagowania (IR)
- Izoluj hosta z alertu (EDR).
- Zabezpiecz artefakty: próbka pliku,
prefetch, memoria,Process Tree,DeviceProcessEvents/DeviceImageLoadEvents. - 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). - Łańcuch zdarzeń: wyszukaj inne hosty z tym samym załącznikiem (
EmailEvents+SHA256zEmailAttachmentInfo), a następnie koreluj z host telemetry. - Blokady: dodaj hash/URL do blokady w MDO/EOP/Proxy; włącz/utwardź ASR „Block Office creating child processes”.
- Naprawa: wymuś instalację MS12‑027, a także późniejszych zbiorczych aktualizacji Office/Windows; wdroż Exploit Protection/DEP/ASLR.
- 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
- Utwórz harmless.rtf zawierający nieszkodliwy tekst oraz nagłówek z ciągiem
\object/\objocx(bez osadzania binariów OLE). - Wyślij na skrzynkę testową M365 i sprawdź, czy polityki (MDO Safe Attachments/Sandbox) oraz reguły treści podnoszą alert/znacznik podejrzany.
- Koreluj
EmailAttachmentInfo↔ host telemetry (brak uruchomionych procesów wtórnych powinien dać „clean”).
Lab‑2: Analityka „Office → child process” (symulacja zachowania, bez dokumentu)
- 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). - Sprawdź, czy reguły Sigma/Splunk/KQL wyłapują przypadki dziecko procesu Office (w środowisku produkcyjnym zadziała to na realnych incydentach).
- W środowiskach z ASR, potwierdź, że reguła „Block Office creating child processes” blokuje podobny łańcuch.
Lab‑3: Telemetria mscomctl.ocx (obserwacja)
- Monitoruj
DeviceImageLoadEventsdlaWINWORD.EXE→mscomctl.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łączniki ↔ host telemetry (hash, nadawca, kampania).
- Watchlist domen/URL z kampanii; blokady w bramkach.
- Raportowanie i „mass search” po
mscomctl.ocxload (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.
Jeden komentarz do “CVE-2012-0158 — MSCOMCTL.OCX RCE w dokumentach Office”
Możliwość komentowania została wyłączona.