一.OtterCTF 內(nèi)存取證
CTF地址:
OtterCTF
國產(chǎn)化一下:
注冊一下 登錄就可以 (注:因為郵箱不驗證,隨意搞個就可以):?
1 - What the password??
第一題:
國產(chǎn)化:?
?下載OtterCTF.7z的壓縮包:
?是OtterCTF.vmem鏡像文件
volatility介紹
????????Volatility是一款非常強大的內(nèi)存取證工具,它是由來自全世界的數(shù)百位知名安全專家合作開發(fā)的一套工具, 可以用于windows,linux,mac osx,android等系統(tǒng)內(nèi)存取證。Volatility是一款開源內(nèi)存取證框架,能夠?qū)?dǎo)出的內(nèi)存鏡像進行分析,通過獲取內(nèi)核數(shù)據(jù)結(jié)構(gòu),使用插件獲取內(nèi)存的詳細情況以及系統(tǒng)的運行狀態(tài)。
volatility工具的基本使用
命令格式
volatility -f [image] --profile=[profile] [plugin]
在分析之前,需要先判斷當(dāng)前的鏡像信息,分析出是哪個操作系統(tǒng)
volatility -f xxx.vmem imageinfo
如果操作系統(tǒng)錯誤,是無法正確讀取內(nèi)存信息的,知道鏡像后,就可以在--profile=中帶上對應(yīng)的操作系統(tǒng)
常用插件
下列命令以windows內(nèi)存文件舉例
查看用戶名密碼信息
volatility -f 1.vmem --profile=Win7SP1x64 hashdump
查看進程
volatility -f 1.vmem --profile=Win7SP1x64 pslist
查看服務(wù)
volatility -f 1.vmem --profile=Win7SP1x64 svcscan
查看瀏覽器歷史記錄
volatility -f 1.vmem --profile=Win7SP1x64 iehistory
查看網(wǎng)絡(luò)連接
volatility -f 1.vmem --profile=Win7SP1x64 netscan
查看命令行操作
volatility -f 1.vmem --profile=Win7SP1x64 cmdscan
查看文件
volatility -f 1.vmem --profile=Win7SP1x64 filescan
查看文件內(nèi)容
volatility -f 1.vmem --profile=Win7SP1x64 dumpfiles -Q 0xxxxxxxx -D ./
查看當(dāng)前展示的notepad內(nèi)容
volatility -f 1.vmem --profile=Win7SP1x64 notepad
提取進程
volatility -f 1.vmem --profile=Win7SP1x64 memdump -p xxx --dump-dir=./
屏幕截圖
volatility -f 1.vmem --profile=Win7SP1x64 screenshot --dump-dir=./
查看注冊表配置單元
volatility -f 1.vmem --profile=Win7SP1x64 hivelist
查看注冊表鍵名
volatility -f 1.vmem --profile=Win7SP1x64 hivedump -o 0xfffff8a001032410
查看注冊表鍵值
volatility -f 1.vmem --profile=Win7SP1x64 printkey -K "xxxxxxx"
查看運行程序相關(guān)的記錄,比如最后一次更新時間,運行過的次數(shù)等。
volatility -f 1.vmem --profile=Win7SP1x64 userassist
最大程序提取信息
volatility -f 1.vmem --profile=Win7SP1x64 timeliner
windows:
1.查看操作系統(tǒng)
volatility_2.6.exe -f OtterCTF.vmem imageinfo
?2.查看密碼
首先hash
volatility_2.6.exe -f OtterCTF.vmem --profile=Win7SP1x64 hashdump
518172d012f97d3a8fcc089615283940 這串哈希估計是解不出來,太復(fù)雜了。。。
???
?換個方法: lsadump模塊提取密碼:
volatility_2.6.exe -f OtterCTF.vmem --profile=Win7SP1x64 lsadump
?flag:CTF{MortyIsReallyAnOtter}
kali:同理:
系統(tǒng)信息
vol.py -f OtterCTF.vmem imageinfo
?hash哈希
vol.py -f OtterCTF.vmem --profile Win7SP1x64 hashdump
?lasdump密碼
vol.py -f OtterCTF.vmem --profile Win7SP1x64 lsadump
?mimikatz這個也可以查看明文,不過我沒成功 ,不知道啥原因 可能是python2的問題。。。
?提交flag:
2.General Info
國產(chǎn)化:?
?PC的ip和名稱:
查看網(wǎng)絡(luò)連接:
volatility_2.6.exe -f OtterCTF.vmem --profile=Win7SP1x64 netscan
?kali:
vol.py -f OtterCTF.vmem --profile Win7SP1x64 netscan
?雖然IP挺多的,但ip應(yīng)該是192.168.202.131(因為就這一個像)
CTF{192.168.202.131}
查看主機名稱:
查看注冊表:
vol.py -f OtterCTF.vmem --profile Win7SP1x64 hivelist
看到system?
主機名信息在system的那一條記錄中
查看注冊表鍵名
用-o + 地址 printkey
?來查看指定的記錄?
vol.py -f OtterCTF.vmem --profile Win7SP1x64 -o 0xfffff8a000024010 printkey
?然后就是步步跟進了:
vol.py -f OtterCTF.vmem --profile Win7SP1x64 -o 0xfffff8a000024010 printkey -K "ControlSet001"
vol.py -f OtterCTF.vmem --profile Win7SP1x64 -o 0xfffff8a000024010 printkey -K "ControlSet001\Control"
vol.py -f OtterCTF.vmem --profile Win7SP1x64 -o 0xfffff8a000024010 printkey -K "ControlSet001\Control\ComputerName"
vol.py -f OtterCTF.vmem --profile Win7SP1x64 -o 0xfffff8a000024010 printkey -K "ControlSet001\Control\ComputerName\ComputerName"
?運氣較好 第一個直接試出來:
CTF{WIN-LO6FAF3DTFE}
3.Play Time
?國產(chǎn)化:
?游戲名稱和服務(wù)器ip:
查看進程:?
vol.py -f OtterCTF.vmem --profile Win7SP1x64 pslist
好多,盲猜吧。。。?
?LunarMS.exe,可以搜索一下,發(fā)現(xiàn)是個游戲。。。
?用netscan查出ip地址
vol.py -f OtterCTF.vmem --profile Win7SP1x64 netscan
?在這:
CTF{LunarMS}
CTF{77.102.199.102}
?4.?Name Game
?國產(chǎn)化:
?已知這個賬戶登錄到稱為Lunar-3的頻道,找出賬戶名。
把OtterCTF.vmem搞到WinHex做分析:
先搜索Lunar-3
?后面有一段字符串:
使用strings命令加上grep搜索,-C 5
表示查找前后5條記錄,同樣可以找到可疑字符串?
strings OtterCTF.vmem|grep Lunar-3 -C 5
?
CTF{0tt3r8r33z3}
5.Name Game 2
?看著還是圍繞LunarMS這進程來的:
先提取進程:D保存當(dāng)前目錄就可以
vol.py -f OtterCTF.vmem --profile Win7SP1x64 memdump -p 708 -D ./
進程號PID可以看前面的pslist:
先分析題目十六進制數(shù)值:
0x64 0x??{6-8} 0x40 0x06 0x??{18} 0x5a 0x0c 0x00{2}
分析:0x 十六進制的標(biāo)志 {6-8} {18} {2}間隔位數(shù)
64 ?? {6-8}未知 40 06 ?? {18} 5a 0c 00 {2}
只能搜索 5a 0c 00 好找一些
Winhex工具:?
打開708.dmp 先搜索5a 0c 00?
慢慢找。。。。。出來了M0rtyL0L?
?這里也能查出來M0rtyL0L? 不過旁邊十六進制與題目所給的對不起來。。。
kali同樣也可以
hexdump命令:-A -B是指定列數(shù)
hexdump -C 708.dmp | grep "5a 0c 00" -A 3 -B 3
?找到:
還有這:
?CTF{M0rtyL0L}?
6.Silly Rick
?
找rick的電子郵件密碼 :
題目說他總是復(fù)制并粘貼密碼
那我們就查看粘貼板:
vol.py -f OtterCTF.vmem --profile Win7SP1x64 clipboard
CTF{M@il_Pr0vid0rs}?
7.Hide And Seek
?
找到惡意軟件進程名稱(包括擴展名)
PID和PPID:
進程PID是當(dāng)操作系統(tǒng)運行進程時系統(tǒng)自動為其分配的標(biāo)識符,具有唯一性,且為非零整數(shù)。一個PID只會標(biāo)識一個進程。
PPID代表的是父進程的PID,即父進程相應(yīng)的進程號。當(dāng)一個進程被創(chuàng)建時,創(chuàng)建它的那個進程會被稱作為父進程,而子進程將以PPID指出它的父進程。
查看進程:
vol.py -f OtterCTF.vmem --profile Win7SP1x64 pslist
?查看進程發(fā)現(xiàn)一個名為Rick And Morty的進程與題目對應(yīng)
而且vmware-tray.ex進程,PPID比PID還大 估計是。
?查看cmd歷史命令:
vol.py -f OtterCTF.vmem --profile Win7SP1x64 cmdline
查看該進程的進程命令參數(shù),發(fā)現(xiàn)Rick And Morty下載了vmware-tray.exe,默認下載路徑在RarSFX目錄下,并執(zhí)行了它:
?dlllist查看一下進程相關(guān)的dll文件列表
vol.py -f OtterCTF.vmem --profile Win7SP1x64 dlllist -p 3720
?CTF{vmware-tray.exe}
8.Path To Glory
這題意有點不明確。。。
惡意軟件是如何進入 rick 的 PC 的?應(yīng)該是下載的某個文件。
filescan找一下這個文件
vol.py -f OtterCTF.vmem --profile Win7SP1x64 filescan|grep 'Rick And Morty'
?一共三個exe和三個種子文件,我們要分析來源就要關(guān)注種子文件,里面可能放著地址信息:
先保存 在用strings命令 字符串查看文件:
可惜第一個和第二個都沒有flag信息:
0x000000007dae9350 第二個 這個有信息:
//保存
vol.py -f OtterCTF.vmem --profile Win7SP1x64 dumpfiles -Q 0x000000007dae9350 -D ./
//查看
strings file.None.0xfffffa801b42c9e0.dat
CTF{M3an_T0rren7_4_R!ck}?
9.?Path To Glory 2
?讓我們繼續(xù)。。。
沒頭緒了,看大佬的文章吧。
torrent文件是通過web瀏覽器下載的 先將所有的chrome進程轉(zhuǎn)儲下來:
vol.py -f OtterCTF.vmem --profile Win7SP1x64 memdump -n chrome.exe -D ./chrome
strings ./chrome/* | grep 'Rick And Morty season 1 download.exe' -C 10
?在這:
?過程中發(fā)現(xiàn)了flag.txt 可能后面的關(guān)卡會用到
?CTF{Hum@n_I5_Th3_Weak3s7_Link_In_Th3_Ch@in}
10.Bit 4 Bit
?
找攻擊者的地址
兩個方法:?
vmware-tray.exe pid 3720?
將惡意軟件轉(zhuǎn)儲出來:
知識點: 要把內(nèi)存中某個進程給dump出來,一般有兩種方式
memdump:以dmp格式保存
procdump:直接提取
vol.py -f OtterCTF.vmem --profile Win7SP1x64 procdump -p 3720 -D ./kiss
使用IDA Pro進行分析 打開executable.3720.exe
?方法二:
通過匹配
strings -e l OtterCTF.vmem | grep -i -A 5 "ransomware"
?CTF{1MmpEmebJkqXG8nQv4cjJSmxZQFVmFo63M}
11.Graphic's For The Weak
?
分離文件:?
foremost kiss/executable.3720.exe -v
foremost kiss/executable.3720.exe -o odic
-o 分離到odic目錄
?
?查看
?CTF{S0_Just_M0v3_Socy}
12.Recovery
?
加密文件的隨機密碼:
IDA查看帶有password的函數(shù):
發(fā)現(xiàn)有computerName+"-"+userName+" "
,也就是WIN-LO6FAF3DTFE-Rick
strings命令查看:
-a --all:掃描整個文件而不是只掃描目標(biāo)文件初始化和裝載段
-f –print-file-name:在顯示字符串前先顯示文件名
-n –bytes=[number]:找到并且輸出所有NUL終止符序列
- :設(shè)置顯示的最少的字符數(shù),默認是4個字符
-t --radix={o,d,x} :輸出字符的位置,基于八進制,十進制或者十六進制
-o :類似--radix=o
-T --target= :指定二進制文件格式
-e --encoding={s,S,b,l,B,L} :選擇字符大小和排列順序:s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit
@ :讀取中選項
還要帶上參數(shù)-e
,要以16-bit
尋找,即-el
或-eb
,不然找不到。?
strings -eb OtterCTF.vmem | grep WIN-LO6FAF3DTFE-Rick
?CTF{aDOBofVYUNVnmp7}
13.Closure
?最后一題了 解密rick的文件:
前面好像找到了一個flag.txt
在查找一下吧:
vol.py -f OtterCTF.vmem --profile Win7SP1x64 filescan|grep -i 'flag'
?應(yīng)該是第二個 提取到kiss目錄下:
vol.py -f OtterCTF.vmem --profile Win7SP1x64 dumpfiles -Q 0x000000007e410890 -D ./kiss
cat查看 被加密了?
?命令行把帶有0字節(jié)的刪除 然后保存到flag2.png.lockad
hexdump查看一下 還是沒有發(fā)現(xiàn)flag
tr < file.None.0xfffffa801b0532e0.dat -d '\000' > flag2.png.locked
hexdump -C flag2.png.locked
?這時需要工具:
已知這個勒索軟件為HiddenTear,直接在網(wǎng)上找到解密程序HiddenTearDecrypter
?winhex操作:
shift+delete刪除:
?刪除成功
?
?改名flag.png.locked
HiddenTearDecrypter:
密鑰就是12題的flag??aDOBofVYUNVnmp7
當(dāng)然,也可以破解:
?就是有億點點慢。。。。。
?還是直接填密鑰吧:
代表成功:?
?
?flag.png.locked變成了falg.png
?
打開是損壞的:
改成flag.txt?查看:
??Winhex查看:
?CTF{Im_Th@_B3S7_RicK_0f_Th3m_4ll}
?總結(jié):
????????到此 13關(guān)全部完成,主要用到的就是volatility工具和一些查看16進制的工具,Winhex,還有逆向IDA反編譯查詢,最后的HiddenTear勒索病毒,大家要了解,現(xiàn)在已經(jīng)可以破解密鑰了,還有就是一些基本的kali的查詢和工具命令要掌握。
推薦博客:文章來源:http://www.zghlxwxcb.cn/news/detail-437825.html
內(nèi)存取證-volatility工具的使用 (史上更全教程,更全命令)_路baby的博客-CSDN博客文章來源地址http://www.zghlxwxcb.cn/news/detail-437825.html
到了這里,關(guān)于OtterCTF---Memory Forensics內(nèi)存取證(1-13)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!