11lunaric11/securitychecker

GitHub: 11lunaric11/securitychecker

一款用 Go 编写的轻量级侦察工具,支持通过 CLI 和本地 Web UI 批量检测目标的 robots.txt、security.txt 及 /.well-known/ 路径以辅助渗透测试前期信息收集。

Stars: 2 | Forks: 0

# SecurityChecker 一款专为渗透测试人员和漏洞赏金猎人设计的快速侦察辅助工具。粘贴或上传目标列表,它会针对每个目标检查三个最值得优先查看的标准化文件: - **`/robots.txt`` — 提取 `Disallow` 路径(通常是隐藏的 endpoint / 管理面板)和 `Sitemap` URL。 - **`security.txt``(RFC 9116,位于 `/.well-known/security.txt` 和旧版的 `/security.txt`)—— 提取安全 **Contact**、**Policy** 链接、**Expires** 有效性、加密密钥等信息。 - **`/.well-known/`** — 探测一系列精选的已注册 URI,用于指纹识别技术栈(OIDC、移动应用链接、邮件安全态势、联合身份认证等)。 它作为 **CLI** 运行(支持表格 / JSON / CSV 格式),并提供了一个可选的**本地 Web UI**(支持粘贴框和文件上传)——两者使用相同的引擎,且是一个没有**任何第三方依赖**的单一静态 Go 二进制文件。 ## 安装说明 **预编译二进制文件** — 从 [Releases](https://github.com/11lunaric11/securitychecker/releases) 页面下载适用于你操作系统/架构的压缩包(支持 Linux、macOS、Windows;amd64/arm64),解压后将 `securitychecker` 放到你的 `PATH` 中。 **从源码构建 / Go 工具链:** ``` # from source (Go 1.23+) git clone https://github.com/11lunaric11/securitychecker cd securitychecker go build -o securitychecker . # 或直接从 module 安装 go install github.com/11lunaric11/securitychecker@latest ``` ## CLI 用法 ``` # 扫描多个 target securitychecker scan example.com github.com cloudflare.com # from a file (.txt one-per-line, or .csv with a url/domain column) securitychecker scan -f targets.txt securitychecker scan -f scope.csv --concurrency 20 # 机器可读的 output securitychecker scan -f targets.txt --json | jq . securitychecker scan -f targets.txt --csv -o report.csv # from stdin cat targets.txt | securitychecker scan ``` 输出示例: ``` TARGET ROBOTS SEC.TXT EXPIRES CONTACT WELL-KNOWN github.com yes (57) yes (wk) valid https://hackerone.com/github 2 google.com yes (173) yes (wk) valid security@google.com 1 example.com no no — — 0 ▸ github.com robots.txt (57 disallow, 0 sitemaps) Disallow: /account-login Disallow: */tarball/ … security.txt https://github.com/.well-known/security.txt Contact: https://hackerone.com/github Expires: 2026-08-13T09:04:15Z (valid) Policy: https://bounty.github.com ``` ### 扫描参数 | 参数 | 默认值 | 描述 | |-------------------|---------|------------------------------------------------------| | `-f ` | — | 目标列表(`.txt`/`.csv`),可多次指定 | | `--json` | false | 输出 JSON | | `--csv` | false | 输出 CSV | | `-o ` | stdout | 将输出写入文件 | | `--concurrency N` | 10 | 同时扫描的最大目标数 | | `--timeout D` | 10s | 单次请求超时时间 | | `--delay D` | 0 | 针对同一主机的请求之间的暂停时间 | | `--wellknown` | true | 探测 `/.well-known/` 列表(`--wellknown=false`) | | `--user-agent S` | — | 自定义 `User-Agent` | | `--no-color` | false | 禁用彩色输出 | ## Web UI ``` securitychecker serve --port 8080 # 打开 http://localhost:8080 ``` 粘贴目标或上传 `.txt`/`.csv` 文件,点击 **Scan**,即可获得一个可排序的表格,其中包含可展开的逐目标详情,以及 **Copy JSON** / **Download CSV** 功能。 ## 报告内容 - **robots.txt** — 是否存在?`Disallow`/`Allow` 规则、`Sitemap` URL、`Crawl-delay`。 - **security.txt** — 所有 RFC 9116 字段(`Contact`、`Expires`、`Encryption`、`Acknowledgments`、`Preferred-Languages`、`Canonical`、`Policy`、`Hiring`、`CSAF`),提取的联系邮箱,`Expires` 有效性(有效 / 已过期 / 无效 / **缺失** —— 常见的 RFC 违规情况),以及文件是否经过 PGP 签名。 - **/.well-known/** — `change-password`、`openid-configuration`、`oauth-authorization-server`、`assetlinks.json`、`apple-app-site-association`、`mta-sts.txt`、`host-meta`、`webfinger`、`dnt-policy.txt`、`gpc.json`、`nodeinfo`、`ai-plugin.json`、`traffic-advice`。 ## 注意事项 - **Scheme / www 回退机制** — 每个目标首先会探测其指定的 scheme,然后尝试 `www` 或顶级域对应项以及另一种 scheme,因此仅限 `www` 和仅限 `http` 的网站会自动解析。(无论如何,Apex 到 www 的重定向都会被跟随。) - **响应缓慢 / 无法访问的主机** — 在尝试回退机制时,一个无法访问的目标最多可能会消耗约 3 倍的 `--timeout` 时间;在扫描大型列表时,请适当调低 `--timeout`。 - **受 WAF / 机器人保护的网站** — 某些主机可能会停滞或阻止默认的 `User-Agent`;如果你在浏览器中可以正常访问,但程序报错,请通过 `--user-agent` 传递一个类似于浏览器的标识。 - Markdown 链接格式(`[host](https://host)`)、`` 以及被引号或反引号包裹的输入会被自动解包。 ## 开发说明 ``` go test ./... go vet ./... ``` ## 发布你自己的 Fork 在推送之前,请将模块路径指向你的账户: ``` go mod edit -module github.com//securitychecker grep -rl 11lunaric11/securitychecker . | xargs sed -i 's#11lunaric11/securitychecker#/securitychecker#g' go build ./... ``` ## 许可证 MIT — 查看 [LICENSE](LICENSE)。
标签:EVTX分析, Go, Ruby工具, 实时处理, 文档结构分析, 日志审计