CVE-2015-3113 — Adobe Flash Player RCE - Security Bez Tabu

CVE-2015-3113 — Adobe Flash Player RCE

TL;DR

Krytyczna luka w Adobe Flash Player (CVE‑2015‑3113) umożliwiała zdalne wykonanie kodu poprzez przepełnienie bufora na stercie, m.in. po wejściu na złośliwą stronę lub kliknięciu odsyłacza w kampanii phishingowej. Zero‑day wykorzystywany był w operacji Clandestine Wolf (APT3), z łańcuchem: e‑mail → profilowanie JS → załadowanie pliku SWF/FLV → ROP/DEP/ASLR bypass → zrzut backdoora (SHOTPUT). Detekcja: obserwuj pobrania .swf, procesy/załadowane moduły Flash oraz nietypowe dzieci procesów Flash (cmd/powershell/wscript). Ponieważ Flash jest EOL (12.2020), każde użycie Flash w 2025 r. jest co najmniej podejrzane.


Krótka definicja techniczna

CVE‑2015‑3113 to luka typu heap‑based buffer overflow w Adobe Flash Player (przed 13.0.0.296; 14.x–18.x < 18.0.0.194 dla Windows/OS X; Linux < 11.2.202.468), pozwalająca zdalnie wykonać kod przy przetwarzaniu specjalnie spreparowanych treści Flash; w czerwcu 2015 była aktywnie wykorzystywana na wolności.


Gdzie występuje / przykłady platform

  • Endpointy: Windows (IE/Edge Legacy/Chrome/Firefox), macOS (Safari/Firefox/Chrome), Linux (Firefox/Chromium – PPAPI/NPAPI).
  • Scenariusze ataku: phishing z linkiem do serwisu z exploitem, drive‑by po wejściu na zainfekowaną stronę; znane cele zawierały m.in. Windows 7 (IE) i Firefox na XP.
  • Stan dzisiaj: Flash Player zakończył życie 31.12.2020 (blokada uruchomienia od 12.01.2021) — użycie w sieci produkcyjnej to incydent ryzyka.

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

Kampania Operation Clandestine Wolf przypisywana APT3 wykorzystywała e‑maile z odsyłaczami do przejętych witryn. Po kliknięciu ofiara była przekierowywana do skryptów profilujących (JS), które sprawdzały wersje przeglądarki/wtyczek. Następnie serwer dostarczał parę plików SWF + FLV wykorzystujących CVE‑2015‑3113. Exploit uzyskiwał arbitralny zapis/odczyt, wykonywał łańcuch ROP omijający DEP/ASLR, a finalnie odpalał shellcode i zrzucał backdoora SHOTPUT. Efekt: zdalne RCE i trwała kontrola hosta.

Dlaczego skuteczna?
(1) popularność Flash w 2015, (2) atak drive‑by nie wymagał pobierania plików przez użytkownika, (3) łańcuch exploitów obchodził mechanizmy łagodzące (DEP/ASLR), (4) szybka adopcja w ekosystemie exploit kitów (np. Magnitude).


Artefakty i logi

WarstwaArtefakt / źródłoWskaźniki / polaUwagi
Windows (Sysmon)EID 1 Process CreateImage/ParentImage: FlashPlayer.exe, FlashUtil*.exe, FlashPlayerPlugin*.exe; dzieci: cmd.exe, powershell.exe, wscript.exe, rundll32.exe, regsvr32.exeNietypowe dziecko procesu Flash = silny sygnał RCE. Nazwy procesów potwierdza Adobe Flash Player Admin Guide.
Windows (Sysmon)EID 7 Image LoadedImageLoaded = \pepflashplayer.dll (Chrome/Chromium)Obserwuj załadowanie w procesach przeglądarki.
Windows (Application)EID 1000 Application ErrorAwaria modułów Flash/pepflashNagłe crashe Flash niedługo przed nietypowym procesem‑dzieckiem.
Proxy/NGFW/DNSDostęp HTTP/S do *.swf, MIME application/x-shockwave-flashurl, mime, user_agent, referrerKoreluj z kliknięciami z e‑maila (M365).
M365 DefenderEmailUrlInfo, UrlClickEventsUrl, UrlDomain, kliknięcia Safe LinksŁącz URL .swf z hostami, które uruchomiły procesy Flash.
MITRE ATT&CK (kontekst)APT3 + SHOTPUTProfilowanie, dostarczenie backdooraDo korelacji z TTP grupy.
AWS (opcjonalnie)CloudTrail Lake (S3 Data Events)GetObject na kluczach %.swfWymaga włączonych data events.
CDNCloudFront Access Logs / Athenacs-uri-stem like '%.swf', sc-content-typePrzy hostowaniu/pośrednictwie treści.

