这里真的就是随便记录了,毕竟 musc 知识太杂,(`_´)ゞ
picoctf 靶场
Forensics_Event-Viewing
在这道题中,我学到的是 Windows 的日志 evtx 分析的常识
比如说
1 | Installation -> Event ID 1033 |
根据题意,我需要做的是分析这三个事件 id,然后看看有没有出题师傅留下的 flag
我这里一共有两个方式,一个是通过电脑自带的 evtx 查看器
具体像这样
另一个方式是使用 Linux 终端工具chainsaw
下面我将记录命令行工具的使用
先是提取 1033 事件
1 | chainsaw search -t 'Event.System.EventID: =1033' Windows_Logs.evtx |
然后直接 base64 -d 就能解码(其实这个就是我喜欢终端命令行的原因之一,( •̀ ω •́ )y
1 | yolo@Yolo:~/Desktop/tools$ echo cGljb0NURntFdjNudF92aTN3djNyXw== | base64 -d |
同样的方式,可以查看下 4657 端口,这个是查看注册表是否更改的,根据题目介绍,那个软件运行了下,但是没有界面,那么自然更改了某些东西
这里又能看到一些编码
得到了第二部分 flag
1 | yolo@Yolo:~/Desktop/tools$ echo MXNfYV9wcjN0dHlfdXMzZnVsXw== | base64 -d |
1074 查找的就是电脑的关机日志,我发现最后一次日志中有编码信息,得到了最后一部分 flag
ok,这道题就解决到这里
1 | picoCTF{Ev3nt_vi3wv3r_1s_a_pr3tty_us3ful_t00l_81ba3fe9} |
Forensics_Bitlocker-2
第一次做这类题目,简单来说就是用磁盘解密后的 mem 镜像提取 BitLocker 密钥,然后解密磁盘得到 flag,目前我尝试了两个方式,第一个方式是无脑工具梭
这样的话,我们就得到了解密后的磁盘 decrypt.dd
第二个方式是通过 vol2 的插件 BitLocker
推荐这个仓库https://github.com/breppo/Volatility-BitLocker
里面有详细的使用介绍的
我在本题中这样弄的
1 | mkdir -p ~/Desktop/timu/keys_for_dislocker |
注意这里,提取出来的密钥应该是 Address 为 0x8087865bead0 的这个
1 | sudo mkdir -p /mnt/dislocker_tmp /mnt/decrypted |
Forensics_Bitlocker-1
这里就简单的学习了下怎么提取 hash 并对 BitLocker 爆破
那个 passware ket 工具自然能用,这里不做赘述
爆破密码
首先把 john 和 hashcat 给安装好,然后通过 bitLocker2john 将 BitLocker 磁盘的 hash 提取出来,接下来直接用 hashcat 进行爆破,得到密码后开始后续的挂载读取
1 | sudo apt install john hashcat -y |
挂载读 flag
首先要有 dislocker 解密工具,然后使用密码对 BitLocker 磁盘进行解密,这里会将解密的虚拟文件传入/mnt/dislocker_tmp 中,也就是说我们需要提前弄好这两个路径,接下来直接挂载就行,然后就是正常的读取文件操作了,最后取消挂载
1 | # 第一个用于 dislocker 生成虚拟文件 |
Blast from the past
记录下,这个解题的模式感觉不错,是给我下发一个 jpg 图片,要更改它的所有元信息
然后通过 nc 提交,另一个容器返回结果,就像这样
1 | Submit your modified picture here: |
解题倒是不难
1 | exiftool -AllDates="1970:01:01 00:00:00" -SubSecTime=001 -SubSecTimeOriginal=001 -SubSecTimeDigitized=001 -FileModifyDate="1970:01:01 00:00:00+00:00" -o modified.jpg original.jpg |
然后提交的时候,发现最后一个 check 一直失败
1 | yolo@Yolo:~/Desktop/timu$ nc mimas.picoctf.net 63779 |
然后就直接用 010 查看好了,在最后发现了时间戳
这里仅仅需要把时间戳改成这样,弄了 12 个 00
然后保存再提交就成了
1 | yolo@Yolo:~/Desktop/timu$ nc -w 2 mimas.picoctf.net 60105 < original.jpg |
Investigative Reversing 1
这道题虽然标着 hard,但是一点也不难,值得记录,是我第一次手敲 py 脚本,没有依赖 ai,放一份脚本就够了
1 | # decrypt_flag.py |
来自 C4-1
Hacker!!!
共四问
第一问
C3 太狠了,直接干了 20 多万流量包,前面全是爆破,最后面的着手点是这里
当看到那个返回后,我就悟了,直接查看{“success”:true}
1 | http.response.code == 200 && http contains "{\"success\":true}" |
解决username=test1&password=a123456
第二问
这里考察的是 sql 注入流量分析吧
http contains "database()" or http contains "schema_name"
初步判断这里得按照 sql 盲注打
emm,接下来拿 tshark 把它们提出来,然后写个脚本分析
这里应该是 c3 把流量包顺序搞乱了吧,我分析了好一会儿,没分析出结果,先重新排一下,然后再提取分析
1 | reordercap hack.pcapng sorted_hack.pcapng |
然后这个是解密脚本
1 | import re |
答案:uzymall
第三问
这题把我难住了,主要原因是我没有找到这个包
这个包有有那个哥斯拉 shell 的源码,拿到密钥那就可以开始解密了
我用的这个工具
最终得到的指令就这样吧
1 | methodName=execCommand |
第四问
先分析 elf,确实是个后门程序,和 c2 有关,但是仅仅是个加载器,我通过标志 l64 找到了这个加载器传送的文件
下面的这个文件其实就在 http 下面第一个 tcp 中,很好找的
然后使用脚本转换,拿到 c2 真正交互的 🐎
1 | def decrypt_file(input_path, output_path, key=0x99): |
可惜,我没有逆向能力,只能回到 vshell 工具的学习上了
未完待续…
ISCTF2023
DISK
是一道 ntfs 日志分析题目,先挂载上 vhd
把$logfile 提取出来,这个是 ntfs 磁盘记录日志的地方,然后这个东西是个二进制文件,需要使用工具logfileparser帮我们把该文件处理一下,可以生成 csv 或 db 文件方便我们查找数据
1 | sqlite> .tables |
注意看文件名的前后更改,那些数字可以推测是由 flag 进行字节串转换成数字得到的,然后就是逆转回来能拿到 flag
1 | numbers = [ |
说些什么吧!