新四季網

windows安全應急工具(Windows應急響應指導分析)

2023-08-06 09:57:47

一、病毒分類

1、蠕蟲病毒(worm)

文件夾蠕蟲、網絡蠕蟲、郵件蠕蟲等,主要特點是具有很強的傳播性

2、挖礦病毒(CoinMiner/XMiner)

利用被感染主機進行挖礦,佔用主機資源,近幾年十分流行,通常與殭屍網絡搭配

3、木馬病毒(Trojan/Backdoor)

木馬、後門等主要是為了獲得主機的控制權限,竊取信息,執行C&C端的功能指令等

4、感染型病毒(Virus)

主要行為是感染文件,常見家族有Sality、Ramnit、Virut等

5、宏病毒(W200M/X97M/Omacro)

文檔類,啟用宏功能後執行宏代碼,通常為一個DownLoader,下載執行其他惡意軟體

6、勒索病毒(Ransom)

加密文件,勒索贖金

理解上,殭屍網絡:是由大量中了木馬病毒的主機組成,不特定單一主機中了殭屍網絡病毒。

感染型病毒和蠕蟲病毒:都具有擴散性,但感染型病毒只是在同臺主機的不同文件間擴散;而蠕蟲病毒是在不同主機間擴散,範圍不一樣。

勒索病毒:其實可以算是影響比較大的感染型病毒,也會感染文件,但它感染程度更惡劣,破壞文件。

宏病毒:比較類似木馬病毒,用來執行指令,或者下載文件等。

二、進程排查

病毒的存在形式是多樣的,可能是獨立運行的進程,也可能是將動態庫或惡意代碼注入到系統進程、應用進程中運行。這裡,粗略分為三種,即獨立進程模塊、動態庫模塊、隱藏模塊。

1、獨立進程塊

這是最簡單的一種形式,即病毒是獨立可執行文件,以獨立進程在運行。這類進程通常要麼進程名隨機,要麼偽裝成與系統進程相似的名字,或者名字與系統進程完全一樣,但文件位置完全不是系統默認的正常路徑。以某中毒主機為例,打開任務管理器後觀察如下:病毒進程名為svch0st.exe,而系統進程為svchost.exe。

遇到這種,我們可以使用PCHunter對所有進程文件校驗籤名,檢查無籤名或籤名可疑的進程。

或者使用微軟提供的procexp,他支持自動上傳進程文件至virustotal

2、動態庫模塊

病毒也可能以動態庫的方式注入到系統進程或應用進程中去。如下圖所示,客戶某一中毒主機,我們使用PCHunter工具觀察到病毒體sdbot.dll模塊注入到系統進程explorer.exe進程中,並且對該進程掛了應用層鉤子,包括IAT、EAT和inline等類型的鉤子。

同上,可以使用PCHUNTER校驗某個進程的dll文件做快速判斷。

同時也可以使用procexp自動上傳某個進程的dll至virustotal

如果已知病毒dll,需要找到對應的進程,可以使用如下命令。或者使用以上工具搜索所有進程的dll

tasklist /m xxx.dll

3、隱藏模塊

隱藏模塊往往也是動態庫模塊,但它肉眼觀察不到(Windows系統工具看不到,PCHunter等工具也看不到),是很隱蔽的一種手段,屬於難查難殺的類型。

譬如,在某客戶主機上,我們懷疑svchost.exe進程有問題(進程有問題並不代表進程對應的文件有問題,這一點一定要區分好),但我們使用系統工具和PCHunter等等工具均查看不到任何異常模塊。至此,懷疑有隱藏模塊,祭出特殊工具dump出該svchost.exe的所有模塊空間(按模塊分割成獨立文件),觀察到有隱藏的模塊:

svchost_exe_PID384_hiddenmodule_2560000_x86.exe就是隱藏在svchost.exe進程中的模塊

註:此特殊工具會將隱藏模塊文件名加上「hiddenmodule」字眼

可使用微軟的procdump工具pd64.exx -pid [PID]

4、進程內存字符串

在網絡端檢測出某個惡意域名或 IP 後,可以在所有系統進程中搜索該域名,幫助定位發起域名連接的進程,從而定位病毒文件。

深信服SfabAntiBot即可對內存進行掃描

