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