
CameradarはRTSPビデオ監視カメラに侵入します
Cameradar は、許可されたターゲット上の RTSP エンドポイントをスキャンし、辞書攻撃を使用してその認証情報とルートをブルートフォースします。
/live.sdp)の探索を試みます。

Docker をインストールし、以下を実行します。
docker run --rm -t --net=host ullaakut/cameradar --targets <target>
例:
docker run --rm -t --net=host ullaakut/cameradar --targets 192.168.100.0/24
これにより、対象サブネット上のポート 554、5554、8554 がスキャンされ、RTSP ストリームの列挙が試みられます。すべてのオプションについては、設定リファレンス を参照してください。
ターゲットは CIDR、IP、IP 範囲、またはホスト名で指定できます。
172.16.100.0/24172.16.100.10localhost172.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 install github.com/Ullaakut/cameradar/v6/cmd/cameradar@latestcameradar バイナリが $GOPATH/bin に配置されます。利用可能なフラグについては、設定リファレンス を参照してください。
以下の手順は、Android で動作する Termux のセットアップ手順をまとめたものです。Google Play ではなく、F-Droid または公式 Termux サイトから Termux 117 を使用してください。
Termux に必要なパッケージをインストールします。
pkg update
pkg install mc wget git nmap proot-distro
Alpine をインストールしてログインします。
proot-distro install alpine
proot-distro login alpine
apk add wget git go gcc clang musl-dev make
モジュールパスを作成し、リポジトリをクローンします。
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
辞書をコピーし、バイナリを実行します。
mkdir -p /tmp
cp -r ../../dictionaries /tmp/dictionaries
/go/bin/cameradar --targets=<target> --custom-credentials=/tmp/dictionaries/credentials.json --custom-routes=/tmp/dictionaries/routes --ui=plain --debug
<target> は、テストを許可されている IP、範囲、ホスト、またはサブネットに置き換えてください。
デフォルトのポートは 554、5554、8554、http、322、8322 です。
ポートを指定しない場合、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
RTSPS ストリームにアクセスするには、rtsps:// URL を使用します。
SSL_CERT_FILE に CA 証明書(自己署名の場合はサーバー証明書)を指定します。ローカルバイナリでの例:
SSL_CERT_FILE=/path/to/ca-or-server.crt \
cameradar \
--targets localhost \
--ports 8322 \
--skip-scan \
--custom-routes routes.txt \
--custom-credentials credentials.json
Docker での例:
docker run --rm -t --net=host \
-e SSL_CERT_FILE=/tmp/certs/server.crt \
-v /path/to/certs:/tmp/certs:ro \
ullaakut/cameradar \
--targets localhost \
--ports 8322
SSL_CERT_FILE を使用したくない場合は、実行環境のシステムトラストストアに CA 証明書を追加してください。
--skip-scan で探索をスキップRTSP エンドポイントをすでに把握している場合、探索をスキップして各ターゲットとポートをストリーム候補として扱うことができます。このモードでは探索は実行されず、制限されたネットワークや既知のインベントリに対して攻撃を行いたい場合に便利です。
スキップスキャンの意味:
例:
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 は 2 つの探索バックエンドをサポートしています。
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
[!WARNING]
--scan-speedはnmapスキャナーにのみ適用されます。
--framecheck で誤検出を削減一部のカメラは RTSP の動作に完全に準拠しておらず、ルートや認証情報が間違っている場合でも 200 OK を返すことがあります。
--framecheck を有効にすると、Cameradar は再生を試みて RTP パケットを待つことで、各 200 OK を検証します。
フレームチェックの意味:
200 OK を受け入れます。--framecheck はデフォルトで無効です。これは RTSP リクエストを追加し、攻撃時間を大幅に増加させる可能性があるためです。
Docker での例:
docker run --rm -t --net=host \
ullaakut/cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554" \
--framecheck
ローカルバイナリと環境変数での例:
FRAMECHECK=true \
cameradar \
--targets 192.168.1.0/24 \
--ports "554,8554"
Cameradar はペネトレーションテストツールです。 自分が所有している、またはテストする明示的な許可を得ているネットワークとデバイスのみをスキャンしてください。 許可されていないシステムやストリームにアクセスするためにこのツールを使用しないでください。 不明な場合は、スキャンを中止し、スキャン前に書面による承認を得てください。