需要注意的是上面掃描是對進程所有內存進行掃描,一個是會比較卡,並且同樣會掃描到代碼段,這樣可能會有誤判,把代碼當成域名字符串。

所以需要結合process hacker等工具查看指定進程內存是否確實存在指定字符串信息。

三、網絡行為排查

威脅情報等輔助網站

1、 https://www.virustotal.com/ , 國外知名安全站點,可能需翻牆,可查詢文件MD5、IP、域名、URL是否惡意,也可上傳文件進行病毒掃描。

2、 https://x.threatbook.cn/ , 國內威脅情報站點,可查詢文件MD5、IP、域名、URL是否惡意,也可上傳文件進行病毒掃描。

3、 http://beian.cndns.com/,國內站點備案查詢,所有有企業備案的國內站點可認為是可信站點。

4、 http://www.alexa.com/,全球站點排行查詢,top100萬的站點可認為是可信站點(國外站點沒有備案這一說法)。

5、 Google與Baidu等搜尋引擎,輸入文件MD5/IP/域名,有時候可以查詢到對應病毒信息。

網絡連接查看命令

netstat -ano

Process Hacker 查看網絡連接,出現綠色的連接表示新增,紅色的連接表示斷開的。

四、文件排查

1、臨時目錄排查

黑客往往可能將病毒放在臨時目錄(tmp/temp),或者將病毒相關文件釋放到臨時目錄,因此需要檢查臨時目錄是否存在異常文件。

假設系統盤在C盤,則通常情況下的臨時目錄如下:

C:\Users\[用戶名]\Local Settings\Temp

C:\Documents and Settings\[用戶名]\Local Settings\Temp

C:\Users\[用戶名]\桌面

C:\Documents and Settings\[用戶名]\桌面

C:\Users\[用戶名]\Local Settings\Temporary InternetFiles

C:\Documents and Settings\[用戶名]\Local Settings\Temporary InternetFiles

2、瀏覽器相關文件排查

黑客可能通過瀏覽器下載惡意文件,或者盜取用戶信息,因此需要檢查下瀏覽器的歷史訪問記錄、文件下載記錄、cookie信息,對應相關文件目錄如下:

C:\Users\[用戶名]\Cookies

C:\Documents and Settings\[用戶名]\Cookies

C:\Users\[用戶名]\Local Settings\History

C:\Documents and Settings\[用戶名]\Local Settings\History

C:\Users\[用戶名]\Local Settings\Temporary InternetFiles

C:\Documents and Settings\[用戶名]\Local Settings\Temporary InternetFiles

3、最新打開文件排查

檢查下最近打開了哪些文件,可疑文件有可能就在最近打開的文件中,打開以下目錄或者運行中輸入recent即可看到:

C:\Users\[用戶名]\Recent

C:\Documents and Settings\[用戶名]\Recent

4、文件時間排查

可以根據文件夾內文件列表時間進行排序,查找可疑文件。一般情況下,修改時間離現象發現時間越近的文件越可疑。當然,黑客也有可能修改」修改日期「,但遇到很少。

用everything對所有exe文件排序,查找現象時間段內創建和修改的文件。

5、其他重要目錄排查

System32也是常見的病毒釋放目錄,因此也要檢查下該目錄。hosts文件是系統配置文件,用於本地DNS查詢的域名設置,可以強制將某個域名對應到某個IP上,因此需要檢查hosts文件有沒有被黑客惡意篡改。

C:\Windows\System32

C:\Windows\System32\drivers\hosts

五、遠程登錄排查

系統產生的日誌默認分為三類:應用程式日誌、安全性日誌、系統日誌

這些日誌以evt文件形式存儲在%systemroot%\system32\config目錄下,使用日誌查看器可查看這些日誌(開始 – 運行 –eventvwr)

1、RDP遠程登錄

RDP登錄日誌位於windows安全日誌中,登錄類型為10,該日誌記錄了此主機上的所有登錄行為。

審計RDP登錄日誌的目的是為了發現可疑登錄記錄,包括:

1.是否有異常的沒有登錄成功的審計事件,比如RDP爆破登錄;

2.是否有成功登錄的不明帳號記錄;

