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工具, 实时处理, 文档结构分析, 日志审计