haKC-ai/panhandlr

GitHub: haKC-ai/panhandlr

该项目利用 AI 将 Google Dorks 自动转化为可操作的威胁情报并生成 STIX 2.1 结构化报告,解决了 OSINT 调查流程自动化的问题。

Stars: 1 | Forks: 1

PANHANDLR Logo

![许可证: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)![Python 版本](https://img.shields.io/badge/python-3.7+-blue.svg)![欢迎 PR](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)![持续维护](https://img.shields.io/badge/Maintained%3F-yes-green.svg) `由 AI 驱动的 OSINT pipeline,可将 Google Dorks 自动转化为可操作的威胁情报和结构化的 STIX 2.1 报告。` 该工具主要分为两个阶段运行: 1. **Dorking**:使用 JSON 文件中的 Google Dorks(或使用 AI 生成新的 Dorks)来查找潜在的恶意或有趣的 URL。 2. **Analysis**:抓取所发现 URL 的内容,利用 AI 模型提取 IOC,并生成 CSV 和 STIX 2.1 格式的详细技术报告。 ## 工作流程 ``` graph TD A[Start Panhandlr] --> B{Main Menu}; B --> C[Phase 1: Dorking]; B --> D[Phase 2: Analysis]; B --> E[Exit]; subgraph Phase 1 C --> C1{Select Dork File}; C1 --> C2[Use Existing JSON]; C1 --> C3[Create New via AI]; C2 --> C4[Run Google Dorks]; C3 --> C4; C4 --> C5[Output: global_google_dorks_analysis.csv]; end subgraph Phase 2 D --> D1[Input: global_google_dorks_analysis.csv]; D1 --> D2{For Each URL}; D2 --> D3[Scrape Web Page]; D2 --> D4[Clone Git Repo]; D3 --> D5[Extract Text]; D4 --> D5; D5 --> D6[Analyze Text with OpenAI]; D6 --> D7[Extract and Aggregate IOCs]; D7 --> D8[Generate Reports]; end subgraph Reports D8 --> R1[Detailed IOCs CSV]; D8 --> R2[Technical Summary CSV]; D8 --> R3[STIX 2.1 Threat Report JSON]; end ``` ![PANHANDLR](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/2e2f348e29143642.png) ## 功能特点 - **交互式菜单**:提供用户友好的终端界面,便于轻松导航。 - **AI 驱动的 Dork 创建**:使用 OpenAI 的 `gpt-4o` 自动生成关于任何主题的全面 dork 文件。 - **可扩展的 Dorking 引擎**:使用并创建您自己的基于 JSON 的 dork 文件,以便进行可重复的研究。 - **自动化 Google 搜索**:使用 Google Custom Search API 执行 dorks 以查找相关的 URL。 - **智能内容抓取**:从静态网站(`newspaper3k`)和重度依赖 JavaScript 的动态页面(`selenium`)中获取文本。 - **Git 仓库分析**:克隆公开的 Git 仓库,直接从源代码中提取 IOC。 - **AI 驱动的 IOC 提取**:利用 `gpt-4o` 分析抓取的文本并提取广泛的 artifacts: - IP 地址、域名和 URL - 文件哈希值(MD5、SHA1、SHA256) - CVE 和 MITRE ATT&CK TTPs - 恶意软件家族和威胁行为者名称 - 可操作的追踪叙述。 - **多格式报告**:生成三种不同的报告: 1. 针对所有发现的 IOC 提供详细的、按 URL 划分的细分。 2. 针对威胁态势提供由 AI 生成的高层次技术总结。 3. 生成机器可读的 STIX 2.1 报告,便于与安全工具集成。 - **自动无害化处理**:报告中的所有相关指标都会自动进行无害化处理(例如,`http://` -> `hxxp://`,`example.com` -> `example[.]com`)。 ![PANHANDLR](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/ef9886f4e1143649.png) ## 设置与安装 ### 前置条件 - Python 3.7+ - Git ### 1. 克隆仓库 ``` git clone https://github.com/your-username/panhandlr.git cd panhandlr ``` ### 2. 安装依赖项 使用 `requirements.txt` 文件安装所有必需的 Python 库。 ``` pip install -r requirements.txt ``` 这还将安装 `chromedriver-manager`,它会自动处理 Selenium WebDriver。 ### 3. 配置环境变量 Panhandlr 需要 Google Custom Search 和 OpenAI 的 API 密钥。 1. 在项目的根目录中创建一个 `.env` 文件: touch .env 2. 将以下密钥添加到 `.env` 文件中: # 从 Google Cloud Console 获取密钥:https://developers.google.com/custom-search/v1/overview GOOGLE_SEARCH_API_KEY="YOUR_GOOGLE_API_KEY" # 创建一个 Programmable Search Engine 并获取其 ID:https://programmablesearchengine.google.com/ GOOGLE_CSE_ID="YOUR_CUSTOM_SEARCH_ENGINE_ID" # 从 OpenAI Platform 获取密钥:https://platform.openai.com/api-keys OPENAI_API_KEY="sk-YOUR_OPENAI_API_KEY" ## 使用方法 在根目录下运行主脚本: ``` python panhandlr.py ``` 您也可以使用提供的 shell 脚本: ``` ./start_main.sh ``` ### 主菜单 脚本将为您提供三个选项: 1. **Dorking 阶段**:从这里开始收集 URL。 2. **Analysis 阶段**:在 Dorking 阶段之后运行此步骤以处理结果。 3. **退出**:关闭应用程序。 #### 阶段 1:Dorking 阶段 当您选择此选项时,您可以: - **选择现有的 dorks 文件**:脚本将列出 `analyzers/` 目录中的所有 `.json` 文件。其中包含 `sharepoint.json` 文件作为示例。 - **创建新的 Dorks 文件**:此选项会提示您输入一个主题。然后它使用 GPT-4o 生成一个新的 dork 文件,并将其保存在 `analyzers/` 目录中以便立即或将来使用。 选择您的 dorks 后,脚本将执行它们,并将发现的所有唯一 URL 保存到 `analysis/global_google_dorks_analysis.csv`。 #### 阶段 2:Analysis 阶段 此阶段会自动读取 `global_google_dorks_analysis.csv` 文件。它会遍历每个 URL,抓取其内容,提取 IOC,并生成最终报告。 输出将保存在 `analysis/` 目录中: - `detailed_ioc_report_defanged.csv`:针对每个源 URL 找到的 IOC 逐行进行细分。 - `technical_summary_report_defanged.csv`:包含 AI 生成的总结和所有唯一指标列表的合并报告。 - `stix_threat_report.json`:一个结构化的 STIX 2.1 bundle,包含所有相关指标、威胁行为者和恶意软件家族。 ## 项目结构 ``` . ├── analyzers/ # Contains JSON dork files │ └── sharepoint.json ├── analysis/ # Directory for all output reports ├── modules/ # Core logic scripts │ ├── google_dorks_standalone.py # Handles the dorking phase │ └── url2ioc.py # Handles the analysis and reporting phase ├── panhandlr.py # Main entry point with the user interface ├── requirements.txt # Python dependencies ├── banner.txt # ASCII art banner └── start_main.sh # Helper script to run the application ``` ### Dork 文件结构 (`analyzers/*.json`) Dork 文件是简单的 JSON 对象。您可以针对不同的研究主题创建自己的文件。脚本支持使用占位符 `{domain}` 和 `{domain_no_tld}` 进行特定域名的搜索,尽管主处理程序目前在全局范围内运行它们。 **来自 `sharepoint.json` 的示例:** ``` { "google_dorks": [ { "name": "SharePoint CVE-2025-53770 or 53771 Mentions", "dork": "(\"CVE-2025-53770\" OR \"CVE-2025-53771\") site:{domain}" }, { "name": "SharePoint Webshell Artifacts", "dork": "site:{domain} (inurl:spinstall0 OR inurl:ghost) inurl:.aspx" } ], "social_media_dorks": [ { "name": "CVE Mentions on Twitter", "dork": "site:twitter.com (\"CVE-2025-53770\" OR \"CVE-2025-53771\") sharepoint" } ] } ```
标签:AI, ESC4, Google Dorks, OSINT, Python, STIX, 威胁情报, 开发者工具, 数据泄露, 无后门, 自动化代码审查, 逆向工具