黑盒滲透測試的一些姿勢和個人總結
前記
對於“滲透測試”這個事,我也時常糾結,尤其在“度”的方面上,畢竟自己還很年輕。個人感覺,滲透是在不影響單位正常運營的前提下的一場完整攻擊,目標是一個面不是一個點。但是,大家都懂得2333。
入坑以來,跟著網上師傅們分享的各種好文章劃來劃去,終於肚子裡有點墨水擠出來了,水了一篇基於隱祕測試的黑盒滲透測試的小文分享一下。本文主要分享下一些姿勢和個人總結,文章涉及的工具可能比較多,就不一一舉例用法了,畢竟不想搞成一個工具使用說明文*(相關工具用法搜尋一下就有了)*,也不提供下載連結了,畢竟我是好公民。
LOVE 網際網路的分享精神,LOVE 師傅們的好文章。—— FoxRoot
個人準備
蒐集整理一套可靠的VPN或國外代理池或Tor或肉雞或……
準備一套新win+lin虛擬機器並安裝常用工具,不要使用實體機。
白天好好睡覺,晚上幹活,萬一對服務造成傷害還可以降低影響。
資訊蒐集
主動/被動蒐集
資訊蒐集分為主動資訊蒐集和被動資訊蒐集。
主動資訊蒐集就是通過直接訪問和掃描資訊的方式進行收集資訊,缺點是會記錄自己的操作資訊;被動資訊蒐集就是通過第三方服務進行資訊蒐集,缺點是收集資訊有限。資訊蒐集是很重要的一部分,資訊越全面對後面的攻擊越有幫助,可以先盡最大努力的使用被動資訊蒐集方式最大效果的蒐集資訊,再使用主動資訊蒐集的方式蒐集非被動蒐集不到的資訊。
常用套路
1. 蒐集網站單位資訊。這項可以通過一些線上網站來查詢,可以由此得到單位的基本資訊。分享幾個單位資訊查詢站點:天眼查、啟信寶、企業信用資訊公示系統、事業單位線上、
2. 蒐集whois資訊。一個網站的切入點,可以由此得到域名相關資訊。列舉幾個whois查詢站點:Chinaz、Aliyun、Whois365
3. 蒐集網站備案資訊:ICP備案查詢網 、ICP/IP地址/域名資訊備案管理系統
4. 蒐集子域名資訊。子域名往往是滲透過程中重點關注的物件,主站行不通的情況下往往首先想到子站入手。分享幾個子域名蒐集方法和工具:搜尋引擎查詢(Baidu、So、Bing、Google等)、
5. 蒐集郵件系統資訊。郵件系統也是需要重點關注的地方,在自建郵件服務情況下很好的利用郵件服務可以達到意想不到效果,並且在GET到某些郵件地址情況下進行釣魚也不錯的選擇。可以先通過域名MX記錄檢視是否為自建郵件伺服器,自建的情況下可以後續測試漏洞,通過TheHarvester可以進行郵箱挖掘,後續再爆破一波就美滋滋了。
6. 蒐集真實IP地址。弄到藏在CDN後的真實IP的確是個頭大的事情,師傅們分享的大多是通過多地ping的方式確定是否有CDN,再通過子站IP嘗試和國外訪問嘗試的方式看看是否可獲得IP,或通過歷史域名解析記錄尋找IP,或利用DNS社工庫查詢IP、或利用郵件驗證碼之類功能獲取郵件傳送地址,或利用DDOS消耗CND進行IP洩漏。
7. 蒐集旁站資訊。主站搞不定的情況下搞下旁站也是一條路,畢竟目的是一個突破點。感謝師傅分享的旁站查詢介面。
8. 蒐集C段資訊。一個單位不可能只買一個IP,很多都是大小段的買,所以從C段也能突破進單位,舉例幾個的查C段工具:Nmap、Zmap、Webscan、Hackmall
9. 蒐集Web敏感檔案。Web敏感檔案比較多,日常留意多蒐集。舉幾個例子:robots.txt、crossdomin.xml、sitemap.xml、原始碼洩漏檔案
10. 蒐集伺服器和中介軟體資訊。這一項也有多種方式,可以通過Zoomeye、Shodan等優秀的線上系統蒐集,也可以利用Nmap、MSF、Zmap等埠和指紋識別功能蒐集,也可以用NC和Telnet獲取Banner資訊進行識別,Web方面可以用Whatweb工具或者通過Headers資訊。
11. 蒐集WAF資訊:WAF識別大多基於Headers頭資訊,有一個老工具Wafw00f可以用來探測一定的Waf,也可利用Sqlmap的waf指令碼,也可使用Nmap的http-waf-detect和http-waf-fingerprint指令碼,也可自己平時多收集Waf特徵。
12. 蒐集歷史漏洞。若能夠在根據已有資訊情況下找到一枚歷史漏洞將會是一個巨大的幫助。漏洞查詢站點舉例:exploitdb 、hackerone、CNVD 、0day5 、烏雲漏洞庫映象站。
從資訊到規劃
根據已蒐集的資訊進行梳理與分析,查詢疏漏點進行蒐集補充,從各個角度都整理一套滲透攻擊步驟與思路的規劃,優先以最擅長的方面切入,優先以最有把握的點切入,以不打草驚蛇為原則。
漏洞挖掘與利用
漏洞挖掘
站點漏洞挖掘是大家都經常搞的了,挖洞技能全靠平時積累學習。看文章的師傅們水平目測都比我高,這裡不班門弄斧了,只分享下一般站點漏洞挖掘的個人習慣(不對地方還請指出,3Q)。
1. 針對站點漏洞挖掘,我個人不喜歡直接上AWVS、Appscan、Nessus之類的重量級掃描器,一方面用重量級掃描器會很容易被負責的運維人員發現,這樣無疑會增大接下來的滲透難度;另一方面會被絆IP,這樣就損失部分代理或肉雞;再一方面還有一定機率對站點資料和服務造成破壞,這也是滲透最不想看到的事;再者說現在的站點也沒有能輕易被掃描器掃出來的Web漏洞。
2. 對一個站點,我一般會習慣性的按著從系統漏洞探測到中介軟體漏洞探測再到Web漏洞探測的過程。雖說大多數情況下系統漏洞和中介軟體漏洞碰到的不多,但萬一走運了。對系統漏洞和中介軟體漏洞挖掘,常用Nmap指令碼、MSF模組、F-MiddlewareScan框架等工具。對於Web漏洞探測,若是CMS站點首先去尋找版本漏洞,也可以WPScan、Joomscan、M7lrv-CMS之類工具掃一掃,也可以利用CMS-Exploit-Framework框架利用漏洞,但大多CMS攻擊還需要靠自己積累學習(挖0day);若是自行開發的Web站點,那就需要發揮一個Web狗的特長了,先搞帳號熟悉一下基本功能和結構,重點地方重點排查,從註冊到登入到功能到……從注入到跨站到第三方功能元件……多多探測,多多fuzz。
3. 主站搞不下搞旁站,旁站搞不下搞C段,只要得到一個突破口就夠了。站點都不好弄情況下,還可以根據已有的資訊進行社工以獲得更多的資訊,資訊越多進行密碼破解可能性越大,順便分享個密碼包(ps:忘了從哪掏的包了,感謝收集者。)。
4. 若對測試目標左挖右挖都挖不到能利用的點,那也不,還有一項:APT攻擊。一個測試目標,即便站點維護強固,但也很難保證內部員工安全素質極高,一點小小的疏漏就給了攻擊者可趁之機。做一個有深度的APT攻擊是個很耗時耗力的事情,但對於測試目標安全效能底線而言,可以進行一個小型的APT攻擊。現在常見的APT攻擊手段就是水坑攻擊和魚叉式網路釣魚。攻擊的前提是社工得到足夠的內部員工的體系結構、上網習性等資訊,瞭解體系結構才能知道在哪裡能夠獲得更有用的資訊,瞭解上網習性才能利用習性漏洞進行開展入侵。一個軟體使用版本、使用習慣都會給攻擊者帶來一個入侵點,但攻擊者肚裡也要有足夠的量。反正只要能通過水坑攻擊或魚叉式釣魚等方式搞到一臺內部機,剩餘的都是搞內網的事情了。
漏洞利用
1. 利用挖掘出來的漏洞也要很小心,能把服務打癱瘓的漏洞就先不要嘗試了。
2. 對於系統漏洞和中介軟體漏洞,自己常用的就是msf和exploitdb直接利用現成指令碼工具打,但特別情況下也需要修改或自造指令碼。
3. 對於邏輯漏洞、越權、CSRF/XSRF之類的漏洞,在沒法擴大滲透深度的情況下就可以寫這項的報告了。
4. 對於SSRF漏洞,環境允許的情況下可以很好的利用它進行內網探測與攻擊,關於SSRF推薦豬豬俠師傅的《一個隻影響有錢人的漏洞》文章。
5. 對於任意檔案上傳漏洞,能拿shell就可以做跳板搞內網了。
6. 對於任意檔案包含和任意讀取,一般就是遠端包含拿shell,本地讀取拿檔案,特別情況下還可以擴大利用。
7. 對於SQL注入漏洞,注入要有“度”,能得到管理員密碼進後臺上shell就知足了,千萬別動別的,利用方式上提倡自寫指令碼。
8. 對於XSS漏洞,不要習慣性的拿彈窗測試,不建議使用別人搭建的平臺,可以利用BlueLotus_XSSReceiver搭建或者利用BeEF或者利用XSSer或者寫個小指令碼自建。
其他漏洞就不一一舉例了,反正在隱祕測試的情況下,能悄悄的就悄悄的。
漏洞挖掘與利用輔助工具也就那些常用的那些,除了上面列舉外再舉例幾個自己比較習慣的: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。
提權與維權
提升許可權
雖說僅僅是個測試,但很多情況下提權還是要的,這是變點為面的前提。當然,提權也未必是在自己拿到的站點伺服器或釣到的那個主機上提權,提權目的是有個高許可權的機子來方便測試整個內網,比如可以以已有機器為跳板以遠端提權方式來打到內網其他主機的高許可權,所以只要在內網任意機器上拿到可進一步滲透利用的高階許可權就夠了。提權方法也有很多,不同環境下有不同的姿勢。
1. 系統漏洞提權。windows下可以用systeminfo檢視系統版本和補丁記錄,利用沒修補的漏洞提權,例如MS11080等;linux下可以用uname -a檢視系統核心版本,利用系統核心漏洞提權(核心提權很容易導致系統崩潰,要小心),例如心臟出血等。
2. 資料庫提權。一方面可以利用資料庫漏洞得到資料庫執行權的Shell;另一方面可以在站點資料庫配置檔案找資料庫帳號密碼,利用資料庫系統命令執行功能獲得資料庫執行權的Shell。資料庫漏洞上例如Mssql的JOB提權、Mysql的Mof提權。
3. Web中介軟體漏洞提權。通過Web服務的容器漏洞進行本地提權。例如IIS溢位、Tomcat提權等。
4. 第三方軟體提權。很多開機自啟的軟體都會以system許可權執行,或者使用者啟動時使用了管理員許可權執行。例如Radmin、Filezllia、搜狗拼音提權等
5. 系統錯誤配置提權。在windows下可以使用BeRoot工具進行系統配置檢查,利用配置錯誤點進行提權。
6. 獲取高許可權賬號提權。可以在控制機上利用LaZagne project(支援linux、windows、mac),可以抓取chats、mails、database、wifi、sysadmin、wallet、browsers、memory中的密碼,可以利用抓取到的密碼進行高許可權帳號密碼測試,也可以利用神器mimikatz和mimipenguin,不過在部分時候由於許可權問題可能讀取不到部分密碼。
維持許可權
維權也是一個必須的點,好不容易搞到的跳板可不能輕易丟了。維權也就是所謂的留後門,無論windows下還是linux下留後門姿勢都多種多樣,我也就只列舉幾個吧。
1. 伺服器站點可以採取構造Web漏洞方式維權。我感覺這種方式比放上個馬可靠多,同時漏洞構造的隱蔽一些,讓其他人給利用了就不好完了。比如可以構造複雜的檔案包含漏洞包含放在某個系統目錄下的木馬圖片來獲取Shell,也可以構造SQL注入利用Sqlmap的--os-shell引數來執行Shell。
2. 伺服器站點可以使用過狗過盾的複雜馬維權。複雜馬的構造需要私下自己多實驗多構造了。
3. Linux、Windows賬戶維權。這個方法只適合沒有做LDAP或堡壘機之類的SSO統一許可權管理和沒有遮蔽對外埠的情況,可以利用密碼讀取工具讀取到的密碼進行保持許可權,也可以自建linux隱藏賬戶、windows隱藏賬戶的方式保持許可權。
4. 工具法維權。工具概括來說就是主動反彈和被動連線兩種。兩種方式各有優缺點,例如:主動反彈方式既可以放在有公網IP的伺服器站點也可以放在內網釣到的機子上,並且更方便規避防火牆、IPS等阻礙,但需要設定觸發機制,不能做到想連就連;被動連線方式能夠隨時連,但無法利用在內網機子上(除非你拿了上層路由做了埠對映)。利用上例如msf生成後門、nc反彈,指令碼反彈shell等。
內網滲透
內網滲透基本都是依據當前所獲得的網路環境進行策略制定,不同環境方式不同,但內網中能搞得也就常說的那些,在有比較靠譜的防火牆、NIDS、IPS的情況下內網就更加難搞了,時時刻刻還要提防它們。這裡也就之列舉一下常用的內網思路。
常用套路
1. 網路拓撲探測。探測拓撲是個很頭大的事,子內網和防火牆都會阻礙拓撲探測。大多也只能探測到上層網、公共網、內網伺服器網的網路環境,再有些其他因素就導致探測的更少了。
2. 內網弱口令。內網弱口令其實還是蠻多的,可以對同子網個人電腦、內網伺服器、交換機、路由器嘗試弱口令破解。
3. 內網伺服器漏洞。若在OA之類的內網辦公通訊站點,可以挖到漏洞就可以獲取到部分有助內網滲透的資訊。
4. 內網路由器漏洞。無論是上層網路由還是內網伺服器網路由,只要拿下路由器那就是個很大的幫助,這樣就可以進一步做埠對映和轉發,更好的其蒐集其他內網資訊,擴大了攻擊面。
5. 內網個人電腦漏洞。例如利用17010之類的遠端漏洞測試同子內網中的個人電腦,進而多蒐集資訊,以方便測試內網伺服器。一個不錯的內網資訊蒐集指令碼:地址
6. 內網釣魚。和一般釣魚思路差不多,不過內網中更容易讓別人信任,可以通過OA和辦公郵件進行釣魚。
7. 中間人攻擊。不同環境下可以用不同的姿勢,一般用的多的就是ARP欺騙、DNS欺騙、會話劫持,進行中間人攻擊的前提是取得一定的內網許可權。
8. 內網穿透。在進行部分攻擊時候,可能需要讓其他內網電腦穿過外網出口進行輔助測試,這裡推薦一篇不錯的穿越邊界的姿勢,另外經過Web站點做代理進行穿透時候還需要做Web埠複用。
後記
一場正規測試下清理痕跡就可以省了,所以這裡也不寫了,但還是需要老老實實供出在人家網路幹了哪些事,以免以後出其他亂子扣在自己頭上。另外還需要撰寫漏洞報告,一個漂亮的報告是滲透測試的滿意答卷,漏洞報告上不僅要體現出漏洞危害程度與漏洞細節,相應的修補建議尤其是內網修補建議要詳細、規格、嚴謹。
文段也就寫到這裡了,師傅們有什麼對小文若感覺有什麼不妥和建議可以留言,我必虛心接受。
感謝
http://www.freebuf.com/articles/system/58096.html
http://bobao.360.cn/learning/detail/4158.html
https://bbs.ichunqiu.com/thread-16020-1-1.html
https://www.secpulse.com/archives/50288.html
http://www.freebuf.com/articles/system/91791.html
http://www.cnblogs.com/r00tgrok/p/reverse_shell_cheatsheet.html