热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

探讨HTTP隧道技术在RDP暴力破解中的应用

本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。

本文作者:si1ence,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

前言

HTTP隧道技术允许在受限网络条件下,在两台计算机之间建立网络连接,绕过IDS(入侵检测系统)和防火墙等安全设备,实现基于HTTP协议的通信。这种技术常用于内网端口转发和流量代理,由于HTTP流量与正常流量差异较小,通常不易被检测。

本文将简要探讨HTTP隧道技术及其在RDP暴力破解中的应用,希望能为网络安全从业者提供参考。

部署环境

选择了一款经典工具reGeorg进行实验。reGeorg支持多种Web环境,特别是针对Tomcat 5版本进行了优化。GitHub链接如下:

https://github.com/sensepost/reGeorg

实验环境使用Windows 2008 + Java + Tomcat:

在Kali Linux上访问远程服务器上的tunnel.jsp文件,成功返回后,使用reGeorgSocksProxy.py脚本监听本地的9999端口,从而建立通信链路。本地端口9999已成功开启。

接下来配置Kali Linux上的proxychains,以便通过HTTP隧道进行流量转发。

暴力破解攻击

传统Web服务器通常不会将内部的3389端口暴露到公网,直接进行RDP暴力破解容易被安全设备捕获并锁定。通过HTTP隧道进行端口转发,可以直接访问到Web服务器的3389端口,且流量特征不明显,难以被检测。

使用Hydra工具对Web服务器的3389端口进行暴力破解。捕获的流量显示为HTTP流量,无RDP协议流量,字段基本不可读。

成功暴力破解后,可以通过rdesktop工具实现远程登录。系统安全事件日志中可以记录到相关攻击信息,包括源IP地址。

流量分析

查看tunnel.jsp的connect方法实现代码,主要通过socket.channel定义了一个连接到TCP网络套接字的通道。IP和端口从HTTP Header中获取,cmd执行命令也从Header中获取,并用x-status标记当前状态值,同时本地设置了一个sessions保存当前的SocketChannel会话。

在Wireshark中捕获的流量显示,IP和端口在初始连接时通过URL传递。Connect方法连接到目标IP和端口,3389为RDP暴力破解的端口。

tunnel.jsp的请求参数主要包括forward、read、disconnect、connect等。数据包的主要请求集中在read和forward参数的传递过程中,每次请求的时间间隔非常短。

关于forward的代码实现如下:从session中获取SocketChannel,定义一个buf确认要发送的内容。SocketChannel.write()方法在一个while循环中调用,确保所有数据都写入SocketChannel。

客户端设置Header参数的关键代码包括COOKIEs、content-type、connection等。为了使流量更加真实,还可以伪造User-Agent和Referer等常见头参数。

总结

1. HTTP隧道流量与正常网站访问流量差异较小,能够较好地避开安全设备的检测,结合Web命令执行或上传漏洞,可以有效进入内网。
2. 在日常运维和日志审计中,应结合行为特征和异常参数识别异常HTTP请求。
3. reGeorg的脚本特征较为明显,部分杀毒软件已能查杀,但通过二次开发加入免杀技术,仍可有效使用。

本文作者:si1ence,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。


推荐阅读
author-avatar
美煤MM就
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有