iluaii/IluskaX

GitHub: iluaii/IluskaX

一个基于 Go 的 Web 安全扫描框架,整合爬取与多阶段漏洞检测,支持 CLI 与 TUI 模式。

Stars: 3 | Forks: 0

# IluskaX 基于 Go 的 Web 安全扫描器,包含两个二进制文件: - `luska`:用于爬取、JS 解析、站点地图生成,以及可选的安全测试交接 - `pentest`:用于对爬取文件进行漏洞检查 它可以作为简单的 CLI 扫描器运行,也可以在渗透测试阶段使用 Bubble Tea TUI。 ## 仅限授权使用 IluskaX 严格仅用于: - 授权的漏洞赏金研究 - 实验室环境中的安全测试 - 扫描您拥有的网站、主机和应用程序 - 扫描您已获得明确书面许可的测试目标 未经授权,请勿对第三方基础设施、网站、API 或网络使用 IluskaX。 本项目不适用于未授权访问、对随机目标的大规模扫描、破坏行为或非法活动。 ## 构建 ``` git clone https://github.com/iluaii/IluskaX cd IluskaX go mod tidy go build -o luska ./main.go go build -o pentest ./cmd/pentest/main1.go ``` ## 需求 核心爬取逻辑为纯 Go 编写,但部分渗透测试阶段依赖 `$PATH` 或特定路径下的外部工具: - `subfinder`:用于子域名枚举 - `httpx`(位于 `~/go/bin/httpx`):用于子域名探测(阶段 0.1) - `nuclei`:基于模板的检查 - `sqlmap`:用于 SQL 注入测试 - `dalfox`:用于 XSS 测试 如果某个工具缺失,仅对应阶段会失败或跳过。 ## 快速开始 ### 仅爬取 ``` ./luska -u https://example.com ``` ### 爬取并使用自定义头部(漏洞赏金) ``` ./luska -u https://example.com -H 'X-Bug-Bounty: yourhandle' -H 'X-Forwarded-For: 127.0.0.1' ``` ### 爬取并运行渗透测试 ``` ./luska -u https://example.com -ps ``` ### 爬取并使用自定义头部进行渗透测试 ``` ./luska -u https://example.com -ps -H 'X-Bug-Bounty: yourhandle' -cookie 'session=abc123' ``` ### 爬取并导出报告进行渗透测试 ``` ./luska -u https://example.com -ps -o report.txt ``` ### 爬取并使用独立的内外网速率限制进行渗透测试 ``` ./luska -u https://example.com -ps -rate 10 -ext-rate 2 ``` ### 对现有爬取文件进行渗透测试 ``` ./pentest -f 'output/example.com|2026-04-08_11-30-00.txt' -host example.com ``` ### 在 TUI 模式下运行渗透测试 ``` ./pentest -f 'output/example.com|2026-04-08_11-30-00.txt' -host example.com -ui tui ``` ### 运行完整流程并在渗透测试阶段使用 TUI ``` ./luska -u https://example.com -ps -ui tui ``` ### 使用 httpx 探测进行子域名枚举 ``` ./luska -u https://example.com -sd -ps ``` 注意:当 `luska` 以 `-ps -ui tui` 启动时,爬取仍保持普通 CLI 模式,仅子进程 `pentest` 使用 TUI。 ## `luska` 参数 | 参数 | 默认值 | 描述 | |---|---|---| | `-u` | 必需 | 目标 URL | | `-H` | 空值 | 自定义头部 `名称: 值`(可重复) | | `-r` | `false` | 启用递归爬取 | | `-rd` | `0` | 最大递归深度 | | `-ps` | `false` | 爬取后运行渗透测试 | | `-sd` | `false` | 爬取前运行子域名枚举 | | `-rate` | `10` | IluskaX 内置爬取和渗透测试 HTTP 探针的请求速率(每秒) | | `-ext-rate` | `0` | 外部工具的请求速率,`0` 表示无限制 | | `-c` | `5` | 最大并发协程数 | | `-ignore-robots` | `false` | 忽略 `robots.txt` 限制 | | `-sqlmap-level` | `0` | SQLMap 起始级别,`0 = 自动` | | `-sqlmap-risk` | `0` | SQLMap 起始风险,`0 = 自动` | | `-cookie` | 空值 | 认证扫描用的 Cookie 头 | | `-burp` | 空值 | 用于 SQLMap 的 Burp 请求文件路径 | | `-skip` | 空值 | 爬取期间跳过的路径模式(逗号分隔) | | `-skip-phase` | 空值 | 跳过的阶段(逗号分隔) | | `-timeout` | `0` | 总爬取超时(分钟),`0` 表示无限制 | | `-o` | 空值 | 输出报告路径 | | `-json-out` | 空值 | 输出 JSON 报告路径 | | `-ui` | `cli` | UI 模式:`cli` 或 `tui` | ## `pentest` 参数 | 参数 | 默认值 | 描述 | |---|---|---| | `-f` | 必需 | 爬取输出文件 | | `-H` | 空值 | 自定义头部 `名称: 值`(可重复) | | `-host` | `target` | 输出/报告命名的主机标签 | | `-date` | 当前时间 | 输出命名的日期标签 | | `-skip-phase` | 空值 | 跳过的阶段(逗号分隔) | | `-sqlmap-level` | `0` | SQLMap 起始级别,`0 = 自动` | | `-sqlmap-risk` | `0` | SQLMap 起始风险,`0 = 自动` | | `-cookie` | 空值 | 认证扫描用的 Cookie 头 | | `-burp` | 空值 | 用于 SQLMap 的 Burp 请求文件路径 | | `-rate` | `10` | 渗透测试内置 HTTP 探针的请求速率(每秒) | | `-ext-rate` | `0` | 外部工具的请求速率,`0` 表示无限制 | | `-o` | 空值 | 导出最终报告到自定义路径 | | `-json-out` | 空值 | 导出最终报告为 JSON | | `-ui` | `cli` | UI 模式:`cli` 或 `tui` | ## 自定义头部 `-H` 参数会将头部注入到 IluskaX 内置扫描器发起的每个 HTTP 请求中。这对于需要标识头部的漏洞赏金项目非常重要。 ``` ./luska -u https://example.com -ps \ -H 'X-Bug-Bounty: yourhandle' \ -H 'User-Agent: Mozilla/5.0 (custom)' \ -H 'X-Forwarded-For: 127.0.0.1' ``` 自定义头部适用于: - 爬虫页面获取 - robots.txt 获取 - 端点发现期间的 JS 文件获取 - 快速 SQL 注入检查 - POST 和 Cookie 注入探测 - 头部和 Cookie 分析请求 启动 `luska -ps` 时,自定义头部会自动转发给 `pentest`。 ## 速率限制 - `-rate` 控制 IluskaX 直接生成的 HTTP 流量 - `-ext-rate` 控制外部工具,默认为 `0`,表示无限制 内置流量包括: - 爬虫页面获取 - `robots.txt` - 端点发现期间的 JS 获取 - 快速 SQL 注入检查 - POST 和 Cookie 注入探测 - 头部和 Cookie 分析 外部工具速率限制应用于: - `subfinder` - `httpx` - `nuclei` - `sqlmap` - `dalfox` 示例: ``` ./luska -u https://example.com -ps -rate 10 -ext-rate 2 ./pentest -f 'output/example.com|2026-04-08_11-30-00.txt' -host example.com -rate 10 -ext-rate 1 ``` ## UI 模式 - `cli`:打印纯终端输出和最终表格 - `tui`:在渗透测试执行期间使用 Bubble Tea 在 TUI 模式下: - 包含一个全局导航层,包括 `Dashboard`、`Findings`、`Targets`、`History` 和 `New Scan` - 选择一个扫描会打开详细视图,包含 `Logs`、`Findings`、`Targets` 和 `Control` - 实时日志在视口中滚动 - 屏幕填满时,较旧的行会从可见区域消失 - 从 TUI 启动的后台扫描会通过轮询日志文件实时显示当前阶段和进度 - 扫描完成后,TUI 保持打开并显示完成消息 - 按 `Esc` 退出已完成的 TUI 并打印最终发现表格和摘要 ## 爬取输出 爬虫收集: - 范围内的链接 - GET 和 POST 表单 - JS 文件和内联 JS 块 - 从 JavaScript 模式(如 `fetch`、XHR、axios、模板字符串和 API 赋值)中提取的端点 同时: - 默认遵守 `robots.txt` - 范围限制在目标主机名下 - 过滤常见静态资源 - 按路径和查询参数名称对端点去重 爬取结果写入: ``` output/|.txt ``` ## 渗透测试阶段 ### 阶段 0:子域名 使用 `subfinder` 发现子域名。发现的子域名不会直接写入爬取文件,而是先传递给阶段 0.1 进行验证。 如果设置了ext-rate`,会将其转发给 `subfinder`。 ### 阶段 0.1:httpx 探测 对阶段 0 中发现的子域名运行 `httpx`(位于 `~/go/bin/httpx`)。只有返回有效 HTTP 响应的子域名才会被写入爬取文件并加入扫描范围。 如果设置了 `-ext-rate`,会将其转发给 `httpx`。 ### 阶段 1:快速 SQL 注入测试 对参数化 URL 和表单进行快速检查: - 基于时间的有效载荷 - 布尔型响应比较 - POST 表单检查 - 存在 Cookie 时的 Cookie 探测 如果发现可疑情况,SQLMap 设置会自动升级。 ### 阶段 2:Nuclei 对发现的 URL 运行 `nuclei`。 如果设置了 `-ext-rate`,会将其转发给 `nuclei`。 ### 阶段 3:SQLMap 对参数化 URL 和 POST 表单运行 `sqlmap`。 支持: - 在可疑的 Phase 1 结果后自动升级 - 通过 `-burp` 使用 Burp 请求文件 - 通过 `-cookie` 转发 Cookie 头 - 通过 `-ext-rate` 进行可选的外部速率限制 ### 阶段 4:Dalfox 对带参数的 URL 运行 `dalfox` 以检测 XSS。 如果设置了 `-ext-rate`,IluskaX 会降低 Dalfox 吞吐量以接近该速率。 ### 阶段 5:头部和 Cookie 分析 检查与安全相关的响应头部和 Cookie 设置。 重要说明: - 缺失的头部被视为建议或信息性发现 - 实际的头部或 Cookie 配置错误会与已确认的漏洞分开显示 ## 报告 默认文件: ``` output/|.txt Poutput/|_report.txt Poutput/sqlmap/ ``` 如果提供了 `-o`,IluskaX 还会写入一个自定义导出文件,包含: - 站点地图 - 发现表格 - 最终摘要 如果提供了 `-json-out`,IluskaX 会写入一个机器可读的 JSON 报告,包含: - 站点地图 - 包含级别、类型、URL、载荷和详细信息的发现 - 漏洞、警告、信息性发现和耗时的统计计数 ## TUI 概览 ### 仪表盘 显示活动扫描列表及每个扫描的当前状态: - 目标 - 状态徽章 - 当前阶段(从日志轮询获取,针对后台扫描) - 进度百分比 - 发现计数 在选定的扫描上按 `Enter` 打开详细视图。 ### 发现 显示在运行扫描期间收集到的问题,与原始日志分离。 你可以在 TUI 中直接过滤和搜索: - `0`:所有发现 - `1`:仅漏洞 - `2`:仅警告 - `3`:仅信息 - `/`:进入搜索模式 ### 目标 在全局 TUI 视图中,`Targets` 显示按扫描分组的发现目标,并在每个扫描内按主机分组。 在扫描详细视图中,`Targets` 仅显示为该扫描收集的目标。 示例: ``` localhost [FINISHED] http://localhost:3000 ├─ / ├─ /?q=1 └─ /xss?q=test ``` ### 历史记录 显示在当前 TUI 会话中启动或完成的扫描,以及排队项。 已完成和已启动的扫描历史记录会持久化到 `Poutput/tui_history.json`,因此在 TUI 启动之间保持可用。 在 `History` 标签页中按 `x` 可在不手动删除文件的情况下清除保存的历史记录。 ### 新扫描 允许在 TUI 内部准备新命令。 你可以: - 输入目标 URL - 添加额外参数(包括 `-H 'X-Bug-Bounty: handle'`) - 选择 `立即运行` 以启动后台 `luska` 进程 - 选择 `排队` 以将扫描存储在本地会话队列中 - 在执行前确认所选操作 `立即运行` 会启动一个新的后台进程,并将输出写入 `Poutput/` 中的日志文件。 ### 控制 对于从 TUI 启动的后台扫描,`Control` 标签页可以: - 暂停或恢复选定的扫描 - 重新启动选定的扫描 - 停止选定的扫描 - 在执行操作前显示确认提示 ## TUI 控件 - `Tab` 和 `Shift+Tab` 切换标签页 - `←` 和 `→` 也可以切换标签页 - `↑` 和 `↓` 移动选择或滚动 - `Enter` 打开扫描详细信息或确认当前 `新扫描` 中的操作 - `Esc` 从扫描详细信息返回到全局标签页 - 扫描完成后,按 `Esc` 退出 TUI 并返回普通终端输出 - `0`、`1`、`2`、`3` 在 `发现` 标签页中按严重性过滤发现 - `/` 进入发现搜索模式 - `x` 在 `历史记录` 标签页中清除保存的历史记录 - 在 `新扫描` 中,使用 `↑` 和 `↓` 移动焦点到各个字段 - 在 `新扫描` 中,使用 `←` 和 `→` 在 `操作` 字段中切换 `立即运行` 和 `排队` - 在 `新扫描` 中,使用 `Enter` 在 `操作` 字段上打开确认提示 - 使用 `Enter` 或 `y` 确认操作,使用 `Esc` 或 `n` 取消 - 在 `控制` 中,`p` 暂停或恢复选定的后台扫描 - 在 `控制` 中,`r` 重新启动选定的后台扫描 - 在 `控制` 中,`s` 停止选定的后台扫描 ## 跳过阶段 示例: ``` ./luska -u https://example.com -ps -skip-phase 2,4 ``` 阶段映射: - `0` = 子域名枚举 - `0.1` = httpx 探测(自动在阶段 0 后运行,无法独立跳过) - `1` = 快速 SQL 注入 - `2` = Nuclei - `3` = SQLMap - `4` = Dalfox - `5` = 头部和 Cookie 分析 对于直接的 `pentest`,支持的跳过值为 `1` 到 `5`。 ## 注意事项 - User-Agent:`LuskaScanner/1.0` - 自定义 `-H` 头部会覆盖 `User-Agent`(如果指定了 `User-Agent`) - 爬取请求超时较短,针对扫描进行了优化,而非浏览 - JS 解析和端点提取优先追求广度而非完美的语义准确性 - TUI 仅用于渗透测试阶段,而不是作为整个爬取管道的完整屏幕包装器 - 后台 TUI 扫描的阶段显示通过每 250ms 轮询日志文件更新 ## 法律声明 IluskaX 仅应用于授权的安全工作,包括漏洞赏金项目、私有实验室以及您拥有或明确获授权测试的基础设施。 您不得使用此项目对系统、端点、API 或网络进行扫描、探测、攻击、压力测试或枚举。 作者不授权此软件的非法使用。该仓库为公共仓库,并不授予测试第三方目标的权限。 通过使用 IluskaX,您单独负责确保您的活动符合所有适用法律、平台规则、合同和项目策略。
标签:Bubble Tea, Bug Bounty, Go, HTTP探测, Ruby工具, SQL注入检测, TUI界面, Web安全扫描, XSS检测, 主机扫描, 云存储安全, 可自定义解析器, 多线程扫描, 子域名枚举, 安全测试, 开源安全工具, 报告导出, 授权测试, 攻击性安全, 日志审计, 模板检测, 渗透测试框架, 系统安全, 网络扫描, 自动化安全评估, 运行时操纵, 逆向工程平台, 防御