内网渗透,利用 RDP 协议搭建 Socks5 代理隧道
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
前言如今,在很多组织机构内部,针对 DMZ 或隔离网络区域内的计算机设备,为了限制其它接入端口风险,通常只允许这些设备开启 3389 端口,使用远程桌面来进行管理维护。那么我们能不能利用这个 3389 端口的 RDP 服务建立起一条通向内网的代理隧道呢?当然可以,下面就引出我们今天的主角 —— SocksOverRDP。 SocksOverRDP•项目地址:https://github.com/nccgroup/SocksOverRDP SocksOverRDP 可以将 SOCKS 代理的功能添加到远程桌面服务,它使用动态虚拟通道,使我们能够通过开放的 RDP 连接进行通信,而无需在防火墙上打开新的套接字、连接或端口。此工具在 RDP 协议的基础上实现了 SOCKS 代理功能,就像 SSH 的 该工具可以分为两个部分: ![]() •第一部分是一个 以下是该工具的运作原理:
大致原理是,当 SocksOverRDP-Plugin.dll 在 RDP 客户端上被正确注册后,每次启动远程桌面时都会由 mstsc 加载。接着,当 SocksOverRDP-Server.exe 被上传到 RDP 服务端上传并执行后 ,SocksOverRDP-Server.exe 会在动态虚拟通道上回连 SocksOverRDP-Plugin.dll,这是远程桌面协议的一个功能。虚拟通道设置完成后,SOCKS 代理将在 RDP 客户端计算机上启动,默认为 127.0.0.1:1080。此服务可用作任何浏览器或工具的 SOCKS5 代理。并且服务器上的程序不需要服务器端的任何特殊特权,还允许低特权用户打开虚拟通道并通过连接进行代理。 通过 SocksOverRDP 搭建 SOCKS5 代理测试环境如下: ![]() 右侧为一个内网环境,其中 Windows Server 2012 是一个 Web 服务器,有两个网卡,分别连通内外网。假设此时攻击者已经通过渗透手段拿下了这台 Web 服务器,需要设置代理进入内网继续对内网进行横向渗透。但是由于防火墙的规则等原因,只允许 TCP/UDP 3389 端口可以进行通信,所以我们只能尝试利用用 RDP 协议来建立通讯隧道。 攻击端在攻击机上需要安装注册 SocksOverRDP-Plugin.dll。首先我们将 SocksOverRDP-Plugin.dll 放置到攻击机的任何目录中,但是为了方便我们可以将其放置到 然后使用以下命令对 SocksOverRDP-Plugin.dll 进行安装注册:
![]() 如上图所示,注册成功。但是由于 SocksOverRDP 建立的 SOCKS5 代理是默认监听在 127.0.0.1:1080 上的,所以只能从攻击机本地使用,为了让攻击者的 Kali 也能使用搭建在攻击机 Windows 10 上的 SOCKS5 代理,我们需要修改其注册表,将 IP 从 127.0.0.1 改为 0.0.0.0。注册表的位置为:
![]() 然后启动远程桌面客户端 mstsc.exe 连接目标 Web 服务器 Windows Server 2012: ![]() 如上图所示,弹出了一个提示说 SocksOverRDP 成功启动,当服务端的可执行文件运行后即可在攻击机的 1080 端口上启动 SOCKS5 代理服务。 服务端远程桌面连接成功后,将服务端组件 SocksOverRDP-Server.exe 上传到 Windows Server 2012 上: ![]() 直接运行 SocksOverRDP-Server.exe 即可: ![]() 此时便成功搭建了一个 SOCKS5 代理隧道,查看攻击机 Windows 10 的端口连接状态发现已经建立连接: ![]() 然后在攻击机 Kali 上配置好 proxychains: ![]() 此时便可以通过代理访问到内网的主机 DC 了。如下所示,成功打开了 DC 的远程桌面:
![]() 探测内网主机 DC 的端口开放情况:
![]() 先该主机开启了 445 端口,我们可以直接用 smbexec.py 连接:
![]() 如上图所示,成功拿下内网主机 DC。 文中若有不当之处,还请各位大佬师傅们多多点评。
阅读原文:原文链接 该文章在 2025/7/14 18:49:07 编辑过 |
关键字查询
相关文章
正在查询... |