sp34rh34d/DirRunner

GitHub: sp34rh34d/DirRunner

DirRunner 是一个零依赖的 Go 命令行扫描器,提供 DNS 枚举、目录发现、虚拟主机探测、FUZZ 测试和 HTTP 指纹识别功能,用于 Web 资产发现与侦察。

Stars: 24 | Forks: 3

# DirRunner DirRunner 是一个基于 Go 的扫描器,用于 DNS 枚举、目录发现、虚拟主机、FUZZ payload 测试以及基本的 HTTP 指纹识别。 它作为命令行工具运行,具备 worker pool、流式结果输出、可复用的 HTTP transport、JSON 输出、确定性导出、可选的 Tor 路由,并且不依赖任何第三方 Go 库。 ## 构建 ``` go build -o dirrunner ./cmd/dirrunner && chmod +x dirrunner ``` ## 常规用法 ``` ./dirrunner [flags] ``` 每个模块都可以通过使用 `-` 作为位置参数从 stdin 读取其主要目标: ``` echo https://example.com | ./dirrunner dir - echo example.com | ./dirrunner dns - echo https://example.com/FUZZ | ./dirrunner fuzz - -w wordlist/payloads.txt echo https://192.0.2.10 | ./dirrunner vhost - -d example.com echo https://example.com | ./dirrunner fingerprint - ``` 模块: - `dns`:子域名 DNS 枚举。 - `dir`:目录枚举。仅当使用 `--ext` / `-e` 时才会启用文件检查。 - `vhost`:使用 `Host` 标头进行虚拟主机枚举。 - `fuzz`:对 URL、标头、cookie、user-agent、basic auth、JSON body 或 POST 表单数据中的 FUZZ 占位符进行枚举。 - `fingerprint`:HTTP 标头和基础技术指纹识别。 ## 全局标志 这些标志在所有模块中均可用。 | 标志 | 描述 | | --- | --- | | `--threads / -t N` | 并发 worker 的数量。默认为 `10`。 | | `--json / -j` | 以 JSON 格式打印结果。 | | `--export / -o FILE` | 将最终结果写入文件。 | | `--verbose / -v` | 打印详细的诊断输出。 | `--wordlist / -w FILE` 可用于 `dns`、`dir`、`vhost` 和 `fuzz`。 ## 共享的 HTTP 请求标志 这些标志在 `dir`、`vhost`、`fuzz` 和 `fingerprint` 中可用。 | 标志 | 描述 | | --- | --- | | `--url / -u URL` | 目标 URL。 | | `--timeout / -T DURATION` | HTTP 请求超时时间,例如 `5s` 或 `1500ms`。 | | `--user-agent / -A VALUE` | 自定义 `User-Agent` 标头。 | | `--cookie / -C VALUE` | Cookie 标头值。 | | `--header / -H 'Name: value'` | 自定义 HTTP 标头。可以重复使用。 | | `--username / --user / -U VALUE` | HTTP Basic Auth 用户名。 | | `--password / --pass / -P VALUE` | HTTP Basic Auth 密码。 | | `--insecure / -k` | 禁用 TLS 证书验证。 | | `--follow-redirects / -L` | 跟随 HTTP 重定向。 | | `--tor / -Q` | 通过 SOCKS5 Tor 代理路由 HTTP 流量。 | | `--tor-proxy / -q HOST:PORT` | Tor SOCKS5 代理地址。默认为 `127.0.0.1:9050`。 | 响应过滤标志在 `dir`、`vhost` 和 `fuzz` 中可用: | 标志 | 描述 | | --- | --- | | `--exclude-size / -S LIST` | 隐藏确切响应大小,例如 `3244,777`。 | | `--exclude-size-range / -R LIST` | 隐藏包含范围的大小,例如 `1000-2000,9000-9500`。 | `--method / -X` 和 `--codes / -c` 由 `dir` 和 `fuzz` 使用。 ## DNS 模块 使用 `dns` 从字典解析子域名。 ### DNS 标志 | 标志 | 描述 | | --- | --- | | `--domain / -d DOMAIN` | 要枚举的根域名。 | | `--wordlist / -w FILE` | 子域名字典。 | ### DNS 示例 基础 DNS 枚举: ``` ./dirrunner dns -d example.com -w wordlist/subdomains.txt ``` 增加并发并导出结果: ``` ./dirrunner dns \ --domain example.com \ --wordlist wordlist/subdomains.txt \ --threads 30 \ --export dns-results.txt ``` 详细 DNS 输出仅打印详细的发现行: ``` ./dirrunner dns -d example.com -w wordlist/subdomains.txt --verbose ``` ## Dir 模块 使用 `dir` 枚举目录以及可选的文件。目录检查始终运行。仅当提供 `--ext` / `-e` 时才会运行文件检查。 正常的 `dir` 输出仅打印发现的路径,而不是完整的 URL: ``` directory 200 777 /cgi-bin/ file 200 1820 /index.php ``` ### Dir 标志 | 标志 | 描述 | | --- | --- | | `--url / -u URL` | 基础目标 URL。 | | `--wordlist / -w FILE` | 主目录字典。目录字典的别名。 | | `--dir-wordlist FILE` | 目录字典路径。 | | `--file-wordlist / -f FILE` | 文件名字典路径。 | | `--ext / -e LIST` | 要测试的文件扩展名。启用文件枚举。示例:`php,txt,bak`。 | | `--method / -X METHOD` | HTTP 方法。默认为 `GET`。 | | `--codes / -c LIST` | 要显示的状态码。默认为 `200,301,302`。 | | `--recursive / -r` | 递归扫描发现的目录。 | | `--depth / -D N` | 最大递归深度。默认为 `1`。 | | `--wildcard-check / -W` | 在枚举前检查缺失路径的通配符响应。默认禁用。 | | `--skip-wildcard-check` | 用于跳过通配符检查的旧版兼容标志。 | ### Dir 示例 目录枚举: ``` ./dirrunner dir \ -u https://example.com \ -w wordlist/directory.txt \ -c 200,301,302,403 ``` 从 stdin 读取目标 URL: ``` echo https://example.com | ./dirrunner dir - ``` 同时进行目录和文件枚举: ``` ./dirrunner dir \ -u https://example.com \ -w wordlist/directory.txt \ -f wordlist/filename.txt \ -e php,txt,bak \ -c 200,301,302,403 ``` 递归目录扫描: ``` ./dirrunner dir \ --url https://example.com \ --wordlist wordlist/directory.txt \ --recursive \ --depth 3 \ --codes 200,301,302,403 ``` 排除干扰响应大小: ``` ./dirrunner dir \ -u https://example.com \ -w wordlist/directory.txt \ --exclude-size 777,1338728 \ --exclude-size-range 9000-9500 ``` 通过 Tor 路由扫描: ``` ./dirrunner dir \ -u https://example.com \ -w wordlist/directory.txt \ --tor ``` Tor 浏览器通常在 `127.0.0.1:9150` 上公开
标签:C2日志可视化, DNS枚举, GitHub, Go, Ruby工具, 动态分析, 大数据, 实时处理, 密码管理, 指纹识别, 文档结构分析, 日志审计, 目录扫描, 网络安全工具