righettod/website-passive-reconnaissance
GitHub: righettod/website-passive-reconnaissance
面向安全评估场景的网站被动侦察自动化脚本,通过集成多个 OSINT 数据源在不直接访问目标的前提下完成全面的信息收集。
Stars: 39 | Forks: 7
[](https://github.com/righettod/website-passive-reconnaissance/actions/workflows/validate.yml) [](https://github.com/righettod/website-passive-reconnaissance/actions/workflows/codeql.yml)
  
# 🎯 目标
用于在可能的情况下,自动执行在评估前对网站进行的**[被动侦察](https://www.codecademy.com/article/passive-active-reconnaissance)**的脚本(不直接访问目标)。
还用于通过定义所有必须执行的步骤(手动或自动)来指导侦察阶段。
# 📦 要求
💬 通过此[工作流](https://github.com/righettod/website-passive-reconnaissance/actions/workflows/pythonapp.yml)和此[脚本](ci.sh),在以下 64 位版本的 Python 上测试了执行情况:
| 版本 | 是否支持? |
|:---:|---|
| < 3.12 | ❌ |
| 3.12 | ✅ |
| 3.13 | ✅ |
| 3.14 | ✅ |
# 💻 安装
使用以下命令:
```
pip install --no-cache git+https://github.com/righettod/website-passive-reconnaissance.git
```
# 🔑 API 密钥文件
API 密钥应在一个具有以下结构的 **INI** 文件中提供:
```
[API_KEYS]
;See https://www.shodan.io/
shodan=xxx
;See https://intelx.io/
intelx=xxx
;See https://buckets.grayhatwarfare.com/docs/api/v1
grayhatwarfare=xxx
;See https://viewdns.info/api/
viewdns=xxx
;See https://dnsdumpster.com/developer/
dnsdumpster=xxx
;See https://docs.leakix.net/docs/api/authentication/
leakix=xxx
;See https://serpapi.com/
;Used for Google Dorks in priority to direct search
serp=xxx
```
# 👩💻 用法示例
```
$ wpr --help
usage: wpr [-h] [-v] -d DOMAIN_NAME [-a API_KEY_FILE] [-n NAME_SERVER] [-t REQUEST_TIMEOUT] [-m MOBILE_APP_STORE_COUNTRY_CODE]
options:
-h, --help show this help message and exit
-v show program's version number and exit
-a API_KEY_FILE Configuration INI file with all API keys (ex: conf.ini).
-n NAME_SERVER Name server to use for the DNS query (ex: 8.8.8.8), default to the system defined one.
-t REQUEST_TIMEOUT Delay in seconds allowed for a HTTP request to reply before to fall in timeout (default to 240 seconds).
-m MOBILE_APP_STORE_COUNTRY_CODE
Country code to define in which store mobile app will be searched (default to LU).
required arguments:
-d DOMAIN_NAME Domain to analyse (ex: righettod.eu).
```
```
wpr -d righettod.eu
wpr -d righettod.eu -n 8.8.8.8
wpr -d righettod.eu -n 8.8.8.8 -m FR
wpr -d righettod.eu -n 8.8.8.8 -t 30
wpr -d righettod.eu -a api_keys.ini
wpr -d righettod.eu -a api_keys.ini -n 8.8.8.8
```
# 🧑💻 迁移到 V2 及开发
## 方案
* 迁移是在 [Claude Code](https://claude.com/product/claude-code) 的帮助下完成的。
* 在迁移过程中,以下数据提供商因其提供的数据不相关而被移除(至少这是在使用 V1 期间注意到的一个因素):
* **Virus Total**:
* **Hybrid Analysis**:
* **Azure Cognitive Services Bing Web Search**:
* 移除了对 Web 代理的支持,因为它从未被使用过(至少这是在使用 V1 期间注意到的一个因素),选项 `-s` 也是如此。
## 项目
* 配置为使用 [Visual Studio Code](https://code.visualstudio.com/),并提供了一个[工作区文件](project.code-workspace)。
* 使用 [uv](https://docs.astral.sh/uv/) 来管理 [Python 项目](pyproject.toml)。
* OSINT 数据提供商现在通过子类进行定义,以便轻松添加新的提供商。
* 使用 [CLAUDE.md 文件](CLAUDE.md) 和其他 [Claude Code 相关文件](.claude/) 来定义编码和安全准则。
* 使用以下命令在本地运行项目:
```
cd src/wpr
uv run main.py -d righettod.eu
```
## 更新项目版本
使用此命令:
```
uv run hatch version beta
```
标签:API集成, CodeQL, ESC4, GitHub Actions, GrayhatWarfare, IntelX, OSINT, Python, 动态插桩, 可观测性, 安全工具库, 安全评估工具, 实时处理, 情报收集, 数字取证, 数据泄露监测, 无后门, 漏洞研究, 网站安全评估, 网络安全, 自动化脚本, 自动笔记, 被动侦察, 资产测绘, 逆向工具, 隐私保护, 黑盒测试