コンテンツにスキップ

Impacket mssqlinstance.py

カテゴリ目次へ戻る / コマンド全体目次へ戻る

SQL Server Browser に UDP で問い合わせ、インスタンス名、ポート、バージョン、名前付きパイプを列挙します。

項目内容
実装examples/mssqlinstance.py
カテゴリMSSQL / Exchange / MQTT
規模56 行
配布setup.py の scripts=examples/*.py によりスクリプトとしてインストール

オプションの最新の定義は python examples/mssqlinstance.py -h で確認できます。

引数説明
hosttarget host
-timeouttimeout to wait for an answer(既定値: 5)
-debugTurn DEBUG output ON
-tsAdds timestamp to every logging output

host と timeout から MSSQL helper を作り、UDP 1434 へ instance discovery packet を送ります。複数 record を区切り文字に従って parse し、instance ごとの property を表示します。

SQL Server Browser は UDP 1434 で instance discovery request を受け、 host 上の named instance 情報を区切り付き text record で返します。この コマンドは database login をせず、Browser service の discovery protocol だけを 使って instance 名、version、TCP port、named pipe 等を収集します。

一つの datagram に複数 instance が含まれ、各 record は key/value pair の並びです。 parser は instance separator と field separator を区別し、欠落 fieldや順序変更を 許容して dictionary/table に変換します。既定 instance と named instance では instance name や port field の出方が異なる場合があります。

UDP のため response 欠落は「instance がない」と同義ではありません。Browser service 停止、firewall、packet loss、複数 interface、spoofed response の可能性が あります。timeout を一つの判定材料として表示し、返された host/port を信頼して 自動接続する場合は別途検証します。

シンボル位置責務を追う入口
module-level entry1トップレベルで引数解析と処理を実行
モジュール使用する主な名前
impacket.exampleslogger
impackettds, version
  • 照会や認証の試行が中心です。実行回数が多いと監査ログやアカウントロック、対象の負荷に影響します。
  • 入力ファイルがない場合、壊れている場合、読み取りが途中で終わる場合、未対応の形式だった場合を区別します。

impacket.tds.MSSQL と UDP socket に依存する小さな CLI です。応答は未認証 datagram なので、欠落 field、重複 field、timeout、不正な区切りを許容して parse してください。

  • 構文: python -m py_compile examples/mssqlinstance.py
  • CLI: python examples/mssqlinstance.py -h
  • このコマンド専用のテストは見つかりません。共有モジュールのテストと、必要に応じて隔離環境での動作確認を選びます。