
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
- 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 komendy
- 12 Mapowania (Mitigations, powiązane techniki)
- 13 Źródła / dalsza literatura
- 14 Checklisty dla SOC / CISO
TL;DR
CVE‑2015‑5122 to krytyczna luka use‑after‑free w Adobe Flash Player (klasa DisplayObject/właściwość opaqueBackground), aktywnie wykorzystywana w 2015 r. m.in. przez zestawy exploitów (Angler, RIG, Neutrino) i kampanie watering‑hole. Daje zdalne wykonanie kodu po wizycie na złośliwej lub skompromitowanej stronie (łańcuch T1189 → T1203), typowo kończąc się uruchomieniem interpretera skryptów/LOLBin z procesu przeglądarki. Dziś Flash jest EOL i globalnie blokowany, ale detekcje nadal mają wartość do wykrywania analogicznych łańcuchów klient‑strona. Patch dla Flash: 18.0.0.209 (APSB15‑18).
Krótka definicja techniczna
CVE‑2015‑5122 to błąd Use‑After‑Free (CWE‑416) w implementacji ActionScript 3 (AS3) Adobe Flash Player, który przy specjalnie spreparowanej zawartości SWF prowadzi do korupcji pamięci i zdalnego wykonania kodu bez interakcji użytkownika poza odwiedzeniem strony. Dotyczy wersji 13.x–18.0.0.203 (Windows/macOS), 11.x–11.2.202.481 (Linux) i Chrome‑Linux do 18.0.0.204; podatność była wykorzystywana w naturze w lipcu 2015 r. (CVSS v3.1: 9.8).
Gdzie występuje / przykłady platform
- Windows / macOS / Linux (endpointy z przeglądarkami) — wektorem jest załadowanie wtyczki Flash (PPAPI/NPAPI/ActiveX) i wykonanie SWF z exploitami; historycznie obserwowano ładowanie modułów
pepflashplayer.dll,NPSWF*.dll, procesy pokrewne (np. plugin‑container.exe / FlashPlayerPlugin_.exe). - Active Directory / VDI — ryzyko lateralne, jeśli stacje domenowe/VDI mają przestarzały Flash.
- Chmury (AWS/Azure/GCP), K8s, ESXi, M365 — sama podatność dotyczy klienta, ale artefakty sieciowe (pobrania
.swfz S3/CloudFront) mogą być widoczne w telemetrych chmurowych organizacji hostującej treści. - Stan obecny — Adobe zakończyło wsparcie z końcem 2020 r. i blokuje uruchamianie Flash od 12 stycznia 2021 r., lecz „zombie‑instalacje” mogą nadal istnieć w niszach środowisk.
Szczegółowy opis techniki (jak działa, cele, dlaczego skuteczna)
Atakujący dostarcza spreparowany plik SWF, który po załadowaniu przez wtyczkę Flash wyzwala UAF w obsłudze opaqueBackground w klasie DisplayObject. Stage shellcode/ROP przejmuje kontrolę w procesie wtyczki/przeglądarki i uruchamia trwały stage‑2 (np. interpreter skryptów lub „LOLBin”), często po cichu ściągając ładunek. W 2015 r. CVE‑2015‑5122 błyskawicznie trafił do zestawów exploitów (Angler, RIG, Neutrino, Magnitude) i był użyty w watering‑hole przeciw firmie z sektora lotniczego — właśnie dlatego technika była wyjątkowo skuteczna w łańcuchach malvertising i „wejdź‑i‑zainfekuj”.
Łańcuch ATT&CK (częsty):
T1189 (Drive‑by) → T1203 (Exploitation for Client Execution) → uruchomienie interpretera/LOLBin (np. powershell.exe, mshta.exe, rundll32.exe) → T1105 (Ingress Tool Transfer)/C2. (Wzorzec zgodny z analitykami/detection strategies MITRE v18).
Łatanie i reakcje ekosystemu (2015): Adobe wydało poprawkę APSB15‑18 podnosząc Flash do 18.0.0.209 (i 13.0.0.305). Mozilla tymczasowo „soft‑blockowała” wersje do 18.0.0.203.
Artefakty i logi
| Źródło | Artefakt / zdarzenie | Wartość dla detekcji |
|---|---|---|
| Windows Sysmon | EID 1 Process Create – dziecko powershell.exe, wscript.exe, mshta.exe, rundll32.exe, regsvr32.exe, cmd.exe, msiexec.exe uruchomione przez chrome.exe/msedge.exe/iexplore.exe/firefox.exe/plugin-container.exe/FlashPlayerPlugin_*.exe | Silny sygnał post‑eksploitacyjny (client → OS). |
| EID 3 Network Connection – po podejrzanym procesie (C2/transfer) | Korelacja czasowa po EID 1. | |
EID 7 Image Loaded – załadowanie pepflashplayer.dll / NPSWF*.dll | Kontekst historyczny (Flash w systemie). | |
EID 11 FileCreate – drop w %TEMP%/%APPDATA% (EXE/DLL/SCT/VBS) | Artefakt płatka. | |
| EID 22 DNS Query – zapytania do rzadkich domen chwilę po wizycie WWW | Częsty sygnał EK/C2. | |
| Windows Security | 4688 Process Creation | Alternatywa gdy brak Sysmon. |
| Przeglądarka/OS | Crash/WER Event 1001 po błędzie wtyczki | UAF bywa poprzedzony niestabilnością. |
| Proxy/DNS/NGFW | Żądania *.swf, nietypowe przekierowania, malvertising | Kontekst T1189. |
| AWS CloudTrail (Data events/S3) | GetObject na kluczach *.swf z publicznych bucketów (gdy Twoja organizacja hostuje treści) | Do skanów higieny/ekspozycji. |
| K8s audit / M365 | [nie dotyczy] | Luka dotyczy klienta, nie kontrol‑plane/SaaS. |
Detekcja (praktyczne reguły)
Sigma (Windows / process_creation)
title: Browser/Flash Spawning Script Interpreters Or LOLBins
id: 4d9b8f83-7c2b-45b1-9e4b-ffb1b7b31012
status: stable
description: Wykrywa uruchomienie interpreterów/LOLBinów jako dziecka procesu przeglądarki/wtyczki Flash (łańcuch po T1203/CVE-2015-5122).
author: Badacz CVE
logsource:
category: process_creation
product: windows
detection:
parent_browsers:
ParentImage|endswith:
- '\chrome.exe'
- '\msedge.exe'
- '\iexplore.exe'
- '\firefox.exe'
- '\plugin-container.exe'
- '\FlashPlayerPlugin_32.exe'
- '\FlashPlayerPlugin_64.exe'
suspicious_children:
Image|endswith:
- '\powershell.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\rundll32.exe'
- '\regsvr32.exe'
- '\cmd.exe'
- '\bitsadmin.exe'
- '\certutil.exe'
- '\msiexec.exe'
condition: parent_browsers and suspicious_children
fields:
- User
- CommandLine
- ParentCommandLine
- Image
- ParentImage
- ProcessGuid
- ParentProcessGuid
falsepositives:
- Aktualizacje/instalatory uruchamiane z przeglądarki przez użytkownika
level: high
tags:
- attack.t1203
- attack.t1189
Splunk (Sysmon)
index=sysmon sourcetype="XmlWinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode=1
| eval parent=lower(coalesce(ParentImage,ParentProcessName)), child=lower(Image)
| where like(parent,"%\\chrome.exe") OR like(parent,"%\\msedge.exe") OR like(parent,"%\\iexplore.exe")
OR like(parent,"%\\firefox.exe") OR like(parent,"%\\plugin-container.exe") OR like(parent,"%\\flashplayerplugin%")
| where child like("%\\powershell.exe") OR child like("%\\wscript.exe") OR child like("%\\cscript.exe")
OR child like("%\\mshta.exe") OR child like("%\\rundll32.exe") OR child like("%\\regsvr32.exe")
OR child like("%\\cmd.exe") OR child like("%\\bitsadmin.exe") OR child like("%\\certutil.exe") OR child like("%\\msiexec.exe")
| stats count min(_time) as first_seen max(_time) as last_seen values(CommandLine) as child_cmd by host, user, parent, child, ParentCommandLine, ProcessGuid, ParentProcessGuid
| convert ctime(first_seen) ctime(last_seen)
KQL (Microsoft Defender for Endpoint / Sentinel)
DeviceProcessEvents
| where Timestamp > ago(14d)
| where InitiatingProcessFileName in~ ("chrome.exe","msedge.exe","iexplore.exe","firefox.exe","plugin-container.exe",
"FlashPlayerPlugin_32.exe","FlashPlayerPlugin_64.exe")
| where FileName in~ ("powershell.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe",
"regsvr32.exe","cmd.exe","bitsadmin.exe","certutil.exe","msiexec.exe")
| summarize cnt=count(), first=min(Timestamp), last=max(Timestamp),
make_set(ProcessCommandLine), make_set(InitiatingProcessCommandLine)
by DeviceName, AccountName, FileName, InitiatingProcessFileName
CloudTrail (S3 data events, higiena własnych zasobów)
Szuka pobrań plików
.swfz Twoich bucketów (kontrola ekspozycji/legacy).
fields @timestamp, eventName, requestParameters.bucketName as bucket, requestParameters.key as key, sourceIPAddress, userAgent
| filter eventSource = "s3.amazonaws.com" and eventName = "GetObject"
| filter key like /(?i)\.swf$/
| sort @timestamp desc
Elastic / EQL
process where
process.parent.name in ("chrome.exe","msedge.exe","iexplore.exe","firefox.exe","plugin-container.exe",
"FlashPlayerPlugin_32.exe","FlashPlayerPlugin_64.exe") and
process.name in ("powershell.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe",
"regsvr32.exe","cmd.exe","bitsadmin.exe","certutil.exe","msiexec.exe")
Heurystyki / korelacje (co łączyć)
- Krótki łańcuch czasowy: wizytę WWW (proxy/DNS) → child process z przeglądarki → ruch wychodzący/C2 → drop w
%TEMP%. (Wzorzec MITRE Detection Strategies dla technik klienckich). - Rzadkie moduły: ładowanie starych bibliotek Flash (
NPSWF*,pepflashplayer.dll) na hostach, gdzie Flash nie powinien istnieć. - Domeny jednorazowe/malvertising: przekierowania, iFrame, 302‑cushioning — znane z EK (Angler).
- WER/crashe po wtyczce tuż przed spawnem interpretera.
False positives / tuning
- Instalacje/aktualizacje uruchamiane z przeglądarki (np. msiexec.exe po pobraniu legalnego instalatora).
- Skrypty administracyjne wywoływane z web‑portali korporacyjnych (Self‑Service).
- Tuning: zawęź do parent=browser/plugin + dziecko z listy + CommandLine z wzorcami web‑download (
http,-enc,-w hidden,urlmon,bitsadmin,certutil -urlcache -split) i korelacja DNS/proxy w ±2 min.
Playbook reagowania (IR)
- Triage & izolacja hosta (EDR network containment).
- Zabezpieczenie artefaktów:
- Zrzut pamięci podejrzanych procesów (przeglądarka/child).
- Logi: Sysmon 1/3/11/22, WER 1001, proxy/DNS; Prefetch dla child.
- Szybkie IOC sweep: domeny/URL z proxy, hash dropu, ścieżki
%TEMP%/%APPDATA%. - Eradykacja: usuń pozostałości, zablokuj domeny/IP, wymuś aktualizację przeglądarek, odinstaluj Flash (jeśli gdzieś jeszcze jest). Adobe blokuje uruchamianie od 12.01.2021 — resztki usunąć.
- Higiena systemowa: ASR/EDR polityki block browser child, blokada wykonywania w
%TEMP%. - Post‑incident: przegląd polityk web (bloki
*.swf), inwentaryzacja legacy.
Przykłady z kampanii / case studies
- Watering‑hole na firmę lotniczą (lipiec 2015): strona ofiary serwowała exploit na CVE‑2015‑5122; po eksploatacji instalowano backdoor IsSpace.
- Exploit‑kity (2015): 0‑day z wycieku Hacking Team trafił błyskawicznie do Angler/Neutrino/RIG/Magnitude (malvertising, przekierowania).
- Reakcje vendorów: aktualizacja Adobe APSB15‑18 (18.0.0.209); Mozilla czasowo blokowała starsze wersje; CISA dodała CVE‑2015‑5122 do KEV.
Lab (bezpieczne testy) — przykładowe komendy
Wyłącznie w odseparowanym labie. Nie używamy prawdziwych exploitów. Celem jest walidacja detekcji łańcucha browser → child → network.
A. Szybki test detekcji (Windows)
- Otwórz przeglądarkę (np. Edge/Chrome), zostaw aktywne okno.
- W drugim oknie PowerShell uruchom „symulację dziecka” (bez złośliwości):
Start-Process -FilePath "powershell.exe" -ArgumentList "-NoLogo -NoProfile -Command whoami" -WindowStyle Hidden
Start-Process -FilePath "rundll32.exe" -ArgumentList "shell32.dll,Control_RunDLL" -WindowStyle Hidden
Ten test nie odtworzy rodzica=browser, ale pozwala przetestować parsowanie pól i konfigurację korelacji w SIEM/EDR (warunki z sekcji 7). Następnie tymczasowo wyświetl alerty „wszędzie”, aby potwierdzić, że reguły działają i dociśnij tuning do parent=browser.
B. Atomic Red Team — technika pokrewna (User Execution)
Zainstaluj Invoke-AtomicRedTeam i wykonaj bezpieczne atomiki dla T1204 (np. testy link/pliku nie ściągające malware) — cel: zobaczyć eventy procesowe i dopracować korelacje.
Set-ExecutionPolicy Bypass -Scope Process -Force
iwr https://raw.githubusercontent.com/redcanaryco/invoke-atomicredteam/master/install.ps1 | iex
Invoke-AtomicTest T1204.002 -ShowDetails -PromptForInputArgs
Dokumentacja i repozytoria: Atomic Red Team, Invoke-AtomicRedTeam.
C. Higiena legacy — skan resztek Flash
Sprawdź, czy na hostach nie ma katalogów C:\Windows\SysWOW64\Macromed\Flash\ lub starych OCX/DLL i usuń/wycofaj — Flash jest EOL i blokowany.
Mapowania (Mitigations, powiązane techniki)
Mitigations (MITRE):
- M1051 — Update Software (patch management przeglądarek/wtyczek; historycznie APSB15‑18).
- M1040 — Behavior Prevention on Endpoint (ASR/EDR: blok browser‑child).
- M1031 — Network Intrusion Prevention (IDS/IPS/secure web gateway; blokowanie
*.swf, wykrywanie przekierowań/ek). - M1017 — User Training (świadomość soc‑eng/malvertising).
Powiązane techniki ATT&CK:
- T1189 Drive‑by Compromise (malvertising, iFrame, redirect).
- T1204.001/002 User Execution: Malicious Link/File.
- T1105 Ingress Tool Transfer (pobranie ładunku po eksploatacji). (strona referencyjna ogólna)
Źródła / dalsza literatura
- NVD — opis CVE‑2015‑5122 (CWE‑416, zakres wersji, CVSS, „exploited in the wild”). (NVD)
- CERT/CC VU#338736 — opaqueBackground UAF, APSB15‑18, wersja naprawcza 18.0.0.209. (kb.cert.org)
- CISA KEV — wpis dla CVE‑2015‑5122. (NVD)
- MITRE ATT&CK T1203 / T1189 / T1204.* (opisy technik i detekcje). (MITRE ATT&CK)
- Palo Alto Networks Unit 42 — watering‑hole na aerospace z wykorzystaniem CVE‑2015‑5122. (Unit 42)
- Malwarebytes (J. Segura) — EK (Angler/RIG/Neutrino/Magnitude) przyjmują 0‑day Flash. (Malwarebytes)
- Keysight/analiza Angler EK — techniki przekierowań (302 cushioning, domain shadowing). (Keysight)
- Adobe — EOL/blokada Flash od 12.01.2021. (Adobe)
- Mozilla — blokowanie starych wersji Flash (soft‑block). (Mozilla Support)
- Trend Micro — podsumowanie EK w 2015 r. (dominacja Flash, malvertising). (www.trendmicro.com)
- ATT&CK v18 — info o wersji/aktualizacjach. (MITRE ATT&CK)
Checklisty dla SOC / CISO
SOC (operacyjne):
- Reguły z sekcji 7 wdrożone (Sigma/SPL/KQL/EQL) + korelacja proxy/DNS ±2 min.
- Alarm „browser → child (interpreter/LOLBin)” = high + auto‑contain host.
- Widoczność na WER/crashe pluginów i file drops w
%TEMP%. - Blokowanie
*.swfi legacy MIME w web‑gateway/NGFW. - Threat hunt: hosty z
pepflashplayer.dll/NPSWF*.dll.
CISO (strategiczne):
- Politycznie zabroniony Flash (potwierdzona deinstalacja; EOL).
- ASR/EDR: „Block Office/Browser child process” i „Block executable content from email/web.”
- Patch management (M1051) — gwarancja aktualnych przeglądarek; legacy wycofane.
- Program szkoleń użytkowników (malvertising, „click‑to‑play” historia).
Uwagi końcowe
Flash Player jest wyłączony i blokowany przez Adobe — jakiekolwiek pozostałości należy usuwać. Dzisiejsza wartość detekcyjna polega na rozpoznawaniu wzorca zachowań klient‑strona, który pozostaje aktualny dla nowych błędów RCE w przeglądarkach/wtyczkach.