kotiqdev/example-malware-repo
GitHub: kotiqdev/example-malware-repo
一个无害的恶意软件模拟样本,用于测试和演示仓库扫描器对虚假招聘诱饵攻击特征的检测能力。
Stars: 0 | Forks: 0
# ⚠️ 无害恶意软件测试样本 — 用于 kotiq-guard 的教学测试样本
**此仓库不包含任何可用的恶意软件。** 它是一个*已拆除引爆装置*的测试样本:它在结构上模仿了 **Contagious Interview / BeaverTail** 诱饵(一种针对开发者的虚假招聘者“编程任务”),以便 [kotiq-guard](https://github.com/kotiqdev/kotiq-guard) 仓库扫描器能够针对已知的恶意*特征*进行演示——就像用于杀毒软件引擎的 [EICAR 测试文件](https://en.wikipedia.org/wiki/EICAR_test_file)一样。
它被刻意公开,以便扫描器(和审查者)可以读取它。它**不是**任何真实受害者项目的副本,并且它什么也不做。
### 为什么它是安全的
- **危险代码永远不会运行。** 每个看起来恶意的函数都受一个永远不为真的条件保护(例如 `process.env.KOTIQ_FIXTURE_NEVER_SET === 'arm'`),因此它是死代码。运行任何文件只会打印一行内容然后退出。
- **每个网络主机都是 `*.example.invalid`** —— `.invalid` 是 [RFC 6761](https://www.rfc-editor.org/rfc/rfc6761) 保留的顶级域名 (TLD),**永远无法解析**,因此即使代码真的运行了,也无法获取、联系或外传任何内容。
- **任何地方都不会出现真实的 URL、主机、哈希值、钱包地址或受害者数据。**
### base64 转 URL 技巧解析
真实的诱饵会隐藏其命令控制 (C2) 地址,这样在快速浏览代码时它就不会显示为明文的 URL。经典技巧是:将主机存储为 **base64 字符串**,然后在运行时将其解码为变量。此样本安全地重现了该技巧。
在 [`.env`](./.env) 中:
```
API_CONFIG=aHR0cHM6Ly9jMi5leGFtcGxlLmludmFsaWQvY29sbGVjdA==
```
该字符串不是随机的——它是 base64。将其解码(使用 `atob`、`Buffer.from(x,'base64')` 或 `base64 -d`),您将得到一个 URL:
```
aHR0cHM6Ly9jMi5leGFtcGxlLmludmFsaWQvY29sbGVjdA==
│ base64 decode
▼
https://c2.example.invalid/collect ← never resolves (test TLD)
```
**在真实样本中,它将解码为一个活跃的攻击者主机** —— 我们刻意改用无法解析的 `*.invalid` 地址。kotiq-guard 的工作就是识别出 `.env` 中的值是一个 base64 编码的远程 URL,并将其标记为 **C2 混淆**,而不是需要开发者手动去发现并解码它。
### 扫描器应在此处标记的内容
| 文件 | 特征 | 重要性 |
|------|---------|----------------|
| `.vscode/tasks.json` | `runOptions.runOn: "folderOpen"` + `curl … \| sh` 字符串 | **打开文件夹时自动执行** —— 无需 `npm install`。这就是诱饵自我引爆的方式。 |
| `.vscode/settings.json` | 禁用工作区信任 + 自动运行任务 + 终端配置覆盖 | 移除了打开时运行的防护,并将集成终端重定向到受控 shell。 |
| `.env` | base64 编码的远程 URL | **C2 混淆** —— 运行时解码的隐藏主机(见上文部分)。 |
| `package.json` | `postinstall` → 本地脚本 | 钩子在 `npm install` 时运行;*命令*看起来无害,*文件*才是 payload。 |
| `scripts/postinstall.js` | base64 主机、`eval()`、`fetch(...)` | 混淆的第一阶段(BeaverTail 特征)。 |
| `src/loader.js` | 钱包路径 (Solana/MetaMask/Phantom)、`curl … \| sh` | 第二阶段加密货币窃取程序字符串。 |
| `.idea/runConfigurations/` | 自动运行配置 | JetBrains 等效的 folderOpen 技巧。 |
这是同一类通过虚假招聘者“带回家”作业袭击真实开发者的威胁。kotiq-guard 的工作是:在您打开或安装任何东西**之前**,在沙盒中(永远不要在您的主机上)浮现出上述所有内容。
标签:DNS 反向解析, MITM代理, Subfinder, 代码扫描器, 安全测试, 恶意软件样本, 攻击性安全, 数据可视化, 暗色界面, 测试夹具, 网络信息收集, 自定义脚本