题目描述
内存取证是一种比较主观性的题目
- My friend John is an “environmental” activist and a humanitarian. He hated the ideology of Thanos from the Avengers: Infinity War. He sucks at programming. He used too many variables while writing any program. One day, John gave me a memory dump and asked me to find out what he was doing while he took the dump. Can you figure it out for me?
- 我的朋友约翰是一位“环保”活动家和人道主义者。他讨厌复仇者联盟中灭霸的意识形态:无限战争。他编程很烂。他在编写任何程序时使用了太多变量。有一天,约翰给了我一个内存转储,并让我找出他在转储时在做什么。你能帮我弄清楚吗?
查看系统版本
volatility -f Challenge.raw imageinfo
查看进程 发现cmd.exe
volatility -f Challenge.raw --profile=Win7SP1x86_23418 pslist
查看历史命令 发现python运行程序 未提取出文件内容
volatility -f Challenge.raw --profile=Win7SP1x86_23418 cmdscan
查看命令输出 获得一串16进制字符串
volatility -f Challenge.raw --profile=Win7SP1x86_23418 consoles
解密16进制字符串 乱码
print("335d366f5d6031767631707f".decode("hex"))
根据题目描述:“编写任何程序时使用了太多变量” 以及英文原文中提及环境一词, 猜测和环境变量相关。
查看环境变量 发现提示 xor and password
volatility -f Challenge.raw --profile=Win7SP1x86_23418 envars
对数据进行异或 获得后半部分flag
a = "335d366f5d6031767631707f".decode("hex")
for i in range(0,255):
b = ''
for j in a:
b = b + chr(ord(j)^i)
print(b)
根据提示password 获取hash
volatility -f Challenge.raw --profile=Win7SP1x86_23418 hashdump
破解hash 获得flag前半部分
原题是可以在线搜索的,本地直接爆破出不来,太长了
最后组合flag得到flag{you_are_good_but1_4m_b3tt3r}