jagaor/passivelens-v2

GitHub: jagaor/passivelens-v2

一款通过公开数据源和第三方缓存进行无直接流量交互的被动 Web 技术指纹识别与侦察工具。

Stars: 0 | Forks: 0

![横幅](https://raw.githubusercontent.com/jagaor/passivelens-v2/main/docs/banner.png) ## 架构 ![架构图](https://raw.githubusercontent.com/jagaor/passivelens-v2/main/docs/architecture.png) ## 演示 ![演示](https://raw.githubusercontent.com/jagaor/passivelens-v2/main/docs/demo.png) # PassiveLens ![Python 版本](https://img.shields.io/badge/python-3.11%2B-blue) ![许可证](https://img.shields.io/badge/license-MIT-green) ![状态](https://img.shields.io/badge/status-active-brightgreen) ## 描述 PassiveLens 是一款被动的 Web 技术指纹识别工具。其目标是在不向目标服务器发送直接流量的情况下识别域名的技术栈,从而避免在 IDS/IPS 系统或防火墙中触发警报。它利用公开的数据源和第三方缓存来获取 HTTP 标头、favicons、JavaScript 信号和子域名,整个过程完全被动。 ## 动机 在安全审计和侦察中,主动流量可能会被检测到并遭到拦截。PassiveLens 允许网络安全专业人员在不向目标生成直接流量的情况下收集有关 Web 技术的有价值信息,从而最大限度地降低被检测到的风险。 ## 架构 ``` flowchart TD CLI[CLI - Click] --> Reco[Recolección] Reco --> HeaderFetcher[HeaderFetcher - Shodan cache] Reco --> FaviconHasher[FaviconHasher - Shodan/URL] Reco --> JSSignalScanner[JSSignalScanner - HTML cache] CLI --> Intel[Inteligencia] Intel --> CertFetcher[CertFetcher - crt.sh] Intel --> ShodanLookup[ShodanLookup - Shodan API] Reco --> Matching[Matching - Wappalyzer patterns] Intel --> Matching Matching --> TechProfile[TechProfile] TechProfile --> Presentación[Presentación] Presentación --> Jinja2[Jinja2 - HTML] Presentación --> Rich[Rich - Terminal] ``` ## 数据源 - **Shodan**:用于通过缓存方式获取 HTTP 标头、favicons 以及端口/ASN/国家数据,而无需联系目标服务器。 - **crt.sh**:用于通过 SSL/TLS 证书枚举子域名的公开 API。 - **SecurityTrails**:可选 API,用于丰富子域名信息。 - **Wappalyzer patterns**:包含 regex 模式的 JSON 文件,用于检测 Web 技术。 ## 前置条件 - Python 3.11 或更高版本 - 可选的 API 密钥:Shodan、SecurityTrails(建议至少拥有 Shodan 的密钥以获得完整功能) ## 安装说明 ``` # 克隆仓库 git clone https://github.com/tu-usuario/PassiveLens.git cd PassiveLens # 创建并激活虚拟环境 python -m venv venv source venv/bin/activate # En Windows: venv\Scripts\activate # 安装依赖 pip install -r requirements.txt # 配置环境变量(可选) cp .env.example .env # 使用你的 API 密钥编辑 .env ``` ## 用法 PassiveLens 提供了三个主要的子命令: ### 扫描 对目标域名执行全面扫描。 ``` python src/main.py scan --domain example.com ``` ### favicon-hash 计算域名 favicon 的 MurmurHash3 哈希值。 ``` python src/main.py favicon-hash --domain example.com ``` ### 证书枚举 通过 crt.sh 枚举子域名。 ``` python src/main.py cert-enum --domain example.com ``` ### 通用 Flags - `--domain`:目标域名(必填)。 - `--output`:用于保存报告的路径(可选)。 - `--format`:输出格式:`json`、`html` 或 `terminal`(默认为 `terminal`)。 - `--no-shodan`:禁用对 Shodan 的查询。 - `--no-crtsh`:禁用对 crt.sh 的查询。 ### 终端输出示例 ``` $ python src/main.py scan --domain example.com [+] Tecnologías detectadas: - Apache (HTTP Server) [confianza: alta] - PHP [confianza: media] - jQuery [confianza: alta] [+] Subdominios encontrados: - www.example.com - mail.example.com [+] Información adicional: - ASN: AS15133 (EdgeCast) - País: US ``` ## MITRE ATT&CK - **T1592.002**:收集受害者主机信息:软件(Web 技术检测)。 - **T1596.005**:搜索开放技术数据库:扫描数据库(使用 Shodan、crt.sh)。 ## 负责任的使用警告 PassiveLens 仅能用于您自己的域名,或事先获得所有者的明确授权。未经授权的使用可能会违反当地及国际法律。开发者不对滥用此工具的行为负责。 ## 许可证 本项目采用 [MIT 许可证](LICENSE) 授权。
标签:ESC4, OSINT, Python, Web指纹, 实时处理, 无后门, 聊天机器人, 被动指纹识别, 逆向工具