幾道內存取證的題目拿來做一下。
[V&N2020 公開賽]內存取證
開局給了給了一個raw文件。
先看一下鏡像文件的基本信息。
volatility -f mem.raw imageinfo
這步一般是為了得到文件的profile。
直接一點,搜一搜有沒有名為flag的文件
volatility -f mem.raw --profile=Win7SP0x86 filescan | grep flag
看一看當時運行了哪些進程。
volatility -f mem.raw --profile=Win7SP0x86 pslist
0x83c0ad40 TrueCrypt.exe 3364 3188 7 388 1 0 2020-02-18 19:52:44 UTC+0000 0x837f5d40 notepad.exe 3552 1964 2 61 1 0 2020-02-18 19:53:07 UTC+0000 0x82a7e568 iexplore.exe 3640 1964 16 468 1 0 2020-02-18 19:53:29 UTC+0000 0x847c8030 iexplore.exe 3696 3640 25 610 1 0 2020-02-18 19:53:29 UTC+0000 0x848a7030 mspaint.exe 2648 1964 18 383 1 0 2020-02-18 19:54:01 UTC+0000
發現幾個比較關鍵的應用,notepad是文本編輯器,iexplore是ie瀏覽器,mspaint是xp系統自帶的畫板。TrueCrypt是一款免費,開源的支持Windows Vista/XP/2000 and Linux的綠色虛擬加密磁盤工具,可以在硬盤上創建一個或多個虛擬磁盤,所有虛擬磁盤上的文件都被自動加密,需要通過密碼來進行訪問。 TrueCrypt提供多種加密算法,如AES-256、Blowfish(448-bitkey)、CAST5、Serpent、Triple DES等,其他特性還包括支持FAT32和NTFS分區、隱藏卷標和熱鍵啟動。
先看一下ie瀏覽器記錄。
volatility -f mem.raw --profile=Win7SP0x86 iehistory | grep 'https://'
比較顯眼就是訪問了百度網盤,當我訪問的時候發現分享的文件已經被取消了,但是在buu上面附件還是給了,一個OVL文件。
看一下文本編輯器寫了些什么。
volatility -f mem.raw --profile=Win7SP0x86 editbox
還是指向百度網盤,並且有這次有提取碼。
接下來看一下mspaint里面有什么,通過pid把這塊的內存dump下來。
volatility -f mem.raw --profile=Win7SP0x86 memdump -p 2648 --dump-dir=./
將2648.dmp的后綴改成data,然后用gimp打開,通過調整位移、高度、寬度來嘗試還原圖片。
先將高度拉到和畫板一樣高,長度盲猜1440,然后慢慢調位移。
當發現有字母顯示出來了,就別動位移了,慢慢調整寬度。
截圖放到word里面,垂直翻轉,識別一下字母。
但是這個字符串並不是flag。
接下來就是TrueCrypt這個軟件了,現在大概思路就出來了,OVL是用TrueCrypt來加密后的一個磁盤,現在需要對這個磁盤進行解密。
在解密前先把TrueCrypt像dump mspaint一樣把那塊內存dump下來。
解密需要用到一個軟件叫Elcomsoft Forensic Disk Decryptor,可以用來破解這個磁盤文件的key值。
上面選擇加密后的磁盤文件,下面選擇dump出來的內存。
點成Unmount,在自己電腦的E盤發現key(其實我電腦本身是沒有E盤的,這里是臨時分區出這個盤放key值的)
知道了key值,接下來用VeraCrypt掛載一下。
發現flag文件,壓縮包是加密的。還記得上面搞出來的字符串嗎?
解壓出來就看到flag了。
BMZCTF 內存取證三項
題目內容:
一天下午小白出去吃飯,臨走之前還不忘鎖了電腦,這時同寢室的小黑想搞點事情,懂點黑客和社工知識的小黑經過多次嘗試獲得了密碼成功進入電腦,於是便悄悄在電腦上動起手腳了,便在桌面上寫着什么,想給小白一個驚喜,同時還傳送着小白的機密文件,正巧這時小白剛好回來,兩人都嚇了一跳,小黑也不管自己在電腦上留下的操作急忙離開電腦,故作淡定的說:“我就是隨便看看”。
1.小黑寫的啥,據說是flag?
2.那么問題來了,小白的密碼是啥?
3.小黑發送的機密文件里面到底是什么
還是給了一個鏡像文件,第一步先查看鏡像的基本信息。
volatility -f mem.raw imageinfo
知道profile之后,掃描一下有沒有帶有flag字樣的文件。
沒掃到任何東西,掃一下進程。
0xff5ee020 notepad.exe 280 1416 1 50 0 0 2016-11-14 12:20:27 UTC+0000 0xff5c5020 cmd.exe 1568 1416 1 34 0 0 2016-11-14 12:23:34 UTC+0000
發現了兩個比較可疑的進程,一個是notepad,一個是cmd。
先看一下筆記本記錄了些什么內容。
volatility -f mem.raw Profile=WinXPSP2x86 editbox
發現了一串16進制的字符串,太熟悉了。
666C61677B57336C6563306D655F376F5F466F72336E356963737D
666c6167,是flag的16進制的ascii碼對應的值。16進制轉字符串,出現第一個flag。
flag{W3lec0me_7o_For3n5ics}
根據題目要求,第二個是要知道小白電腦的開鎖密碼,獲取內存中的系統密碼,我們可以使用 hashdump 將它提取出來 。
volatility -f mem.raw –profile=WinXPSP2x86 hashdump
Volatility Foundation Volatility Framework 2.5 Administrator:500:1e27e87bd14ec8af43714428b303e3e4:1e581aafa474dfadfdf83fc31e4fd4ea::: Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: HelpAssistant:1000:687255e91a0f559b6d75553dbd51f785:b6125736bdd2d5f154fdce59f52e39f1::: SUPPORT_388945a0:1002:aad3b435b51404eeaad3b435b51404ee:fb41f8d1334fba131974c39bfab09512:::
這里1e581aafa474dfadfdf83fc31e4fd4ea其實就是開鎖密碼的hash之后的密文。
怎么破解出來的,網上的師傅們都是跑什么彩虹表,我就不研究了。感覺是出題人沒考慮好,因為這個密文解不出來,很難受,就硬考字典全?第三問其實也給了提示。
看一下cmd執行過哪些命令。
volatility -f mem.raw Profile=WinXPSP2x86 cmdscan
向另一台主機發送了一個壓縮包,先找到這個壓縮包。
volatility -f mem.raw Profile=WinXPSP2x86 filescan | grep 'P@ss'
把這個文件dump下來。
volatility -f mem.raw Profile=WinXPSP2x86 dumpfiles -Q 0x0000000002c61318 -D ./
file之后發現是zip格式的壓縮包,被加密,根據上面的hint,密碼是生日,那就是8位純數字的密碼,用壓縮包爆破工具爆破一下。
壓縮包里面就是flag。