anubhavroshan1080-hub/argus
GitHub: anubhavroshan1080-hub/argus
Argus 是一个集成了 OSINT 情报、主动漏洞扫描、网络取证和合规审计功能的企业级自托管安全平台。
Stars: 0 | Forks: 0
## 🔍 什么是 Argus?
**Argus** 是一个全栈、自托管的**企业安全扫描平台** —— 架构可媲美 **Nessus / Tenable.io** 等商业工具,完全使用 Python 构建。它将被动 OSINT 富化、主动漏洞扫描、合规审计(CIS 基准)、OWASP Top 10 Web 测试、云错误配置检测、实时数据包捕获和实时取证统一在一个深色主题的 Web Dashboard 下。
## ✨ 核心特性
|
### 🌐 IP 情报与 OSINT
- 地理位置定位、ASN/ISP、WHOIS/RDAP、反向 DNS
- 代理 / VPN / Tor / 托管检测
- AbuseIPDB 威胁信誉评分
- 风险分类(正常 → 严重)
- 支持同时进行最多 **20 个 IP** 的批量查询
### 🔬 漏洞引擎
- 跨越 10 个安全类别的 **49+ 插件**
- 扫描时进行 CVE 动态过滤
- 针对 OWASP Top 10 的 HTTP 级别探测
- AWS / Azure / GCP 云错误配置检查
- 带凭证的 SSH 审计(CIS Level 1 & 2)
- 带置信度评分的误报抑制
|
### 📡 实时网络取证
- 通过 Scapy 进行实时数据包捕获
- PPS/BPS 滚动图表(Canvas 渲染)
- 协议分布圆环图
- TCP/UDP/ICMP 标志分析
- 基于 BPF 过滤的逐目标嗅探
### 🛡️ 主动扫描
- TCP Connect、SYN 隐蔽、UDP 端口发现
- Banner 抓取与服务指纹识别
- 带逐端口回调的多线程端口扫描
- 基于 CIDR 的多主机扫描区域
- 主机 Agent 守护进程(跨平台 Python)
|
## 🧩 插件库 — 10 个类别共 49 项检查
| 类别 | 插件数 | 示例 |
|---|:---:|---|
| 🔐 SSH 服务 | 4 | 过时的 OpenSSH、弱加密算法、SSHv1 协议 |
| 🌐 Web 服务器 | 6 | Apache CVE-2021-41773、缺失的安全标头、SSL/TLS |
| 🔟 OWASP Top 10 | 7 | SQLi、XSS、IDOR、XXE、目录列表、TRACE |
| 📡 通用网络 | 5 | Telnet、匿名 FTP、开放的 DNS Resolver、SNMP |
| 🦠 恶意软件与后门 | 2 | Metasploit 监听端口、IRC C2 通道 |
| ☕ Java 漏洞 | 3 | **Log4Shell (CVE-2021-44228)**、Spring4Shell、Struts2 |
| 🐧 Linux 本地安全 | 5 | Dirty Pipe 内核漏洞、SUID Binaries、弱 Cron 任务 |
| ✅ 合规审计 | 5 | CIS SSH、Auditd、密码策略、IP 转发 |
| ☁️ 云错误配置 | 8 | AWS S3/IAM/CloudTrail、Azure NSG/Blob、GCP Storage |
| 🗄️ 数据库 | 4 | MongoDB/Redis 无认证、MySQL 暴露、Elasticsearch |
所有插件均包含:**CVE 参考 · CVSS 评分 · EPSS 评分 · 修复步骤**
## 🖥️ Dashboard 面板
| 面板 | 描述 |
|---|---|
| **IP 情报** | 带有交互式 Leaflet 地图的完整 OSINT 档案 |
| **端口扫描器** | 带服务检测的实时 TCP/SYN/UDP 端口发现 |
| **批量查询** | 通过流式传输同时调查最多 20 个 IP |
| **实时捕获** | 带有实时 PPS 图表和协议细分的数据包嗅探器 |
| **漏洞审计** | 带有策略、CVE 过滤器、SSH 凭证的完整扫描表单 |
| **策略管理器** | 带有类别/CVE 过滤器的插件库浏览器 |
| **扫描区域** | 基于 CIDR 的区域管理和计划扫描 |
| **主机 Agent** | 带有本地漏洞警报的已注册 Agent 清单 |
| **历史记录与数据库** | 所有查询和扫描记录,支持 JSON/CSV 导出 |
## 🏗️ 系统架构
```
┌──────────────────────────────────────────────────────────────────┐
│ Browser Dashboard (SPA) │
│ index.html · app.js · style.css │
└───────────────────────┬──────────────────────────────────────────┘
│ HTTP REST + Socket.IO WebSocket
┌───────────────────────▼──────────────────────────────────────────┐
│ app.py (Flask v3.0) │
│ REST Router /api/* · Socket.IO Server · SQLite DB Layer │
└────────────┬─────────────────┬────────────────────────────────────┘
│ │
┌──────────▼─────┐ ┌───────▼────────────────────────────────┐
│ OSINT APIs │ │ Scanning & Analysis Modules │
│ ip-api.com │ │ vuln_scanner.py · advanced_scanner │
│ AbuseIPDB │ │ packet_monitor.py · scan_zones.py │
│ RDAP/WHOIS │ │ plugins/library.py · agent_daemon │
└────────────────┘ └────────────────────────────────────────┘
```
## ⚡ 环境配置
### 前置条件
- **Python 3.10+**
- 需要**管理员 / Root** 权限以进行 SYN 扫描和数据包捕获
- **Npcap**(仅限 Windows)— [下载](https://npcap.com) — 以获得最佳的数据包捕获效果
- **wkhtmltopdf**(可选)— [下载](https://wkhtmltopdf.org/downloads.html) — 用于导出 PDF
### 1 — 克隆仓库
```
git clone https://github.com/anubhavroshan1080-hub/argus.git
cd argus
```
### 2 — 创建虚拟环境
```
# Windows
python -m venv venv
.\venv\Scripts\activate
# Linux / macOS
python3 -m venv venv
source venv/bin/activate
```
### 3 — 安装依赖
```
pip install -r requirements.txt
```
### 4 — 配置环境
```
# 复制 template
cp .env.example .env
```
编辑 `.env`:
```
# 必需:在 https://www.abuseipdb.com/register 获取免费 key
ABUSEIPDB_KEY=your_80_char_api_key_here
# 可选
SECRET_KEY=your_random_secret_key_here
PORT=5000
ARGUS_DEBUG=false
```
#### 获取免费的 AbuseIPDB Key
1. 在 [abuseipdb.com/register](https://www.abuseipdb.com/register) 注册(免费额度:每天 1,000 次检查)
2. 登录 → **API** 标签页 → **Create Key**
3. 将这 80 个字符的密钥复制到你的 `.env` 文件中
### 5 — 运行 Argus
```
# Standard
python app.py
# Windows(包含 packet capture — 以 Administrator 身份运行)
python app.py
# Linux(包含 SYN scan + packet capture)
sudo python3 app.py
```
在浏览器中打开 **[http://localhost:5000](http://localhost:5000)**。✅
## 🤖 主机 Agent 守护进程
在任何目标机器上部署 Python Agent 以进行实时资产清单收集和本地漏洞报告:
```
python agent_daemon.py --server http://
:5000 --interval 60
```
Agent 收集的信息包括:已安装的软件包 · 运行中的服务 · 正在监听的端口 · 内核版本 · 本地 CVE 警报
## 🚀 生产环境部署
### 方式 1:Gunicorn + Eventlet(推荐)
```
pip install gunicorn eventlet
gunicorn --worker-class eventlet -w 1 --bind 0.0.0.0:5000 app:app
```
### 方式 2:Docker
```
docker build -t argus-platform .
docker run --net=host --cap-add=NET_ADMIN --cap-add=NET_RAW \
-e ABUSEIPDB_KEY=your_key \
-e ARGUS_DEBUG=false \
-p 5000:5000 \
-d argus-platform
```
### 方式 3:Systemd 服务 (Linux)
```
[Unit]
Description=Argus Security Platform v2.0
After=network.target
[Service]
User=argus
WorkingDirectory=/opt/argus
EnvironmentFile=/opt/argus/.env
ExecStart=/opt/argus/venv/bin/python app.py
AmbientCapabilities=CAP_NET_RAW CAP_NET_ADMIN
Restart=on-failure
```
## 📁 项目结构
```
argus/
├── app.py # Flask server, REST API, Socket.IO
├── vuln_scanner.py # Core scan runner (ArgusVulnScanRunner)
├── advanced_scanner.py # SYN/UDP scanning, OWASP, cloud, FP tuning
├── report_generator.py # HTML and PDF report generation
├── scan_zones.py # Scan zone and multi-host management
├── agent_daemon.py # Standalone host agent daemon
├── packet_monitor.py # Live packet sniffer (Scapy)
├── plugins/
│ ├── __init__.py
│ └── library.py # 49+ vulnerability & compliance plugins
├── static/
│ ├── app.js # Frontend logic, Socket.IO, Canvas charts
│ └── style.css # Dark theme CSS design system
├── templates/
│ └── index.html # Single-page dashboard
├── .env.example # Environment template (copy to .env)
├── .gitignore
├── requirements.txt
├── Dockerfile
├── README.md
├── DOCUMENTATION.md # Full technical architecture reference
├── CONTRIBUTING.md
├── SECURITY.md
└── LICENSE
```
## 🔒 安全与隐私
- 所有扫描数据均**本地**存储在 `argus.db` 中 —— 除了 OSINT API 外,不会向外部服务器发送任何数据
- SSH 凭证**仅保留在内存中** —— 绝不写入磁盘或日志
- 所有 HTTP 响应均包含安全响应标头(`X-Frame-Options`、`X-XSS-Protection` 等)
- 将 `.env` 添加到 `.gitignore` 中 —— **切勿提交你的 API 密钥**
- 在生产环境中限制数据库文件权限:`chmod 600 argus.db`
## 📄 许可证
本项目基于 **MIT License** 授权 —— 详情请参阅 [LICENSE](LICENSE)。
## ⭐ 支持
如果 Argus 对你的安全工作流有帮助,请**给它点个 Star** ⭐ —— 这有助于其他人发现这个项目!
由 ❤️ 和 Python 制作 · [GitHub](https://github.com/anubhavroshan1080-hub) · [报告问题](https://github.com/anubhavroshan1080-hub/argus/issues)
标签:Flask, Python, 实时处理, 插件系统, 无后门, 网络流量取证, 请求拦截, 足迹分析, 逆向工具