ctf杂项-easy_dump.img

本文介绍了一次内存取证的实战过程,从获取镜像开始,利用多种工具和技术手段,包括volatility进行内存分析,foremost进行文件恢复,以及利用testdisk进行数据恢复等,最终解密并找到了关键线索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        原题某大赛的真题,之前培训老师给讲过一次,但是重点讲的是内存取证,后续套路没有展开讲,题给了,索性就从头解了一遍。

例题一 easy_dump.img

1、拿到镜像先放到diskgenies里进行分区和文件恢复,无果。

2、在/tmp目录下挂载此镜像,无果。

root@kali:/tmp# mkdir 1

root@kali:/tmp# mount easy_dump.img ./1

 使用file命令查看easy_dump.img显示为data数据文件。

3、使用root@kali:/tmp# volatility -f easy_dump.img imageinfo分析img文件,通过Suggersted Profile可以看出此镜像为win7SP1x64内存镜像。

 4、使用volatility -f easy_dump.img --profile=Win7SP1x64 psscan 查看内存镜像中的进程清单。

发现可疑进程“DumpIt.exe"

5、使用root@kali:/tmp# volatility -f easy_dump.img --profile Win7SP1x64 memdump -p 2500 -D /tmp 把此进程dump至/tmp目录

6、使用foremost 2500.dmp分离此文件得到一些文件,其中有一个zip压缩文件较为可疑,内部压缩着一个message.img文件(可以用binwalk或file命令前期先对2500.dmp进行分析,确定文件类型)

 7、使用root@kali:/tmp/output/zip# file message.img命令分析为:message.img: Linux rev 1.0 ext2 filesystem data, UUID=c12b8ec9-5ef5-4b91-8b4d-f827e81f83cf (large files),一个标准的linux磁盘系统镜像。

 8、创建临时目录,使用mount命令把磁盘镜像挂到当前的test目录里,进入test目录。

 9、进入目录后发现hint.txt文件,查看后发现是一组座标值。

 10、把hint.txt放到windows下使用gunplot(已经加入系统变量可以直接在命令行调用)输入plot "hint.txt"得到座标,使用扫码软件得到一提示“Here is the vigenere key: aeolus, but i deleted the encrypted message。”简直是老母猪带胸罩。。。。

11、根据二维码的提示,使用testdisk对刚才挂载的message.进行数据恢复。

 使用df -h 确定挂载的驱动器名称,再用testdisk调用他。

  testdisk回车键继续(下一步)q键后退,左右箭头键切换上下级目录。

 选择list或undelete均可以

找到了被删除的文件,字体是红色字体。

按C键后选择恢复目录,选择/tmp目录后再按C键,显示copy down! 1OK,0 failed.

12、进入tmp目录一开始没找到这个文件,使用了ls -alh才看到,才注意到是隐藏文件,swp是vim的非正常关闭时留下的文件,使用:Vim -r .message.swp 进入恢复模式

 到此找到了密文:yise!dmsx_tthv_arr_didvi

 13、配合一开始二维码里找到的提示:维吉尼亚加密和密文得到flag:ayeet!just_find_and_solvea

感慨:走过最弯的路是你的套路。

