随着資訊安全意識的提升,越來越多的資訊系統前端均部署有防火牆,系統管理者根據業務需求将内部必要的服務端口通過端口映射等手段映射到公網中,如預設web服務端口80、MSSQL資料庫服務端口1433等。通過部署防火牆可以将資訊系統内部區域與公網邏輯隔離開來,利用相關的政策有效避免或減輕來自外部的攻擊。
對于滲透測試者來說,如何繞過防火牆的阻擋在内網展開滲透測試成為亟需解決的問題,本文介紹了在奪取映射到外網的内網伺服器權限後,如何利用socks代理反彈獲得内網通路權限。
1. sSocks
sSocks是一個socks代理工具套裝,可用來開啟socks代理服務,支援socks5驗證,支援IPV6和UDP,并提供反向socks代理服務,即将遠端計算機作為socks代理服務端,反彈回本地,極大友善内網的滲透測試,其最新版為0.0.13,可在以下連結處下載下傳。
http://sourceforge.net/projects/ssocks/
下載下傳解壓後,執行指令編譯。
編譯完成,進入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執行
等待遠端Socks5伺服器通路本地1080端口,建立端口1080與本地端口1088的連接配接通道,如圖2。
2)開啟Socks5代理服務,反彈
在192.168.206.130上執行
啟用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,在終端執行指令:
firefox啟動成功,通路192.168.206.135的web服務如圖6,通過代理通路成功。
2)利用sqlmap進行注入:
先切換到sqlmap目錄
cd /pentest/database/sqlmap
proxychains python sqlmap.py -u “存在SQL注入的連結” –dbs
注入成功,注入點資訊及擷取資料庫資訊如圖7所示。
5.後記
由于系統管理者的疏忽或者業務需求所緻,防火牆一般僅對由外向内發起的資料連接配接進行嚴格判斷、過濾、甚至阻斷而忽略由内往外的連接配接。是以,在此種情況下,通過攻陷映射到公網的端口服務,利用反彈便可擷取内網通路權限,給内網安全帶來極大的威脅。在資訊安全建設與運維過程中,不僅要加強映射到公網的服務安全,也要重視由内到外連接配接的安全威脅。