3.5.2 正向连接和反向连接
老师说,“好累啊,本来还要讲反连后门的编写的,看来时间来不及了。大家下去讨论一下如何实现吧!”
“反连后门?是什么?”玉波问道。
“刚才的程序是目标机作为服务端,监听830端口;攻击机作为客户端,正向连接目标机的830端口,其示意图如图3-35。”
“但如果目标机开启了防火墙,这种方法就不行了。目标机的防火墙会阻断对非法端口的连接,如图3-36。”
“哦,那怎么办呢?”
“所以我们要使用反向连接。”老师说道。“其示意图如图3-37。”
“反向连接是把攻击机作为服务端,监听一个端口;而目标机上运行的ShellCode的功能是主动连接攻击机监听的端口。一般的防火墙(特别是硬件防火墙)不会阻断内往外的连接,所以很多情况下是可以成功的。”
“哦!”
“而软件防火墙,有的可能会弹出一个对话框,询问是否允许往外连接,如果用户点击了不允许,那也不能成功。”
“还是不能完全成功啊?”大家遗憾的说。
“要突破那样的防火墙,需要用到更高级的ShellCode编程,我们以后再说。这里布置一个课后作业,实现并提取一个简单反连后门的ShellCode,大家还是以刚才的分组进行操作。”
“啊?编写思路都还没有呢。”
“那我提示一下,这个ShellCode的功能是作为客户端,主动连接我们攻击机的一个端口。剩下的传输命令、执行命令,返回结果和前面类似。攻击机上开端口不用编程,用程序NC来开。”
“NC是什么?”玉波问道。
“NC是什么,大家去网上查查吧!这样可以锻炼你们解决问题的能力。明白了吗?”
“大家把讨论结果用E-mail发给我,这将作为一次平时作业的成绩。今天到此结束!下课!ByeBye!”