jarus10/nexultarx

GitHub: jarus10/nexultarx

NEXULTARX 是一款AI辅助红队自动化与网络威胁检测平台。

Stars: 0 | Forks: 0

# nexultarx AI 辅助红队自动化与网络威胁检测平台 # NEXULTARX [![Python](https://img.shields.io/badge/Python-3.10%2B-blue?style=flat-square&logo=python)](https://python.org) [![Kali Linux](https://img.shields.io/badge/OS-Kali%20Linux-557C94?style=flat-square&logo=kalilinux)](https://kali.org) [![Flask](https://img.shields.io/badge/Dashboard-Flask%205-black?style=flat-square&logo=flask)](https://flask.palletsprojects.com) [![Scikit-learn](https://img.shields.io/badge/ML-Scikit--learn-F7931E?style=flat-square&logo=scikitlearn)](https://scikit-learn.org) [![License](https://img.shields.io/badge/License-MIT-green?style=flat-square)](LICENSE) NEXULTARX 是一个模块化、基于 Python 的网络安全平台,它将 **进攻性红队模拟** 与 **AI 驱动的异常检测** 统一在一个管道中。它自动捕获实时网络流量,扫描漏洞,使用机器学习检测异常,执行 MITRE ATT&CK 映射的攻击剧本,并在实时网络仪表板上可视化一切。 作为在 Kali Linux 上针对 Metasploitable 2 目标虚拟机的最终年工程项目的构建而成。 ## 目录 - [架构](#architecture) - [模块](#modules) - [前置条件](#prerequisites) - [安装](#installation) - [配置](#configuration) - [使用](#usage) - [项目结构](#project-structure) - [机器学习](#machine-learning) - [红队剧本](#red-team-playbooks) - [仪表板](#dashboard) - [测试](#testing) - [实验室设置](#lab-setup) - [免责声明](#disclaimer) - [许可](#license) ## 架构 该平台分为 **五层**,每层通过干净的 Python 接口进行通信: ``` ┌─────────────────────────────────────────────────────────────────┐ │ LAYER 5: PRESENTATION │ │ Flask Dashboard │ REST API │ WebSocket Alerts │ Reports │ ├──────────────────┬────────────────────┬────────────────────────┤ │ LAYER 4: │ LAYER 3: │ LAYER 3b: │ │ OFFENSIVE │ INTELLIGENCE │ CORRELATION │ │ Red Team Agent │ Threat Engine │ Alert Engine │ │ Attack Sim │ CVSS Scoring │ Incident Response │ ├──────────────────┴────────────────────┴────────────────────────┤ │ LAYER 2: AI ENGINE │ │ Isolation Forest │ Random Forest │ K-Means │ Entropy Analyser│ ├─────────────────────────────────────────────────────────────────┤ │ LAYER 1: DATA INGESTION │ │ Packet Sniffer │ Network Scanner │ Database Logger │ ├─────────────────────────────────────────────────────────────────┤ │ NETWORK LAYER (Lab) │ │ Kali Linux Host ←──── vboxnet0 ────→ Metasploitable 2 │ │ 192.168.56.100 192.168.56.101 │ └─────────────────────────────────────────────────────────────────┘ ``` ## 模块 | 模块 | 文件 | 描述 | |--------|------|-------------| | **1 — 数据包嗅探器** | `sniffer/sniffer.py` | 通过 Scapy 捕获实时数据包。提取 IP、协议、端口、负载大小、Shannon 熵和 TCP 标志。监控 PPS 速率并在流量峰值时发出警报。 | | **2 — 网络扫描器** | `scanner/scanner.py` | 对目标运行 Nmap `-sV -O`。枚举开放端口、服务、版本和操作系统指纹。保存结构化 JSON 输出。 | | **3 — AI 异常引擎** | `ai_engine/ai_detector.py` | 在捕获的流量上训练 Isolation Forest + Random Forest 集成。使用六个特征向量将数据包分类为正常 `(1)` 或异常 `(-1)`。 | | **4 — 红队代理** | `red_team/red_agent.py` | 读取扫描输出,将服务映射到 MITRE ATT&CK 剧本,并按 CVSS 优先级执行排序的 Nmap NSE 脚本。 | | **5 — Flask 仪表板** | `dashboard/app.py` | 实时网络 UI,带有 Chart.js 熵图表、AI 警报表和服务面板。WebSocket 推送在 2 秒内提供新警报。 | ## 前置条件 - **操作系统:** Kali Linux 2024.x (滚动更新) - **Python:** 3.10 或更高版本 - **Nmap:** 7.80+ (`sudo apt install nmap`) - **libpcap:** (`sudo apt install libpcap-dev`) - **VirtualBox:** 7.x 与 Metasploitable 2 虚拟机在 Host-Only 网络上 ## 安装 ### 1. 克隆仓库 ``` git clone https://github.com//nexultarx.git cd nexultarx ``` ### 2. 创建并激活虚拟环境 ``` python3 -m venv venv source venv/bin/activate ``` ### 3. 安装依赖项 ``` pip install -r requirements.txt ``` ### 4. 验证您的环境 ``` # 确认 nmap 可访问 nmap --version # 确认 Python 包加载正确 python3 -c "import scapy, nmap, sklearn, flask; print('All OK')" ``` ## 配置 复制示例环境文件并编辑它以匹配您的设置: ``` cp .env.example .env ``` `.env` 中的关键变量: ``` # 网络 TARGET_IP=192.168.56.101 INTERFACE=vboxnet0 # 嗅探器 PPS_THRESHOLD=100 CAPTURE_FILE=captured_traffic.csv # 扫描器 SCAN_OUTPUT=scan_results.json # 仪表板 FLASK_PORT=5000 JWT_SECRET=change_this_to_a_random_string ``` ## 使用 每个模块可以独立运行,也可以通过编排器一起运行。 ### 一起运行所有模块 ``` sudo python3 main.py ``` ### 单独运行模块 ``` # 模块 1 — 数据包嗅探器(需要 root 权限) sudo python3 sniffer/sniffer.py # 模块 2 — 网络扫描器(需要 root 权限) sudo python3 scanner/scanner.py # 模块 3 — AI 异常引擎 python3 ai_engine/ai_detector.py # 模块 4 — 红队代理(需要 root 权限) sudo python3 red_team/red_agent.py # 模块 5 — 仪表板 python3 dashboard/app.py # 打开 http://localhost:5000 ``` ### 验证嗅探器输出 ``` head -20 captured_traffic.csv ``` ### 验证扫描器输出 ``` cat scan_results.json | python3 -m json.tool ``` ## 项目结构 ``` nexultarx/ │ ├── sniffer/ │ └── sniffer.py # Module 1: EnhancedPacketSniffer class │ ├── scanner/ │ └── scanner.py # Module 2: NetworkScanner class │ ├── ai_engine/ │ └── ai_detector.py # Module 3: AnomalyDetector class │ ├── red_team/ │ └── red_agent.py # Module 4: RedTeamAgent class │ ├── dashboard/ │ ├── app.py # Module 5: Flask + SocketIO app │ └── templates/ │ └── index.html # Dashboard UI template │ ├── models/ # Serialised ML models (joblib) │ └── anomaly_detector.pkl │ ├── data/ # Output data files │ ├── captured_traffic.csv │ └── scan_results.json │ ├── main.py # Orchestrator — starts all modules ├── requirements.txt # Python dependencies ├── .env.example # Environment variable template └── README.md ``` ## 机器学习 AI 引擎使用 **集成异常检测管道**: ### 特征向量(6 维) | 特征 | 编码 | 异常信号 | |---------|----------|----------------| | `protocol_val` | TCP=6, UDP=17, OTHER=0 | 对端口不寻常的协议 | | `src_port` | 原始整数 | 低于 1024 的临时源端口 | | `dst_port` | 原始整数 | 已知漏洞端口(21、23、445) | | `payload_size` | 原始字节 | 异常大的或零字节的有效负载 | | `entropy` | Shannon H (0.0–8.0) | 值高于 7.0 表示加密/混淆数据 | | `flags_val` | 加权总和 | RST=5,FIN=3,SYN=2,ACK=1 | ### 模型 - **Isolation Forest** — 主要无监督检测器 (`contamination=0.1`) - **Random Forest** — 旨在减少误报的次要监督验证器 - **K-Means** — 基线聚类用于流量分析 ### 性能(在标记的 Metasploitable 2 数据集上) | 模型 | 精度 | 召回率 | F1 分数 | AUC-ROC | |-------|-----------|--------|----------|---------| | Isolation Forest | 0.89 | 0.93 | 0.91 | 0.94 | | Random Forest | 0.91 | 0.88 | 0.89 | 0.95 | | 集成 | **0.92** | **0.91** | **0.915** | **0.96** | ## 红队剧本 红队代理将发现的服务映射到 **MITRE ATT&CK** 技术并运行相应的 Nmap NSE 脚本,按 CVSS 分数排序: | 服务 | MITRE ID | NSE 脚本 | 目标(Metasploitable 2) | |---------|----------|-------------|--------------------------| | FTP | T1190 | `ftp-anon`,`ftp-brute` | vsftpd 2.3.4 — CVSS 10.0 | | HTTP | T1595 | `http-enum`,`http-vuln*` | Apache 2.2.8 | | SSH | T1110 | `ssh-auth-methods`,`ssh-brute` | OpenSSH 4.7p1 | | MySQL | T1078 | `mysql-empty-password` | MySQL 5.0.51a | | SMTP | T1566 | `smtp-enum-users` | Postfix | | SMB | T1021 | `smb-enum-shares` | Samba 3.x | | Tomcat | T1078 | `tomcat-manager-login` | Apache Tomcat | ## 仪表板 启动仪表板模块后,打开 `http://localhost:5000`。 | 面板 | 描述 | |-------|-------------| | **统计行** | 捕获的总数据包 · 检测到的威胁 · 开放服务 | | **熵图表** | 最后 20 个数据包熵值的实时 Chart.js 线形图 | | **服务面板** | Nmap 扫描结果,包括端口、服务名称、版本和 CVSS | | **AI 警报表** | 异常数据包,包括源 IP、协议、TCP 标志和风险徽章 | WebSocket 事件实时推送: - `new_alert` — 在异常检测后 2 秒内触发 - `scan_update` — 在新的 Nmap 扫描完成后触发 ## 测试 ``` # 运行单元测试套件 python3 -m pytest tests/ -v # 运行单个模块的烟雾测试 sudo python3 -c " from sniffer.sniffer import EnhancedPacketSniffer from scanner.scanner import NetworkScanner from ai_engine.ai_detector import AnomalyDetector from red_team.red_agent import RedTeamAgent print('All imports OK') " ``` ### 测试矩阵摘要 | 层 | 测试 | 覆盖率 | |-------|-------|----------| | 嗅探器 | TC-01 到 TC-06 | 数据包解析、熵、PPS 监控 | | 扫描器 | TC-07 到 TC-10 | 主机发现、服务检测、JSON 输出 | | AI 引擎 | TC-11 到 TC-14 | 预处理、正常/异常分类 | | 红队 | TC-15 到 TC-18 | NSE 执行、MITRE 映射、CVSS 排序 | | 集成 | IT-01 到 IT-06 | 模块间数据流 | | 安全 | SEC-01 到 SEC-05 | JWT、暴力破解、XSS、IDOR | ## 实验室设置 ### 1. 安装 VirtualBox ``` sudo apt install -y virtualbox virtualbox-ext-pack ``` ### 2. 下载 Metasploitable 2 从以下链接下载 `.vmdk`: `https://sourceforge.net/projects/metasploitable/` ### 3. 在 VirtualBox 中创建 VM - **类型:** Linux / Ubuntu (32 位) - **RAM:** 512 MB - **硬盘:** 使用现有的 `.vmdk` - **网络:** 主机-Only 适配器 → `vboxnet0` 在您的 Kali VM 上设置相同的适配器。 ### 4. 查找 Metasploitable 的 IP 启动 VM(凭据:`msfadmin / msfadmin`)并运行: ``` ifconfig ``` 将 `.env` 中的 `TARGET_IP` 更新为匹配。 ### 5. 验证连接 ``` ping 192.168.56.101 -c 4 ``` ## 免责声明 ## 要求 关键依赖项 - 请参阅 `requirements.txt` 以获取完整固定列表。 ``` scapy==2.5.0 python-nmap==1.6.0 pandas==2.2.2 numpy==1.26.4 scikit-learn==1.5.0 flask==3.0.3 flask-socketio==5.3.6 python-dotenv==1.0.1 requests==2.32.3 ``` ## 许可 本项目采用 **MIT 许可证** — 请参阅 [LICENSE](LICENSE) 文件以获取详细信息。

使用 Python · Scapy · Scikit-learn · Flask · Nmap 构建

KLESNC / BCA VI SEM / 2025-2026

标签:CTI, 逆向工具