OtterCTF 2018 Forensics
OtterCTF 2018 Forensics
题单来自NSSCTF
- [OtterCTF 2018]What the password?
- [OtterCTF 2018]General Info
- [OtterCTF 2018]Play Time
- [OtterCTF 2018]Name Game
- [OtterCTF 2018]Name Game 2
- [OtterCTF 2018]Silly Rick
- [OtterCTF 2018]Hide And Seek
- [OtterCTF 2018]Path To Glory
- [OtterCTF 2018]Path To Glory 2
- [OtterCTF 2018]Bit 4 Bit
- [OtterCTF 2018]Graphic’s For The Weak
- [OtterCTF 2018]Recovery
- [OtterCTF 2018]Closure
[1].What the password?
you got a sample of rick's PC's memory. can you get his user password?
获取内存镜像信息
python2 vol.py -f /root/桌面/OtterCTF.vmem imageinfo

得到版本:Win7SP1x64
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 lsadump

得到 password:MortyIsReallyAnOtter
[2].General Info
Let's start easy - whats the PC's name and IP address?
查看注册表信息
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 hivelist

主机名会出储存在\REGISTRY\MACHINE\SYSTEM中的ControlSet001\Control\ComputerName\ComputerName条目中,直接读取
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 printkey -o 0xfffff8a000024010 -K 'ControlSet001\Control\ComputerName\ComputerName'

PC's name:WIN-LO6FAF3DTFE
查看IP
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 netscan

IP address:192.168.202.131
答案:WIN-LO6FAF3DTFE-192.168.202.131
[3].Play Time
Rick just loves to play some good old videogames.
can you tell which game is he playing?
whats the IP address of the server?
查看进程列表信息
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 pstree

可疑的进程 LunarMS.exe,google一下得知是一款古老的电子游戏
查看IP
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 netscan | grep 'LunarMS.exe'

IP:77.102.199.102
答案:LunarMS-77.102.199.102
[4].Name Game
We know that the account was logged in to a channel called Lunar-3. what is the account name?
提取出包含LunarMS的进程
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 memdump -p 708 -D /root/桌面

查看dmp中的字符串
strings /root/桌面/708.dmp | grep -C 5 'Lunar-3'
grep -C 5 匹配行和它前后各5行

account name:0tt3r8r33z3
[5].Name Game 2
From a little research we found that the username of the logged on character is always after this signature: 0x64 0x??{6-8} 0x40 0x06 0x??{18} 0x5a 0x0c 0x00{2}
What's rick's character's name?
查看dmp文件的hexdump信息
xxd /root/桌面/708.dmp | grep '5a0c 0000'
xxd 将一个给定文件或标准输入转换为十六进制形式

答案:M0rtyL0L
[6].Silly Rick
Silly rick always forgets his email's password, so he uses a Stored Password Services online to store his password. He always copy and paste the password so he will not get it wrong. whats rick's email password?
查看剪切板
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 clipboard

答案:M@il_Pr0vid0rs
[7].Hide And Seek
The reason that we took rick's PC memory dump is because there was a malware infection. Please find the malware process name (including the extension)
pstree 列出所有进程的父子关系
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 pstree

cmdline 追踪程序的调用指令,获取两个异常进程关联的完整命令行

google一下,得知这是一个卸载后会重新安装自己的小玩意,Rick And Morty season 1 download.exe 也预示着此进程为我们要找的恶意进程
答案:vmware-tray.exe
[8].Path To Glory
How did the malware got to rick's PC? It must be one of rick old illegal habits...
既然恶意进程的父进程为 Rick And Morty,那么扫描一下文件列表
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 filescan | grep -i 'Rick And Morty'

发现\Downloads下的种子文件,将种子文件提取出来,重命名为bad.dat
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007d8813c0 -D /root/桌面
查看文件的内容

我们看到它是区域标识符而不是 torrent 本身。ZoneId=3这一行表示该 torrent 是从互联网上下载的
尝试下一个
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007dae9350 -D /root/桌面
重命名为bad2.dat,这次提取正确

BitTorrent file:BT下载类型的种子文件

答案:M3an_T0rren7_4_R!ck
[9].Path To Glory 2
Continue the search after the way that malware got in.
已知该种子是从互联网上下载下来的,memdump 所有包含chrome.exe的进程
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 memdump -n chrome.exe -D /root/桌面/chrome

在/chrome查看所有包含'Rick And Morty' 的前后10行
strings *.dmp | grep -i 'Rick And Morty' -C 10

答案:Hum@n_I5_Th3_Weak3s7_Link_In_Th3_Ch@in
以上方法过于肉眼......在这篇文章中有更逻辑性的解法,及以下演示的解法
更优解:
已知该种子是从互联网上下载下来的,用 filescan 和 dumpfiles 查看和提取 Chrome 历史数据库
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 filescan | grep -ie 'history$'
grep -ie 'history$' :搜索文件中结尾为history的所有行,并忽略大小写
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007d45dcc0 -D /root/桌面

