黑盒滲透測(cè)試的一些姿勢(shì)和個(gè)人總結(jié)
對(duì)于“滲透測(cè)試”這個(gè)事,我也時(shí)常糾結(jié),尤其在“度”的方面上,畢竟自己還很年輕。個(gè)人感覺,滲透是在不影響單位正常運(yùn)營(yíng)的前提下的一場(chǎng)完整攻擊,目標(biāo)是一個(gè)面不是一個(gè)點(diǎn)。但是,大家都懂得2333。
入坑以來,跟著網(wǎng)上師傅們分享的各種好文章劃來劃去,終于肚子里有點(diǎn)墨水?dāng)D出來了,水了一篇基于隱秘測(cè)試的黑盒滲透測(cè)試的小文分享一下。本文主要分享下一些姿勢(shì)和個(gè)人總結(jié),文章涉及的工具可能比較多,就不一一舉例用法了,畢竟不想搞成一個(gè)工具使用說明文*(相關(guān)工具用法搜索一下就有了)*,也不提供下載鏈接了,畢竟我是好公民。
?? ??
一、個(gè)人準(zhǔn)備
準(zhǔn)備一套新win+lin虛擬機(jī)并安裝常用工具,不要使用實(shí)體機(jī)。
白天好好睡覺,晚上干活,萬一對(duì)服務(wù)造成傷害還可以降低影響。
二、信息搜集
1. 主動(dòng)/被動(dòng)搜集
信息搜集分為主動(dòng)信息搜集和被動(dòng)信息搜集。
主動(dòng)信息搜集就是通過直接訪問和掃描信息的方式進(jìn)行收集信息,缺點(diǎn)是會(huì)記錄自己的操作信息;被動(dòng)信息搜集就是通過第三方服務(wù)進(jìn)行信息搜集,缺點(diǎn)是收集信息有限。信息搜集是很重要的一部分,信息越全面對(duì)后面的攻擊越有幫助,可以先盡最大努力的使用被動(dòng)信息搜集方式最大效果的搜集信息,再使用主動(dòng)信息搜集的方式搜集非被動(dòng)搜集不到的信息。
2. 常用套路
- 搜集網(wǎng)站單位信息。這項(xiàng)可以通過一些在線網(wǎng)站來查詢,可以由此得到單位的基本信息。分享幾個(gè)單位信息查詢站點(diǎn):天眼查、啟信寶、企業(yè)信用信息公示系統(tǒng)、事業(yè)單位在線、
- 搜集whois信息。一個(gè)網(wǎng)站的切入點(diǎn),可以由此得到域名相關(guān)信息。列舉幾個(gè)whois查詢站點(diǎn):Chinaz、Aliyun、Whois365
- 搜集網(wǎng)站備案信息:ICP備案查詢網(wǎng) 、ICP/IP地址/域名信息備案管理系統(tǒng)
- 搜集子域名信息。子域名往往是滲透過程中重點(diǎn)關(guān)注的對(duì)象,主站行不通的情況下往往首先想到子站入手。分享幾個(gè)子域名搜集方法和工具:搜索引擎查詢(Baidu、So、Bing、Google等)、DNS域傳送漏洞、父站點(diǎn)爬取、IP反查、Forward-DNS 、子域名挖掘機(jī)、Host、Dig、Dnsenum、Dnsmap、Fierce
- 搜集郵件系統(tǒng)信息。郵件系統(tǒng)也是需要重點(diǎn)關(guān)注的地方,在自建郵件服務(wù)情況下很好的利用郵件服務(wù)可以達(dá)到意想不到效果,并且在GET到某些郵件地址情況下進(jìn)行釣魚也不錯(cuò)的選擇。可以先通過域名MX記錄查看是否為自建郵件服務(wù)器,自建的情況下可以后續(xù)測(cè)試漏洞,通過TheHarvester可以進(jìn)行郵箱挖掘,后續(xù)再爆破一波就美滋滋了。
- 搜集真實(shí)IP地址。弄到藏在CDN后的真實(shí)IP的確是個(gè)頭大的事情,師傅們分享的大多是通過多地ping的方式確定是否有CDN,再通過子站IP嘗試和國外訪問嘗試的方式看看是否可獲得IP,或通過歷史域名解析記錄尋找IP,或利用DNS查詢IP、或利用郵件驗(yàn)證碼之類功能獲取郵件發(fā)送地址,或利用DDOS消耗CND進(jìn)行IP泄漏。
- 搜集旁站信息。主站搞不定的情況下搞下旁站也是一條路,畢竟目的是一個(gè)突破點(diǎn)。感謝師傅分享的旁站查詢接口。
- 搜集C段信息。一個(gè)單位不可能只買一個(gè)IP,很多都是大小段的買,所以從C段也能突破進(jìn)單位,舉例幾個(gè)的查C段工具:Nmap、Zmap、Webscan、Hackmall
- 搜集Web敏感文件。Web敏感文件比較多,日常留意多搜集。舉幾個(gè)例子:robots.txt、crossdomin.xml、sitemap.xml、源碼泄漏文件
- 搜集服務(wù)器和中間件信息。這一項(xiàng)也有多種方式,可以通過Zoomeye、Shodan等優(yōu)秀的在線系統(tǒng)搜集,也可以利用Nmap、MSF、Zmap等端口和指紋識(shí)別功能搜集,也可以用NC和Telnet獲取Banner信息進(jìn)行識(shí)別,Web方面可以用Whatweb工具或者通過Headers信息。
- 搜集WAF信息:WAF識(shí)別大多基于Headers頭信息,有一個(gè)老工具Wafw00f可以用來探測(cè)一定的Waf,也可利用Sqlmap的waf腳本,也可使用Nmap的http-waf-detect和http-waf-fingerprint腳本,也可自己平時(shí)多收集Waf特征。
- 搜集歷史漏洞。若能夠在根據(jù)已有信息情況下找到一枚歷史漏洞將會(huì)是一個(gè)巨大的幫助。漏洞查詢站點(diǎn)舉例:exploitdb 、hackerone、CNVD 、0day5 、烏云漏洞庫鏡像站。
3. 從信息到規(guī)劃
根據(jù)已搜集的信息進(jìn)行梳理與分析,查找疏漏點(diǎn)進(jìn)行搜集補(bǔ)充,從各個(gè)角度都整理一套滲透攻擊步驟與思路的規(guī)劃,優(yōu)先以最擅長(zhǎng)的方面切入,優(yōu)先以最有把握的點(diǎn)切入,以不打草驚蛇為原則。
三、漏洞挖掘與利用
1. 漏洞挖掘
站點(diǎn)漏洞挖掘是大家都經(jīng)常搞的了,挖洞技能全靠平時(shí)積累學(xué)習(xí)。看文章的師傅們水平目測(cè)都比我高,這里不班門弄斧了,只分享下一般站點(diǎn)漏洞挖掘的個(gè)人習(xí)慣(不對(duì)地方還請(qǐng)指出,3Q)。
- 針對(duì)站點(diǎn)漏洞挖掘,我個(gè)人不喜歡直接上AWVS、Appscan、Nessus之類的重量級(jí)掃描器,一方面用重量級(jí)掃描器會(huì)很容易被負(fù)責(zé)的運(yùn)維人員發(fā)現(xiàn),這樣無疑會(huì)增大接下來的滲透難度;另一方面會(huì)被絆IP,這樣就損失部分代理或肉雞;再一方面還有一定機(jī)率對(duì)站點(diǎn)數(shù)據(jù)和服務(wù)造成破壞,這也是滲透最不想看到的事;再者說現(xiàn)在的站點(diǎn)也沒有能輕易被掃描器掃出來的Web漏洞。
- 對(duì)一個(gè)站點(diǎn),我一般會(huì)習(xí)慣性的按著從系統(tǒng)漏洞探測(cè)到中間件漏洞探測(cè)再到Web漏洞探測(cè)的過程。雖說大多數(shù)情況下系統(tǒng)漏洞和中間件漏洞碰到的不多,但萬一走運(yùn)了。對(duì)系統(tǒng)漏洞和中間件漏洞挖掘,常用Nmap腳本、MSF模塊、F-MiddlewareScan框架等工具。對(duì)于Web漏洞探測(cè),若是CMS站點(diǎn)首先去尋找版本漏洞,也可以WPScan、Joomscan、M7lrv-CMS之類工具掃一掃,也可以利用CMS-Exploit-Framework框架利用漏洞,但大多CMS攻擊還需要靠自己積累學(xué)習(xí)(挖0day);若是自行開發(fā)的Web站點(diǎn),那就需要發(fā)揮一個(gè)Web狗的特長(zhǎng)了,先搞帳號(hào)熟悉一下基本功能和結(jié)構(gòu),重點(diǎn)地方重點(diǎn)排查,從注冊(cè)到登錄到功能到……從注入到跨站到第三方功能組件……多多探測(cè),多多fuzz。
- 主站搞不下搞旁站,旁站搞不下搞C段,只要得到一個(gè)突破口就夠了。站點(diǎn)都不好弄情況下,還可以根據(jù)已有的信息進(jìn)行社工以獲得更多的信息,信息越多進(jìn)行密碼破解可能性越大,順便分享個(gè)密碼包(ps:忘了從哪掏的包了,感謝收集者。)。
- 若對(duì)測(cè)試目標(biāo)左挖右挖都挖不到能利用的點(diǎn),那也不,還有一項(xiàng):APT攻擊。一個(gè)測(cè)試目標(biāo),即便站點(diǎn)維護(hù)強(qiáng)固,但也很難保證內(nèi)部員工安全素質(zhì)極高,一點(diǎn)小小的疏漏就給了攻擊者可趁之機(jī)。做一個(gè)有深度的APT攻擊是個(gè)很耗時(shí)耗力的事情,但對(duì)于測(cè)試目標(biāo)安全性能底線而言,可以進(jìn)行一個(gè)小型的APT攻擊。現(xiàn)在常見的APT攻擊手段就是水坑攻擊和魚叉式網(wǎng)絡(luò)釣魚。攻擊的前提是社工得到足夠的內(nèi)部員工的體系結(jié)構(gòu)、上網(wǎng)習(xí)性等信息,了解體系結(jié)構(gòu)才能知道在哪里能夠獲得更有用的信息,了解上網(wǎng)習(xí)性才能利用習(xí)性漏洞進(jìn)行開展入侵。一個(gè)軟件使用版本、使用習(xí)慣都會(huì)給攻擊者帶來一個(gè)入侵點(diǎn),但攻擊者肚里也要有足夠的量。反正只要能通過水坑攻擊或魚叉式釣魚等方式搞到一臺(tái)內(nèi)部機(jī),剩余的都是搞內(nèi)網(wǎng)的事情了。
2. 漏洞利用
- 利用挖掘出來的漏洞也要很小心,能把服務(wù)打癱瘓的漏洞就先不要嘗試了。
- 對(duì)于系統(tǒng)漏洞和中間件漏洞,自己常用的就是msf和exploitdb直接利用現(xiàn)成腳本工具打,但特別情況下也需要修改或自造腳本。
- 對(duì)于邏輯漏洞、越權(quán)、CSRF/XSRF之類的漏洞,在沒法擴(kuò)大滲透深度的情況下就可以寫這項(xiàng)的報(bào)告了。
- 對(duì)于SSRF漏洞,環(huán)境允許的情況下可以很好的利用它進(jìn)行內(nèi)網(wǎng)探測(cè)與攻擊,關(guān)于SSRF推薦豬豬俠師傅的《一個(gè)只影響有錢人的漏洞》文章。
- 對(duì)于任意文件上傳漏洞,能拿shell就可以做跳板搞內(nèi)網(wǎng)了。
- 對(duì)于任意文件包含和任意讀取,一般就是遠(yuǎn)程包含拿shell,本地讀取拿文件,特別情況下還可以擴(kuò)大利用。
- 對(duì)于SQL注入漏洞,注入要有“度”,能得到管理員密碼進(jìn)后臺(tái)上shell就知足了,千萬別動(dòng)別的,利用方式上提倡自寫腳本。
- 對(duì)于XSS漏洞,不要習(xí)慣性的拿彈窗測(cè)試,不建議使用別人搭建的平臺(tái),可以利用BlueLotus_XSSReceiver搭建或者利用BeEF或者利用XSSer或者寫個(gè)小腳本自建。
其他漏洞就不一一舉例了,反正在隱秘測(cè)試的情況下,能悄悄的就悄悄的。
漏洞挖掘與利用輔助工具也就那些常用的那些,除了上面列舉外再舉例幾個(gè)自己比較習(xí)慣的:Firefox插件(Hackbar、HackSearch、HttpRequester、Live Http headers、Modify Headers、Netcraft Anti-Phishing Toolbar、NoScript、Wappalyzer、Web Developer)、御劍、椰樹、dirb、K8fly、Sqlmap、BurpSuite、AntSword、Hashcat、Hydra、Medusa。
四、提權(quán)與維權(quán)
1. 提升權(quán)限
雖說僅僅是個(gè)測(cè)試,但很多情況下提權(quán)還是要的,這是變點(diǎn)為面的前提。當(dāng)然,提權(quán)也未必是在自己拿到的站點(diǎn)服務(wù)器或釣到的那個(gè)主機(jī)上提權(quán),提權(quán)目的是有個(gè)高權(quán)限的機(jī)子來方便測(cè)試整個(gè)內(nèi)網(wǎng),比如可以以已有機(jī)器為跳板以遠(yuǎn)程提權(quán)方式來打到內(nèi)網(wǎng)其他主機(jī)的高權(quán)限,所以只要在內(nèi)網(wǎng)任意機(jī)器上拿到可進(jìn)一步滲透利用的高級(jí)權(quán)限就夠了。提權(quán)方法也有很多,不同環(huán)境下有不同的姿勢(shì)。
- 系統(tǒng)漏洞提權(quán)。windows下可以用systeminfo查看系統(tǒng)版本和補(bǔ)丁記錄,利用沒修補(bǔ)的漏洞提權(quán),例如MS11080等;linux下可以用uname -a查看系統(tǒng)內(nèi)核版本,利用系統(tǒng)內(nèi)核漏洞提權(quán)(內(nèi)核提權(quán)很容易導(dǎo)致系統(tǒng)崩潰,要小心),例如心臟出血等。
- 數(shù)據(jù)庫提權(quán)。一方面可以利用數(shù)據(jù)庫漏洞得到數(shù)據(jù)庫執(zhí)行權(quán)的Shell;另一方面可以在站點(diǎn)數(shù)據(jù)庫配置文件找數(shù)據(jù)庫帳號(hào)密碼,利用數(shù)據(jù)庫系統(tǒng)命令執(zhí)行功能獲得數(shù)據(jù)庫執(zhí)行權(quán)的Shell。數(shù)據(jù)庫漏洞上例如Mssql的JOB提權(quán)、Mysql的Mof提權(quán)。
- Web中間件漏洞提權(quán)。通過Web服務(wù)的容器漏洞進(jìn)行本地提權(quán)。例如IIS溢出、Tomcat提權(quán)等。
- 第三方軟件提權(quán)。很多開機(jī)自啟的軟件都會(huì)以system權(quán)限運(yùn)行,或者使用者啟動(dòng)時(shí)使用了管理員權(quán)限運(yùn)行。例如Radmin、Filezllia、搜狗拼音提權(quán)等
- 系統(tǒng)錯(cuò)誤配置提權(quán)。在windows下可以使用BeRoot工具進(jìn)行系統(tǒng)配置檢查,利用配置錯(cuò)誤點(diǎn)進(jìn)行提權(quán)。
- 獲取高權(quán)限賬號(hào)提權(quán)。可以在控制機(jī)上利用LaZagne project(支持linux、windows、mac),可以抓取chats、mails、database、wifi、sysadmin、wallet、browsers、memory中的密碼,可以利用抓取到的密碼進(jìn)行高權(quán)限帳號(hào)密碼測(cè)試,也可以利用神器mimikatz和mimipenguin,不過在部分時(shí)候由于權(quán)限問題可能讀取不到部分密碼。
2. 維持權(quán)限
維權(quán)也是一個(gè)必須的點(diǎn),好不容易搞到的跳板可不能輕易丟了。維權(quán)也就是所謂的留后門,無論windows下還是linux下留后門姿勢(shì)都多種多樣,我也就只列舉幾個(gè)吧。
- 服務(wù)器站點(diǎn)可以采取構(gòu)造Web漏洞方式維權(quán)。我感覺這種方式比放上個(gè)馬可靠多,同時(shí)漏洞構(gòu)造的隱蔽一些,讓其他人給利用了就不好完了。比如可以構(gòu)造復(fù)雜的文件包含漏洞包含放在某個(gè)系統(tǒng)目錄下的木馬圖片來獲取Shell,也可以構(gòu)造SQL注入利用Sqlmap的--os-shell參數(shù)來執(zhí)行Shell。
- 服務(wù)器站點(diǎn)可以使用過狗過盾的復(fù)雜馬維權(quán)。復(fù)雜馬的構(gòu)造需要私下自己多實(shí)驗(yàn)多構(gòu)造了。
- Linux、Windows賬戶維權(quán)。這個(gè)方法只適合沒有做LDAP或堡壘機(jī)之類的SSO統(tǒng)一權(quán)限管理和沒有屏蔽對(duì)外端口的情況,可以利用密碼讀取工具讀取到的密碼進(jìn)行保持權(quán)限,也可以自建linux隱藏賬戶、windows隱藏賬戶的方式保持權(quán)限。
- 工具法維權(quán)。工具概括來說就是主動(dòng)反彈和被動(dòng)連接兩種。兩種方式各有優(yōu)缺點(diǎn),例如:主動(dòng)反彈方式既可以放在有公網(wǎng)IP的服務(wù)器站點(diǎn)也可以放在內(nèi)網(wǎng)釣到的機(jī)子上,并且更方便規(guī)避防火墻、IPS等阻礙,但需要設(shè)定觸發(fā)機(jī)制,不能做到想連就連;被動(dòng)連接方式能夠隨時(shí)連,但無法利用在內(nèi)網(wǎng)機(jī)子上(除非你拿了上層路由做了端口映射)。利用上例如msf生成后門、nc反彈,腳本反彈shell等。
3. 內(nèi)網(wǎng)滲透
內(nèi)網(wǎng)滲透基本都是依據(jù)當(dāng)前所獲得的網(wǎng)絡(luò)環(huán)境進(jìn)行策略制定,不同環(huán)境方式不同,但內(nèi)網(wǎng)中能搞得也就常說的那些,在有比較靠譜的防火墻、NIDS、IPS的情況下內(nèi)網(wǎng)就更加難搞了,時(shí)時(shí)刻刻還要提防它們。這里也就之列舉一下常用的內(nèi)網(wǎng)思路。
4. 常用套路
- 網(wǎng)絡(luò)拓?fù)涮綔y(cè)。探測(cè)拓?fù)涫莻€(gè)很頭大的事,子內(nèi)網(wǎng)和防火墻都會(huì)阻礙拓?fù)涮綔y(cè)。大多也只能探測(cè)到上層網(wǎng)、公共網(wǎng)、內(nèi)網(wǎng)服務(wù)器網(wǎng)的網(wǎng)絡(luò)環(huán)境,再有些其他因素就導(dǎo)致探測(cè)的更少了。
- 內(nèi)網(wǎng)弱口令。內(nèi)網(wǎng)弱口令其實(shí)還是蠻多的,可以對(duì)同子網(wǎng)個(gè)人電腦、內(nèi)網(wǎng)服務(wù)器、交換機(jī)、路由器嘗試弱口令破解。
- 內(nèi)網(wǎng)服務(wù)器漏洞。若在OA之類的內(nèi)網(wǎng)辦公通訊站點(diǎn),可以挖到漏洞就可以獲取到部分有助內(nèi)網(wǎng)滲透的信息。
- 內(nèi)網(wǎng)路由器漏洞。無論是上層網(wǎng)路由還是內(nèi)網(wǎng)服務(wù)器網(wǎng)路由,只要拿下路由器那就是個(gè)很大的幫助,這樣就可以進(jìn)一步做端口映射和轉(zhuǎn)發(fā),更好的其搜集其他內(nèi)網(wǎng)信息,擴(kuò)大了攻擊面。
- 內(nèi)網(wǎng)個(gè)人電腦漏洞。例如利用17010之類的遠(yuǎn)程漏洞測(cè)試同子內(nèi)網(wǎng)中的個(gè)人電腦,進(jìn)而多搜集信息,以方便測(cè)試內(nèi)網(wǎng)服務(wù)器。一個(gè)不錯(cuò)的內(nèi)網(wǎng)信息搜集腳本:地址
- 內(nèi)網(wǎng)釣魚。和一般釣魚思路差不多,不過內(nèi)網(wǎng)中更容易讓別人信任,可以通過OA和辦公郵件進(jìn)行釣魚。
- 中間人攻擊。不同環(huán)境下可以用不同的姿勢(shì),一般用的多的就是ARP欺騙、DNS欺騙、會(huì)話劫持,進(jìn)行中間人攻擊的前提是取得一定的內(nèi)網(wǎng)權(quán)限。
- 內(nèi)網(wǎng)穿透。在進(jìn)行部分攻擊時(shí)候,可能需要讓其他內(nèi)網(wǎng)電腦穿過外網(wǎng)出口進(jìn)行輔助測(cè)試,這里推薦一篇不錯(cuò)的穿越邊界的姿勢(shì),另外經(jīng)過Web站點(diǎn)做代理進(jìn)行穿透時(shí)候還需要做Web端口復(fù)用。
五、后記
一場(chǎng)正規(guī)測(cè)試下清理痕跡就可以省了,所以這里也不寫了,但還是需要老老實(shí)實(shí)供出在人家網(wǎng)絡(luò)干了哪些事,以免以后出其他亂子扣在自己頭上。另外還需要撰寫漏洞報(bào)告,一個(gè)漂亮的報(bào)告是滲透測(cè)試的滿意答卷,漏洞報(bào)告上不僅要體現(xiàn)出漏洞危害程度與漏洞細(xì)節(jié),相應(yīng)的修補(bǔ)建議尤其是內(nèi)網(wǎng)修補(bǔ)建議要詳細(xì)、規(guī)格、嚴(yán)謹(jǐn)。