Detekcja (praktyczne reguły)

Sigma (Windows / Sysmon – anomalie dzieci procesów Flash)

title: Flash Plugin Spawns Suspicious Child (CVE-2015-3113 Context)
id: 5a8b2f3b-8ce3-49d0-9f1f-6a2e1d1f3f31
status: experimental
description: Wykrywa nietypowe dzieci procesów Flash (cmd/powershell/skrpty), co bywa obserwowane przy RCE (np. CVE-2015-3113).
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2015-3113
  - https://cloud.google.com/blog/topics/threat-intelligence/operation-clandestine-wolf-adobe-flash-zero-day/
tags:
  - attack.t1203
  - attack.t1189
  - attack.t1566.002
  - cve.2015-3113
logsource:
  category: process_creation
  product: windows
detection:
  sel_parent:
    ParentImage|contains:
      - '\FlashPlayer'
      - '\FlashUtil'
      - '\FlashPlayerPlugin'
  sel_child:
    Image|endswith:
      - '\cmd.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\rundll32.exe'
      - '\regsvr32.exe'
  condition: sel_parent and sel_child
fields:
  - ParentImage
  - ParentCommandLine
  - Image
  - CommandLine
falsepositives:
  - Rzadkie narzędzia korporacyjne wołane z aplikacji opartej na Flash (dziś skrajnie rzadkie)
level: high

Splunk (SPL)

1) Flash uruchomiony przez przeglądarkę

index=sysmon EventCode=1
(ParentImage="*\\iexplore.exe" OR ParentImage="*\\chrome.exe" OR ParentImage="*\\firefox.exe" OR ParentImage="*\\msedge.exe")
(Image="*\\FlashPlayer*.exe" OR Image="*\\FlashUtil*.exe" OR Image="*\\FlashPlayerPlugin*.exe")
| stats count min(_time) max(_time) by host, ParentImage, Image, CommandLine, ParentCommandLine

2) Dzieci procesów Flash

index=sysmon EventCode=1
(ParentImage="*\\FlashPlayer*.exe" OR ParentImage="*\\FlashUtil*.exe" OR ParentImage="*\\FlashPlayerPlugin*.exe")
(Image="*\\cmd.exe" OR Image="*\\powershell.exe" OR Image="*\\wscript.exe" OR Image="*\\rundll32.exe" OR Image="*\\regsvr32.exe")
| table _time host ParentImage Image CommandLine

3) Proxy/HTTP — pobrania .swf

index=proxy (uri_path="*.swf" OR mime_type="application/x-shockwave-flash")
| stats count by src_ip, user, uri, http_status, user_agent, referrer

KQL (Microsoft Defender / M365)

Defender for Endpoint — dzieci procesów Flash

DeviceProcessEvents
| where InitiatingProcessFileName in~ ("FlashPlayer.exe","FlashPlayerPlugin.exe","FlashUtil32.exe","FlashUtil64.exe")
| where FileName in~ ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","rundll32.exe","regsvr32.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine, InitiatingProcessCommandLine

MDO — kliknięcia linków .swf

UrlClickEvents
| where Url endswith ".swf" or Url has ".swf?"
| summarize Clicks=count() by UrlDomain, Url, AccountUpn, Timestamp

MDO — adresy URL w wiadomościach

