5353/UDP Multicast DNS (mDNS) and DNS-SD

HackTricksをサポートする

基本情報

マルチキャスト DNS (mDNS) は、従来の DNS サーバーを必要とせずにローカルネットワーク内で DNS のような操作 を可能にします。これは UDP ポート 5353 で動作し、デバイスが互いにおよびそのサービスを発見することを可能にし、さまざまな IoT デバイスで一般的に見られます。DNS サービス発見 (DNS-SD) は、mDNS とともに使用されることが多く、標準の DNS クエリを通じてネットワーク上で利用可能なサービスを特定するのに役立ちます。

PORT     STATE SERVICE
5353/udp open  zeroconf

mDNSの動作

標準DNSサーバーがない環境では、mDNSはデバイスが**.localで終わるドメイン名を解決することを可能にし、マルチキャストアドレス224.0.0.251**(IPv4)またはFF02::FB(IPv6)にクエリを送信します。mDNSの重要な側面には、レコードの有効性を示す生存時間(TTL)値や、ユニキャストとマルチキャストクエリを区別するQUビットが含まれます。セキュリティの観点から、mDNSの実装はパケットの送信元アドレスがローカルサブネットと一致することを確認することが重要です。

DNS-SDの機能

DNS-SDは、サービスタイプをそのインスタンスにマッピングするポインタレコード(PTR)をクエリすることによってネットワークサービスの発見を促進します。サービスは、_<Service>._tcpまたは_<Service>._udpパターンを使用して**.localドメイン内で識別され、対応するSRVおよびTXTレコード**が発見され、詳細なサービス情報が提供されます。

ネットワーク探索

nmapの使用

mDNSサービスのためにローカルネットワークをスキャンするための便利なコマンドは:

nmap -Pn -sUC -p5353 [target IP address]

このコマンドは、オープンなmDNSポートとそれらを通じて広告されているサービスを特定するのに役立ちます。

Pholusを使用したネットワーク列挙

mDNSリクエストを積極的に送信し、トラフィックをキャプチャするために、Pholusツールを次のように利用できます:

sudo python3 pholus3.py [network interface] -rq -stimeout 10

攻撃

mDNSプロービングの悪用

攻撃ベクトルは、mDNSプローブに対して偽の応答を送信し、すべての潜在的な名前がすでに使用中であることを示唆することで、新しいデバイスがユニークな名前を選択するのを妨げることを含みます。これは、次のように実行できます:

sudo python pholus.py [network interface] -afre -stimeout 1000

この技術は、新しいデバイスがネットワーク上でサービスを登録するのを効果的にブロックします。

要約すると、mDNSとDNS-SDの仕組みを理解することは、ネットワーク管理とセキュリティにとって重要です。nmapPholusのようなツールは、ローカルネットワークサービスに関する貴重な洞察を提供し、潜在的な脆弱性を認識することで攻撃からの保護に役立ちます。

スプーフィング/ MitM

このサービスで実行できる最も興味深い攻撃は、クライアントと実際のサーバー間の通信でMitMを実行することです。あなたは、機密ファイル(プリンターとの通信をMitM)や資格情報(Windows認証)を取得できるかもしれません。 詳細については、以下を確認してください:

Spoofing LLMNR, NBT-NS, mDNS/DNS and WPAD and Relay Attacks

参考文献

HackTricksをサポートする

Last updated