CVE-2014-4114 — Windows OLE RCE „Sandworm” - Security Bez Tabu

CVE-2014-4114 — Windows OLE RCE „Sandworm”

TL;DR

CVE‑2014‑4114 to podatność w Windows OLE wykorzystywana m.in. przez Sandworm do zdalnego uruchamiania kodu po otwarciu spreparowanego pliku Office (najczęściej PPSX/PowerPoint). Sztuczka polega na pobraniu zdalnego .INF i wykonaniu go przez rundll32 -> setupapi.dll,InstallHinfSection lub advpack.dll,LaunchINFSection, co inicjuje uruchomienie docelowego droppera. Detekcja: łańcuch POWERPNT.EXE → rundll32.exe z argumentami InstallHinfSection/LaunchINFSection, pobrania po SMB/WebDAV, ślady w setupapi.app.log. Łatanie: MS14‑060 (KB3000869); tymczasowe obejścia: wyłączenie WebClient, blokada TCP 139/445, usunięcie „Install” verb dla .INF.


Krótka definicja techniczna

CVE‑2014‑4114 to błąd w obsłudze obiektów OLE w Windows pozwalający na zdalne wykonanie kodu po otwarciu pliku Office zawierającego specjalnie przygotowany obiekt OLE odwołujący się do zasobu INF/EXE w nieufnej lokalizacji (UNC/WebDAV). Otwarcie dokumentu inicjuje pobranie i wykonanie instrukcji z INF bez dodatkowych promptów, prowadząc do uruchomienia droppera w kontekście bieżącego użytkownika.


Gdzie występuje / przykłady platform

  • Windows: Vista SP2, 7 SP1, 8/8.1; Server 2008/2008 R2/2012/2012 R2; także RT (wg MS14‑060/NVD).
  • Active Directory: stacje członkowskie domeny (otwieranie załączników w środowisku korporacyjnym).
  • M365: poczta (spearphishing attachment), logi Defender for Office/Endpoint.
  • Chmury (AWS/Azure/GCP): dotyczy Windows VM/VDI/WorkSpaces – podatna jest gościnna warstwa OS, nie IaaS; telemetria może trafiać do CloudWatch/Log Analytics/SIEM.
  • Kubernetes/ESXi: brak bezpośredniego wpływu na control plane; dotyczy gości Windows w VM.

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

Kampanie z 2014 r. wykorzystywały PPSX z dwoma osadzonymi obiektami OLE o ścieżkach zdalnych: np. slide1.gif (faktycznie EXE) i slides.inf. PowerPoint pobierał oba pliki z udziału UNC/WebDAV bez ostrzeżeń; .INF zmieniał nazwę pliku na .exe i go uruchamiał (dropper BlackEnergy). Mechanizm aktywacji bazował na wywołaniu rundll32.exe z setupapi.dll,InstallHinfSection lub advpack.dll,LaunchINFSection. Skuteczność: wysoki poziom soc‑eng (pliki show), minimalna interakcja, obejście promptów UAC dla .PPSX odnotowane przez Microsoft.


Artefakty i logi (co zbierać)

