內網滲透,利用 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 編輯過 |
關鍵字查詢
相關文章
正在查詢... |