一.General Info
Let's start easy - whats the PC's name and IP address?
答案使用-连接加上flag{}格式提交,例如PC名为test,IP为127.0.0.1,提交flag{test-127.0.0.1}
考点: 注册表
1)根据题目,我们知道需要电脑的名称和ip地址
首先我们获取操作系统——imageinfo
2)想要知道电脑ip我们可以使用——netscan
3)电脑名称我们使用——envars,这样查看太麻烦了,我们把文件导出来,然后进行搜索computername
flag{WIN-LO6FAF3DTFE-192.168.202.131}
二.[OtterCTF 2018]What the password?
you got a sample of rick's PC's memory. can you get his user password?
考点:mimakatz
1)我们知道需要电脑的密码,我们使用——hashdump
2)使用lsadump进行爆破
flag{MortyIsReallyAnOtter}
三.[OtterCTF 2018]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?
答案使用-连接加上flag{}格式提交,例如游戏名为test,IP为127.0.0.1,提交flag{test-127.0.0.1}
考点:进程分析
1)我们使用pstree进行分析,经过百度搜索搜索知道LunarMS是游戏
2)查找游戏ip地址我们使用网络连接——netscan,grep进行筛选
flag{LunarMS-77.102.199.102}
四.[OtterCTF 2018]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?
考点:剪贴板
我们直接输入命令clipboard即可看到邮箱
flag{M@il_Pr0vid0rs}
五.[OtterCTF 2018]Name Game
We know that the account was logged in to a channel called Lunar-3. what is the account name?
考点:提取进程,使用strings进行二进制转字符串
1)我们直接进行筛选 Lunar-3,但是只有2个 Lunar-3,这里我们使用strings
2)前面我们知道游戏进行是708,我们使用memdump提取进程
3)提取之后,708.dump是一个二进制文件,我们用strings转换为字符strings /home/kali/volatility_2.6_lin64_standalone/708.dmp > /home/kali/708.dmp.strings
4)我们使用strings进行搜索,这里我的环境有点问题,我又重新导出了一遍708.dmp.strings
grep: 是一个用于在文件中搜索指定文本模式的命令。
-C 10: 这个选项是`grep`的上下文参数,表示在输出结果中显示匹配行的上下文内容,上下各10行。也就是说,除了显示包含"Lunar-3"的行之外,还会显示前后各10行的内容,以便更好地理解匹配的上下文。
Lunar-3": 是要在文件中搜索的目标字符串,即搜索的文本模式。
/home/kali/桌面/708.dmp.strings: 是要进行搜索的文件路径。在这个例子中,搜索的文件是位于`/home/kali/桌面/`目录下的名为`708.dmp.strings`的文件。
5)我们还可以直接在镜像里面进行搜索,这里加两个参数,可以打印出目标字符串前后的信息。
-A<显示行数> 或 –after-context=<显示行数> : 除了显示符合范本样式的那一列之外,并显示该行之后的内容。
-B<显示行数> 或 –before-context=<显示行数> : 除了显示符合样式的那一行之外,并显示该行之前的内容。
我这里把两个对应Lunar-3前后五行的数据也打印出来了。
flag{0tt3r8r33z3}
六.[OtterCTF 2018]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 pslist
1)通过pstree模块,我们可以看到各个进程直接的父子关系
2)可以看到,看似无害的vmware-tray.exe进程,他的父进程是Rick And Morty.exe,这是非常不对劲的,可以怀疑这个vmware-tray.exe进程实际上是恶意软件释放出来的子进程,通过cmdline
模块,可以追踪到程序的调用指令
3)我们也可以百度一下
flag{vmware-tray.exe}
七.[OtterCTF 2018]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?
考点:16进制, 在linux下,xxd指令可以打印文件的hexdump信息,故借此筛选特定信息的位置
1)前面我们已经导出了游戏的进程,这里我们直接查看
xxd是一个十六进制转储工具,它可以将文件或标准输入的内容转换为十六进制格式进行显示
2)我们使用命令: xxd /home/kali/桌面/708.dmp | grep “5a0c 0000”,这条命令的目的是从文件708.dmp中查找包含十六进制序列5a0c 0000的行,并将它们输出到终端。
5a0c 0000 是题目内容
flag{M0rtyL0L}
八.[OtterCTF 2018]Path To Glory
How did the malware got to rick's PC? It must be one of rick old illegal habits...
恶意软件是如何到达Rick的PC的?它一定是里克旧的非法习惯之一...
考点:进程分析 提权进程
1)在前面我们知道恶意软件是:vmware-tray.exe,这里我们使用他的父进程3820
2)我们可以看到3820就是恶意软件,我们搜索相关的内容——filescan | “grep Rick And Morty”
3)我们提权相关的内容——dumpfiles -Q 0x000000007dae9350 -D ./
4)我们使用strings进行查看
这里记得把最后的字母e去掉
flag{M3an_T0rren7_4_R!ck}
九.[OtterCTF 2018]Path To Glory 2
Continue the search after the way that malware got in.
在恶意软件进入的方式之后继续进行搜索。
考点:历史记录 history 数据库
1)我们首先查看是什么浏览器
2)谷歌浏览器,我们使用memdump -n 提取chrome信息 Memdump -n chrome.exe -D ./
3)在chrome查看所有包含’Rick And Morty’ 的前后10行
strings *.dmp | grep -i 'Rick And Morty' -C 10
这个方法比较慢,而且还不好找,我们可以查看这篇文章https://www.petermstewart.net/otterctf-2018-memory-forensics-write-up/
flag{Hum@n_I5_Th3_Weak3s7_Link_In_Th3_Ch@in}
十.[OtterCTF 2018]Bit 4 Bit
We've found out that the malware is a ransomware. Find the attacker's bitcoin address.
我们发现恶意软件是勒索软件。找到攻击者的比特币地址。
考点:搜索桌面文件,恶意进程
1)一般情况下,我们要是不知道在哪里查找文件,那么我们首先在桌面进行搜索
2)我们可以看到2个txt文件,我们提取第一个txt文件 dumpfiles -Q 0x000000007d660500 -D ./
3)我们进行查看文件内容
4)提示我们查看程序获得更多信息(就是上面的vmware-tray.exe),我们提取恶意进程 Memdump -p 3720 -D ./
5)我们使用strings进行搜索ransomware题目的提示
strings -e l 3720.dmp | grep -i -A 5 "ransomware"
该命令的目的是从名为 "3720.dmp" 的内存镜像文件中提取包含 "ransomware" 的字符串,并显示匹配行及其后的 5 行内容。这有助于在内存镜像中查找与勒索软件(ransomware)相关的信息
flag{1MmpEmebJkqXG8nQv4cjJSmxZQFVmFo63M}
十一.[OtterCTF 2018]Graphic’s For The Weak
There's something fishy in the malware's graphics.
恶意软件的图形中有一些可疑的东西。
考点:procdump转存进程的可执行文件
1)前面我们知道恶意进程是3720,这里我们直接转存进程
procdump -p 3720 -D ./
2)我们使用binwalk进行分离软件,但是没有如何可用的信息,我们使用foremost
3)可以看到一个文件夹,里面有图片
flag{S0_Just_M0v3_Socy}
十二.[OtterCTF 2018]Recovery
Rick got to have his files recovered! What is the random password used to encrypt the files?
里克必须恢复他的文件!用于加密文件的随机密码是什么?
考点: 重定向文本
1)我们把上一题提取的 exe 文件放进 ida,找到一个 sendpassword 函数,用到了 computername 和 username
2)strings -e l 3720.dmp > 3720.dmp.strings,该命令是将名为 “3720.dmp” 的内存镜像文件中提取的可打印字符串保存到名为 “3720.dmp.strings” 的文本文件中
3)grep “WIN-LO6FAF3DTFE” 3720.dmp.strings | sort | uniq
该命令用于在名为 "3720.dmp.strings" 的文本文件中搜索包含 "WIN-LO6FAF3DTFE" 的行,并对结果进行排序和去重。
sort: 这是一个命令行工具,用于对文本进行排序操作。
uniq: 这是一个命令行工具,用于从已排序的文本中去除重复行
flag{aDOBofVYUNVnmp7}
十三.[OtterCTF 2018]Closure
Now that you extracted the password from the memory, could you decrypt rick's files?
现在您从内存中提取了密码,您可以解密Rick的文件吗?
考点: 密程序HiddenTearDecrypter
1)解密文件,前面我们知道桌面有2个文件,其中一个就是flag.txt
2)我们把flag转储下来
3)已知这个勒索软件为HiddenTear,直接在网上找到解密程序HiddenTearDecrypter,先将加密文件的末尾多余的0去掉,再把后缀加上locked
flag{CTF{lm_Th@_B3S7_RicK_of_Th3m_4ll}
评论区
欢迎你留下宝贵的意见,昵称输入QQ号会显示QQ头像哦~