進程排查
進程(Process)是計算機中的程序關于某數據集合上的一次運行活動,是系統進行資源分配和調度的基本單位,是操作系統結構的基礎
無論是在Windows系統還是Linux系統中,主機在感染惡意程序后,惡意程序都會啟動相應的進程,來完成相關的惡意操作
Windows進程排查
對于Windows系統中的進程排查,主要是找到
- 惡意進程的PID
- 程序路徑
- PPID(PID的父進程)
- 程序加載的DLL
對于進程的排查,一般有如下幾種方法
任務管理器
比較直觀的方法是通過【任務管理器】查看可疑程序,但是需要在打開【任務管理器】窗口后,添加【命令行】和【映射路徑名稱】等進程頁列,以方便獲取更多進程信息
tasklist
在命令行中輸入【tasklist】命令,可顯示運行在計算機中的所有進程,可查看進程的映像名稱、PID、會話名等信息
【tasklist】命令添加特定參數,還可以查看每個進程提供的服務
- 添加svc參數,可以顯示每個進程和服務的對應情況
- 輸入【tasklist /m】命令查詢進程加載的惡意進程
- 如果要想查詢特定DLL的調用情況,可以使用命令【tasklist /m DLL名稱】
netstat
在命令行中輸入【netstat】命令,可顯示網絡連接的信息,包括活動的TCP連接、路由器和網絡接口信息,相關參數如下
- -a:顯示所有連接和偵聽端口
- -b:顯示在創建每個連接或偵聽端口時涉及的可執行程序
- -n:以數字形式顯示地址和端口號
- -o:顯示擁有的與每個連接關聯的進程ID
- -p proto:顯示proto指定的協議的連接
常見的網絡狀態說明如下:
- LISTENING:偵聽狀態
- ESTABLISHED:建立連接
- CLOSE WAIT:對方主動關閉連接或網絡異常導致連接中斷
在排查過程中,一般會使用【netstat -ano | findstr "ESTABLISHED"
】命令查看目前的網絡連接,定位可疑的ESTABLISHED
根據netstat里面的pid,可以再結合tasklist命令進行進程查詢tasklist | findstr "PID"
注意如果攻擊者做了進程遷移,這里可能搜不到對應進程
wmic
使用【wmic】命令進行查詢
- 獲取系統進程信息:
wmic process
- 根據應用程序查找PID:
wmic process where name="cmd.exe" get processid, executablepath, name
- 根據PID查找應用程序:
wmic process where processid="4296" get executablepath, name
- 以 CSV格式來顯示進程的名稱、父進程ID、進程ID:
wmic process get name,parentprocessid,processid/format :csv
其他類似命令如下:
wmic process get ExecutablePath,processid/format: csv
-
- 以csv格式來顯示進程路徑、進程ID信息
wmic process get name,ExecutablePath,processid,parentprocessid/format: csv | findstr /I "appdata"
-
- 以csv格式來顯示進程的名稱、進程路徑、進程ID、父進程D信息
wmic process where processid=[PID] get parentprocessid
-
- 以PID的值作為條件來獲取其父進程的PID情況
wmic process where processid=[PID] get commandline
-
- 以PID的值作為條件來獲取其命令行
wmic process where name="malware.exe" call terminate
-
- 刪除"malware.exe"惡意程序的進程
wmic process where processid=[PID] delete
-
- 刪除PID為某值的進程
進程時間
WINDOWS可以借助第三方工具Process Explorer排查
進程資源管理器 - Sysinternals | Microsoft Learn
服務排查
服務可以理解為運行在后臺的進程
這些服務可以在計算機啟動時自動啟動,也可以暫停和重新啟動,而且不顯示任何用戶界面
服務非常適合在服務器上使用,通常在為了不影響在同一臺計算機上工作的其他用戶,且需要長時間運行功能時使用
在應急響應排查過程中,服務作為一種運行在后臺的進程,是惡意軟件常用的駐留方法
Windows服務排查
圖形化方法
打開【運行】對話框,輸入【services.msc】命令,可打開【服務】窗口,查看所有的服務項,包括服務的名稱、描述、狀態等
命令方法
- 查看當前運行的服務:
net start