Ullaakut/cameradar

GitHub: Ullaakut/cameradar

一款针对 RTSP 监控摄像头的安全测试工具,通过字典攻击发现开放的摄像头流及其访问凭证。

Stars: 4912 | Forks: 612

## Cameradar

Coverage Status

## RTSP 流访问工具 Cameradar 扫描已授权目标上的 RTSP 端点,并使用字典攻击来爆破其凭证和路由。 ### Cameradar 的功能 - 检测可访问目标上的开放 RTSP 主机。 - 检测传输 RTSP 流的设备型号。 - 尝试基于字典发现流路由(例如 `/live.sdp`)。 - 尝试基于字典发现摄像头凭证。 - 生成发现报告。

## 目录 - [Docker 快速入门](#quick-start-with-docker) - [安装二进制文件](#install-the-binary) - [在 Android (Termux) 上安装](#install-on-android-termux) - [配置](#configuration) - [安全与负责任地使用](#security-and-responsible-use) - [输出](#output) - [检查摄像头访问](#check-camera-access) - [命令行选项和环境变量](#command-line-options-and-environment-variables) - [输入文件格式](#input-file-format) - [构建与贡献](#build-and-contribute) - [常见问题](#frequently-asked-questions) - [示例](#examples) - [许可证](#license)

## Docker 快速入门 安装 [Docker](https://docs.docker.com/engine/installation/) 并运行: ``` docker run --rm -t --net=host ullaakut/cameradar --targets ``` 示例: ``` docker run --rm -t --net=host ullaakut/cameradar --targets 192.168.100.0/24 ``` 这将扫描目标子网上的端口 554、5554 和 8554。 它会尝试枚举 RTSP 流。 有关所有选项,请参阅 [配置参考](https://github.com/Ullaakut/cameradar/wiki/Configuration-Reference)。 - 目标可以是 CIDR、IP、IP 范围或主机名。 - 子网:`172.16.100.0/24` - IP:`172.16.100.10` - 主机:`localhost` - 范围:`172.16.100.10-20` - 要使用自定义字典,请挂载它们并传递这两个标志: docker run --rm -t --net=host \ -v /path/to/dictionaries:/tmp/dictionaries \ ullaakut/cameradar \ --custom-routes /tmp/dictionaries/my_routes \ --custom-credentials /tmp/dictionaries/my_credentials.json \ --targets 192.168.100.0/24 ## 安装二进制文件 如果 Docker 不可用或者您想要本地构建,请使用此选项。 ### 依赖项 - Go 1.25 或更高版本 ### 步骤 1. `go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latest` `cameradar` 二进制文件现在位于您的 `$GOPATH/bin` 中。 有关可用标志,请参阅 [配置参考](https://github.com/Ullaakut/cameradar/wiki/Configuration-Reference)。 ## 在 Android (Termux) 上安装 这些步骤总结了 Android 上可用的 Termux 设置。 请使用来自 F-Droid 或 Termux 官方网站的 Termux 117,而不是 Google Play。 ### 1) 设置 Termux 和 Alpine 在 Termux 中安装所需的软件包: ``` pkg update pkg install mc wget git nmap proot-distro ``` 安装 Alpine 并登录: ``` proot-distro install alpine proot-distro login alpine ``` ### 2) 在 Alpine 中安装构建工具 ``` apk add wget git go gcc clang musl-dev make ``` ### 3) 构建 Cameradar 创建模块路径并克隆仓库: ``` mkdir -p go/pkg/mod/github.com/Ullaakut cd go/pkg/mod/github.com/Ullaakut git clone https://github.com/Ullaakut/cameradar.git cd cameradar/cmd/cameradar go install ``` ### 4) 运行 Cameradar 复制字典并运行二进制文件: ``` mkdir -p /tmp cp -r ../../dictionaries /tmp/dictionaries /go/bin/cameradar --targets= --custom-credentials=/tmp/dictionaries/credentials.json --custom-routes=/tmp/dictionaries/routes --ui=plain --debug ``` 将 `` 替换为您被授权测试的 IP、范围、主机或子网。 ## 配置 默认的 RTSP 端口是 `554`、`5554`、`8554`。 如果您未指定端口,Cameradar 将使用这些端口。 扫描自定义端口的示例: ``` docker run --rm -t --net=host \ ullaakut/cameradar \ --ports "18554,19000-19010" \ --targets localhost ``` 您可以用自己的路由和凭证文件替换默认字典。 仓库在 `dictionaries` 文件夹中提供了基准字典。 ``` docker run --rm -t --net=host \ -v /my/folder/with/dictionaries:/tmp/dictionaries \ ullaakut/cameradar \ --custom-routes /tmp/dictionaries/my_routes \ --custom-credentials /tmp/dictionaries/my_credentials.json \ --targets 172.19.124.0/24 ``` ### 使用 `--skip-scan` 跳过发现 如果您已经知道 RTSP 端点,则可以跳过发现,并将每个目标和端口视为流候选项。此模式不运行发现,适用于受限网络或您想要攻击已知清单时。 跳过发现意味着: - Cameradar 不运行发现,也不检测设备型号。 - 目标解析为 IP 地址。主机名通过 DNS 解析。 - CIDR 块和 IPv4 范围扩展为该范围内的每个地址。 - 大范围会创建许多目标,因此请谨慎使用。 示例: ``` docker run --rm -t --net=host \ ullaakut/cameradar \ --skip-scan \ --ports "554,8554" \ --targets 192.168.1.10 ``` 在此示例中,Cameradar 尝试对 `192.168.1.10` 的端口 554 和 8554 进行字典攻击。 ### 使用 `--scanner` 选择发现扫描器 Cameradar 支持两种发现后端: - `nmap`(默认) - `masscan` 当您想要更可靠的 RTSP 发现时,请使用 `nmap`:它执行服务识别,可以更好地区分 RTSP 和其他开放端口。 当扫描非常大的网络时,请使用 `masscan`:它通常更快,在大规模下更高效,但不提供服务发现。 ``` docker run --rm -t --net=host \ ullaakut/cameradar \ --scanner masscan \ --ports "554,8554" \ --targets 192.168.1.0/24 ``` ## 安全与负责任地使用 Cameradar 是一款渗透测试工具。 仅扫描您拥有或获得明确测试许可的网络和设备。 请勿使用此工具访问未经授权的系统或流。 如果您不确定,请停止并在扫描前获得书面批准。 ## 输出 Cameradar 以可读的终端 UI 呈现结果。 它将发现记录到控制台。 报告包括发现的主机、识别的设备型号以及有效的路由或凭证。 如果您为 `--output` 标志指定路径,Cameradar 还将写入一个包含发现流的 M3U 播放列表。 ## 检查摄像头访问 使用 [VLC Media Player](http://www.videolan.org/vlc/) 连接到流: `rtsp://username:password@address:port/route` ## 输入文件格式 文件可以包含 IP、主机名、IP 范围和子网。 用换行符分隔条目。 示例: ``` 0.0.0.0 localhost 192.17.0.0/16 192.168.1.140-255 192.168.2-3.0-255 ``` 当您使用 `--skip-scan` 时,Cameradar 会在构建目标列表之前将每个条目扩展为显式的 IP 地址。 ## 命令行选项和环境变量 完整的 CLI 和环境变量参考在 [配置参考](https://github.com/Ullaakut/cameradar/wiki/Configuration-Reference) 中维护。 这包括所有支持的标志、默认值、接受值和环境变量映射。 ## 构建与贡献 ### Docker 构建 在仓库根目录中运行以下命令: `docker build . -t cameradar` 生成的镜像名为 `cameradar`。 ### Go 构建 1. `go install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latest` `cameradar` 二进制文件现在位于 `$GOPATH/bin/cameradar`。 ## 常见问题 请参阅 [故障排除与常见问题解答](https://github.com/Ullaakut/cameradar/wiki/Troubleshooting-%26-FAQ) ## 示例 `docker run --rm -t --net=host ullaakut/cameradar --targets localhost` `docker run --rm -t --net=host -v /tmp:/tmp ullaakut/cameradar --targets /tmp/test.txt --ports 8554` `docker run --rm -t --net=host -v /tmp:/tmp ullaakut/cameradar --targets 192.168.0.0/24 --custom-credentials "/tmp/dictionaries/credentials.json" --custom-routes "/tmp/dictionaries/routes" --ports 554,5554,8554` `docker run --rm -t --net=host ullaakut/cameradar --scanner masscan --targets 192.168.0.0/24 --ports 554,8554` ## 许可证 版权所有 2026 Ullaakut 特此免费授予任何获得本软件副本和相关文档文件(“软件”)的人不受限制地处置该软件的权利,包括不受限制地使用、复制、修改、合并、发布、分发、再授权和/或出售该软件副本的权利,以及再授权给配备了该软件的人这样做,但须符合以下条件: 上述版权声明和本许可声明应包含在该软件的所有副本或重要部分中。 本软件按“原样”提供,不提供任何形式的保证,无论是明示的或暗示的,包括但不限于适销性、特定用途适用性和非侵权性的保证。 在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论是在合同诉讼、侵权行为或其他方面,由该软件或其使用或其他交易引起、由此产生或与之相关。
标签:AES-256, Docker容器, EVTX分析, Go语言, Kali工具, PoC, RTSP协议, VEH, 云存储安全, 凭证破解, 加密文件系统, 字典攻击, 插件系统, 摄像头安全, 攻击面发现, 数据统计, 日志审计, 暴力破解, 漏洞评估, 物联网安全, 监控摄像头, 程序破解, 端口扫描, 网络扫描, 网络攻防, 视频监控, 请求拦截, 足迹分析, 路由发现, 黑盒测试