题目补完计划 No.1
说在前头
依旧从这套题目开始(因为最近电脑没空间了又翻到这个,做完了就删掉)
今天捣鼓了一下把lovelymem和lovelyspark的cli接进了Agent,今天尝试用lovelymem的cli做内存取证题,效果非常好 本身两个工具都是单文件的,所以使用的时候可以直接放到在系统环境变量的文件夹下,随时随地都能调用 就比如专门弄个文件夹装单文件的东西(包括自己写bat也可以当作命令快速调用,感觉是个不错的小技巧)
lovelymem的help界面
lovelyspark的help界面
根据help界面我们可以写一些skills
1. fst_lovelyspark(日志 / 流量分析)
核心是两段式契约:先 analyze 建缓存库拿到 db_path,再对同一个库反复 call。
{ "op": "analyze", "path": "D:\\case\\capture.pcapng" }
→ 返回 data.db_path(如 .../lovelyspark/xxx.db)。后续所有分析都指向这个库:
{ "op": "call", "db": "<db_path>", "tool": "<工具名>", "tool_args": "{\"proto\":\"http\"}" }
工具清单: { "op": "tools", "sub": "list" }(或--sub schema看参数契约)。一条龙调查: { "op": "investigate", "path": "...", "focus": "all|overview|threats|files|credentials", "limit": 12 }。底层抓包透传: { "op": "tshark", "extra_args": "-Y http -T fields -e ip.src" }。其它: license(status/device-code/import)、config、capture(merge/filter/repair)、traffic。analyze首次建库很慢(大 pcap 可达分钟级):timeout参数默认 600s,别设太小。
2. fst_lovelymem(内存取证)
{ "op": "doctor" }
→ 授权状态 + 引擎配置(starmem 原生引擎 / vol3 即 Volatility3 包装)。
{ "op":"plugins","engine":"starmem","query":"ps"}
{"op":"describe","engine":"starmem","plugin":"pslist"}
{"op":"run","engine":"starmem","image":"E:\\case\\memdump.mem","plugin":"pslist","timeout":"1800"}
产物: run返回run_dir;{ "op": "artifacts", "run-dir": "..." }列出产物;{ "op": "read", "run-dir": "...", "path": "<产物>", "encoding": "utf8|base64|hex" }读内容;{ "op": "sql", "run-dir": "...", "path": "<sqlite>", "request": "<query.json>" }查结构化库。partial≠ 失败:run的顶层status可能是partial(如进程链表被并发修改的 head_blink_mismatch 告警),只要result.success=true产物就完整可用,直接取数据。result.source_record_count是顶层区段数(如 pslist=1),不是条目数(真实进程数看processes数组长度)——不要拿它当记录数。常用 starmem 插件:pslist / cmdline / netscan / dlllist / filescan / malfind / handles / registry-hives / cachedump(凭据)/ browser-history。 内存扫描是长任务: timeout默认 1800s;薄壳给 CLI 跑满再加 3 分钟余量。
3. 通用纪律
exe 找不到 → 先查面板「设置」是否填了路径;再查环境变量;不要改代码硬编码。 输出统一 {ok:true/false, ...};失败时带error+_stderr_tail+_cli_exit_code(3=授权失败,4=执行/读取失败,5=报告不完整但数据可用,124=超时)。流量题: fst_lovelyspark优先,报错/做不出立即回退 tshark(analyzing-network-traffic-with-wireshark 技能)。内存题: fst_lovelymem优先(starmem 原生引擎),复杂插件面不够再考虑 vol3 或 analyzing-memory-dumps-with-volatility 技能。 (这里把lovelymem和lovelyspark做了dsh的插件化注入,师傅们使用时也可以直接skills+路径替换;同时也做了tshark和volatility兜底,不过目前看基本不需要)
本次模型使用deepseek-v4-flash-0731(也就是旧版本v4f)
内存取证
手工部分是以前做的,所以用的lovelymem v2,师傅已经开源了这个版本,可以看看 v3的做法可以看这位师傅写的文章:
dsh自动分了两个子代理做 
内存取证-1
请给出计算机内存创建北京时间? [答案格式:2000-01-11 00:00:00] 注意这里要+8(北京时间) 
内存取证-2
请给出计算机内用户yang88的开机密码? [答案格式:abc.123] 

