Archiwa: Windows - Strona 55 z 66 - Security Bez Tabu

Linux Commands Dla Analityków Bezpieczeństwa – Pełny Przewodnik Z Przykładami

Komendy Linuksa jako pierwsza linia analizy incydentu

W codziennej pracy analityka bezpieczeństwa (SOC) umiejętność szybkiego korzystania z wbudowanych poleceń Linuksa bywa bezcenna. Gdy liczy się czas – na przykład podczas triage incydentu lub szybkiej analizy forensic – często jedynym narzędziem jest konsola SSH bez dostępu do interfejsu graficznego. Instalacja dodatkowego oprogramowania zwykle nie wchodzi w grę, więc klasyczne polecenia powłoki Bash stają się pierwszą linią obrony Blue Team.

Czytaj dalej „Linux Commands Dla Analityków Bezpieczeństwa – Pełny Przewodnik Z Przykładami”

CVE-2013-0422 — Java 7 Security Manager Bypass / Sandbox Escape (RCE)

TL;DR

  • Krytyczna luka w Oracle Java 7 (JDK/JRE 7u10 i starsze) pozwalała na zdalne wykonanie kodu przez applet lub Java Web Start (drive‑by). Java 6 nie była podatna. CVSS v2: 10.0.
  • Mechanizm: obejście Security Managera przez dwie podatności: (a) łańcuch JMX/MBean (getMBeanInstantiatorfindClass), (b) błąd w Reflection (rekurencja i pominięcie kontroli). Powszechnie wykorzystywana w styczniu 2013 r. (m.in. Blackhole/Nuclear Pack).
  • Oracle wydało poza‑cykliczną łatę (7u11) i podniosło domyślny poziom bezpieczeństwa Javy do High (klik‑to‑run).
  • Typowe ślady: łańcuch procesów browser → jp2launcher/java[w].exe → cmd/powershell/wscript, pobrania .jar/.jnlp z nieznanych domen, logi Sun/Java/Deployment.
  • Detekcja: korelacja proxy/DNS + EDR/Windows (Sysmon 1/3/7/11/22, Security 4688/5156) + MDE (DeviceProcessEvents/DeviceNetworkEvents).
  • Mitigacje: aktualizacja/wyłączenie wtyczki Java, blokada MIME application/java-archive i application/x-java-jnlp-file, polityki ASR/EDR.

Krótka definicja techniczna

CVE‑2013‑0422 to para luk w Oracle Java 7 umożliwiająca zdalne wykonanie kodu i wyjście z piaskownicy przez niezaufane applet/JNLP w przeglądarce. Wektor: drive‑by. Dotyczy JDK/JRE 7u10 i starszych; JDK/JRE 6 nie dotyczy. CVSSv2=10.0.


Gdzie występuje / przykłady platform

  • Windows/macOS/Linux (endpoint, przeglądarka + plugin Java) — klientowe uruchomienie applet/JNLP. Nie dotyczy serwerów ani samodzielnych aplikacji Java bez przeglądarki.
  • VDI / środowiska korporacyjne — stacje administracyjne z historycznie zainstalowaną Javą 7.
  • Proxy/NGFW/MDE/EDR/SIEM — główne źródła telemetrii do detekcji.
  • Chmury (M365/Azure/AWS/GCP) — detekcja po stronie endpointów zarządzanych (Defender for Endpoint), na brzegach (CloudFront/NGFW) lub – rzadziej – w CloudTrail (gdy organizacja sama hostowała artefakty .jar/.jnlp w S3).

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

Atak następował po wejściu użytkownika na złośliwą lub skompromitowaną stronę. Niezaufany applet/JNLP wykorzystywał dwa błędy w Javie 7:

  1. JMX/MBean — publiczne getMBeanInstantiator w JmxMBeanServer dawało dostęp do prywatnego obiektu MBeanInstantiator i metod findClass, co umożliwiało załadowanie klas poza kontrolą Security Managera.
  2. Reflection — rekurencyjne wywołania API refleksji omijały kontrolę w MethodHandles.Lookup.checkSecurityManager z powodu sposobu działania sun.reflect.Reflection.getCallerClass.
    W praktyce oznaczało to pełne RCE z uprawnieniami użytkownika po samej wizycie na stronie (0‑click beyond browsing). Luki były aktywnie wykorzystywane przez Blackhole i Nuclear Pack od 10–11 stycznia 2013 r. Oracle zareagowało alarmem bezpieczeństwa i 7u11 (zmiana default na High, wymuszając potwierdzenia dla appletów).