3.是否有異常IP的登錄事件,比如IP非此主機用戶常用IP;

4.是否有異常時間的登錄事件,比如凌晨2點遠程登錄主機;

注意:有時候登錄記錄會十分多,分析起來難度大,因此我們可以根據前期收集到的信息來幫助我們縮小審計範圍,比如異常現象發生的時間,惡意文件創建的時間等,可在這類時間點附近查找異常的登錄記錄。

作業系統

事件ID

登錄類型

說明

Xp/2003

528

10

RDP遠程登錄成功

Xp/2003

529

10

RDP遠程登錄失敗

2008/2012/2016/win7/win8/win10

4624

10

RDP遠程登錄成功

2008/2012/2016/win7/win8/win10

4625

10

RDP遠程登錄失敗

應用程式和服務日誌 -> Microsoft -> Windows ->TerminalServices-RemoteConnectionManager->Operational,事件ID 1149為RDP登錄成功日誌,會記錄源IP和用戶。

查看本機登錄過的IP:

打開註冊表,打開此路徑:HKCU\Software\Microsoft\Terminal ServerClient。

選中Default可以看到連接過的IP。

選中Servers -> [IP]可以查看登陸名。

2、SMB遠程登錄

共享目錄登錄記錄位於windows安全日誌中,登錄類型為3,常見的基於共享目錄的攻擊行為是IPC爆破,若爆破成功,攻擊者可以將受攻擊主機的磁碟文件映射到本地,造成信息洩露。同時,共享目錄可作為傳輸惡意文件的途徑之一,了解共享目錄的訪問情況可以幫助我們了解攻擊者的攻擊方法。

作業系統

事件ID

登錄類型

說明

Xp/2003

540

3

SMB遠程登錄成功

2008/2012/2016/win7/win8/win10

529

3

SMB遠程登錄失敗

2008/2012/2016/win7/win8/win10

4624

3

SMB遠程登錄成功

2008/2012/2016/win7/win8/win10

4625

3

SMB遠程登錄失敗

六、啟動項排查

黑客為了保持病毒能夠開機啟動、登錄啟動或者定時啟動,通常會有相應的啟動項,因此有必要找出異常啟動項,並刪除之。啟動項的排查,這裡引入一個非常好用的工具,工具名字Autoruns(官網www.sysinternals.com)。

1、自啟動項

autoruns查看

註冊表查看

永久啟動項

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

一次性啟動項,下次啟動會自動刪除

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce

32位程序啟動項

HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run

通過以下路徑放置程序也可以自啟動程序

%appdata%\Microsoft\Windows\Start Menu\Programs\Startup

2、任務計劃

autoruns查看

微軟自帶工具

taskschd.msc可啟動系統自帶任務計劃程序,可以查看任務計劃具體操作,顯示所有正在運行的任務,並且可以開啟任務歷史記錄。

註冊表查看

\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Schedule\TaskCache\Tree

有些任務計劃做了隱藏可通過註冊表查看,這裡任務計劃只有名稱,如果想知道任務計劃執行內容,可以結合任務計劃歷史記錄日誌看判斷。

服務排查

通過tasklist /svc,可以查看每個進程所對應的PID和服務

使用autoruns查看

註冊表查看

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services存儲著所有的服務啟動項

七、帳戶排查

查看用戶最後一次登錄,修改密碼時間,以及帳戶是否啟動。

net user xxx

通過PCHunter等工具可以查看隱藏用戶,如添加$符號的隱藏帳號,以及克隆帳號。

八、宏病毒分析處置

現象:

EDR等殺軟報宏病毒,病毒名提示類似於W97M、VBA、MSWor、Macro。

分析過程:

根據文件後綴其實就能看出,該word文檔是帶有宏代碼的,m即為macro。