内存取证-3
提取内存镜像中的USB设备信息,给出该USB设备的最后连接北京时间? [答案格式:2000-01-11 00:00:00] 这里真正像外接 U 盘的设备是:
VID_0781&PID_558CSerial Number: 32313131374D343032343132[2023-06-20 17:01:25 UTC]
其中:
VID_0781
通常对应 SanDisk 闪迪设备,PID_558C 是该 USB 设备的产品 ID。前面的 ROOT_HUB、ROOT_HUB20、VID_0E0F 更像是 USB 控制器、虚拟机相关设备,不是题目要找的外接 USB 存储设备。 所以最后连接时间取:2023-06-20 17:01:25 UTC 13个用户已解出
内存取证-4
请给出用户yang88的LMHASH值? [答案格式:字母小写]
27个用户已解出
内存取证-5
请给出用户yang88访问过文件“提现记录.xlsx”的北京时间? [答案格式:2000-01-11 00:00:00] 不会写捏,没找到 14个用户已解出
内存取证-6
请给出“VeraCrypt”最后一次执行的北京时间? [答案格式:2000-01-11 00:00:00]
23个用户已解出
内存取证-7
分析内存镜像,请给出用户在“2023-06-20 16:56:57 UTC+0”访问过“维斯塔斯”后台多少 次?[答案格式:10] 2
16个用户已解出
内存取证-8
请给出用户最后一次访问chrome浏览器的进程PID? [答案格式:1234] 
Agent记录
全解了
主代理告诉子代理的工具说明 
最终报告 

总计用时18分13秒,通过对话可以看出Agent还是不太熟悉怎么用cli,还要优化一下skills
经验积累
感觉后面还是得加个手动删除自动去重啥的,感觉有好多重复的
也可以看看Agent咋调用这个知识库的 进行搜索然后返回内容和方法 
后面打算先让他做图1的标题搜索再进行图2的详细搜索,可以进一步压缩上下文
计算机取证
这里连接了火眼cli解析
计算机取证-1
1.请找出操作系统主机名。 
计算机取证-2
2.请给出源磁盘的SHA256哈希值。

计算机取证-3
3.请找出操作系统中安装的Android模拟器名称和安装日期。(格式:雷电模拟器2025年06月26日) noxplayer夜神模拟器
55个用户已解出
计算机取证-4
4.请找出使用Bitlocker加密的虚拟磁盘文件。(格式:xxx.xx/xxxx.xx) my.vhd/my1.vhd
31个用户已解出
计算机取证-5
5.请找出操作系统安装日期。

计算机取证-6
6.请找出操作系统最后登录的用户。

计算机取证-7
7.请找出操作系统中安装的浏览器最后浏览过的网站域名 [格式: www.baidu.com][1]
passport.baidu.com 
计算机取证-8
8.请找出操作系统中安装的浏览器名称的对应的安装日期。
A.360浏览器2021-05-03 20:16:43
B.Edge浏览器2021-05-03 20:26:44
C.谷歌浏览器2021-05-03 20:16:44
D.搜狗极速浏览器2021-06-03 20:16:44

计算机取证-9
9.请找出操作系统版本号。

计算机取证-10
10.请找出操作系统设置的时区名称。(格式:UTC+2) UTC+0 
计算机取证-11
11.请找出操作系统中安装的浏览器“自动填充”中保存的网站密码信息(网站+用户名+密码)

计算机取证-12
12.请找出用户“poiuy”的SID。

计算机取证-13
13.请给出源磁盘的大小(字节)。(提示:一个扇区=512)
62914560 × 512 = 32212254720
计算机取证-14
14.请找出各分区文件系统类型。
ntfs
计算机取证-15
15.请找出曾经连接到该系统的U盘的品牌、序列号、最后插拔日期。 (格式:xx+xx+2024-03-12)
SanDisk+4C530001310423109141+2021-05-04 

计算机取证-16
16.请找出回收站中的文件的名称(格式:2333.exe+1.txt+3.E01)
nox_setup_v7.0.0.6_full.exe+新建文本文档1.txt+测试.rtf 
计算机取证-17
17.请找出使用Bitlocker加密的虚拟磁盘文件恢复密钥文件名是什么。

计算机取证-18
18.请找出用户“poiuy”的登录密码。 
Agent记录
全解了
这里提示词写的有点问题,做成串行的了,本来想做并发的,后面让他强制并发了 可以发现dsh新版对子代理的显示也做了优化,更加清晰了
给子代理的工具说明,这里不让再开火眼,不然电脑里就只剩火眼了(什 最终花的时间
第三个卡密码上了
经验积累
后续可能也要加一些沉淀的脚本,可以直接调用的那种,作为小插件处理
希望能给师傅们有点启发