Artefakty i logi

ŹródłoEID/typCo szukaćUwagi
Sysmon1 (Process Create)chrome/iexplore/firefox → jp2launcher.exe/java.exe/javaw.exe; dalej spawn cmd.exe, powershell.exe, wscript.exe, mshta.exejp2launcher.exe = Java Web Launcher.
Sysmon3 (Network Connect)java[w].exe łączące się do Internetu (80/443) tuż po pobraniu .jar/.jnlpKorelować z proxy/DNS.
Sysmon7 (Image Load)DLL wtyczki Java (np. npjp2.dll, jp2iexp.dll)Indykatory uruchomienia pluginu.
Sysmon11/22Tworzenie plików w %AppData% / zapytania DNS przez java.exeDropper po eksploatacji.
Windows Security4688/4689Tworzenie/zamknięcie procesu jak wyżejWłącz audyt procesu.
Windows Filtering Platform5156/5157Dopuszczenie/blokada połączeń java.exeKorelacja z hostem docelowym.
Proxy/NGFWHTTPOdpowiedzi Content-Type: application/java-archive (.jar), application/x-java-jnlp-file (.jnlp) z nietypowych domenWzorzec drive‑by.
Java Deploymentplikideployment.properties, logi w …\LocalLow\Sun\Java\Deployment\Lokacje użytkownika na Windows/macOS/Linux.
MDE (Advanced Hunting)DeviceProcessEvents, DeviceNetworkEventsTe same łańcuchy + zdalne URL .jar/.jnlp
CloudTrail (S3 data events)GetObjectJeśli organizacja hostowała .jar/.jnlp — nieoczekiwane pobrania/UA z Java 1.7Wymaga włączonych data events.
KEV statusCVE figuruje w CISA KEV (znana eksploatacja)Odniesienie przez NVD.

Detekcja (praktyczne reguły)

Sigma (Sysmon — Java spawn + post‑exploitation shell)

title: Java Plugin Spawns Suspicious Shell (CVE-2013-0422 Context)
id: 6f1a2a0c-5a0e-4bde-9d1c-0422a7java
status: experimental
description: Wykrywa łańcuch browser→java/jp2launcher→shell po wizycie na stronie (drive-by).
author: Badacz CVE
logsource:
  product: windows
  category: process_creation
detection:
  selection_parent:
    ParentImage|endswith:
      - '\chrome.exe'
      - '\iexplore.exe'
      - '\firefox.exe'
      - '\msedge.exe'
  selection_java:
    Image|endswith:
      - '\java.exe'
      - '\javaw.exe'
      - '\jp2launcher.exe'
  selection_shell:
    CommandLine|contains:
      - 'cmd.exe'
      - 'powershell.exe'
      - 'wscript.exe'
      - 'mshta.exe'
  condition: selection_parent and selection_java and selection_shell
fields:
  - Image
  - ParentImage
  - CommandLine
  - ProcessGuid
  - ParentProcessGuid
falsepositives:
  - Legit applet/JNLP uruchamiający narzędzia systemowe (rzadkie)
level: high
tags:
  - attack.t1189
  - attack.t1203
  - cve.2013-0422

Sigma (Sysmon — podejrzane połączenia java.exe)

title: Java Process Network Activity To Untrusted Domains
id: 8b0f7c87-8d07-4a1b-9f77-jar-net
status: experimental
logsource:
  product: windows
  category: network_connection
detection:
  selection:
    Image|endswith:
      - '\java.exe'
      - '\javaw.exe'
    DestinationPort:
      - 80
      - 443
  filter_corp_domains:
    DestinationHostname|endswith:
      - '.corp.local'
      - '.trusted.example'
  condition: selection and not filter_corp_domains
