N4P1x/Night-Watch
GitHub: N4P1x/Night-Watch
一个生产级暗网威胁情报平台,通过自动化采集和分析多源暗网数据,实现 IOC 提取、威胁行为者追踪和实时安全告警。
Stars: 0 | Forks: 0
# Night-Watch - 暗网威胁情报平台
一个可用于生产环境的网络威胁情报平台,用于监控暗网威胁、勒索软件泄露和网络犯罪活动。通过 Tor 隐藏服务、勒索软件博客、黑客论坛、市场、Paste 站点和表层网络来源收集并分析情报。
## 功能
- **自动化数据采集** — 通过 Tor 和表层网络抓取勒索软件博客、黑客论坛、暗网市场、Paste 站点、Telegram 频道和新闻源
- **IOC 提取** — 自动提取 17 种以上的指标类型:IP、域名、URL、电子邮件、加密货币钱包、文件哈希 (MD5/SHA1/SHA256)、CVE ID 等
- **威胁行为者追踪** — 针对勒索软件组织和网络犯罪集团进行档案管理,包括别名、TTP、关联的恶意软件/工具以及基础设施追踪
- **实时告警** — 可针对关键词匹配、新威胁和 IOC 出现配置告警,支持 WebSocket 推送和可选的电子邮件通知
- **交互式仪表板** — 基于 React 的单页应用,包含图表、地图和实时更新
- **可扩展架构** — 基于 Docker Compose 的微服务,结合 Celery 任务队列、Redis 缓存以及 PostgreSQL + MongoDB 存储
- **基于角色的访问控制** — 支持多用户,具有管理员、分析师和查看者角色
- **情报源凭证加密** — 使用 Fernet 加密存储经过身份验证的情报源凭证
- **暗网匿名性** — 所有暗网流量均通过 Tor 路由,并自动进行线路轮换。
## 截图
| | |
|---|---|
|  |  |
|  |  |
|  |  |
|  |  |
## 架构
```
night-watch/
├── backend/
│ ├── api/ # FastAPI application
│ │ ├── main.py # App entry point
│ │ ├── deps.py # Dependencies (auth, rate limiter)
│ │ └── routers/ # Modular route handlers
│ │ ├── auth.py # Authentication
│ │ ├── threat_actors.py # Threat actor CRUD
│ │ ├── leaks.py # Leak management
│ │ ├── iocs.py # IOC management
│ │ ├── sources.py # Source management
│ │ ├── posts.py # Forum posts
│ │ ├── alerts.py # Alert viewer
│ │ ├── stats.py # Dashboard statistics
│ │ ├── scrape.py # Scrape trigger/status
│ │ └── websocket.py # WebSocket endpoint
│ ├── core/ # Configuration and database
│ │ ├── config.py # Pydantic settings
│ │ └── database.py # SQLAlchemy + MongoDB setup
│ ├── models/ # SQLAlchemy ORM models
│ │ ├── user.py # Users table
│ │ ├── alert.py # Alerts table
│ │ ├── threat_actor.py # Threat actors table
│ │ ├── leak.py # Leaks table
│ │ ├── ioc.py # IOCs table
│ │ ├── source.py # Sources table
│ │ ├── post.py # Posts table
│ │ └── audit_log.py # Audit logs
│ ├── schemas/ # Pydantic v2 validation schemas
│ ├── scrapers/ # Web scraping engine
│ │ ├── base.py # Base scraper + scraping engine
│ │ ├── extractors.py # IOC extraction (17+ patterns)
│ │ └── tor_scraper.py # Tor-based scraper
│ ├── services/ # Business logic layer
│ │ ├── auth_service.py
│ │ ├── ioc_service.py
│ │ ├── leak_service.py
│ │ ├── threat_actor_service.py
│ │ ├── source_service.py
│ │ ├── post_service.py
│ │ ├── alert_service.py
│ │ ├── stats_service.py
│ │ ├── scrape_service.py
│ │ ├── cache_service.py
│ │ └── audit_service.py
│ ├── workers/ # Celery background tasks
│ │ └── tasks.py # Scrape, rotate Tor, cleanup
│ ├── alembic/ # Database migrations
│ ├── tests/ # Pytest test suite
│ └── seed.py # Database seeder
├── frontend/
│ ├── src/
│ │ ├── pages/ # React page components
│ │ │ ├── Dashboard.tsx
│ │ │ ├── Leaks.tsx
│ │ │ ├── ThreatActors.tsx
│ │ │ ├── IOCs.tsx
│ │ │ ├── Sources.tsx
│ │ │ ├── Alerts.tsx
│ │ │ ├── Settings.tsx
│ │ │ ├── Login.tsx
│ │ │ └── Register.tsx
│ │ ├── components/ # Reusable components
│ │ │ ├── Layout.tsx # Sidebar + header
│ │ │ ├── Toast.tsx # Notification toasts
│ │ │ └── ErrorBoundary.tsx # Error handling
│ │ ├── contexts/ # React contexts
│ │ │ ├── AuthContext.tsx
│ │ │ ├── WebSocketContext.tsx
│ │ │ └── ThemeContext.tsx
│ │ └── utils/
│ │ ├── api.ts # Axios instance
│ │ └── constants.ts # App constants
│ ├── package.json
│ ├── vite.config.ts
│ └── tailwind.config.js
├── docker/
│ ├── tor.Dockerfile # Tor container
│ ├── torrc # Tor configuration
│ └── nginx.frontend.conf # Nginx config
├── database/
│ ├── postgresql/ # DB initialization scripts
│ └── mongodb/ # MongoDB initialization
├── config/ # Environment templates
├── scripts/ # Utility scripts
├── docker-compose.yml # Development stack
├── docker-compose.prod.yml # Production stack
├── docker-compose.simple.yml # Minimal stack
└── nginx-night-watch.conf # Nginx config (bare-metal)
```
## 技术栈
### 后端
| 组件 | 技术 |
|-----------|-----------|
| API 框架 | FastAPI (Python 3.11+) |
| ORM | SQLAlchemy 2.0 |
| 验证 | Pydantic v2 |
| 任务队列 | Celery 5.3 + Redis |
| 主数据库 | PostgreSQL 15 |
| 文档存储 | MongoDB 6 |
| 缓存 | Redis 7 |
| WebSocket | FastAPI WebSocket |
| 抓取引擎 | httpx + BeautifulSoup4 + Playwright |
| HTTP 客户端 | httpx (异步, SOCKS5) |
| 认证 | JWT (python-jose) + bcrypt |
| 数据库迁移 | Alembic |
### 前端
| 组件 | 技术 |
|-----------|-----------|
| UI 框架 | React 18 + TypeScript |
| 构建工具 | Vite 5 |
| 样式 | Tailwind CSS 3.4 |
| 路由 | React Router DOM 6 |
| 数据获取 | @tanstack/react-query 5 |
| HTTP 客户端 | Axios |
| 图表 | Chart.js + Recharts |
| 地图 | Leaflet / react-leaflet |
| 动画 | Framer Motion |
| WebSocket | socket.io-client |
| UI 基础组件 | @headlessui/react |
### 基础设施
| 组件 | 技术 |
|-----------|-----------|
| 容器化 | Docker + Docker Compose |
| 反向代理 | Nginx (alpine) |
| 监控 | Prometheus + Grafana |
| 匿名化 | Tor (SOCKS5 + control) |
## 快速开始
### 前置条件
- Docker 和 Docker Compose(推荐)
- 或 Python 3.11+、Node.js 20+、PostgreSQL 15、MongoDB 6、Redis 7、Tor
### Docker 部署(推荐)
```
# Clone 仓库
git clone https://github.com/N4P1x/Night-Watch.git
cd Night-Watch
# 复制 environment 配置
cp config/.env.example .env
# 使用你的配置编辑 .env (生成一个 SECRET_KEY)
# SECRET_KEY=your-secure-random-key
# DATABASE_URL=postgresql://night-watch:your-password@postgres:5432/night-watch
# 启动所有服务
docker-compose up -d
```
访问平台:
- **前端**:http://localhost:3000
- **API**:http://localhost:8000
- **API 文档** (Swagger):http://localhost:8000/docs
- **API 文档** (ReDoc):http://localhost:8000/redoc
### 手动安装
```
# 运行 setup 脚本 (安装 system deps, Python packages, Node modules)
./setup.sh
# 启动所需服务
sudo systemctl start postgresql mongodb redis tor
# 运行 database migrations
PYTHONPATH=. alembic -c backend/alembic.ini upgrade head
# 启动 backend
PYTHONPATH=. uvicorn backend.api.main:app --reload --port 8000
# 在单独的终端中,启动 frontend
cd frontend && npm run dev
```
### 环境变量
| 变量 | 必填 | 默认值 | 描述 |
|----------|----------|---------|-------------|
| `SECRET_KEY` | 是 | 自动生成(开发环境) | JWT 签名密钥 |
| `DATABASE_URL` | 是 | `postgresql://dwtip:dwtip_secure_password@localhost:5432/dwtip` | PostgreSQL 连接字符串 |
| `MONGODB_URL` | 否 | `mongodb://localhost:27017/dwtip` | MongoDB 连接字符串 |
| `REDIS_URL` | 否 | `redis://localhost:6379/0` | Redis 连接字符串 |
| `TOR_PROXY` | 否 | `socks5://localhost:9050` | Tor SOCKS5 代理 |
| `TOR_CONTROL` | 否 | `localhost:9051` | Tor 控制端口 |
| `ALGORITHM` | 否 | `HS256` | JWT 算法 |
| `ACCESS_TOKEN_EXPIRE_MINUTES` | 否 | `30` | JWT token 过期时间 |
| `SMTP_HOST` | 否 | `smtp.gmail.com` | 邮件 SMTP 主机 |
| `SMTP_PORT` | 否 | `587` | 邮件 SMTP 端口 |
| `SMTP_USER` | 否 | — | SMTP 用户名 |
| `SMTP_PASSWORD` | 否 | — | SMTP 密码 |
| `ALERT_EMAIL` | 否 | — | 告警邮件接收者 |
| `SENTRY_DSN` | 否 | — | Sentry 错误追踪 DSN |
| `LOG_LEVEL` | 否 | `INFO` | 日志级别 |
| `TELEGRAM_API_ID` | 否 | `0` | Telegram API ID |
| `TELEGRAM_API_HASH` | 否 | — | Telegram API hash |
| `MAX_WORKERS` | 否 | `4` | 最大并发抓取器 |
| `SCRAPE_INTERVAL_MINUTES` | 否 | `15` | 定期抓取间隔 |
| `TOR_CIRCUIT_ROTATE_INTERVAL` | 否 | `300` | Tor 线路轮换(秒) |
| `ALLOWED_ORIGINS` | 否 | `http://localhost:3000` | CORS 允许的来源 |
| `ENVIRONMENT` | 否 | `development` | 部署环境 |
| `RATE_LIMIT_REQUESTS_PER_MINUTE` | 否 | `1000` | API 速率限制 |
| `DEEPDARKCTI_PATH` | 否 | 自动检测 | deepdarkCTI 数据路径 |
## API 参考
所有 API endpoint 均以 `/api/v1` 为前缀。通过 `Authorization: Bearer ` header 或 `access_token` cookie 进行身份验证。
### 身份验证
| 方法 | 路径 | 认证 | 描述 |
|--------|------|------|-------------|
| `POST` | `/auth/register` | 否 | 注册新用户(第一位用户将成为管理员) |
| `POST` | `/auth/login` | 否 | 登录(OAuth2 密码模式),返回 JWT |
| `POST` | `/auth/logout` | 是 | 登出(将 token 加入黑名单) |
| `GET` | `/auth/me` | 是 | 获取当前用户资料 |
| `PUT` | `/auth/me` | 是 | 更新用户资料 |
### 威胁行为者
| 方法 | 路径 | 角色 | 描述 |
|--------|------|-------|-------------|
| `GET` | `/threat-actors` | 任意 | 列出威胁行为者(搜索、分页) |
| `POST` | `/threat-actors` | 管理员、分析师 | 创建威胁行为者 |
| `GET` | `/threat-actors/{id}` | 任意 | 获取威胁行为者详情 |
| `PUT` | `/threat-actors/{id}` | 任意 | 更新威胁行为者 |
| `DELETE` | `/threat-actors/{id}` | 管理员 | 删除威胁行为者 |
### 泄露
| 方法 | 路径 | 角色 | 描述 |
|--------|------|-------|-------------|
| `GET` | `/leaks` | 任意 | 列出泄露(按严重程度、状态、来源、搜索进行筛选) |
| `POST` | `/leaks` | 管理员、分析师 | 创建泄露(通过 WebSocket 广播) |
| `GET` | `/leaks/{id}` | 任意 | 获取泄露详情 |
| `DELETE` | `/leaks/{id}` | 管理员 | 删除泄露 |
### 攻陷指标 (IOC)
| 方法 | 路径 | 角色 | 描述 |
|--------|------|-------|-------------|
| `GET` | `/iocs` | 任意 | 列出 IOC(按类型、搜索、白名单状态进行筛选) |
| `POST` | `/iocs` | 管理员、分析师 | 创建 IOC |
| `POST` | `/iocs/bulk` | 任意 | 批量创建 IOC |
| `GET` | `/iocs/{id}` | 任意 | 获取 IOC 详情 |
| `PUT` | `/iocs/{id}` | 任意 | 更新 IOC |
| `DELETE` | `/iocs/{id}` | 管理员 | 删除 IOC |
### 情报源
| 方法 | 路径 | 角色 | 描述 |
|--------|------|-------|-------------|
| `GET` | `/sources` | 任意 | 列出数据源(按类型、激活状态、onion 进行筛选) |
| `POST` | `/sources` | 管理员 | 添加数据源 |
| `GET` | `/sources/names` | 任意 | 获取所有源名称 |
| `GET` | `/sources/types` | 任意 | 获取可用的源类型 |
| `GET` | `/sources/{id}` | 任意 | 获取源详情 |
| `PUT` | `/sources/{id}` | 任意 | 更新源 |
| `DELETE` | `/sources/{id}` | 管理员 | 删除源 |
| `POST` | `/sources/import-deepdarkcti` | 否 | 从 deepdarkCTI 导入源 |
### 帖子
| 方法 | 路径 | 认证 | 描述 |
|--------|------|------|-------------|
| `GET` | `/posts` | 是 | 列出帖子(按来源、行为者、搜索进行筛选) |
| `POST` | `/posts` | 是 | 创建帖子 |
| `GET` | `/posts/{id}` | 是 | 获取帖子详情 |
| `PUT` | `/posts/{id}` | 是 | 更新帖子 |
| `DELETE` | `/posts/{id}` | 是 | 删除帖子 |
### 告警
| 方法 | 路径 | 角色 | 描述 |
|--------|------|-------|-------------|
| `GET` | `/alerts` | 任意 | 列出告警(按已读、严重程度进行筛选) |
| `POST` | `/alerts` | 管理员、分析师 | 创建告警(通过 WebSocket 广播) |
| `PUT` | `/alerts/{id}` | 任意 | 更新告警(标记为已读/已忽略) |
| `POST` | `/alerts/read-all` | 是 | 将所有告警标记为已读 |
| `DELETE` | `/alerts/{id}` | 管理员 | 删除告警 |
### 统计
| 方法 | 路径 | 认证 | 描述 |
|--------|------|------|-------------|
| `GET` | `/stats/dashboard` | 是 | 仪表板统计(计数、趋势) |
### 抓取
| 方法 | 路径 | 角色 | 描述 |
|--------|------|-------|-------------|
| `GET` | `/scrape/status` | 是 | 获取当前抓取状态 |
| `GET` | `/scrape/health` | 是 | 获取抓取健康指标 |
| `POST` | `/scrape/trigger` | 管理员 | 触发抓取 |
| `POST` | `/scrape/stop` | 管理员 | 停止当前的抓取 |
### WebSocket
| 路径 | 认证 | 描述 |
|------|------|-------------|
| `/ws` | JWT 子协议 | 实时更新(新泄露、告警) |
| `/api/v1/scrape/ws/stats` | JWT 子协议 | 实时抓取统计 |
## 数据库模型
### PostgreSQL 表(17 张表)
| 表 | 描述 |
|-------|-------------|
| `users` | 具有角色(管理员/分析师/查看者)、告警偏好的平台用户 |
| `alerts` | 具有严重程度、匹配关键词、已读/已忽略状态的用户告警 |
| `threat_actors` | 包含别名、TTP、恶意软件、基础设施威胁行为者档案 |
| `threat_actor_aliases` | 行为者别名历史 |
| `leaks` | 包含受害者信息、严重程度、状态、提取的 IOC 的数据泄露记录 |
| `leak_tags` | 泄露分类标签 |
| `iocs` | 包含类型、值、置信度、威胁评分的攻陷指标 |
| `ioc_tags` | IOC 分类标签 |
| `ioc_relations` | IOC 之间的关系图谱 |
| `sources` | 包含选择器、凭证、健康状态的数据源配置 |
| `source_health` | 源健康追踪(响应时间、错误率) |
| `posts` | 包含已提取实体的已抓取论坛帖子和内容 |
| `post_attachments` | 来自帖子的文件附件 |
| `audit_logs` | 用户操作审计追踪 |
### MongoDB 集合(5 个集合)
| 集合 | 描述 |
|------------|-------------|
| `raw_data` | 带有分类的原始抓取 HTML/内容 |
| `screenshots` | 页面截图 |
| `alerts_mongo` | 基于 MongoDB 的告警 |
| `sessions` | 用户会话(TTL 24h) |
| `feed_items` | RSS/订阅源项目 |
## IOC 提取
平台自动从抓取的内容中提取 17 种以上的指标类型:
| 类型 | 示例 | 置信度 |
|------|---------|------------|
| IPv4 地址 | `192.168.1.1` | 高 |
| IPv6 地址 | `2001:db8::1` | 高 |
| 域名 | `malicious.com` | 高 |
| URL | `https://example.com/path` | 高 |
| Onion URL | `http://xyz.onion` | 高 |
| 电子邮件 | `attacker@example.com` | 中 |
| BTC 钱包 | `1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa` | 高 |
| ETH 钱包 | `0x742d35Cc6634C0532925a3b844Bc9e7595f3bD09` | 高 |
| XMR 钱包 | `44AFFq5kSiGBoZ4...` | 高 |
| CVE | `CVE-2024-12345` | 高 |
| MD5 | `d41d8cd98f00b204e9800998ecf8427e` | 中 |
| SHA1 | `da39a3ee5e6b4b0d3255bfef95601890afd80709` | 中 |
| SHA256 | `e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855` | 中 |
| 私钥 | `-----BEGIN RSA PRIVATE KEY-----` | 高 |
| API 密钥 | `sk_live_...` | 高 |
功能:
- 结合上下文的置信度评分(通过附近的关键词提升)
- 白名单过滤(RFC1918、常见域名)
- 通过 type:value 指纹去重
- 噪声过滤(二进制内容、不可打印的上下文)
- 标签丰富化(dark-web、onion、加密货币、凭证)
- 通过跨源频率追踪计算威胁评分(0-10)
## 抓取引擎
### 工作原理
1. **来源发现** — 在数据库中配置来源的 URL、类型、抓取间隔和 Tor 使用标志。平台还可以从 DeepdarkCTI 数据中导入 `.onion` URL。
2. **调度** — Celery beat 调度定期抓取(默认:每 15 分钟)。`SourceManager` 根据各个来源自己的抓取间隔决定哪些源到期。
3. **内容获取** — `ScrapingEngine` 使用以下方式获取内容:
- 使用 **httpx** 结合 SOCKS5 代理获取 Tor 源
- 使用 **Playwright** 渲染 JavaScript 页面(生产环境)
- **RSS/Atom** 订阅源检测和文章爬取
- 随机 User-Agent 和类似浏览器的 header,以实现反指纹追踪
4. **内容处理** — `ContentClassifier` 对内容类型进行分类(勒索软件、数据泄露、凭证转储等)。`ContentExtractor` 将 HTML 解析为可读文本。
5. **IOC 提取** — `AdvancedIOCExtractor` 运行 17 种以上的正则表达式模式,进行白名单过滤、上下文评分、去重和丰富化。
6. **泄露检测** — `LeakExtractor` 使用关键词匹配和模式分析识别勒索软件受害者、数据泄露和凭证泄露。
7. **持久化** — 结果保存到 PostgreSQL(IOC、泄露、帖子)以及可选的 MongoDB(原始内容、截图)中。
8. **告警** — 高严重性的发现会触发告警和 WebSocket 广播。可选地,通过 SMTP 发送电子邮件告警。
### 架构特性
- **断路器** — 针对每个域名的断路器模式可防止过度请求无响应的源
- **指数退避** — 3 次带有指数退避的重试尝试
- **并发控制** — asyncio.Semaphore 限制并行请求
- **健康追踪** — 源可靠性百分比、连续失败计数
- **Tor 线路轮换** — 每 5 分钟自动发送 `NEWNYM` 信号
## 生产环境部署
### Docker Compose(生产环境)
```
docker-compose -f docker-compose.prod.yml up -d
```
生产环境栈增加了:
- **Celery Worker** — 2 个副本,内存限制为 2GB
- **抓取器** — 专用的抓取器容器,内存限制为 4GB,用于 JS 渲染
- **Prometheus** — 在端口 9090 上收集指标
- **Grafana** — 在端口 3030 上提供监控仪表板
- 资源限制、健康检查、只读 root 文件系统
### 裸金属服务器
包含的 `nginx-night-watch.conf` 提供了用于生产环境部署的 Nginx 配置:
```
# 从 frontend/dist 提供 frontend 服务
# 代理 /api 到 localhost:8000
# 代理 /ws 并设置长 timeout (86400s)
# Security headers, gzip, static caching
```
### 安全注意事项
- **Tor 路由** — 所有暗网流量均通过 Tor 路由,并具有严格的出口策略
- **凭证加密** — 使用 Fernet 对称加密对情报源凭证进行静态加密
- **JWT 身份验证** — 基于 token 的认证,30 分钟过期
- **密码策略** — 需要 8 个以上字符,包含大小写字母、数字和特殊字符
- **暴力破解保护** — 5 次失败尝试 = 锁定 15 分钟(基于 Redis)
- **速率限制** — 可配置的基于 IP 的速率限制(默认:1000 请求/分钟)
- **基于角色的访问控制** — 三个级别:管理员、分析师、查看者
- **审计日志** — 所有管理员操作均记录 IP 和 user agent
- **IP 保护** — 绝不记录 IP 地址
- **API 安全** — 除了注册/登录/健康检查外,所有 endpoint 都需要身份验证
## 运行测试
```
# Backend 测试 (pytest)
cd backend
pip install pytest pytest-mock pytest-asyncio httpx
pytest tests/ -v
# Frontend 类型检查
cd frontend
npx tsc --noEmit
# Frontend 构建验证
npm run build
```
### CI/CD
GitHub Actions 工作流 (`.github/workflows/ci.yml`):
- Python 3.14:ruff linting、mypy 类型检查、pytest
- Node 20:TypeScript 编译、Vite 构建
Pre-commit hooks:
```
pip install pre-commit
pre-commit install
```
## 添加自定义情报源
### 配置
可通过 API 或直接在数据库中输入配置来配置情报源:
```
{
"name": "Custom Ransomware Blog",
"type": "ransomware_blog",
"url": "http://example.onion",
"uses_tor": true,
"scrape_interval_minutes": 30,
"selectors": {
"victim_card": ".victim-item",
"victim_name": ".company-name",
"date": ".publish-date"
}
}
```
### 可用的源类型
- `ransomware_blog` — 勒索软件团伙泄露站点
- `hacker_forum` — 网络犯罪论坛
- `marketplace` — 暗网市场
- `paste_site` — 类似 Pastebin 的服务
- `telegram` — Telegram 频道/群组
- `news_feed` — 网络安全新闻
- `rss` — RSS/Atom 订阅源
- `twitter` — 社交媒体
- `reddit` — Subreddit
- `other` — 自定义来源
### 创建自定义抓取器
1. 在 `backend/scrapers/` 中创建一个新的抓取器类,继承 `BaseScraper`
2. 实现所需的方法:`scrape()`、`extract_iocs()`、`extract_leaks()`
3. 在 `backend/scrapers/__init__.py` 中注册抓取器
4. 通过 API 或数据库配置源
## WebSocket 集成
可通过 WebSocket 获取实时更新:
```
const token = localStorage.getItem('token');
const ws = new WebSocket(`ws://localhost:8000/ws?token=${encodeURIComponent(token)}`);
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log('New update:', data);
};
```
WebSocket 会广播:
- 新的泄露发现
- 新的告警创建
- 抓取状态更新
- 抓取统计信息(实时)
## 初始管理员访问权限
没有默认凭证。第一个注册的账号会自动提升为 **管理员**。随后的所有注册默认为 **查看者**,直到被现有的管理员提升。
## 脚本
| 脚本 | 用途 |
|--------|---------|
| `setup.sh` | 安装系统依赖、Docker、Tor、Python 包、Node 模块 |
| `start.sh` | 启动开发服务器(后端 + 前端) |
| `stop.sh` | 停止开发服务器 |
| `backend/seed.py` | 使用初始数据填充数据库 |
| `scripts/scrape_tor.py` | 独立的 Tor 抓取器脚本 |
| `scripts/advanced_scraper.py` | 带有线路轮换的高级抓取器 |
## 许可证
MIT 许可证 — 有关详细信息,请参阅 LICENSE 文件。
## 免责声明
此工具仅设计用于合法的安全研究和威胁情报目的。用户有责任确保遵守其所在司法管辖区的所有适用法律和法规。未经授权访问计算机系统是非法的。在监控任何系统或网络之前,请务必获得适当的授权。
标签:AV绕过, FastAPI, IOC提取, 威胁情报, 安全运营, 开发者工具, 微服务架构, 扫描框架, 搜索引擎查询, 数据泄露, 暗网监控, 测试用例, 特征检测, 自动化情报收集, 自定义请求头, 请求拦截, 逆向工具