為了分析腳本內容,打開文件就會觸髮腳本運行,但如果禁用宏的話,打開文檔是看不到腳本內容的。為了以靜態方式提取樣本,這裡會使用到一個分析程序oledump.py(https://github.com/decalage2/oledump-contrib)

oledump.py是一個用於分析OLE文件(複合文件二進位格式)的程序,而word、excel、ppt等文檔是OLE格式文件的,可以用它來提取宏代碼。

先進行文件基礎分析,可以看到A3這段數據被標記為「M」,「M」即表示Macro,說明這段數據是帶有VBA代碼的。

python oledump.py SSL.docm

接下來我們就需要將這段VBA代碼提取出來,執行以下命令,可以看到VBA代碼就被提取出來了。我們把他重定向到一個文件裡即可。

python oledump.py -s A3 -v SSL.docm

這段代碼其實比較簡單。

1.先判斷作業系統位數設置不同路徑的rundll32.exe,然後通過CreateProcessA啟動rundll32.exe。

2.通過VirtualAllocEx在rundll32進程裡申請一段內存空間。

3.通過WriteProcessMemory將myArray數組的內容,按字節寫入到剛才申請的內存空間。

4.通過CreateRemoteThread在rundll32進程創建遠程線程,入口點為剛才申請的內存空間首地址,並啟動該線程。

綜上所述,該代碼為遠程注入惡意代碼到其他進程,可以判斷為病毒。

九、勒索病毒

勒索病毒特徵

1、文件被加密成統一後綴,無法使用。

2、桌面存在勒索信息文件,或勒索信息背景。

勒索信息文件裡的一串二進位字符串,實際上是加密密鑰,但它被其他算法又加密了一層。

加密原理

1.常見的勒索病毒加密算法為RSA AES。

2.勒索病毒運行時會隨機生成一串AES密鑰,用該密鑰來加密文件,加密結束後,使用RSA公鑰對AES密鑰進行加密,保存在本地。

3.解密需要病毒開發者提供RSA私鑰,解密本地AES密鑰文件,從而得到AES密鑰來解密系統數據。

所以別寄希望於逆向分析來解密

十、sysmon監控

sysmon為windows提供了更強大的監控功能,但遺憾的是sysmon只支持2008以後的系統。

sysmon安裝推薦xml文件下載連結

https://github.com/SwiftOnSecurity/sysmon-config

最常用的安裝方式

sysmon.exe -accepteula -i -n

但上述方式不支持DNS記錄,而且日誌量會過大。

推薦安裝命令,使用上述git裡的配置,可支持DNS記錄,並且可自行修改過濾器,記錄自己需要的。

Sysmon64.exe -accepteula -i z-AlphaVersion.xml

卸載

sysmon.exe -u

日誌通過事件查看器查看,因為sysmon的日誌是以evtx格式存儲的。

具體事件路徑為

應用程式和服務日誌-Microsoft-Windows-Sysmon-Operational

如下圖所示,或者你直接去C盤指定路徑查文件也行

如同windows自帶的系統日誌,安全日誌有事件ID一樣,sysmon日誌也有對應的事件ID,最新版本支持23種事件。

Event ID 1: Process creation

Event ID 2: A process changed a file creation time

Event ID 3: Network connection

Event ID 4: Sysmon service state changed

Event ID 5: Process terminated

Event ID 6: Driver loaded

Event ID 7: Image loaded

Event ID 8: CreateRemoteThread

Event ID 9: RawAccessRead

Event ID 10: ProcessAccess

Event ID 11: FileCreate

Event ID 12: RegistryEvent (Object create and delete)

Event ID 13: RegistryEvent (Value Set)

Event ID 14: RegistryEvent (Key and Value Rename)

Event ID 15: FileCreateStreamHash

Event ID 17: PipeEvent (Pipe Created)

Event ID 18: PipeEvent (Pipe Connected)

Event ID 19: wmiEvent (WmiEventFilter activity detected)

Event ID 20: WmiEvent (WmiEventConsumer activity detected)

Event ID 21: WmiEvent (WmiEventConsumerToFilter activity detected)

Event ID 22: DNSEvent (DNS query)

Event ID 255: Error

案例

常用的有事件ID 1,監控進程創建,惡意進程的創建,包括他的父進程,PID,執行命令等等。

之前遇到過一起,開啟會自動運行powershell,但查了啟動項,任務計劃,wmi都沒發現痕跡,苦苦無解,然後使用sysmon監控進程創建,最終定位是誰拉起了powershell,往上溯源找到是一個偽造成正常程序圖標和後綴的link文件,存放在Startup目錄下,連結到存放在另一處的vbs腳本。

下圖即為進程創建監控日誌,可以看到幾個關鍵點,創建的進程,命令行,以及父進程

事件ID3,監控網絡連接,當惡意程序外連CC伺服器或者礦池等操作的時候,可以監控到是哪個進程發起的連接。這邊也舉個例子,之前遇到一種病毒,當你去用進程管理器或分析工具去查看時,該病毒會自動退出,防止被檢測到,並且隨機一段時間重啟,但態勢感知上發現確實有挖礦行為,使用sysmon監控,當他不定時運行時,即可捕捉到他連接礦池的行為,從而定位到進程。

下圖為網絡連接監控日誌,可以看到網絡連接的五元組,和對應的進程。

事件ID22,是這次重磅推出的新功能,DNS查詢記錄,這功能讓應急響應人員可以很輕鬆的通過域名定位到進程,並且你即使開啟了dnscache服務,也能定位到原先進程。dnscache是一個緩存服務,簡單來講,就是會代理其他進程進行dns解析,並且會緩存解析結果,下一次解析就不再發送請求,讀取緩存內容返回給指定程序即可。所以大家使用內存掃描工具,可能會定位到dnscache服務進程。

在監測設備上發現可疑域名解析時,通過這個功能,可以輕鬆定位到發起解析的進程,從而進一步分析進程文件是否確實有問題。

如下圖所示,為dns查詢日誌,會記錄解析域名和結果,以及對應的進程PID和路徑。

,
同类文章
葬禮的夢想

葬禮的夢想

夢見葬禮,我得到了這個夢想,五個要素的五個要素,水火只好,主要名字在外面,職業生涯良好,一切都應該對待他人治療誠意,由於小,吉利的冬天夢想,秋天的夢是不吉利的
找到手機是什麼意思?

找到手機是什麼意思?

找到手機是什麼意思?五次選舉的五個要素是兩名士兵的跡象。與他溝通很好。這是非常財富,它擅長運作,職業是仙人的標誌。單身男人有這個夢想,主要生活可以有人幫忙
我不怎麼想?

我不怎麼想?

我做了什麼意味著看到米飯烹飪?我得到了這個夢想,五線的主要土壤,但是Tu Ke水是錢的跡象,職業生涯更加真誠。他真誠地誠實。這是豐富的,這是夏瑞的巨星
夢想你的意思是什麼?

夢想你的意思是什麼?

你是什​​麼意思夢想的夢想?夢想,主要木材的五個要素,水的跡象,主營業務,主營業務,案子應該抓住魅力,不能疏忽,春天夢想的吉利夢想夏天的夢想不幸。詢問學者夢想
拯救夢想

拯救夢想

拯救夢想什麼意思?你夢想著拯救人嗎?拯救人們的夢想有一個現實,也有夢想的主觀想像力,請參閱週宮官方網站拯救人民夢想的詳細解釋。夢想著敵人被拯救出來
2022愛方向和生日是在[質量個性]中

2022愛方向和生日是在[質量個性]中

[救生員]有人說,在出生88天之前,胎兒已經知道哪天的出生,如何有優質的個性,將走在什麼樣的愛情之旅,將與生活生活有什么生活。今天
夢想切割剪裁

夢想切割剪裁

夢想切割剪裁什麼意思?你夢想切你的手是好的嗎?夢想切割手工切割手有一個真正的影響和反應,也有夢想的主觀想像力。請參閱官方網站夢想的細節,以削減手
夢想著親人死了

夢想著親人死了

夢想著親人死了什麼意思?你夢想夢想你的親人死嗎?夢想有一個現實的影響和反應,還有夢想的主觀想像力,請參閱夢想世界夢想死亡的親屬的詳細解釋
夢想搶劫

夢想搶劫

夢想搶劫什麼意思?你夢想搶劫嗎?夢想著搶劫有一個現實的影響和反應,也有夢想的主觀想像力,請參閱週恭吉夢官方網站的詳細解釋。夢想搶劫
夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂

夢想缺乏缺乏紊亂什麼意思?你夢想缺乏異常藥物嗎?夢想缺乏現實世界的影響和現實,還有夢想的主觀想像,請看官方網站的夢想組織缺乏異常藥物。我覺得有些東西缺失了