EmailUrlInfo
| where Url endswith ".swf" or Url has ".swf?"
| join kind=leftouter EmailEvents on NetworkMessageId
| project Timestamp, SenderFromAddress, RecipientEmailAddress, Url, UrlDomain, Subject, ThreatTypes

(Definicje tabel: EmailUrlInfo, UrlClickEvents — dokumentacja Microsoft).

CloudTrail / CloudWatch (AWS)

Założenie: włączone S3 Data Events lub logi CloudFront.

CloudTrail Lake SQL (AWS CLI): wyszukaj pobrania *.swf z bucketów

SELECT eventTime, sourceIPAddress, userIdentity.principalId, requestParameters.bucketName AS bucket,
       requestParameters.key AS objectKey
FROM event_data_store
WHERE eventSource = 's3.amazonaws.com'
  AND eventName   = 'GetObject'
  AND requestParameters.key LIKE '%.swf'
  AND eventTime > TIMESTAMP '2025-11-01 00:00:00';

(Wymaga włączonych data events).

CloudFront / Athena (przykład):

SELECT date, time, cs_host, cs_uri_stem, sc_status, sc_content_type, c_ip, cs_user_agent
FROM cloudfront_logs
WHERE cs_uri_stem LIKE '%.swf'
ORDER BY date, time DESC;

Elastic EQL

process where
  process.parent.name in ("FlashPlayer.exe","FlashPlayerPlugin.exe","FlashUtil32.exe","FlashUtil64.exe") and
  process.name in ("cmd.exe","powershell.exe","wscript.exe","cscript.exe","rundll32.exe","regsvr32.exe")

Heurystyki / korelacje

  • Klik .swf ⇒ proces Flash ⇒ podejrzane dziecko ⇒ połączenie wychodzące (czasowo blisko) — korelacja M365 (UrlClickEvents / EmailUrlInfo) + EDR + egress DNS/HTTP.
  • Załadowanie pepflashplayer.dll przez przeglądarkę, następnie nietypowe zachowanie (np. nagłe powershell.exe).
  • Rzadko używane dziś MIME application/x-shockwave-flash w ruchu web — traktuj jako anomalię.
  • Artefakty APT3/SHOTPUT (nietypowe rozpoznanie hosta/użytkowników/sieci po kompromitacji) jako sygnały post‑exploitation do korelacji (np. lista kont, netstat).

False positives / tuning

  • Dziedzictwo wewnętrzne: pojedyncze kioski/offline‑aplikacje z zawartością SWF (dziś wyjątkowe). Użyj allowlist domen/aplikacji biznesowych i ogranicz reguły do organizacji/OU, gdzie jakiekolwiek Flash jest dopuszczone.
  • Narzędzia administracyjne mogą incydentalnie wywołać interpretery (np. skrypty logowania), ale rodzicem nie powinien być proces Flash.
  • Ustal okno czasowe (np. ±5 min od kliknięcia URL .swf) i filtruj znane testy w labie.

Playbook reagowania (SOC/IR)

  1. Zablokuj źródło: domenę/URL z .swf w proxy/DNS firewall; wypchnij blokadę przez EDR.
  2. Izoluj host z alertem (EDR quarantine).
  3. Triage artefaktów:
    • Procesy potomne Flash, dropy w %APPDATA%, połączenia C2.
    • Zrzut pamięci procesu przeglądarki/Flash (jeśli polityka na to pozwala).
  4. Hunting rozprzestrzenienie: użyj zapytań (SPL/KQL/EQL powyżej) w horyzoncie 7–30 dni.
  5. Patch & harden: potwierdź brak Flash w flocie (wycofanie EOL), wymuś aktualizacje przeglądarek.
  6. Eradykacja: usuń artefakty, przeinstaluj przeglądarkę, unieważnij poświadczenia pozyskane po kompromitacji.
  7. Lessons learned: blokada typów/MIME, EDR policy na podejrzane dzieci procesów, kampania edukacyjna „nie klikaj .swf”.

