分析过后发现987MB的ODM5.exe开头和luajit.exe也是完全一样,但是后面的内容仍然是被混淆后的lua相关的内容。
在虚拟机里面继续执行uix.txt -> ODM5.exe 这次使用的是本机生成的 987MB 的文件。
将promon的监控结果和wireshark的结果交给codex继续分析:
这次 ODM5.exe + uix.txt 的行为比前面清楚很多,而且可以直接排除一件事:这次没有证据表明它自己创建了浏览器进程。
从 Logfile.CSV 看,ODM5.exe 在 13:34:33 由父进程 4628 启动,命令行是:
"C:\Users\Abio\AppData\Local\ODM5\ODM5.exe" C:\Users\Abio\AppData\Local\ODM5\uix.txt
它一直运行到 13:35:02,约 28 秒。启动后先大量读取 uix.txt:1,然后加载了 wininet.dll、winhttp.dll、urlmon.dll、
ws2_32.dll、crypt32.dll,同时访问了大量 Internet Explorer/Explorer 相关注册表和 INetCache 目录。这说明它这次主要是用
WinINet/IE 网络栈直接发请求、收响应、落缓存,不是靠拉起 msedge.exe 去访问网页。
高置信网络行为有三段:
- 13:34:34 连接 ip-api.com:http,随后在 INetCache 里生成 json[1].json。这对应地理位置/IP 探测。
- 13:34:35 连接 146.217.221.60.adsl-pool.sx.cn:https,随后在 INetCache 写入一个 .htm 文件。
- 13:34:56 连接 104.18.11.59:https。从 odm5.pcapng 提取到的 TLS SNI 明确是 polygon.drpc.org,而且有 4 次独立 TLS 会话
本地落地行为也明确:
- 再次检查了 C:\Users\Abio\AppData\Local\Temp\a.luaODM5
这次最关键的结论是:
- ODM5.exe 会自己读 uix.txt 执行。
- 它会先做地理/IP 探测,再访问额外网络目标。
- 它会把结果或任务数据写成那个 0966....json。
- 在这份日志里,没有 ODM5.exe -> msedge.exe/chrome.exe/explorer.exe 的直接创建证据,所以“自动打开浏览器”不是这次运行
的主行为,至少不是通过新建浏览器进程实现的。
更像的定位是:这是一个“脚本驱动的联网加载器/任务获取器”,浏览器只是它某些场景下可能触发的次级动作,不是核心机制。
如果你继续,我下一步最有价值的是直接拆 0966027A31634E95958BB1CF1A37505E.json,因为这次已经能确认它是 ODM5.exe 运行结束
时新写出来的结果文件。
而后分析生成的 0966027A31634E95958BB1CF1A37505E.json
• 这个 0966027A31634E95958BB1CF1A37505E.json 现在可以明确几件事。
它不是系统日志,也不是 Wireshark 附件,而是 ODM5.exe 在运行结束前主动写出的结果文件。你前面的 Logfile.CSV 已经坐实了这
一点:13:35:02,ODM5.exe 创建并写入这个 JSON,然后退出。
这个 JSON 结构很简单,只有两个字段:
- tasks
- loader
但内容不是明文。它用了两层编码:
1. 外层是 Base64
2. Base64 解出来后不是正文,而是一串十六进制文本
3. 再把十六进制还原成字节后,得到两个二进制块
我已经还原出这两个实际数据块:
- tasks:276 字节
- loader:166 字节
它们的特点:
- 都不是 JSON、脚本、URL、域名或正常文本
- 没有 MZ/PK/7z/GZip 这类常见文件头
- 熵值分别约 6.53 和 6.24
- tasks 与 loader 彼此也不是简单前后缀、不是同一明文的直接截断
这说明它们更像:
- 样本自己的“任务包/配置包”
- 或下一阶段加载参数
- 或经过自定义编码后的服务端返回数据
结合你刚才那次动态分析,最合理的解释是:
- ODM5.exe 先联网
- ip-api.com
- 146.217.221.60.adsl-pool.sx.cn
- 104.18.11.59,TLS SNI 是 polygon.drpc.org
- 然后把拿到的部分结果整理成这个 JSON
- 其中 tasks 和 loader 是给后续阶段使用的内部数据,不是给人看的日志
还有一个重要点:
- [uix.txt](C:\Users\28676\builds\virus_detect\uix.txt#L1) 里没有明文出现 tasks、loader、json
- 说明这两个字段名大概率也是运行时动态生成或来自网络响应约定
所以目前对这个 JSON 的最准确定性是:
- 它是样本产物
- 不是普通配置文件
- 里面装的是经过双层编码的任务/加载数据
- 但仅靠当前静态还原,还不能直接读出最终明文含义
如果继续往下拆,最有效的下一步是:
1. 直接逆向 ODM5.exe 里“写 JSON 前”的编码函数
2. 或抓它写出这个 JSON 之后、谁再去读取 tasks/loader,这样更容易反推出解码逻辑
里面找到两个地址:
1. 146.217.221.60.adsl-pool.sx.cn
这个地址直接访问会跑到一个博客 : https://clsn.io/archives
2. polygon.drpc.org
看起来是区块链、加密货币什么的东西
但似乎没有什么后续内容
这个是json文件的内容,完全看不懂:
[Plain Text] 纯文本查看 复制代码 {"tasks":"MWUzODQ3NWYzMjY1NzY3MjcyNDY1ZjFlNTE3YjE4MDU1OTUyNmQ1MzZmNzc1ZjE1M2MxZjA3MGQ3NTQ3MDUwNzMxMmIxMDU0NzgyNDIzM2Y2NTE0MTQ1NjE0MzQ0MDU5MTg0ZDIwMGQyMDdhNDUwMDNmNDAwNjUyM2MxYjRkMDYyMDIyMDE0NTc5MmEyZDNiMjQ1YTBiNWQxZDNkMTExZTE4MGY2MTFkMzcyMTE1NGQ2ODRkMTI1ZTM2MGQzZDFlMjQzNzBkMTQ2YzY3NmUwNjJmMTgxZDEwNWQ3OTU2MGE1ZTU1MmEzNjIxMzQ1YTA0NmE1NTU0MTUzYjQ2MGUxYjI0NjE0OTE2NzQzNDM4MzMzODAxNGYwODUxNjg1ODRjMTU1ODNhMWQyMDI3NDIwZjZhNTU1NDA3NzY0ODQwMWMyMDJmMDQ0MzM4MjQyNDcwNzA1NTVkMWU1MTdiMWMwNTUzNWM2ZDUzNmY2NTFiNDE2YTFmMDE1YTJhNGE1ODRlM2U2MTE2NWYyYzIyNmU2ODZhNTg1YzFlNTE3YjA3MTg1NjRkM2ExYTZkNmYxNzA3MjkwMzA3NTIyNzQ0NDI0YzIxMmYwOTY5M2EyODJkMzYyZjA3NGYwODUxMjI1NjBhNDI1NzJjNGI3NTc1NTkxNDI0MDM1ODE3NzgxYzFiMWUyMDYxNWYxNjc0MGIyMzMzMmUzOTA0NTAwMzM4MDYxNTE1NDQzMjM0","loader":"M2U2MTA3NGYyNjI2M2YyMTE1MTEwODU0MTQzNzEwMDk0NTFiNzU0OTdmNzkxNzQzMjkxYTAwNTgyODFkMGM0YzdmNjM1NTFhNzY2NTNlMzcyNjE0MTg1YzEyMzE1NjU2MTc0MjZkMWQyNjM4NTI0MzcyNGY1OTA2NzY0ODQwMWQzMTIyMTE0MzI1NjU3NjcyMmMxNDAxNDExNDI0NTg0YzE1NGQyZTBiMjMzMDQzNDM3MjRmMGYxNTJlMGQxYTFhNjc3OTQ1MTQxNzI5NmMzNzM4MDcwMjQwNTEzNjE3MGY0MjRiM2QwYzJiNzcxYjQxNmExYzAwNTYyZTFkMTE0YzdmNjMwMzU3M2EzNDI5MmY2NjU1NGY1YTE4M2QxMTRlMGQxOTdmNDU2Zjc3NDcwNDNhMWMxZDQ0MmUwZDBjMGQyMDYxNWYxNjY3M2E="} |