案例研究 · 样本分析
恶意加载器(cspsvc.exe)分析
你是处理 Windows 服务可疑告警的运营人员,手里只有一个样本 Hash 和两项要求:出详细分析报告、存成 MD 文件。照本文做完,你会拿到一份 7.5KB、10 章节的 Markdown 分析报告——.NET 服务加载器定性、完整 IOC、检测清除方案、四维风险评估,以及一条诚实边界:第二阶段脚本 cspsvc.ps1 未随样本提供,只列为需进一步捕获的对象。
PE32 · .NET · 6,656 字节(约 6.5KB)· 纯静态 · 样本未执行· 澜砥 N2.5· Markdown 报告 7.5KB · 10 章节· IOC + 检测清除方案 + 四维风险评估
概览
- 01
静态定性 — 6.5KB .NET Windows 服务加载器现形
你把样本 SHA256 和两项要求一句话交给 AVL Code,纯静态读完样本,还原服务启停时加载外部 PowerShell 脚本的多阶段架构。
- 02
报告落盘 — 7.5KB Markdown 十章节可归档
你追一句确认交付,拿到已写入工作区的 Markdown 报告:IOC、检测清除方案、四维风险评估俱全,二阶段脚本如实标注为待捕获对象。
向 AVL Code 发布任务
c765ba5eedcd87b6f98eb503df640f5a8b077d3a30f02c6019feec1b5a553981 帮我分析这个程序 写个详细的分析报告 存储下 MD文件 前提:AVL Code 已登录;样本以文件形式放入工作区(本案例对外仅提供 Hash);落盘文件需要可写工作区——会话中 VirusTotal 查询因未配置未返回结果,定性完全基于样本静态内容
复现材料见文末 亲自检测 ↓
静态定性
任务布置只有一句话——给 Hash、要详细分析报告、存成 MD 文件。不写分析计划、不搭环境,接下来看它怎么从这条指令走到定性结论:
c765ba5eedcd87b6f98eb503df640f5a8b077d3a30f02c6019feec1b5a553981 帮我分析这个程序 写个详细的分析报告 存储下 MD文件确认样本存在(6,656 字节)
→ 路径含特殊字符连环受阻:fs.list 解析失败 / sec.* 工具受限 / 命令行复制受限 → 最终 fs.read 全量读取 + Python 分析
→ 文件头:MZ + BSJB → .NET 程序(CIL)
→ 关键字符串:cspsvc.exe · .NET 2.0 · PDB 路径 System32\drivers\cspsvc.pdb · 导入 SetServiceStatus
→ 服务启停命令原文:PowerShell -ExecutionPolicy Bypass 调 cspsvc.ps1 -SCMStart / -SCMStop
→ VT 未配置 → 用已提取信息完成定性报告交付
报告在第一轮指令内已经生成,你追一句确认,同时拿到完整交付清单:
分析完成了吗 形成分析报告fs.read 回读确认报告完整 → 交付 样本分析报告_cspsvc_20260729.md(7.5KB,10 章节)
→ 核心结论:cspsvc.exe 是伪装在 System32\drivers\ 的 .NET 服务木马/加载器——服务持久化 + Bypass 加载外部脚本,属多阶段攻击第一阶段
→ 风险提示:实际 payload 在 cspsvc.ps1,未随样本提供;二阶段行为按加载器设计模式标注"可能",不做超出证据的推测亲自检测
在 AVL Code 里复现这个任务只需要两条消息——把 Hash 换成你手里样本的 SHA256,报告要求可按需改写:
1) 主指令(原文): c765ba5eedcd87b6f98eb503df640f5a8b077d3a30f02c6019feec1b5a553981 帮我分析这个程序 写个详细的分析报告 存储下 MD文件 2) 交付确认(原文): 分析完成了吗 形成分析报告 - 本案例的诚实边界:PowerShell 脚本 cspsvc.ps1 未随样本提供,第二阶段行为在会话与报告中均只按加载器设计模式标注"可能",未做超出证据的推测;验证表第 4 条的两个来源同出于本次会话导出(报告由该会话生成),不构成机制独立的双源验证,特此声明。会话中 VirusTotal 查询因未配置未返回结果,定性无云端判定佐证。
下一个问题: 捕获到 cspsvc.ps1 之后,用同样一条指令把它送进分析流水线,补全第二阶段攻击链与完整 IOC。