ŹródłoID / poleWskaźnik / wzorzecUwagi
Windows Security4688 (Process Creation)ParentImage=*\POWERPNT.EXEImage=*\\rundll32.exe z CommandLine zawierającą setupapi.dll,InstallHinfSection lub advpack.dll,LaunchINFSectionKluczowy łańcuch egzekucji.
Sysmon1/ProcCreate, 3/NetConnect, 11/FileCreate, 22/DNSPołączenia do \\host\share\... / WebDAV (Microsoft-WebDAV-MiniRedir), tworzenie *.inf/*.gif.exe w %TEMP%Wzorce WebDAV/SMB.
SetupAPI log%windir%\inf\setupapi.app.logWpisy z instalacji aplikacyjnej/INF (po włączeniu logowania)Domyślnie wyłączone; można włączyć przez LogLevel.
M365 Defender (AH)EmailEvents / EmailAttachmentInfoZałącznik PPS/PPSX od nadawcy zewn., motyw soc‑engDla fazy dostarczenia.
MDE/Defender AVWykrycie: Exploit:Win32/CVE-2014-4114Alerty/exclusionsHistoryczne sygnatury.
Firewall/ProxyHTTP/WebDAV, SMB (139/445)Pobranie slides.inf / *.gif z zewnętrznych hostówBlokady portów ograniczają wektor.

Detekcja (praktyczne reguły)

Sigma (Windows / process_creation)

title: Office -> Rundll32 INF Execution (CVE-2014-4114 Sandworm)
id: 7c9f9d4a-b0c6-4f7f-9e5b-b2c3d1e0c414
status: experimental
logsource:
  product: windows
  category: process_creation
detection:
  parent_office:
    ParentImage|endswith:
      - \POWERPNT.EXE
      - \WINWORD.EXE
      - \EXCEL.EXE
  child_rundll:
    Image|endswith: \rundll32.exe
  cli_inf:
    CommandLine|contains:
      - 'setupapi.dll,InstallHinfSection'
      - 'advpack.dll,LaunchINFSection'
  condition: parent_office and child_rundll and cli_inf
fields:
  - UtcTime
  - User
  - ParentImage
  - Image
  - CommandLine
falsepositives:
  - Rzadkie instalacje driverów/INF wywołane z Office (bardzo mało prawdopodobne)
level: high
tags:
  - attack.T1203
  - attack.T1204.002
  - attack.T1566.001
  - cve.2014-4114

Splunk (Security 4688 / Sysmon 1)

(index=win* (sourcetype="WinEventLog:Security" EventCode=4688) OR (sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1))
| eval parent=coalesce(ParentProcessName, ParentImage), img=coalesce(NewProcessName, Image)
| search parent="*\\POWERPNT.EXE" OR parent="*\\WINWORD.EXE" OR parent="*\\EXCEL.EXE"
| search img="*\\rundll32.exe"
| search CommandLine="*setupapi.dll,InstallHinfSection*" OR CommandLine="*advpack.dll,LaunchINFSection*"
| table _time host user parent img CommandLine
| sort - _time

KQL (Microsoft 365 Defender – Advanced Hunting)

DeviceProcessEvents
| where InitiatingProcessFileName in~ ("POWERPNT.EXE","WINWORD.EXE","EXCEL.EXE")
| where FileName =~ "rundll32.exe"
| where ProcessCommandLine has_any ("setupapi.dll,InstallHinfSection","advpack.dll,LaunchINFSection")
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine, InitiatingProcessVersionInfoCompanyName
| order by Timestamp desc

AWS CloudWatch Logs Insights (Windows Event Forwarding do CWL)

fields @timestamp, Computer, EventID, @message
| filter EventID=4688
| filter like(@message, /rundll32\.exe/) 
  and (like(@message, /setupapi\.dll,InstallHinfSection/) or like(@message, /advpack\.dll,LaunchINFSection/))
| sort @timestamp desc

Elastic (EQL)

sequence by host.id with maxspan=2m
  [process where process.name : ("POWERPNT.EXE","WINWORD.EXE","EXCEL.EXE")]
  [process where process.name : "rundll32.exe" and
           process.command_line : ("*setupapi.dll,InstallHinfSection*","*advpack.dll,LaunchINFSection*")]

Heurystyki / korelacje

  • Łańcuch procesu: Office (POWERPNT/WINWORD) → rundll32.exe → (ew. dalsze) cmd.exe/msiexec.exe/regsvr32.exe.
  • Sieć: pobrania z UNC/WebDAV (user‑agent Microsoft-WebDAV-MiniRedir) w bliskim czasie od otwarcia dokumentu.
  • Pliki tymczasowe: *.inf / pseudo‑obraz *.gif → późniejszy *.exe w %TEMP%.
  • Logi SetupAPI: ślady w setupapi.app.log (po włączeniu).
  • Poczta: korelacja EmailEvents z kliknięciem/otwarciem załącznika i telemetrią endpoint.

False positives / tuning

  • Instalacje sterowników/oprogramowania wyzwalające InstallHinfSection/LaunchINFSection, ale zwykle nie z rodzicem Office.
  • Drivery producentów (podpisane, ścieżki C:\Windows\INF\*): wykluczyć po wydawcy, ścieżce, hashu.
  • Tuning: wymagaj rodzica Office, zdalnej ścieżki (UNC/WebDAV), nietypowych INF w %TEMP%, braku podpisu lub nietypowych domen.

Playbook reagowania (IR)

  1. Triaging & Containment: izoluj host; zablokuj domenę/UNC/WebDAV wskazany w artefaktach (FW/DNS/Proxy).
  2. Hunting szeroki (24–72 h): zapytania z sekcji 7 (AH/SIEM). Zidentyfikuj wszystkie hosty z łańcuchem Office→rundll32/INF.
  3. Forensics szybkie:
    • Zabezpiecz pliki z %TEMP% i %WINDIR%\INF\setupapi.app.log.
    • Zrzut listy procesów/połączeń (tasklist /v, netstat -ano), timeline plików.
  4. Eradykacja: usuń droppery, zabroń WebDAV/SMB egress do Internetu; wdroż KB3000869 jeśli dotyczy dziedzictwa.
  5. Recovery: weryfikacja integralności, rotacja poświadczeń, obserwacja anomalii.
  6. Lessons Learned: reguły detekcyjne do stałego monitoringu; wymuś blokady z pkt 11 (workarounds).

Przykłady z kampanii / case studies

  • BlackEnergy/Sandworm (2014): PPSX zawierał dwa obiekty OLE (zdalne): slide1.gif (dropper, faktycznie EXE) i slides.inf. INF zmieniał nazwę i uruchamiał droppera — bez dodatkowych promptów PowerPoint.
  • Sandworm Team (G0034): wykorzystywał CVE‑2014‑4114 w PowerPoint (OLE) oraz CVE‑2013‑3906 (TIFF/Word). Cele: NATO, UE, sektor energii/telekom.

Lab (bezpieczne testy)

Celem jest generacja artefaktów/detekcji, nie eksploatacja.

A. Symulacja INF (ADVPACK) – bezpieczne uruchomienie Notepad

  1. Zapisz plik test.inf (np. C:\Temp\test.inf):
[Version]
Signature="$Windows NT$"

[DefaultInstall]
RunPreSetupCommands=DoRun

[DoRun]
%11%\\notepad.exe
  1. Uruchom:
rundll32.exe advpack.dll,LaunchINFSection C:\Temp\test.inf,DefaultInstall

Powinno wygenerować proces rundll32.exe z LaunchINFSection (detekcje z sekcji 7).

B. Artefakty SetupAPI
Włącz logowanie SetupAPI (na czas testu), następnie uruchom test z pkt A i sprawdź %windir%\inf\setupapi.app.log.


Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK):

  • M1051 – Update Software: zastosuj MS14‑060/KB3000869 na hostach dziedzicznych.
  • M1037 – Filter Network Traffic / M1035 – Limit Access to Resource Over Network: blokuj SMB 139/445 egress, ogranicz WebDAV (usługa WebClient).
  • M1042 – Disable or Remove Feature or Program: usuń „Install” verb dla .INF (tymczasowe obejście).
  • M1017 – User Training: phishing awareness (załączniki PPSX).

Powiązane techniki ATT&CK:

  • T1566.001 – Spearphishing Attachment (wektor wejścia)
  • T1204.002 – User Execution: Malicious File (akcja użytkownika)
  • T1105 – Ingress Tool Transfer (transfer droppera)
  • T1027 – Obfuscated/Compressed Files (kamuflaż plików, np. „gif.exe”)

Źródła / dalsza literatura

  • Microsoft: MS14‑060 – Vulnerability in Windows OLE (KB3000869), obejścia (WebClient/SMB/INF) i lista systemów. (Microsoft Learn)
  • ESET (WeLiveSecurity): szczegóły kampanii PPSX + slides.inf + slide1.gif (BlackEnergy). (We Live Security)
  • MITRE ATT&CK: T1203 – Exploitation for Client Execution, w tym odniesienie do CVE‑2014‑4114/Sandworm. (MITRE ATT&CK)
  • MITRE ATT&CK – Sandworm Team (G0034). (MITRE ATT&CK)
  • NVD: wpis CVE‑2014‑4114 (zakres i opis). (NVD)
  • Microsoft Docs: InstallHinfSection (SetupAPI) i log setupapi.app.log. (Microsoft Learn)
  • IE/ADVPACK: LaunchINFSection (przykłady użycia). (Microsoft Learn)
  • Palo Alto Unit42: kontekst OLE/PowerPoint i ryzyko zdalnych zasobów. (Unit 42)

Uwaga dot. łat: tuż po MS14‑060 zgłaszano obejścia prowadzące do kolejnych CVE; w środowiskach legacy sprawdź też późniejsze uaktualnienia.


Checklisty dla SOC / CISO

SOC (operacyjne):

  • Włącz/zweryfikuj reguły: Office→rundll32 InstallHinfSection/LaunchINFSection.
  • Monitoruj WebDAV/SMB egress oraz setupapi.app.log.
  • Koreluj EmailEvents ↔ DeviceProcessEvents (M365).
  • Hunt retro (90 dni) za łańcuchem POWERPNT/WINWORD → rundll32.
  • Utrzymuj allow‑list INF/sterowników; alertuj INF z %TEMP%.

CISO (strategiczne):

  • Polityka: blokady SMB i WebDAV na brzegu/na hostach.
  • Wymuszenie łat (M1051) na hostach z Windows 7/8/8.1/2008/2012.
  • Program szkoleniowy phishing + polityki załączników (PPSX).
  • Testy tabletop IR dla scenariusza „złośliwy INF/Office”.

Jeden komentarz do “CVE-2014-4114 — Windows OLE RCE „Sandworm””

Możliwość komentowania została wyłączona.