Chrome 将历史数据存储在 SQLite 数据库中。
用file 查看提取文件可知是 SQLite 3.x database, last written using SQLite version 3023001
将文件重命名为 chrome-history.sqlite,并使用 sqlite3 实用程序运行以下查询
这个主题好看多了 (〃'▽'〃)
sqlite3 /root/桌面/chrome-histroy.sqlite
select current_path, site_url from downloads;

得知是从 https://mail.com 下载的文件,用 strings 查找与 mail.com 相关的信息
strings /root/桌面/OtterCTF.vmem.strings | grep '@mail.com'

strings /root/桌面/OtterCTF.vmem.strings | grep -A 20 'rickopicko@mail.com'
grep -A 20 :显示rickopicko@mail.com及后20行

得到答案:Hum@n_I5_Th3_Weak3s7_Link_In_Th3_Ch@in
[10].Bit 4 Bit
We've found out that the malware is a ransomware. Find the attacker's bitcoin address.
什么是比特币地址?
比特币地址是一个标识符(帐号),包含27-34个字母数字拉丁字符(0,O,I除外)。地址可以以QR码形式表示,是匿名的,不包含关于所有者的信息。
地址示例:14qViLJfdGaP4EeHnDyJbEGQysnCpwn1gd
勒索文件一般会在桌面上放置勒索字条,所以让我们先寻找它
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 filescan | grep -i 'desktop'

把 READ_IT.txt dump 下来
file 查看得知是 read_it.dat: ASCII text, with CRLF line terminators,导入010editor

只是注释...
回头去把之前的恶意进程vmware-tray.exe提取出来
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 memdump -p 3720 -D /root/桌面

strings -el 3720.dmp | grep -i -A 5 'ransom'
-el 标志用于搜索U nicode字符串

答案:1MmpEmebJkqXG8nQv4cjJSmxZQFVmFo63M
(搜索 'ransom' 确实需要一些脑洞,但搜索'pay'也可以得到)
[11].Graphic’s For The Weak
There's something fishy in the malware's graphics.
procdump转储进程可执行文件,然后使用binwalk从可执行文件中识别图形
python2 vol.py -f /root/桌面/OtterCTF.vmem --profile=Win7SP1x64 procdump -p 3720 -D /root/桌面

foremost executable.3720.exe
在/output/png内得到

答案:CTF{S0_Just_M0v3_Socy}
[12].Recovery
Rick got to have his files recovered! What is the random password used to encrypt the files?
用grep搜索关键词,多次尝试
strings -el ../../3720.dmp | grep 'password' | wc -l
strings -el ../../3720.dmp | grep 'password'
wc -l :统计行数

没有所需的
strings -el ../../3720.dmp | grep -i 'rick' | wc -l

数据过多
strings -el ../../3720.dmp | grep -i 'WIN-LO6FAF3DTFE' | wc -l
strings -el ../../3720.dmp | grep 'WIN-LO6FAF3DTFE' | sort | uniq
sort:排序
uniq:去重

主机名和用户名与看似随机的字母数字字符串连接在一起,应该就是答案
得到答案:aDOBofVYUNVnmp7
[13].Closure
Now that you extracted the password from the memory, could you decrypt rick's files?
最后的挑战是使用问题 12 中的密码来解密 Rick 的文件。我们需要弄清楚的第一件事是我们正在处理的勒索软件类型。我们能够从问题 11 中的内存映像中提取可执行文件,并且可能有人已经将其上传到像 VirusTotal 这样的在线沙箱。让我们获取SHA1哈希并进行检查。
sha1sum executable.3720.exe
sha1sum命令用于计算文件或者字符串的SHA-1校验值
得到 8a728dc1efaba298159fe56d8098061d644b2396 ,在virustotal上查询

果然,在 VirusTotal 上有一个命中,引用了一个替代的可执行文件名称 (VapeHacksLoader.exe),它与我们在题目[11] 中提取的图形中引用的 $ucyLocker 勒索软件相关联。$ucyLocker 是开源 Hidden Tear 的变体 勒索软件
先dump文件
python2 vol.py -f OtterCTF.vmem --profile=Win7SP1x64 filescan | grep 'Flag.txt'
python2 vol.py -f ../../OtterCTF.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007e410890 -D /root/桌面

用010editor 移除文件后面的 00 字节,修改文件的后缀为 .locked
用 hidden-tear-decrypt工具选择文件夹,填入密码 aDOBofVYUNVnmp7 ,点击Decrypt 解密

