news 2026/6/10 18:14:36

[OtterCTF 2018]电子取证(后)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
[OtterCTF 2018]电子取证(后)

[OtterCTF 2018]Path To Glory

题目描述

How did the malware got to rick's PC? It must be one of rick old illegal habits...

F:\QZBS\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f OtterCTF.vmem --profile=Win7SP1x64 filescan | findstr "BitTorrent" | findstr ".torrent"

找到了我们需要的文件

F:\QZBS\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f OtterCTF.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007dcbf6f0 -D ./ >F:\QZBS\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f OtterCTF.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007dae9350 -D ./

把文件下载下来查看

M3an_T0rren7_4_R!ck

[OtterCTF 2018]Path To Glory 2

题目描述

Continue the search after the way that malware got in.

F:\QZBS\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f OtterCTF.vmem --profile Win7SP1x64 pstree Volatility Foundation Volatility Framework 2.6

刚刚 pslist 查进程的时候,Chrome.exe 进程是出现次数最多的,说明是最主要使用的浏览器

我们可以使用 filescan 和 dumpfiles 来查找和提取Chrome浏览器历史记录数据库(豆知识:Chrome 将历史数据存储在 SQLite 数据库中)

>F:\QZBS\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f OtterCTF.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007d45dcc0 -D ./

执行语句select current_path, site_url from downloads;查询下载路径和url

可以看到种子文件是从 https://mail.com 这个网址下载的,我们将 chrome.exe 进程内存中文件的文件提取出来

F:\QZBS\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f OtterCTF.vmem --profile=Win7SP1x64 memdump -n chrome.exe -D .\

然后我们用 strings 配合 grep 查看这些提取出来的文件,筛选邮箱后缀@mail.com的前后十行

$ strings *|grep -C 10 "@mail.com"

这里找到 Rick 的邮箱,有邮箱和密码了,我尝试去登陆邮箱寻找线索,但是显示邮箱/密码错误(毕竟这是个内存取证题,还是老实点吧),然后继续跟进rickopicko@mail.com的前后二十行,这串很像flag,提交果然是正确的

strings * |grep -C 20 "rickopicko@mail.com"

[OtterCTF 2018]Bit 4 Bit

题目描述

We've found out that the malware is a ransomware. Find the attacker's bitcoin address.

F:\QZBS\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f OtterCTF.vmem --profile=Win7SP1x64 memdump -p 3720 -D ./ Volatility Foundation Volatility Framework 2.6.1 Volatility Foundation Volatility Framework 2.6

使用strings查找ransomware相关的内容

[OtterCTF 2018]Graphic's For The Weak

题目描述

There's something fishy in the malware's graphics.

恶意软件的图形中有问题, 用foremost分离一下程序

CTF{S0_Just_M0v3_Socy}

[OtterCTF 2018]Recovery

题目描述

Rick got to have his files recovered! What is the random password used to encrypt the files?

strings -e l 3720.dmp | grep "WIN-LO6FAF3DTFE-" -C 2

[OtterCTF 2018]Closure

题目描述

Now that you extracted the password from the memory, could you decrypt rick's files?

之前看到有txt文件这时候用上了

F:\QZBS\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f OtterCTF.vmem --profile=Win7SP1x64 shellbags F:\QZBS\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone\volatility_2.6_win64_standalone.exe -f OtterCTF.vmem --profile=Win7SP1x64 dumpfiles -Q 0x000000007e410890 -D .\

直接查看不了

