Volatility:分析MS10-061攻擊

合天網安實驗室發表於2019-02-26

0、前言

對上一次的攻擊進行分析

Metasploit:MS10-061:入侵、提權和取證

1、概述

1)什麼是 Volatility

Volatility是開源的Windows,Linux,MaC,Android的記憶體取證分析工具。基於Python開發而成,可以分析記憶體中的各種資料。Volatility支援對32位或64位Wnidows、Linux、Mac、Android作業系統的RAM資料進行提取與分析。

volatility 使用:

volatility -f <檔名> --profile=<配置檔案> <外掛> [外掛引數]

2)什麼是objdump

objdump命令是Linux下的反彙編目標檔案或者可執行檔案的命令。objdump工具可以用來顯示二進位制檔案的資訊,就是以一種可閱讀的格式讓你更多地瞭解二進位制檔案可能帶有的附加資訊。

3)什麼是BitDefender(bdscan)

Bitdefender(bdscan)是一款適用於Unix和Linux環境的防病毒掃描程式,具有檢測和刪除特洛伊木馬,rootkit,流氓軟體,廣告軟體,垃圾郵件等功能。

4)前提條件:

已經通過KaliMS10-061漏洞進行攻擊,取證收集

2、實驗步驟

1)確定Volatility的配置檔案

2)提取網路連線資訊

3)關聯可疑網路連線與程式ID

4)關聯檔案與程式ID

5)關聯DLL與後門程式

6)掃描後門程式

3、配置分析環境

1)登入到Kali

Volatility:分析MS10-061攻擊
2)設定 Volatility執行程式許可權

Volatility:分析MS10-061攻擊
3)將Volatility路徑新增到環境變數中

Volatility:分析MS10-061攻擊

4 、確定要使用的Volatility 的配置檔案

1)檢視取證檔案

Volatility:分析MS10-061攻擊
2)檢視映象資訊

vol.py imageinfo -f ms10_061.dd
複製程式碼

Volatility將檢測映象的作業系統版本資訊,需要一點時間,耐心等待

Volatility:分析MS10-061攻擊
檢測結果提示建議的配置檔案是:WinXPSP2x86,WinXPSP3x86,在這兒我們用WinXPSP2x86好了

5、關聯網路連線與程式ID

1)檢測網路連線
vol.py --profile=WinXPSP2x86 -f ms10_061.dd connections
複製程式碼

Volatility:分析MS10-061攻擊

vol.py --profile=WinXPSP2x86 -f ms10_061.dd connscan //檢視網路連線狀態
複製程式碼

Volatility:分析MS10-061攻擊
其中139NetBIOS埠,445SMB埠,9999Meterpreter會話 回連埠,7777Helix記憶體取證收集埠

其中 PID 392就是Meterpreter會話回連程式的ID

2)檢視程式資訊
vol.py --profile=WinXPSP2x86 -f ms10_061.dd pslist | egrep '(Offset|----------|392)'
複製程式碼

Volatility:分析MS10-061攻擊
其中,PID:程式號,PPID是程式的父程式號

還可以用 pstree 以樹形結構檢視程式表

Volatility:分析MS10-061攻擊
從程式中我們看到一個很可疑的程式名:g9bMJIYNoBtyOS,而且它還包括cmd的子程式

3)使用(dlllist)顯示程式載入的DLL
vol.py --profile=WinXPSP2x86 -f ms10_061.dd dlllist | grep "g9bMJIYNoBtyOS"
複製程式碼

Volatility:分析MS10-061攻擊
通過這一步分析,我們可以得出以下結果:

g9bMJIYNoBtyOS這個可疑的程式(PID:392)連線到了遠端主機192.168.1.349999埠,而且目錄是 C:\WINDOWS\system32

通常來說此目錄(C:\ WINDOWS \ system32)應僅包含系統特定的程式(可執行檔案)和庫(DLL

6、關聯檔案與DLL

objdump g9bMJIYNoBtyOS.exe -x -D | grep "DLL Name"
複製程式碼

Volatility:分析MS10-061攻擊
WSOCK32.dll是一個用於網路連線(TCP/IP連線)的Windows庫檔案

7、從記憶體中查詢隱藏的惡意程式

使用 malfind 引數分析程式ID

1)首先在程式中搜尋 svchost程式

svchost.exe 是承載多個Windows服務的系統程式

vol.py --profile=WinXPSP2x86 -f ms10_061.dd pslist | grep svchost
複製程式碼

Volatility:分析MS10-061攻擊
然後我們用 malfind 引數搜尋程式中隱藏或注入的DLL/程式碼

vol.py --profile=WinXPSP2x86 -f ms10_061.dd malfind -p 864,944
複製程式碼

Volatility:分析MS10-061攻擊
svchost的程式ID進行查詢,沒有發現

再拿可疑程式ID試試

Volatility:分析MS10-061攻擊
這次顯示了很多資訊

8、使用BitDefender掃描可執行檔案

bdscan --no-archive --action=ignore g9bMJIYNoBtyOS.exe | tee ms10_061_bdscan.txt
複製程式碼

Volatility:分析MS10-061攻擊

9、從登錄檔提取使用者資訊

使用 hivelist 引數在記憶體中找到登錄檔配置單元的虛擬地址,以及在磁碟上的完整路徑

1)查詢 systemSAM兩個登錄檔鍵值的虛擬地址

vol.py --profile=WinXPSP2x86 -f ms10_061.dd hivelist | egrep '(system$|SAM$)'
複製程式碼

Volatility:分析MS10-061攻擊
2)然後通過 hashdump將檔案儲存出來

Volatility:分析MS10-061攻擊

3)提取管理員SAM檔案

Volatility:分析MS10-061攻擊
4)使用John破解管理員密碼

cat /dev/null > /root/.john/john.pot //清除pot檔案,裡面包含以前破解的密碼
john --format=nt admin_sam.txt | tee admin_passwd.txt //--format=nt表示為WindowsNT密碼
複製程式碼

Volatility:分析MS10-061攻擊

10、說明

本文由合天網安實驗室原創,轉載請註明來源。

關於合天網安實驗室

合天網安實驗室(www.hetianlab.com)-國內領先的實操型網路安全線上教育平臺 真實環境,線上實操學網路安全 ; 實驗內容涵蓋:系統安全,軟體安全,網路安全,Web安全,移動安全,CTF,取證分析,滲透測試,網安意識教育等。

相關文章