得到答案:CTF{Im_Th@_B3S7_RicK_0f_Th3m_4ll}
OtterCTF 2018 Forensics的更多相关文章
- 2018. The Debut Album
http://acm.timus.ru/problem.aspx?space=1&num=2018 真心爱过,怎么能彻底忘掉 题目大意: 长度为n的串,由1和2组成,连续的1不能超过a个,连续 ...
- Math.abs(~2018),掌握规律即可!
Math.abs(~2018) 某前端群的入门问题长姿势了,一个简单的入门问题却引发了我的思考,深深的体会到自己在学习前端技术的同时忽略遗忘了一些计算机的基础知识. 对于 JS Math对象没什么可说 ...
- 肖秀荣8套卷2018pdf下载|2018肖秀荣冲刺8套卷pdf下载电子版
肖秀荣8套卷2018pdf下载|2018肖秀荣冲刺8套卷pdf下载电子版 下载链接: https://u253469.ctfile.com/fs/253469-229815828
- 2018年的UX设计师薪酬预测,你能拿多少?
以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具. 一个经验丰富的设计师完全可以根据地区和专业来可以预期薪酬之间的差距,其中悬殊最高可达80K. 本 ...
- Hello 2018, Bye 2017
2017年过去了,过去一年经历了太多,改变了好多好多,可以说人生进入了另一个阶段,有可能是成熟吧. 回顾2017 去年换了新工作,离开了将近工作了8年的公司,不带走一丝云彩,为其任劳任怨,最后没有任何 ...
- New Life With 2018
2017年转眼过去了.对自己来说.这一大年是迷茫和认知的一年.我的第一篇博客就这样记录下自己的历程吧 一:选择 从进入这一行到现在已经一年多了,2016年11月份就像所有的应届毕业生一样,都贼反感毕业 ...
- 2017 年终总结 & 2018 年度计划
不立几个 Flag,都不知道怎么作死 2017 年度计划完成情况: 1.健身时间不少于350天: 未完成 中断了22天,实际运动 343天 2.至少每个月看一本书: 及格 <切尔诺贝利的 ...
- [总结]-2018 w1
不想总结 2017,过去的就过去吧,不过自己在 2017 年还是收获了很多,最重要的就是赚钱.赚钱还是需要两把刷子,所以,2018 的小目标就是学习数据分析和机器学习.希望自己在这两个领域能搞点事情. ...
- 2018年手机应用UI设计趋势预测
用户需求瞬息万变,而手机软件UI设计为适应变化的用户需求,也相应的发生着变化.但是,这并不意味着用户需求和UI设计趋势就是无迹可寻的.事实上,根据前几年的手机app界面设计变化的特点,尤其是2017年 ...
- 2017 年的 人生 hard 模式终于结束了,2018年回归初心
2017 年的 人生 hard 模式终于结束了,2018年回归初心 2017年对于我个人来讲, 毫不夸张的说 算是近十年来除了高考那一年,最最惊心动魄的一年了,没有之一. >>>开篇 ...
随机推荐
- HDU 多校 2023 Round #5 题解
HDU 多校 2023 Round #5 题解 \(\text{By DaiRuiChen007}\) A. Typhoon Problem Link 题目大意 给一条 \(n\) 个点构成的折线,\ ...
- SQL中常用的字符串REVERSE函数和SUBSTRING函数详解!
今天继续整理日常可能经常遇到的一些处理字符串的函数,记得点赞收藏!以备不时之需! REVERSE(expression)函数解析:SQL Server中的此函数用于反转(颠倒)指定的字符串,也就是说把 ...
- C语言中四舍五入问题总结
C语言中四舍五入问题的总结 在C语言中大部分情况下都是不需要四舍五入的. 除了一种情况:在使用输出函数 printf()限制浮点型输出的小数位个数 eg: printf("%0.2f&quo ...
- 提取关键词作为标题---Java调用Python实现
目录 前景提示 思考 企业级处理方案流程图 Python 实现的方式 Java实现 导入Maven包 书写代码 最终版本 遗留问题: 遇到问题 1.无法解析. 2.模块找不到. 3.乱码处理 版本 继 ...
- 稳定、省钱的 ClickHouse 读写分离方案:基于 JuiceFS 的主从架构实践
Jerry 是一家位于北美的科技公司,利用人工智能和机器学习技术,简化汽车保险和贷款的比价和购买流程.在美国,Jerry 的应用在其所属领域排名第一. 随着数据规模的增长,Jerry 在使用 AWS ...
- 深入学习Semantic Kernel:创建和配置prompts functions
引言 上一章我们熟悉了一下 Semantic Kernel 的理论知识,Kernel 创建以及简单的Sample熟悉了一下 SK 的基本使用.在Semantic Kernel中的 kernel fun ...
- Android OpenMAX(二)OMX Component实现基础
Android OpenMAX IL提供的API位于 frameworks/native/headers/media_plugin/media/openmax ,目录下存放有预定义的类型.组件句柄定义 ...
- 微软的文本转语音服务Microsoft.CognitiveServices.Speech
微软的Edge 浏览器里的大声朗读里-"晓晓" 很接近自然人,比起其它平台的强很多. 在AZURE 可免费体验,每月限额50万字,每个语音转换不超过10分钟长度. C# 调用: u ...
- 智影AI故事转视频创作神器!快速开启AI绘画小说推文之旅
1.前言 1.1 生成内容形式 生成内容形式主要包含三种,PGC(Professionally Generated Content).UGC(User Generated Content).AIGC( ...
- 3分钟部署 我的世界(Minecraft) 联机服务
游戏简介 我的世界(Minecraft)是一款沙盒类电子游戏,该游戏以玩家在一个充满着方块的三维空间中自由地创造和破坏不同种类的方块为主题.玩家在游戏中可以在单人或多人模式中通过摧毁或创造精妙绝伦的建 ...