import hashlib from Crypto.Protocol.KDF import PBKDF2 from Crypto.Cipher import AES from Crypto.Util.Padding import unpad def decrypt_flag(): # 1. 题目给出的原始信息 password = "aDOBofVYUNVnmp7" salt = bytes([1, 2, 3, 4, 5, 6, 7, 8]) # 2. 对应 C# 中的 SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes(password)) password_bytes = password.encode('utf-8') sha256_hash = hashlib.sha256(password_bytes).digest() # 3. 对应 C# 中的 Rfc2898DeriveBytes(passwordBytes, salt, 1000) # KeySize 是 256 bits (32 bytes), BlockSize 是 128 bits (16 bytes) # 总共派生 32 + 16 = 48 字节的数据 kdf_data = PBKDF2(sha256_hash, salt, dkLen=48, count=1000) key = kdf_data[:32] iv = kdf_data[32:48] # 4. 读取加密的文件 (请确保文件名和路径正确) try: # 将你提取出的那个 .dat 文件改名为 Flag.txt.WINDOWS with open('Flag.txt.WINDOWS', 'rb') as f: encrypted_data = f.read() # 5. AES CBC 解密 cipher = AES.new(key, AES.MODE_CBC, iv) decrypted_padding = cipher.decrypt(encrypted_data) # 移除 PKCS7 填充 final_data = unpad(decrypted_padding, AES.block_size) print("解密成功!内容如下:") print(final_data.decode('utf-8')) except Exception as e: print(f"解密失败: {e}") print("提示:请检查当前目录下是否存在 Flag.txt.WINDOWS 文件,以及文件内容是否完整。") if __name__ == "__main__": decrypt_flag()

成功获取flag

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 10:33:26

腾讯混元翻译1.5:方言语音识别集成教程

腾讯混元翻译1.5:方言语音识别集成教程 随着多语言交流需求的不断增长,高质量、低延迟的翻译系统成为智能设备和跨语言服务的核心组件。腾讯近期开源了其最新的混元翻译大模型系列——HY-MT1.5,包含两个关键版本:HY-MT1.5-1.8B 和…

作者头像 李华
网站建设 2026/6/10 11:42:07

混元翻译模型1.5实战:33种语言互译部署步骤详解

混元翻译模型1.5实战:33种语言互译部署步骤详解 1. 引言 随着全球化进程的加速,跨语言沟通已成为企业、开发者乃至个人用户的刚需。尽管市面上已有多种商业翻译服务,但在隐私保护、定制化能力与边缘部署方面仍存在明显短板。腾讯近期开源的混…

作者头像 李华
网站建设 2026/6/10 11:56:56

AI智能实体侦测服务Kafka消息队列:异步处理架构升级方案

AI智能实体侦测服务Kafka消息队列:异步处理架构升级方案 1. 引言:从同步到异步的架构演进 1.1 业务背景与挑战 AI 智能实体侦测服务基于达摩院 RaNER 模型,提供高性能中文命名实体识别(NER)能力,广泛应用…

作者头像 李华
网站建设 2026/6/9 22:48:58

HY-MT1.5企业案例:全球化产品本地化翻译实战

HY-MT1.5企业案例:全球化产品本地化翻译实战 在全球化业务快速扩张的背景下,企业对高质量、低延迟、多语言支持的翻译系统需求日益迫切。传统商业翻译API虽然易用,但在定制化、数据隐私和成本控制方面存在明显短板。腾讯开源的混元翻译大模型…

作者头像 李华
网站建设 2026/6/10 1:44:24

RaNER模型上下文理解能力:长文本分段识别部署优化

RaNER模型上下文理解能力:长文本分段识别部署优化 1. 背景与挑战:中文NER在真实场景中的瓶颈 命名实体识别(Named Entity Recognition, NER)作为自然语言处理中的基础任务,广泛应用于信息抽取、知识图谱构建、智能客…

作者头像 李华
网站建设 2026/6/10 11:56:57

腾讯开源模型安全:HY-MT1.5数据隐私保护

腾讯开源模型安全:HY-MT1.5数据隐私保护 1. 引言 随着全球化进程的加速,跨语言交流需求日益增长,高质量、低延迟的翻译模型成为智能应用的核心组件。然而,商业翻译API在数据隐私、定制化能力和部署灵活性方面存在明显局限&#…

作者头像 李华