level: medium
tags:
  - attack.t1189
  - attack.t1203

Splunk (SPL)

index=winevent* (EventCode=4688 OR sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1)
| eval parent=coalesce(ParentImage,ProcessGuidParent,ParentProcessName)
| search parent IN ("*\\chrome.exe","*\\iexplore.exe","*\\firefox.exe","*\\msedge.exe")
| search Image IN ("*\\java.exe","*\\javaw.exe","*\\jp2launcher.exe")
| stats earliest(_time) as first_seen, values(CommandLine) values(ParentCommandLine) by host, Image, parent, ProcessId
| join type=left host, ProcessId [ search index=winevent* EventCode IN (4688,1) Image IN ("*\\cmd.exe","*\\powershell.exe","*\\wscript.exe","*\\mshta.exe") | table host, ParentProcessId, Image, CommandLine, _time ]
| sort - first_seen

KQL (Microsoft 365 Defender – Advanced Hunting)

let browsers = dynamic(["chrome.exe","iexplore.exe","firefox.exe","msedge.exe"]);
let shells = dynamic(["cmd.exe","powershell.exe","wscript.exe","mshta.exe"]);
DeviceProcessEvents
| where Timestamp > ago(7d)
| where FileName in~ ("java.exe","javaw.exe","jp2launcher.exe")
| where InitiatingProcessFileName in~ (browsers)
| join kind=leftouter (
    DeviceProcessEvents
    | where Timestamp > ago(7d)
    | where InitiatingProcessFileName in~ ("java.exe","javaw.exe")
    | where FileName in~ (shells)
    | project DeviceId, ShellTime=Timestamp, FileName, ProcessCommandLine, InitiatingProcessId
) on DeviceId, InitiatingProcessId
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine, RemoteUrl

CloudTrail (CloudWatch Logs Insights — S3 data events)

Uwaga: tylko gdy masz S3 data events. Szuka pobrań .jar/.jnlp z User-Agent zawierającym „Java”.

fields @timestamp, eventSource, eventName, sourceIPAddress, userAgent, requestParameters.bucketName as bucket, requestParameters.key as key
| filter eventSource = "s3.amazonaws.com" and eventName = "GetObject"
| filter key like /(\.jar|\.jnlp)$/i
| filter userAgent like /Java/i
| sort @timestamp desc

Elastic EQL

sequence by host.id with maxspan=5m
  [ process where event.action == "start" and
      process.name in ("chrome.exe","iexplore.exe","firefox.exe","msedge.exe") ]
  [ process where event.action == "start" and
      process.name in ("java.exe","javaw.exe","jp2launcher.exe") and
      process.parent.name in ("chrome.exe","iexplore.exe","firefox.exe","msedge.exe") ]
  [ process where event.action == "start" and
      process.parent.name in ("java.exe","javaw.exe") and
      process.name in ("cmd.exe","powershell.exe","wscript.exe","mshta.exe") ]