<think>嗯,用户让我介绍一下这个摩斯电码的题目,我得仔细看看。首先,题目名称是“摩斯电码”,安全团队截获了一段信号,转换成符号后的字符串是:.-.. ... ..- -.-. - ..-. -- --- .-. ... . ..--.- .. ... ..--.- . .- ... -.--。用户需要帮助解码这段摩斯电码,可能是个CTF题目或者类似解谜的问题。 首先,我需要回忆摩斯电码的基本知识。每个字母、数字或符号对应一组点和划的组合,比如A是.-,B是-...等等。但这里需要注意,题目中的摩斯码之间用空格分隔,每个单词之间通常用斜杠或者空格分隔,但这里的记录中有多个空格,可能需要拆分每个单独的莫尔斯码字符。 先拆分每个莫尔斯码字符,用空格分隔开。原始字符串是:.-.. ... ..- -.-. - ..-. -- --- .-. ... . ..--.- .. ... ..--.- . .- ... -.--。先按空格分割,得到各个字符: 1. .-.. 2. ... 3. ..- 4. -.-. 5. - 6. ..-. 7. -- 8. --- 9. .-. 10. ... 11. . 12. ..--.- 13. .. 14. ... 15. ..--.- 16. . 17. .-. 18. ... 19. -.-- 接下来,逐个翻译这些字符。需要注意的是,标准的摩尔斯电码表中是否有这些符号。例如,..--.- 可能不是标准字符,需要特别注意。可能题目中的..--.- 是下划线或者其他特殊符号的替代? 先处理已知部分: 1. .-.. → L 2. ... → S 3. ..- → U 4. -.-. → C 5. - → T 6. ..-. → F 7. -- → M 8. --- → O 9. .-. → R 10. ... → S 11. . → E 12. ..--.- → 这个可能不是标准字符,查标准表,通常下划线对应的摩尔斯码是..--.-,所以是下划线 _ 13. .. → I 14. ... → S 15. ..--.- → _ 16. . → E 17. .-. → R 18. ... → S 19. -.-- → Y 组合起来就是:L S U C T F M O R S E _ I S _ E R S Y 可能需要重新检查是否有拆分错误,或者是否中间有单词分隔符。比如,F对应的应该是..-.,正确。那整个字符串组合起来是LSUCTFMORSE_IS_ERSY?这似乎不太对,可能哪里出错了? 哦,可能拆分的时候有错误。原字符串中的分隔符是否正确?原始信号转换为符号记录的时候,可能每个字符之间用空格分隔,而单词之间可能用更大的空格,比如题目中的双空格?或者原题中的分隔符是否有其他处理? 原字符串中的符号记录是:.-.. ... ..- -.-. - ..-. -- --- .-. ... . ..--.- .. ... ..--.- . .- ... -.--。注意到这里有双空格,可能在“..-.”和“--”之间有一个双空格,所以可能这里是单词分隔符,即前面的部分是第一个单词,后面的是另一个单词。 重新拆分,考虑到双空格作为分隔符: 第一部分:.-.. ... ..- -.-. - ..-. 第二部分:-- --- .-. ... . 第三部分:..--.- 第四部分:.. ... ..--.- . .- ... -.-- 但这样拆分可能不太对,可能需要正确识别单词分隔符。通常摩尔斯电码中,单词之间用三个空格分隔,但题目中的记录可能用双空格或者其他方式。可能需要重新检查。 或者,原始字符串中的双空格可能是一个分隔符,将整个信号分成多个部分。比如: 原字符串分解: 1. .-.. 2. ... 3. ..- 4. -.-. 5. - 6. ..-. 7. (这里有一个双空格) 8. -- 9. --- 10. .-. 11. ... 12. . 13. ..--.- 14. .. 15. ... 16. ..--.- 17. . 18. .-. 19. ... 20. -.-- 这时候,可能在第七个位置有一个双空格,即前面的部分是第一部分,后面的是第二部分。这样拆分可能更合理: 第一部分:.-.. ... ..- -.-. - ..-. 第二部分:-- --- .-. ... . ..--.- .. ... ..--.- . .- ... -.-- 但这样拆分可能还是有问题。或者,可能用户提供的原始字符串中的空格分割是否正确? 或者,可能每个摩尔斯码字符由单个空格分隔,而单词之间由双空格分隔。例如: 原字符串中的双空格可能分隔不同的单词。所以按照这个规则拆分: 第一部分:.-.. ... ..- -.-. - ..-. → 拆分成每个字符:.-.. ... ..- -.-. - ..-. 第二部分:-- --- .-. ... .-- --- .-. ... . 第三部分:..--.-..--.- 第四部分:.. ... ..--.- . .- ... -.--.. ... ..--.- . .- ... -.-- 但这样拆分的话,可能每个部分单独翻译成单词,但看起来可能不太对。或者,可能整个字符串中的双空格被误写成两个单空格,所以需要更仔细处理。 可能正确的拆分是: 整个原始字符串中的每个字符由单个空格分隔,而双空格可能是一个错误,或者实际上是单个空格,导致拆分为多个字符。例如,可能原题中的符号记录中的每个字符之间用空格分隔,而单词之间用三个空格,但在这里被简化为单空格。因此,需要将整个字符串按单空格拆分为各个字符,然后逐个翻译。 根据之前的拆分,得到各个字符的翻译: 1. .-.. → L 2. ... → S 3. ..- → U 4. -.-. → C 5. - → T 6. ..-. → F 7. -- → M 8. --- → O 9. .-. → R 10. ... → S 11. . → E 12. ..--.- → _ 13. .. → I 14. ... → S 15. ..--.- → _ 16. . → E 17. .-. → R 18. ... → S 19. -.-- → Y 所以组合起来是:L S U C T F M O R S E _ I S _ E R S Y 看起来不太对,可能哪里出错了。比如,是否在翻译过程中有错误? 检查每个字符的翻译: .-.. → L 正确 ... → S 正确 ..- → U 正确 -.-. → C 正确 - → T 正确 ..-. → F 正确 -- → M 正确 --- → O 正确 .-. → R 正确 ... → S 正确 . → E 正确 ..--.- → _ 正确(根据扩展的摩尔斯电码,下划线的确是这个编码) .. → I 正确 ... → S 正确 ..--.- → _ 正确 . → E 正确 .-. → R 正确 ... → S 正确 -.-- → Y 正确 所以整个字符串翻译后是:LSUCTFMORSE_IS_ERSY 这显然有问题,可能中间的某些字符应该组成有意义的单词。例如,可能拆分成多个单词,而这里可能每个部分对应不同的单词。或者,可能在拆分时,原本的摩尔斯码字符组合可能有不同的分法? 或者,可能用户提供的原始字符串中有拼写错误?或者我在拆分时有错误? 再仔细看一下原字符串: 原字符串是:.-.. ... ..- -.-. - ..-. -- --- .-. ... . ..--.- .. ... ..--.- . .- ... -.-- 注意到在“..-.”和“--”之间有两个空格,可能这两个空格表示单词之间的分隔符。因此,整个字符串被分为三个部分: 第一部分:.-.. ... ..- -.-. - ..-. 第二部分:-- --- .-. ... . ..--.- .. ... ..--.- . .- ... -.-- 或者,更准确地说,两个空格分隔两个单词。因此,拆分成: 单词1:.-.. ... ..- -.-. - ..-. 单词2:-- --- .-. ... . ..--.- .. ... ..--.- . .- ... -.-- 然后分别翻译这两个单词。 翻译单词1的每个字符: .-.. → L ... → S ..- → U -.-. → C - → T ..-. → F 组合起来是 LSUCTF 哦,LSUCTF可能是一个常见的CTF比赛名称,比如 Louisiana State University CTF?或者可能是一个缩写? 然后单词2的拆分: -- → M --- → O .-. → R ... → S . → E ..--.- → _ .. → I ... → S ..--.- → _ . → E .-. → R ... → S -.-- → Y 组合起来是:MORSE_IS_ERSY 所以整个字符串是 LSUCTF MORSE_IS_ERSY → 可能用户需要将两个部分组合,得到 LSUCTF{MORSE_IS_EASY},但这里的最后部分是 ERSY,而可能应该是 EASY,但 Y 的摩尔斯码是 -.--,正确。所以 EASY 是 E A S Y,对应的摩尔斯码是 . .- ... -.--,而这里翻译后的第二部分中的最后部分是 E R S Y,因为中间有一个 R? 哦,这里可能哪里出错了。让我们再检查单词2的拆分: 第二部分是:-- --- .-. ... . ..--.- .. ... ..--.- . .- ... -.-- 拆分每个字符: 1. -- → M 2. --- → O 3. .-. → R 4. ... → S 5. . → E 6. ..--.- → _ 7. .. → I 8. ... → S 9. ..--.- → _ 10. . → E 11. .- → A 12. ... → S 13. -.-- → Y 啊,这里可能在第11个字符是.-,即A,而之前的拆分错误地拆成了.-. → R,但原字符串中的单词2是否被正确拆分? 原单词2的字符序列是:-- --- .-. ... . ..--.- .. ... ..--.- . .- ... -.-- 也就是: -- → M --- → O .-. → R ... → S . → E ..--.- → _ .. → I ... → S ..--.- → _ . → E .- → A ... → S -.-- → Y 所以组合起来是 MORSE_IS_EASY 哦,之前拆分的时候,可能在第11个字符处拆错了。原来的字符串在单词2中的部分,是否有正确的拆分? 原字符串的单词2部分为:-- --- .-. ... . ..--.- .. ... ..--.- . .- ... -.-- 拆分每个字符: 1. -- 2. --- 3. .-. 4. ... 5. . 6. ..--.- 7. .. 8. ... 9. ..--.- 10. . 11. .- 12. ... 13 -.-- 所以,第10个字符是. → E,第11个是.- → A,第12个是... → S,第13个是-.-- → Y。 所以组合起来是:M O R S E _ I S _ E A S Y → MORSE_IS_EASY 因此,整个信号解码后是:LSUCTF MORSE_IS_EASY 但通常CTF的flag格式可能是LSUCTF{MORSE_IS_EASY},或者类似的。因此,用户可能需要将这两个部分合并,或者可能题目中的flag是MORSE_IS_EASY,但需要确认。 所以最终的解码结果是:第一部分是LSUCTF,第二部分是MORSE_IS_EASY,可能组合成LSUCTF{MORSE_IS_EASY}作为flag。</think>让我们逐步解码这段摩斯电码: 原始摩斯符号序列: ``` .-.. ... ..- -.-. - ..-. -- --- .-. ... . ..--.- .. ... ..--.- . .- ... -.-- ``` **步骤1:按空格拆分符号** ``` [.-..][...][..-][-.-.][-][..-.][--][---][.-.][...][.][..--.-][..][...][..--.-][.][.-][...][-.--] ``` **步骤2:逐字符翻译** ``` .-.. → L ... → S ..- → U -.-. → C - → T ..-. → F -- → M --- → O .-. → R ... → S . → E ..--.- → _ .. → I ... → S ..--.- → _ . → E .- → A ... → S -.-- → Y ``` **步骤3:组合字母** ``` L S U C T F | M O R S E _ I S _ E A S Y ``` **步骤4:划分单词** - 前半段 `LSUCTF` 是常见CTF竞赛标识 - 后半段 `MORSE_IS_EASY` 是明文内容 **最终解码结果** ``` LSUCTF{MORSE_IS_EASY} ``` **补充说明** - 特殊符号 `..--.-` 对应下划线 `_`,是摩斯电码扩展字符 - 实际CTF比赛中,flag格式通常为`比赛名{答案}`,因此最终结果需要组合上下文语义
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值