7.5 KiB
554,8554 - Pentesting RTSP
ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したいまたはHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスワッグを入手する
- The PEASS Familyを発見し、独占的なNFTsコレクションを見つける
- **💬 Discordグループ**に参加するか、telegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出して、あなたのハッキングテクニックを共有する
基本情報
wikipediaから:
リアルタイムストリーミングプロトコル(RTSP)は、エンターテイメントおよび通信システムで使用するために設計されたネットワーク制御プロトコルです。このプロトコルは、エンドポイント間のメディアセッションを確立および制御するために使用されます。メディアサーバのクライアントは、VHSスタイルのコマンド(再生、録画、一時停止など)を発行して、サーバからクライアントへのメディアストリーミング(ビデオオンデマンド)またはクライアントからサーバへのメディアストリーミング(音声録音)をリアルタイムで制御します。
ストリーミングデータの伝送自体は、RTSPのタスクではありません。ほとんどのRTSPサーバは、メディアストリームの配信にリアルタイムトランスポートプロトコル(RTP)とリアルタイムコントロールプロトコル(RTCP)を併用します。ただし、一部のベンダーは独自のトランスポートプロトコルを実装しています。たとえば、RealNetworksのRTSPサーバソフトウェアは、RealNetworksの独自のReal Data Transport(RDT)も使用しています。
デフォルトポート: 554,8554
PORT STATE SERVICE
554/tcp open rtsp
主な詳細
RTSPはHTTPに似ていますが、メディアストリーミング用に特別に設計されています。こちらで定義されています:
デバイスは未認証または認証済みアクセスを許可する場合があります。確認するためには、「DESCRIBE」リクエストを送信します。基本的な例を以下に示します:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r
正しいフォーマットには、一貫した応答のために二重の"\r\n"が含まれていることを覚えておいてください。"200 OK"応答は未認証アクセスを示し、"401 Unauthorized"は認証が必要であることを示し、Basic認証またはDigest認証が必要かを明らかにします。
Basic認証の場合、ユーザー名とパスワードをbase64でエンコードし、次のようにリクエストに含めます:
DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r
この例では、資格情報として「admin」と「1234」を使用しています。以下はそのようなリクエストを送信するPythonスクリプトです:
import socket
req = "DESCRIBE rtsp://<ip>:<port> RTSP/1.0\r\nCSeq: 2\r\nAuthorization: Basic YWRtaW46MTIzNA==\r\n\r\n"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("192.168.1.1", 554))
s.sendall(req)
data = s.recv(1024)
print(data)
基本認証はよりシンプルで好まれます。ダイジェスト認証は、「401 Unauthorized」レスポンスで提供される認証詳細の注意深い取り扱いが必要です。
この概要では、初期の試みにおいてシンプルさと実用性から基本認証に焦点を当て、RTSPストリームへのアクセスプロセスを簡略化します。
列挙
有効なメソッドとURLに関する情報を取得し、必要に応じてアクセスをブルートフォースしてコンテンツにアクセスしよう。
nmap -sV --script "rtsp-*" -p <PORT> <IP>
Brute Force
その他の便利なプログラム
Bruteforceに使用する: https://github.com/Tek-Security-Group/rtsp_authgrinder
- 任意のアクセス可能なターゲット上のオープンなRTSPホストを検出する
- それらの公開情報を取得する(ホスト名、ポート、カメラモデルなど)
- ストリームルートを取得するための自動辞書攻撃を実行する(例:/live.sdp)
- カメラのユーザー名とパスワードを取得するための自動辞書攻撃を実行する
- ストリームが有効かどうかを確認し、内容のクイックプレビューを取得するためにサムネイルを生成する
- 適切にエンコードされているかどうかを確認するためにGstreamerパイプラインを作成しようとする
- Cameradarが取得できたすべての情報の要約を表示する
参考文献
- https://en.wikipedia.org/wiki/Real_Time_Streaming_Protocol
- http://badguyfu.net/rtsp-brute-forcing-for-fun-and-naked-pictures/
- https://github.com/Ullaakut/cameradar
ゼロからヒーローまでのAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したいまたはHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスウォッグを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つける
- 💬 Discordグループに参加するか、telegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする。
- HackTricksとHackTricks CloudのGitHubリポジトリにPRを提出して、あなたのハッキングトリックを共有してください。