Heurystyki / korelacje

  • Korelacja czasu: pobranie *.jar/*.jnlp w proxy/DNS ±30s → java.exe/javaw.exe → shell.
  • User‑Agent / MIME: Java/1.7.0_10 i application/java-archive z domen o niskiej reputacji.
  • Ścieżki plików: nowe pliki w %AppData%\ po uruchomieniu java.exe.
  • Rzadkie procesy potomne: Java rzadko powinna uruchamiać interpreter poleceń na stacjach użytkowników.
  • Zbieżność z KEV: priorytetyzuj alerty dla CVE na liście Known Exploited Vulnerabilities.

False positives / tuning

  • Starsze aplikacje intranetowe oparte na appletach/JNLP (bankowość/SCADA/HCM). Dodaj allowlist domen i ścieżek aplikacji.
  • Dev‑tooling (Maven/Gradle) – rozpoznaj przez parametry linii poleceń i katalog roboczy.
  • Zamiast wyłączać reguły, dookreśl łańcuch (browser→java→shell) lub warunki (spoza strefy zaufanej, brak podpisu binariów).

Playbook reagowania (IR)

  1. Triage & izolacja: odłącz host, zabezpiecz RAM/dysk.
  2. Zbieranie artefaktów:
    • EDR, Sysmon, Windows Security; cache przeglądarek; katalog …\LocalLow\Sun\Java\Deployment\.
  3. Łowy zależne od CVE: wyszukaj łańcuch browser→java→shell, pliki .jar/.jnlp, anomalie DNS.
  4. Usunięcie wektora: odinstaluj/wyłącz Javę w przeglądarce, wymuś JRE ≥ 7u11 (historycznie; dziś → brak pluginu) i politykę High.
  5. Analiza dropperów/persistencji: Autoruns (Run/RunOnce), Scheduled Tasks, %ProgramData%/%AppData%.
  6. Blokady: domeny/URL/sha256 w proxy/EDR; reguły w NGFW.
  7. Komunikacja i lessons learned: wytyczne dla użytkowników, polityki usunięcia legacy‑Javy.

Przykłady z kampanii / case studies

  • Blackhole/Nuclear Pack (styczeń 2013): szybka integracja exploita 0‑day CVE‑2013‑0422, masowe drive‑by.
  • Reakcja dostawcy: Oracle Security Alert z 13 stycznia 2013 r., podniesienie domyślnego poziomu bezpieczeństwa na High i publikacja 7u11 (poza cyklem).

Lab (bezpieczne testy) — przykładowe komendy

Wyłącznie w izolowanym labie. Poniższe testy nie eksploatują CVE‑2013‑0422 — służą do walidacji detekcji (łańcuch procesów i artefakty sieciowe).

A. Symulacja łańcucha browser → java → shell

  1. Otwórz przeglądarkę, następnie uruchom Java w trybie „klienta” (symulacja): # uruchamia jawnie 'java.exe' z benignym poleceniem do wygenerowania telemetrii & "$Env:ProgramFiles\Java\jre*\bin\java.exe" -cp . -Dtest.run=1 -jar .\benign.jar 2>$null
  2. Zastępczo (bez JAR): Start-Process -FilePath "$Env:ProgramFiles\Java\jre*\bin\javaw.exe" -ArgumentList "-version"
  3. Uruchomioną telemetrię „shella” zasymuluj (bezpiecznie): # symulacja potomka (cmd) po Java — tylko test logów Start-Process -FilePath "$Env:SystemRoot\System32\cmd.exe" -ArgumentList "/c", "echo test-from-java"

Cel: sprawdzić, czy reguły z sekcji 7 flagują procesy potomne po aktywności Java.

B. Symulacja artefaktu sieciowego (.jar/.jnlp)

  1. Na hoście labowym: python3 -m http.server 8000
  2. Pobierz plik test.jar przez przeglądarkę lub Invoke-WebRequest – wygeneruje log proxy/DNS/MDE: iwr http://<twoj_lab_host>:8000/test.jar -OutFile $env:TEMP\test.jar

C. Walidacja logów Java Deployment (Windows)
Sprawdź obecność deployment.properties w:
%USERPROFILE%\AppData\LocalLow\Sun\Java\Deployment\deployment.properties.


Mapowania (Mitigations, powiązane techniki)

Mitigations (ATT&CK):

  • M1051 — Update Software (aktualizacje/łatki).
    • M1042 — Disable or Remove Feature or Program (wyłączenie wtyczki Java, blokada JNLP).
    • M1040 — Behavior Prevention on Endpoint (EDR/ASR).
    • M1037 — Filter Network Traffic (blok MIME/TLD/URL).
    • M1030 — Network Segmentation (izolacja stacji wysokiego ryzyka/VDI).

Powiązane techniki ATT&CK (przykłady):

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

Źródła / dalsza lektura

  • Oracle Security Alert for CVE‑2013‑0422 (opis, wersje dotknięte, CVSS 10.0, domyślny poziom High, data 2013‑01‑13). (Oracle)
  • NVD CVE‑2013‑0422 (szczegóły MBean/Reflection, KEV, metryki). (NVD)
  • ESET WeLiveSecurity (2013‑01‑11) — Blackhole/Nuclear zawierają exploit 0‑day na CVE‑2013‑0422. (We Live Security)
  • KrebsOnSecurity (2013‑01‑10 i 2013‑01‑13) — informacja o 0‑day w crimeware oraz publikacja poprawki Oracle. (Krebs on Security)
  • Microsoft Security Intelligence — klasyfikacje Exploit:Java/CVE‑2013‑0422 i wersje dotknięte. (Microsoft)
  • Tenable (Nessus) — wzmianka o wektorze MBeanInstantiator.findClass. (Tenable®)
  • MITRE ATT&CK — T1189, T1203, T1204.001; ATT&CK v18 update. (MITRE ATT&CK)
  • Lokalizacje plików Java Deployment (Oracle docs). (Oracle Docs)

Checklisty dla SOC / CISO

SOC (operacyjna):

  • Korelacja: proxy/DNS *.jar/*.jnlpjava[w].exe ↔ shell (Sysmon 1/3 + Security 4688).
  • Hunting MDE: InitiatingProcessFileName in (chrome.exe, iexplore.exe, firefox.exe, msedge.exe)FileName in (java.exe, javaw.exe, jp2launcher.exe) ∧ (dziecko = cmd/powershell/wscript/mshta).
  • Sprawdź …\LocalLow\Sun\Java\Deployment\ na artefakty (czas/moduły).
  • Wzorce User‑Agent: Java/1.7.0_10; MIME application/java-archive / application/x-java-jnlp-file.
  • Skan hostów pod kątem dropperów w %AppData% i autostartu.

CISO (strategiczna):

  • Eliminacja Javy w przeglądarkach (M1042) + polityka click‑to‑run.
  • Patch management i wycofanie legacy (M1051).
  • Wymuszenie EDR/ASR (M1040) i filtracji na brzegu (M1037).
  • Segmentacja (M1030) dla stacji wysokiego ryzyka.
  • Priorytetyzacja KEV i regularne tabletopy „drive‑by → execution”.

Uwaga końcowa: Oracle wskazuje, że podatność dotyczyła tylko klientowych wdrożeń Javy (applet/JNLP), a nie serwerów czy samodzielnych aplikacji Java; poprawka 7u11 wprowadziła High jako domyślny poziom bezpieczeństwa. Dziś najlepszą praktyką jest całkowite usunięcie lub odseparowanie wtyczki Java z przeglądarek użytkowników.

CVE-2013-0074 — Microsoft Silverlight “Double Dereference”

TL;DR

Luka w Silverlight 5 (tzw. Double Dereference) umożliwia zdalne wykonanie kodu po odwiedzeniu strony z przygotowaną aplikacją Silverlight. W praktyce wpisuje się to w Drive‑by Compromise (T1189) i Exploitation for Client Execution (T1203). Naprawa: aktualizacja do 5.1.20125.0 lub — lepiej — usunięcie Silverlight (EOL 2021‑10‑12). Detekcja: procesy‑dzieci powłok uruchamiane przez iexplore.exe/firefox.exe po załadowaniu npctrl.dll, zdarzenia Sysmon (EID 1/7), detekcje Defendera.


Krótka definicja techniczna

CVE‑2013‑0074 to błąd nieprawidłowej walidacji wskaźników podczas renderowania obiektu HTML w Silverlight 5, który pozwala napastnikowi na RCE poprzez złośliwą aplikację Silverlight osadzoną na stronie WWW (w kontekście uprawnień aktualnego użytkownika).


Gdzie występuje / przykłady platform

  • Windows (klienci i serwery) z zainstalowanym Silverlight/ActiveX lub NPAPI pluginem (IE/Firefox historycznie).
  • macOS (Safari/Firefox – historycznie) z Silverlight 5 / Developer Runtime.
  • Przeglądarki: wsparcie dla Silverlight zostało wycofane (EOL 2021‑10‑12; Chrome od 2015, Firefox od 2017), co redukuje wektor, ale nie eliminuje ryzyka na hostach legacy.

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

Atak wymaga nakłonienia użytkownika do odwiedzenia strony WWW zawierającej złośliwą aplikację Silverlight. Wtyczka ładuje npctrl.dll i komponenty Silverlight, po czym błąd double dereference w mechanizmie renderowania HTML umożliwia kontrolę przebiegu wykonywania i wykonanie kodu z uprawnieniami użytkownika. W 2013–2015 luka była chętnie wykorzystywana w exploit kitach (często łączona z innymi błędami Silverlight, np. do obejścia mitigacji).

Dlaczego skuteczna:

  • Łańcuch drive‑by: pojedyncza wizyta na stronie/baner malvertising.
  • Kontekst użytkownika (często lokalny admin w środowiskach legacy) zwiększa wpływ – instalacja oprogramowania, modyfikacja danych, tworzenie kont.
  • W tamtym okresie szeroka obecność Silverlight (np. w środowiskach korporacyjnych), mimo że obecnie produkt jest EOL.

Artefakty i logi

ŹródłoEID / TypPrzykładowy artefakt / poleCo patrzećCloudTrailK8s auditM365 ops
SysmonEID 1 – Process CreateParentImage=iexplore.exe/firefox.exeImage=cmd.exe,powershell.exe,wscript.exe,mshta.exe,rundll32.exePotencjalne wykonanie powłoki/LOLBins z przeglądarkin/dn/dn/d
SysmonEID 7 – Image LoadedProcess=iexplore.exe ładuje npctrl.dll/agcore.dllŁadowanie pluginu Silverlight w sesji ofiaryn/dn/dn/d
Windows DefenderEID 1116 (Operational)Threat Name=Exploit:MSIL/CVE-2013-0074 (przykładowo)Detekcja AV specyficzna dla próby eksploatacjin/dn/dn/d
Aplikacja (Application log)Event ID 1000/1001Faulting module=npctrl.dllAwaria wtyczki po nieudanym exploicien/dn/dn/d
FS/artefaktyC:\Program Files (x86)\Microsoft Silverlight\ (np. sllauncher.exe, npctrl.dll), oraz HKLM\SOFTWARE\Microsoft\Silverlight (klucz Version)Inwentaryzacja wersji, obecność komponentówn/dn/dn/d

Detekcja (praktyczne reguły)

Sigma (Sysmon, podejrzane dzieci przeglądarki po załadowaniu Silverlight)

title: Possible Silverlight Exploitation (CVE-2013-0074) - Browser Spawns LOLBins
id: d3f2a0a8-2c4a-4a2a-9b4b-7b7f7c74c007
status: experimental
description: Wykrywa podejrzane procesy potomne powłok/LOLBins tworzone przez przeglądarki, co może wskazywać na wykorzystanie luki w Silverlight.
author: Badacz CVE
logsource:
  product: windows
  service: sysmon
  definition: 'EventID 1 (Process Create)'
detection:
  selection_parent:
    ParentImage|endswith:
      - '\iexplore.exe'
      - '\firefox.exe'
      - '\chrome.exe'
      - '\plugin-container.exe'
  selection_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\mshta.exe'
      - '\rundll32.exe'
  condition: selection_parent and selection_child
falsepositives:
  - Aktualizacje/wtyczki legacy uruchamiające instalatory (rzadkie)
level: high
tags:
  - attack.t1189
  - attack.t1203
  - cve.2013-0074

Splunk (SPL, Sysmon)

index=sysmon sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
| eval parent=lower(parent_image), child=lower(process_image)
| search parent IN ("*\\iexplore.exe","*\\firefox.exe","*\\chrome.exe","*\\plugin-container.exe")
| search child IN ("*\\cmd.exe","*\\powershell.exe","*\\wscript.exe","*\\cscript.exe","*\\mshta.exe","*\\rundll32.exe")
| stats count min(_time) as first_seen max(_time) as last_seen by host, parent, child, process_command_line, user

KQL (Microsoft Defender XDR / MDE)

DeviceProcessEvents
| where InitiatingProcessFileName in~ ("iexplore.exe","firefox.exe","chrome.exe","plugin-container.exe")
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe")
| project Timestamp, DeviceName, AccountName, InitiatingProcessFileName, FileName, FolderPath, ProcessCommandLine, InitiatingProcessCommandLine

CloudTrail query (AWS)

Nie dotyczy – atak jest kliencki. Jeśli jednak Windows‑logi są forwardowane do CloudWatch Logs, użyj Logs Insights do wyszukania sllauncher.exe, npctrl.dll lub wzorca z powyższych reguł.

Elastic / EQL

process where
  process.parent.name in ("iexplore.exe","firefox.exe","chrome.exe","plugin-container.exe") and
  process.name in ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe")

Uwaga operacyjna: jeżeli logujesz Sysmon EID 7, możesz dodać korelację „ImageLoad npctrl.dll + proces‑dziecko przeglądarki w oknie kilku sekund”.


Heurystyki / korelacje

  • Korelacja fazy ładowania pluginu: ImageLoad(npctrl.dll) → w krótkim czasie dziecko przeglądarki będące LOLBin/skript hostem.
  • Exploit‑kit telemetry: wizyty z reklam/malvertising + wywołania do znanych domen EK; pomocne sygnatury IPS dla CVE‑2013‑0074.
  • AV/EDR: wykrycie Exploit:MSIL/CVE‑2013‑0074 i pokrewne sygnatury Defendera powiązać z sesją przeglądarki i artefaktami Silverlight.

False positives / tuning

  • Legitne procesy‑dzieci przeglądarki (instalatory pluginów, helpery) – dziś rzadkie.
  • Środowiska z własnymi aplikacjami Silverlight OOB (sllauncher.exe) – whitelistuj znane ścieżki i podpisy.
  • Ogranicz zakres EID 7 do procesów przeglądarek (filtrowanie Sysmon), by zbić szum.

Playbook reagowania (kroki + komendy)

  1. Identyfikacja i skoping
  • Inwentaryzuj hosty z Silverlight i wersję: Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Silverlight','HKLM:\SOFTWARE\WOW6432Node\Microsoft\Silverlight' -ErrorAction SilentlyContinue | Select-Object PSPath, Version Lub sprawdź wersję pliku: (Get-Item 'C:\Program Files (x86)\Microsoft Silverlight\sllauncher.exe').VersionInfo Wersja ≥ 5.1.20125.0 nie jest podatna (dla 2013 r.); rekomendowane całkowite usunięcie (EOL).
  1. Tymczasowe ograniczenia (legacy IE/Firefox)
  • Kill‑bit ActiveX (IE): Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{DFEAF541-F3E1-4C24-ACAC-99C30715084A}] "Compatibility Flags"=dword:00000400 (odwrócenie – usuń wpis).
  • Wyłączenie NPAPI wpisu Mozilli (historycznie): usuń klucz HKLM\SOFTWARE\MozillaPlugins\@Microsoft.com/NpCtrl,version=1.0.
  1. Usunięcie Silverlight (zalecane, EOL)
  • Cichy uninstall przez MSI (przykładowy GUID spotykany w praktyce): msiexec /x {89F4137D-6C26-4A84-BDB8-2E5A4BB71E00} /qn /norestart (Zalecane: pobrać właściwy GUID z kluczy ...CurrentVersion\Uninstall\ przed wykonaniem).
  1. Triage i dochodzenie
  • Przejrzyj Sysmon EID 1/7 w oknie czasowym alertu; wypunktuj procesy‑dzieci, DLL‑e pluginu i artefakty dyskowe.
  • Sprawdź log Defendera EID 1116 i artefakty kwarantanny.
  • Izoluj host, jeśli doszło do wykonania kodu; uruchom playbook Lateral Movement/Privilege Escalation.
  1. Remediacja i hardening
  • Upewnij się, że Silverlight jest odinstalowany w całej organizacji; w GPO/WDAC zablokuj sllauncher.exe i ActiveX CLSID.
  • Komunikacja do użytkowników nt. EOL i ryzyk.

Przykłady z kampanii / case studies

  • Exploit‑kity (np. 2014–2015) wykorzystywały CVE‑2013‑0074 w łańcuchach drive‑by; nierzadko łączone z innymi błędami Silverlight dla obejść (ROP).
  • W momencie publikacji biuletynu MS13‑022 brakowało doniesień in the wild, jednak szybko pojawiły się sigantury IPS i artefakty w IR.

Lab (bezpieczne testy) — przykładowe komendy

Wyłącznie w izolowanym labie. Celem jest weryfikacja detekcji, nie eksploatacji.

  1. Generowanie EID 7 (ImageLoad) i EID 1 (ProcessCreate):
    • Uruchom przeglądarkę IE na hoście labowym z zainstalowanym Silverlight (legacy).
    • Wejdź na wewnętrzną, nieszkodliwą stronę z aplikacją Silverlight (np. hello‑world firmy).
    • Równolegle obserwuj Microsoft-Windows-Sysmon/Operational dla ImageLoad npctrl.dll oraz ewentualnych procesów‑dzieci.
  2. Symulacja uruchomienia komponentu OOB: "C:\Program Files (x86)\Microsoft Silverlight\sllauncher.exe" /? -> powstaje EID 1 do przetestowania pipeline (alert powinien zostać benign‑closed).
  3. Walidacja reguły Sigma lokalnie: wyeksportuj logi Sysmon do pliku i przetestuj regułę narzędziem sigmac/SilkETW (dowolny standardowy workflow).

Mapowania (Mitigations, Powiązane techniki)

Mitigations (ATT&CK Enterprise):

  • M1042 – Disable or Remove Feature or Program: odinstalowanie Silverlight / zablokowanie ActiveX/NPAPI.
  • M1051 – Update Software: jeśli utrzymujesz hosty legacy – minimum to 5.1.20125.0 (historycznie), ale preferowane całkowite usunięcie (EOL 2021).
  • M1040 – Behavior Prevention on Endpoint: EDR/Exploit Guard, blokady zachowań (np. powłoki potomne przeglądarki).

Powiązane techniki ATT&CK:

  • T1189 – Drive‑by Compromise (Initial Access)
  • T1203 – Exploitation for Client Execution (Execution)

Źródła / dalsza literatura

  • NVD: opis, CVSS, data modyfikacji wpisu. (NVD)
  • MS13‑022 / KB2814124: wersje narażone, ścieżki sprawdzenia wersji, workarounds (kill‑bit, NPAPI). (Microsoft Learn)
  • CVE.org: wpis CVE‑2013‑0074. (CVE)
  • Zscaler – Exploit kits & Silverlight: tło użycia w EK (CVE‑2013‑0074, bypassy). (Zscaler)
  • SANS ISC Diary (Black Tuesday 2013): kontekst biuletynów, wstępna dostępność exploitów. (SANS Internet Storm Center)
  • Broadcom/Symantec IPS sygnatury (CVE‑2013‑0074): wskaźniki sieciowe. (Broadcom)
  • Microsoft Defender – nazwy detekcji: Exploit:MSIL/CVE‑2013‑0074 / Win32. (Microsoft)
  • Silverlight EOL (Microsoft Lifecycle): koniec wsparcia 2021‑10‑12. (Microsoft Learn)
  • Sysmon – dokumentacja EID 1/7. (Microsoft Learn)

Checklisty dla SOC / CISO

SOC:

  • Włączone i zcentralizowane logi Sysmon EID 1/7 dla procesów przeglądarek.
  • Reguły: „browser → LOLBins” + korelacja z ImageLoad(npctrl.dll).
  • Monitoruj Defender EID 1116 i automatyczne case’y IR.
  • Blokady w EDR: uruchamianie powłok z przeglądarek, wstrzyknięcia, ROP.

CISO / SecEng:

  • Odinstaluj Silverlight w całej organizacji (EOL).
  • Jeśli absolutnie potrzebny – izolacja VDI i reguły AppControl/WDAC.
  • Polityki aktualizacji/whitelisting pluginów (zablokowane ActiveX/NPAPI).
  • Przegląd zgodności: hosty legacy, stacje Kiosk/OT z instalacją Silverlight.

Uwaga końcowa: Silverlight jest wycofany od 2021‑10‑12; najsilniejszą kontrolą jest pełne usunięcie komponentu i blokady pluginów. Pozostałe hosty traktować jako techniczne długi ryzyka i izolować.

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