如何做host解析


reGeorg介绍

reGeorg 是 SensePost 在 2008 年推出的 reDuh 的升级版和扩展版,主要应用于会话层的 socks5 协议,相比 reDuh 更为高效。其重要性体现在建立 HTTP 隧道的过程中。

当我们的外部网络可以访问服务器 A,但无法与内部网络的主机交互时,reGeorg 就派上了用场。假设我们已经获得了服务器 A 的 webshell,但内部网络主机的 icmp、dns、tcp 和 udp 协议等都无法访问外部网络,唯一的数据通道就是 webshell 搭建的正向代理。在公网可访问的服务器 A 上安装 reGeorg,它在攻击者与内网主机之间充当了一个信息转发的角色。

下载及搭建步骤:

可以通过以下命令从 GitHub 上下载 reGeorg:

git clone /sensepost/reGeorg.git

环境配置如下:

一台作为受害服务端的 VPS,IP 为 182.x.x.x。

在受害机上部署了一个 Docker,其中运行着 Tomcat,开放了 8080 端口。

另一台作为攻击者的 VPS,IP 为 81.x.x.x。

搭建过程:

1. 在已经获取 webshell 的受害服务器上,上传 tunnel.jsp 文件到 http 服务器的 web 根目录,并测试其可访问性。

curl 182.x.x.x:8080/tunnel.jsp

如果服务器返回 "Georg says, 'All seems fine'",则服务器端配置完成。

2. 在攻击者机器上,下载 reGeorg 运行脚本,设置一个端口(如 3333)作为 http 隧道的端口,并运行 python reGeorgSocksProxy.py -l 0.0.0.0 -p 3333 -u x.x.x.x:8080/tunnel.jsp。

流量分析:

在攻击者的机器(如 Kali)上,使用 tcpdump 进行抓包,分析流量。例如:

首先访问内网服务器,tcpdump 会抓取到数据包,然后通过 Wireshark 分析 TCP 流。可以看到类似这样的请求:GET /login.php HTTP/1.1。这表明服务器 A 作为跳板正在与内网主机的某个端口建立连接。

然后会有一系列的 POST 请求到 /tunnel.jsp,这些请求包含了 connect、read 和 forward 命令。其中 connect 命令用于建立连接,read 命令用于读取内网的内容,forward 命令用于将数据转发到内网。

最后会有 DISCONNECT 命令用于关闭连接。在内网服务器上抓包,可以看到服务器 A 向内网发出了 login.php 的请求。总结整个 HTTP 隧道的建立过程,其实就是通过 tunnel.jsp 进行一系列的命令操作,最终实现攻击者与内网的信息交互。