滲透測試的目標可以是單個主機,也可以是整個內網。
在實戰中,比如最近如火如荼的HW行動,更多的是對一個目標的內網進行滲透,爭取獲得所有有價值的資產。
完整的內網滲透涉及的步驟如下圖所示。
我們總是先通過對外提供服務的,防守最薄弱的主機打進去,然后搭建隧道,通過該主機訪問內部的其他主機??焖贆M向移動到到內網中的核心資產,獲取核心敏感數據和權限,完成一次疼痛的打擊。
Step 1 信息收集
完成邊界突破的第一步是目標對象資產的信息收集。
不同于內網滲透環節中信息收集(后滲透),此部分信息收集的主要針對對象為目標服務器系統、數據庫系統、中間件系統、應用程序系統、以及邊界信息等。
必要時候還要針對系統管理員進行信息收集。這些其實是為了找到脆弱資產進行攻擊,畢竟“柿子挑軟的捏”。
1.1 域名及子域名
OneForAll
從域名找IP以及子域名爆破還沒有經歷過,之后經歷了再更新。
1.2 主機、端口和協議
whois + ip 確定IP網段
Nmap
查看端口開放及其上通信協議:
namp -sS -sU target_ip -p 100-27018
-sS 為TCP SYN掃描具有更強隱蔽性,不建立連接;
-sU 激活UDP掃描,檢測端口上開啟的UDP服務;
-p 指定掃描的端口范圍,但會更加耗時;
sudo nmap -A --version-intensity 9 target_ip -p target_port
以上這兩個命令在沒有防火墻的時候比較管用。如果需要繞墻的話,需要選擇其他策略如碎片掃描,間隔掃描等,之后遇到了再整理。但是思路就是觀察對方的響應包然后及時更換策略或者組合策略。
-A 同時打開操作系統探測和版本探測,其中操作系統探測需要sudo權限;
--version-intensity 確定版本掃描的強度;
target_port 是上述命令執行之后得到的開啟的端口
以上這兩個命令在沒有防火墻的時候比較管用。如果需要繞墻的話,需要選擇其他策略如碎片掃描,間隔掃描等,之后遇到了再整理。但是思路就是觀察對方的響應包然后及時更換策略或者組合策略。
masscan 高速 無狀態掃描
通過masscan也可以快速掃描得到C段和旁站。其中旁站是指同一臺服務器上的其他網站,C段是指同一內網網段中的其他服務器。
FOFA Zoomeye 等網絡資產空間測繪引擎
如果為了隱蔽,也可以直接使用被動信息搜集如fofa直接去搜IP。
1.3 端口服務及其上框架CMS或組件
Wapoalyzer
對于網站而言,可以使用chrome的插件Wappalyzer去分析包括前端框架,后端框架、服務器類型、插件、編程語言等等版本信息。
手工分析
但是肯定不能依賴于一個插件搞定一切,大多數情況下需要對網站進行手工識別,如HTTP的響應頭,HTML的body、title、meta、class命名,網站的目錄結構以及報錯信息等。
Github
在得到具體框架之后可以嘗試在github上搜一下,可能會有網站的源碼,或者許多有用的信息。
云悉平臺
此外,云悉資產探測平臺很好用,但是需要邀請碼。這部分主要的內容不過是確定框架和組件,還有版本信息。有了版本信息就可以去找一些沒有修復的漏洞攻進去。
1.4 Waf識別
wafw00f
wafw00f是一個Web應用防火墻(WAF)指紋識別的工具。
1.5 目錄爆破
但凡涉及到爆破,一定是需要合適的字典的。如果可以確定網站的框架,那么可以通過尋找其網站框架或者系統的源碼可以獲得可能存在的路徑,大大減少爆破次數。
此外,通過Google Hacking也可能有意想不到的收獲。最好是已知跟路徑之后再去掃路徑下可以訪問到的文件,這樣可以極大地提高爆破效率。
dirsearch
Google Hacking
Google Hacking的功能有非常多,借助于Google搜索引擎,它可以幫助我們做到如子域名獲取、C段和旁站掃描、敏感路徑掃描、敏感內容查詢等等。
Step 2 漏洞掃描
關于漏洞掃描,我的理解是當清楚你資產上運行的服務、框架或者組件的名稱和版本的時候,直接搜索引擎去找1day就就可以。
現在網站基本都是二次開發,肯定已經被人研究過了。
所以這應該是最先嘗試的,而不是直接上工具。
接下來,可以使用Xray、MSF或者特定框架的漏洞掃描器通過POC去確認網站是否含有該漏洞。
不要直接使用Xray去主動掃描網站,試圖通過探測所有web接口去找漏洞,效率很低。
2.1 Xray
Xray是一款非常優秀的Web掃描器,它設計的初衷是很好的,而且支持自定義POC。
但是如果目標使用了已經發布的系統或者框架,我們就沒有必要自己去測試了,直接把別人的研究成果拿來用就好了。
2.2 弱密碼爆破
如果找到任何登錄界面,想到的第一件事就應該是弱密碼登錄。
但是,還要去確認網站有沒有使用驗證碼?;蛘唑炞C碼的是不是可以繞過的,比如實戰中遇到的一個網站的驗證碼就是通過用戶的Cookie中的id生成的,也就是說當用戶Cookie和驗證碼的綁定不變時,后臺驗證永遠是正確的。
如果沒有驗證碼或者驗證碼可以繞過,則可以使用Burp Suite中的Intruder模塊進行爆破。
此外,需要注意的是爆破的字典一定要去搜集下,自帶字典實在是不得行。
Step 3 漏洞利用
3.1 蟻劍
蟻劍是中國優秀的Web Shell網站'管理'軟件。
蟻劍的原理都是在獲取網站文件修改或者命令執行的權限之后,在網站的后臺的代碼中插入這樣一句木馬。
然后再去請求這樣插入一句話木馬的文件,在其中使用POST請求字段插入待執行的指令,然后再響應包中獲取命令執行結果。
其實,所謂的密碼'jfe',就是請求的POST字段名,所以這句話的意思就是在數據包中POST字段名為'jfe'的字段值取出來然后執行。
當然,其他的隱藏和繞過方法都是在這個原理之上的,比如替換其他函數,混淆編碼,重新書寫代碼等。
默認情況下,蟻劍的流量是特別明顯的,不過也可以使用插件或者代理對流量加密,無非就是在原有基礎上增加加密解密的步驟。
我自己覺得一個比較好的方式是把一句話木馬或者木馬代碼段加載到一個偏僻的頁面代碼里,然后在正常請求基礎上再添加POST字段帶上要執行的指令。
這樣在他的Web目錄里并不會有一個文件落地,而且請求的url也是正常的,不會引起網站管理員的注意。
如下所示,蟻劍支持添加正常請求時數據報文的頭部和請求體,以最大程度上偽裝成正常流量。
蟻劍通過Web Shell的方式完成與目標機的隱蔽通信,所以比較穩定。而且蟻劍擁有圖形化界面而且功能非常多,包括Web Shell、文件管理、數據操作(數據庫查看)等等。
2.3 Metasploit (MSF)
MSF作為一個滲透測試框架可以完成漏洞掃描、漏洞利用、生成攻擊載荷或木馬或shellcode、監聽等任務。
接下來以攻擊一臺XP作為示例,使用msf的基本的流程如下:
最終成功拿到metepreter的shell。meterpreter擁有極多的功能,可以完成后續的信息搜集和提權等,是非常強大的后滲透工具。
我們拿下一個目標的方式的拿到該目標的shell,即控制通道,但是獲取shell的方式有很多種而且拿到的也是不同的shell。
我們可以對比一下蟻劍、冰蝎的webshell,msf的metepreter以及CS的beacon,思考他們是如何完成以下三點的:
木馬客戶端在目標機上的隱藏
指令在目標機上運行以及執行結果回顯
木馬客戶端和服務器端的通信
因為我自己還沒有時間去讀他們實現的源碼,可能之后會單獨寫一篇文章,談一談自己的理解。
Viper 是msf的圖形化界面的版本,雖然還有許多需要完善的,但是圖形化界面永遠是更方便直觀的。
2.4 Cobalt Strike
Cobalt Strike在國內收到了更多的吹捧,但是本人在實際模擬滲透測試中還是使用MSF更多一些。我目前的理解是Cobalt Strike更專注于后滲透測試,擁有更加穩定的控制通道,而且支持多人同時作戰。
更專注于后滲透測試的意思是,CS主要負責生成各種形式的payload,也就是用于通信的后門,但是如何利用漏洞將payload在目標機上運行,使目標上線,就不是其主要關注點了。
它主要負責目標上線之后的后續操作。
Cobalt Strike的控制通道叫做Beacon,在隱蔽信道上為我們提供服務,用于長期控制受感染主機。
與MSF中的payload完成的是同一件事。Beacon支持通過HTTP(S)、DNS、SMB、TCP四種進行通信,適用于更多的實戰場景,而且相比于MSF的meterpreter更加穩定。
Cobalt Strike的后滲透測試模塊可以協助滲透測試人員進行信息收集、權限提升、端口掃描、端口轉發、橫向移動、持久化等操作。這些功能可以通過添加插件來完成。
值得一提的是,CS具有一鍵克隆釣魚網站的功能,配合環境和話術,目標很容易上鉤。
審核編輯:劉清
-
通信協議
+關注
關注
28文章
858瀏覽量
40259 -
服務器
+關注
關注
12文章
9021瀏覽量
85184 -
數據庫
+關注
關注
7文章
3765瀏覽量
64276
原文標題:干貨 | 滲透測試核心思路-邊界突破
文章出處:【微信號:菜鳥學安全,微信公眾號:菜鳥學安全】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論