xNewt0/Samurai
GitHub: xNewt0/Samurai
基于多源 OSINT 的域名侦察与 Dork 扫描器,自动收集目标 URL 并按严重程度分类敏感端点。
Stars: 3 | Forks: 0
## 目录
- [它能做什么?](#neler-yapar)
- [功能特性](#özellikler)
- [数据源](#veri-kaynakları)
- [安装说明](#kurulum)
- [使用说明](#kullanım)
- [参数说明](#parametreler)
- [配置 (可选)](#konfigürasyon-opsiyonel)
- [输出 (报告)](#çıktılar-raporlar)
- [示例 Wordlist / Dorks](#örnek-wordlist--dorks)
- [注意事项与限制](#notlar--limitler)
- [安全 / 法律声明](#güvenlik--yasal-uyarı)
- [许可证](#license)
## 它能做什么?
1. **URL/子域名收集 (OSINT)**
- 从多个来源提取 URL 和子域名信号,并合并到一个池中。
2. **智能过滤**
- 过滤掉静态文件(如 js/css/png 等)和低价值的路径。
3. **Dork / Wordlist 匹配**
- 支持 `inurl:` / `filetype:` / `ext:` 等模式。
4. **严重程度分类**
- 突出显示 `.env`、`.sql`、`.bak`、`wp-config`、`.git` 等信号。
5. **报告生成**
- 生成 **HTML (默认)**、JSON 或 TXT 报告。
## 功能特性
- ✅ 多源 OSINT URL 池 (Wayback / HackerTarget / OTX)
- ✅ 减少 Requests 数量 (静态扩展名 + 路径过滤 + 停用词)
- ✅ 性能导向的匹配 (URL token 索引 + ext 索引)
- ✅ 严重程度: **CRITICAL / HIGH / NORMAL**
- ✅ 报告格式: **HTML / JSON / TXT**
- ✅ HTML 报告支持搜索 + 严重程度过滤
- ✅ 易于使用: `-w` 参数可选,内置广泛的 dork 集
## 数据源
- **Wayback Machine (CDX)** — 归档的 URL
- **HackerTarget (hostsearch)** — 子域名信号
- **AlienVault OTX** — URL 列表
## 安装说明
```
git clone https://github.com/xNewt0/Samurai.git
cd Samurai
pip install -r requirements.txt
```
**requirements.txt**
- `requests`
- `fake-useragent`
## 使用说明
### 最简单的用法 (内置 dorks + 自动生成 HTML 报告)
```
python3 samurai.py -d example.com
```
### 使用自定义 wordlist
```
python3 samurai.py -d example.com -w dorks.txt
```
### 增加 Thread 数量
```
python3 samurai.py -d example.com -t 50
```
### 生成 JSON/TXT 报告
```
python3 samurai.py -d example.com --format json
python3 samurai.py -d example.com --format txt
```
### 将 Report 输出到标准输出 (stdout) (用于 pipeline)
```
python3 samurai.py -d example.com --format json -o -
```
### 关闭部分数据源 (例如:仅使用 Wayback)
```
python3 samurai.py -d example.com --no-otx --no-hackertarget
```
## 参数说明
| 参数 | 说明 | 默认值 |
|---|---|---|
| `-d, --domain` | 目标域名 (例如: `example.com`) | **必填** |
| `-w, --wordlist` | Dork/wordlist 文件 (可选) | 内置列表 |
| `-t, --threads` | 匹配的 Thread 数量 (1–200) | `30` |
| `-o, --output` | Output 文件 (或使用 `-` 输出到 stdout) | 自动命名 |
| `--format` | `html` / `json` / `txt` | `html` |
| `--no-report` | 不写入报告 | 关闭 |
| `-v, --verbose` | 详细日志 | 关闭 |
| `-q, --quiet` | 最少输出模式 | 关闭 |
| `--no-color` | 关闭 ANSI 颜色 | 关闭 |
| `--version` | 打印版本号并退出 | 关闭 |
| `--timeout` | HTTP timeout (秒) | `30` |
| `--retries` | HTTP retry 次数 | `2` |
| `--backoff` | Retry backoff (秒) | `0.7` |
| `--max-urls` | URL 池最大数量 | `75000` |
| `--wayback-limit` | Wayback CDX 限制 | `50000` |
| `--otx-pages` | OTX 页面数 (500/页) | `3` |
| `--no-wayback` | 关闭 Wayback | 关闭 |
| `--no-hackertarget` | 关闭 HackerTarget | 关闭 |
| `--no-otx` | 关闭 OTX | 关闭 |
| `--no-ext-filter` | 关闭静态扩展名过滤 | 关闭 |
| `--no-path-filter` | 关闭路径过滤 | 关闭 |
| `--no-stopwords` | 关闭停用词过滤 | 关闭 |
| `--resolve-subdomains` | 对子域名进行 DNS resolve 并加入池中 | 关闭 |
| `--config` | 通过 JSON 配置文件覆盖过滤器设置 | 关闭 |
## 配置 (可选)
你可以通过 `--config` 提供 JSON 文件来从外部管理某些过滤器。
示例 `config.json`:
```
{
"banned_ext": [".png", ".jpg", ".css", ".js"],
"banned_path": ["/assets/", "/static/", "/vendor/"],
"stopwords": ["the", "and", "www", "http", "https"],
"crit_patterns": [".env", "wp-config", ".git", ".sql", ".bak"],
"hot_keywords": ["admin", "login", "swagger", "graphql", "config"]
}
```
用法:
```
python3 samurai.py -d example.com --config config.json
```
## 输出 (报告)
### HTML (默认)
- 搜索框 + 严重程度过滤器
- 单文件报告
### JSON
- 适用于自动化/pipeline
- `results[]` 中包含按 URL 分类的 `hits[]` (匹配的 dork/term/type)
### TXT
- 按 CRITICAL/HIGH/NORMAL 分段输出的内容
## 示例 Wordlist / Dorks
Samurai 支持 `inurl`、`filetype`、`ext` 等匹配方式。
示例 `dorks.txt`:
```
inurl:admin
inurl:login
inurl:dashboard
inurl:config
inurl:backup
inurl:upload
filetype:env
filetype:sql
filetype:log
ext:bak
```
## 注意事项与限制
- 某些服务 (尤其是免费 endpoint) 可能会触发 rate-limit。
- 输出结果为“潜在”发现;仍需进行 (手动/自动化) 验证。
- 过滤器可降低噪声;如有需要,可通过 `--no-*-filter` 将其关闭。
## 安全 / 法律声明
本工具仅应在您拥有**授权**的系统上用于安全测试和 OSINT 目的。
未经授权的使用可能是非法的。使用责任由用户自行承担。
## 许可证
MIT — 详情请参阅: [LICENSE](./LICENSE)
标签:Dork扫描, ESC4, KaliLinux工具, OSINT, Python3, Web安全, 前端框架, 域名侦察, 威胁建模, 子域名爆破, 安全测试, 实时处理, 密码管理, 搜索引擎Hacking, 攻击性安全, 敏感信息发现, 白帽黑客, 蓝队分析, 逆向工具