hackThacker/ghostscan

GitHub: hackThacker/ghostscan

GhostScan 是一款用 Go 编写的多线程 Web 漏洞扫描器,可在单一二进制中检测 LFI、开放重定向、SQL 注入、XSS 和 CRLF 注入五类常见漏洞。

Stars: 0 | Forks: 0

# GhostScan

GitHub Release Go Version License Platforms

**GhostScan** 是一款使用 Go 语言编写的多线程安全扫描工具。它可以检测常见的 Web 漏洞,包括 **LFI**、**Open Redirect (OR)**、**SQL Injection (SQLi)**、**Cross-Site Scripting (XSS)** 和 **CRLF Injection** —— 所有这些都集成在一个单一的自包含二进制文件中,具有**零运行时依赖**(用于 XSS/OR 的 Chrome 除外)。 ## 功能 | 扫描器 | 类型 | 检测方法 | 多线程 | |---|---|---|---| | **LFI** | 本地文件包含 | HTTP 200 + body 正则匹配 | ✅ 0–10 个 worker | | **OR** | 开放重定向 | Chrome headless (chromedp) URL 检查 | ✅ 2 个 worker,3-context 池 | | **SQLi** | SQL 注入 | 基于时间(响应 ≥ 10 秒) | ✅ 0–10 个 worker | | **XSS** | 跨站脚本攻击 | Chrome headless alert 捕获 | ✅ 2 个 worker,3-context 池 | | **CRLF** | CRLF 注入 | HTTP header + body 正则匹配 | ✅ 1–10 个 worker | - **50+ 轮换的 User-Agents**,用于规避简单的过滤 - **重试 HTTP client** — 遇到 500/502/504 时进行 3 次指数退避重试 - **HTML 报告生成器** — 动画 SVG、故障文本 CSS、漏洞时间轴 - **内置 payload** — 80,000+ 个 payload 被编译到二进制文件中(无需外部文件) - **支持自定义 payload** — 在默认 payload 提示下回答 `n` 以加载你自己的文件 - **自我更新** — 从工具内部检查新版本(选项 6) ## 支持的平台 | 操作系统 | 架构 | 二进制文件 | |---|---|---| | Linux | amd64 | `ghostscan` | | Linux | arm64 | `ghostscan` | | macOS | amd64 | `ghostscan` | | macOS | arm64 (Apple Silicon) | `ghostscan` | | Windows | amd64 | `ghostscan.exe` | | Windows | arm64 | `ghostscan.exe` | ## 安装 ### 下载预编译的二进制文件(推荐) 从 [GitHub Releases 页面](https://github.com/hackThacker/ghostscan/releases/latest) 下载最新版本。 可用的压缩包: | 平台 | 压缩包 | |---|---| | Linux amd64 | `ghostscan_v2.1.0_linux_amd64.zip` | | Linux arm64 | `ghostscan_v2.1.0_linux_arm64.zip` | | macOS amd64 | `ghostscan_v2.1.0_darwin_amd64.zip` | | macOS arm64 | `ghostscan_v2.1.0_darwin_arm64.zip` | | Windows amd64 | `ghostscan_v2.1.0_windows_amd64.zip` | | Windows arm64 | `ghostscan_v2.1.0_windows_arm64.zip` | 解压并运行: ``` # Linux / macOS unzip ghostscan_v2.1.0_linux_amd64.zip chmod +x ghostscan ./ghostscan # Windows (PowerShell) Expand-Archive ghostscan_v2.1.0_windows_amd64.zip . .\ghostscan.exe ``` ### 通过 `go install` 安装 ``` go install github.com/hackthacker/ghostscan@latest ``` ## 从源码构建 ``` # Clone 仓库 git clone https://github.com/hackThacker/ghostscan.git cd ghostscan # 为本地 OS/arch 构建 go build -ldflags="-s -w" -o ghostscan . # 运行 ./ghostscan # Linux / macOS .\ghostscan.exe # Windows ``` ### 交叉编译 ``` # Linux amd64 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o ghostscan . # Linux arm64 GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o ghostscan . # macOS amd64 GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o ghostscan . # macOS arm64 (Apple Silicon) GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o ghostscan . # Windows amd64 GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o ghostscan.exe . # Windows arm64 GOOS=windows GOARCH=arm64 go build -ldflags="-s -w" -o ghostscan.exe . ``` ### 构建所有发布版本的压缩包 (PowerShell) ``` # 从 Windows 上的项目根目录: .\scripts\build_release.ps1 ``` 这会在 `dist/` 目录下生成所有 6 个平台压缩包,外加一个 SHA256 校验和文件。 ## 环境要求 | 要求 | 详情 | |---|---| | Go | 1.22 或更高版本(从源码构建) | | Chrome / Chromium | **在运行时**仅 XSS 和 OR 扫描器需要 | LFI、SQLi 和 CRLF 扫描器使用标准的 HTTP client —— 不需要浏览器。 ## 用法 ``` ____ _ _ ____ / ___| |__ ___ ___| |_/ ___| ___ __ _ _ __ | | _| '_ \ / _ \/ __| __\___ \ / __/ _ \| '_ \ | |_| | | | | (_) \__ \ |_ ___) | (_| (_| | | | | \____|_| |_|\___/|___/\__|____/ \___\__,_|_| |_| ──────────────────────────────────────────────────────────────────────── ┌────────────────────────────────────────────────────────────────────────┐ │1] LFi Scanner │ │2] OR Scanner │ │3] SQLi Scanner │ │4] XSS Scanner │ │5] CRLF Scanner │ │6] tool Update │ │7] Exit │ └────────────────────────────────────────────────────────────────────────┘ ──────────────────────────────────────────────────────────────────────── Created by hackthacker | github.com/hackthacker ──────────────────────────────────────────────────────────────────────── Select an option by entering the corresponding number: ──────────────────────────────────────────────────────────────────────── ``` 每个扫描器都遵循相同的交互流程: 1. **URL 输入** — 提供一个每行包含一个 URL 的文件路径,或者输入单个 URL 2. **Payload** — 按 Enter 键使用内嵌的默认 payload,或输入 `n` 使用自定义的 payload 文件 3. **线程数** — 设置并发级别(0 = 顺序执行,1–10 = 并发执行) 4. **结果** — 在终端中实时输出每个 payload 的结果 5. **摘要** — 发现 / 扫描 / 耗时的总数 6. **HTML 报告** — 可选择生成带有动画效果的 HTML 安全报告 ## 扫描器参考 ### 1] LFI 扫描器 通过发送附加到 URL 的 payload 并将响应 body 与正则表达式模式进行匹配来检测本地文件包含。 - **默认成功标准**:`root:x:0:`(匹配 `/etc/passwd` 泄露) - **检测**:HTTP 200 + body 匹配任何提供的正则表达式 - **Payload**:70,466+ 个内嵌路径(常见系统文件、配置、日志) - **自定义标准**:输入逗号分隔的正则表达式模式(例如 `root:,/bin/bash`) **示例流程:** ``` [?] Enter the path to the input file containing the URLs (or press Enter to input a single URL): [?] Enter a single URL to scan: http://example.com/page.php?file= [?] Use default LFI payloads? (Y/n): [?] Enter the success criteria patterns (comma-separated, press Enter for 'root:x:0:'): [?] Enter the number of concurrent threads (0-10, press Enter for 5): 5 → Scanning URL: http://example.com/page.php?file= [→] Scanning with payload: /etc/passwd [✓] Vulnerable: http://example.com/page.php?file=%2Fetc%2Fpasswd - Response Time: 1.23 seconds [→] Scanning with payload: /etc/shadow [✗] Not Vulnerable: http://example.com/page.php?file=%2Fetc%2Fshadow - Response Time: 0.45 seconds ┌──────────────────────────────────┐ │→ Scanning finished. │ │• Total found: 1 │ │• Total scanned: 2 │ │• Time taken: 2 seconds │ └──────────────────────────────────┘ ``` ### 2] OR 扫描器 使用 headless Chrome 检测开放重定向漏洞。 - **检测**:Chrome 导航至测试 URL;如果 `window.location.href` 解析为包含 `google.com` 的域名 -> 存在漏洞 - **要求**:已安装 Chrome 或 Chromium 并位于 `$PATH` 中 ### 3] SQLi 扫描器(基于时间) 通过测量 HTTP 响应延迟来检测盲注 SQL 注入。 - **检测**:响应时间 ≥ 10 秒 -> 存在漏洞 - **Payload 类型**:通用、MySQL、MSSQL、Oracle、PostgreSQL、XOR 或自定义文件 - **可选 cookie**:通过 Cookie header 支持已认证的扫描 **Payload 类型菜单:** ``` [?] Select SQL injection payload type: 1) Generic 2) Mysql 3) Mssql 4) Oracle 5) Postgresql 6) Xor 7) Custom file [?] Enter choice (1-7): ``` ### 4] XSS 扫描器 通过 headless Chrome 注入 payload 并捕获 JavaScript `alert()` 调用来检测反射型 XSS。 - **检测**:拦截到 `window.alert()`;如果被触发 -> 存在漏洞 - **超时**:每个页面的可配置等待时间(默认 0.5 秒) - **URL 变异**:将每个查询字符串参数值替换为 payload;如果不存在参数,则回退到 `?test=` - **要求**:已安装 Chrome 或 Chromium 并位于 `$PATH` 中 ### 5] CRLF 扫描器 使用正则表达式模式分析响应 header 和 body 来检测 CRLF 注入。 - **Payload**:30 个硬编码的 payload,涵盖 URL 编码、UTF-8 超长编码和双重编码变体 - **检测**:匹配 HTTP 响应中的 `Location:` / `Set-Cookie:` header 注入模式 ## 配置 所有配置均为交互式 —— 没有配置文件或环境变量。 | 提示 | 扫描器 | 默认值 | |---|---|---| | URL 列表文件或单个 URL | 全部 | — | | 默认 payload?(Y/n) | LFI, OR, XSS | Y(内嵌) | | SQL 注入类型 | SQLi | — | | Cookie header | SQLi | (无) | | 成功标准正则表达式 | LFI | `root:x:0:` | | 每页超时时间(秒) | XSS | `0.5` | | 线程数 (0–10) | LFI, SQLi | `5` | | 线程数 (1–10) | CRLF | `5` | | 生成 HTML 报告?(y/n) | 全部 | — | | 报告文件名 | 全部 | 不定 | ## HTML 报告 每次扫描后,您可以选择生成一个独立的 HTML 报告: - 动画 SVG 扫描器徽标 - 故障文本 CSS 效果 - 扫描时间轴 - 统计数据网格(发现 / 扫描 / 时间 / 速率) - 颜色编码的所有易受攻击 URL 列表 报告将保存到您的当前工作目录。 ## 许可证 [MIT](LICENSE) © 2025 hackthacker
标签:CISA项目, EVTX分析, Go语言, SQL注入检测, Web安全, XSS检测, 加密, 日志审计, 漏洞扫描器, 程序破解, 蓝队分析