記憶體分析工具Volatility簡介

NEITHNET 情資分享

NEITHNET 資安實驗室

  從wiki引用的說明,Volatility是一個用於事件響應和惡意軟體分析的開源記憶體取證框架,採用Python編寫,支援Microsoft Windows、macOS和Linux(從版本2.5[1]開始)。

從官方說明中,目前穩定版本為Volatility 2.6、更新中版本為Volatility 3。

  有興趣的可以在這邊下載:

  這次用來介紹的memory sample可以從這邊下載:

  都下載安裝完成後可以用-h 先查詢指令,相關語法也可以在下列網址上進行查詢:

觀察memory檔案

  這次使用Malware – Cridex Windows XP SP2 x86

  ※python vol.py -f xxxx.vmem imageinfo

  可以看到Suggested Profile(s) 這個imageinfo的可能系統類型
  下面列出的Type(Service Pack)可以讓我們確認該映像檔版本來進行收斂查詢值


   EX:python vol.py -f xxxx.vmem –profile=WinXPSP2x86 pslist

   ※pslist 可以查詢記憶體中運行的process列出來:https://docs.microsoft.com/en-us/sysinternals/downloads/pslist

   ※pstree 可以看到父子process關聯

   ※psscan 深度搜尋,可以搜尋隱藏的process (目前此範例無隱藏process)

   ※psxview 主要可以確認 pslist 與psscan中,是否有查詢出process的差異,如果有就需要注意

   ※connections 查詢連線,可以看到1484這個PID有做對外連線 IP:41.168.5[.]140:8080

    參照上面我們查出來的process ID 可以知道PID:1484 = explorer.exe
    看到這邊就要去想為什麼explorer.exe(檔案總管)會去做對外連線

   ※connscan 可以查詢是否有隱藏連線,查詢完之後發現還多了一個連線,連線到IP:125.19.103[.]192:8080


   拿到這些連線後我們可以拿去做一些相關查詢等動作,可以當作一些IR查詢的相關輔助資料。

   ※getsids 可以查詢各process有關的SID 像是可以看到reader_sl.exe 有繼承explorer.exe權限等

   ※printkey :可以查詢registry key的值資料型態等

   像是 printkey -K “SAM\Domains\Account\Users\Names”
   可以查該系統上有哪些USER


   剩下其他相關指令都可以參閱上面的wiki 右邊條列可以根據所需系統項目來進行查詢


  除了github上提供的那些比較舊的memory檔案之外,如果有機會拿到其他memory時候,就利用Volatility來協助調查吧。

   參考資料:

   https://github.com/volatilityfoundation/volatility

   https://www.volatilityfoundation.org/contest

   https://en.wikipedia.org/wiki/Volatility_(software)

  更多資安訊息及防護策略,歡迎與NEITHNET資安專家聯繫:info@neithnet.com

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。