Przykłady z kampanii / case studies

  • Operation Clandestine Wolf (APT3/UPS) — phishing z odsyłaczami do przejętych witryn; profilowanie JS; exploit CVE‑2015‑3113; backdoor SHOTPUT (Backdoor.APT.CookieCutter). Branże: A&D, telco, high‑tech, transport, budownictwo.
  • Eksploatacja na szeroką skalę — szybka adopcja w exploit kitach (np. Magnitude) w 2015 r.

Lab (bezpieczne testy) — tylko w kontrolowanym środowisku

Nie instaluj Flash w produkcji. Nie testujemy exploitu — jedynie łańcuch detekcji.

  • Symulacja ruchu web
    • curl -I https://lab.example.org/test.swf (serwuj neutralny plik binarny z nagłówkiem Content-Type: application/x-shockwave-flash).
    • Zweryfikuj, że proxy/NGFW/Athena (CloudFront) odnotowały żądanie *.swf.
  • Symulacja korelacji M365
    • Wyślij na skrzynkę testową e‑mail z linkiem do https://lab.example.org/test.swf.
    • Sprawdź EmailUrlInfo / UrlClickEvents (KQL z sekcji 7).
  • Symulacja anomalii procesów
    • Zastępczo uruchom aplikację, która imituje wzorzec: proces „AplikacjaGUI.exe” → cmd.exe /c whoami. Reguły powinny złapać schemat „aplikacja multimedialna → interpreter”. (Bez użycia Flash).

Mapowania

Mitigations (ATT&CK):

  • M1050 Exploit Protection — ASR/Exploit Guard/EDR exploit prevention.
  • M1033 Limit Software Installation — blokada instalacji wtyczek/dodatków; usunięcie Flash.
  • M1040 Behavior Prevention on Endpoint — blokuj podejrzane łańcuchy (Flash → skrypty/LOLBins).
  • M1017 User Training — prewencja kliknięć w odsyłacze .swf.

Powiązane techniki (kaskada):

  • T1105 Ingress Tool Transfer — dociąganie backdoora po RCE.
  • T1027 Obfuscated/Compressed Files & Information — xor/steganografia/packery w payloadach.

Źródła / dalsza literatura

  • NVD: opis, wersje, „exploited in the wild” (VI 2015). (NVD)
  • Mandiant/FireEye: Operation Clandestine Wolf, łańcuch ataku, SHOTPUT (APT3). (Google Cloud)
  • SecurityWeek: zero‑day, cele (IE na Win7, Firefox na XP), powiązanie z APT3. (SecurityWeek)
  • Trend Micro: adopcja w exploit kitach (Magnitude). (www.trendmicro.com)
  • Adobe: EOL Flash (31.12.2020). (Adobe)
  • Adobe Flash Player 32 Admin Guide: procesy/plik DLL (FlashUtil*, pepflashplayer.dll). (open-flash.github.io)
  • MITRE ATT&CK: T1189, T1566.002, T1203; wersja v18.0. (MITRE ATT&CK)
  • Microsoft Defender: tabele EmailUrlInfo, UrlClickEvents. (Microsoft Learn)
  • AWS: CloudTrail Data Events, CloudFront/Athena zapytania. (AWS Documentation)

Checklisty dla SOC / CISO

SOC (operacyjne):

  • Włączone telemetry: Sysmon (EID 1/7), proxy/DNS, M365 Defender (EmailUrlInfo/UrlClickEvents).
  • Reguły: Sigma (Flash → cmd/powershell), SPL/KQL/EQL z sekcji 7.
  • Korelacja: klik .swf ↔ procesy Flash ↔ dziecko/egress DNS/HTTP.
  • Blokady: MIME application/x-shockwave-flash, rozszerzenie .swf w bramkach.
  • Hunting retro 30 dni: dzieci procesów Flash i ruch do domen z kampanii (wg TI).

CISO (strategiczne):

  • Potwierdzić brak Flash w organizacji (EOL).
  • Polityka „deny by default” dla wtyczek przeglądarek.
  • Wymuszony Exploit Protection/EDR (M1050/M1040).
  • Szkolenia użytkowników (M1017) z naciskiem na klikalność linków.
  • Gotowość IR: playbook powyżej, retencja logów ≥ 30–90 dni.