macOS Network Services & Protocols
リモートアクセスサービス
これらはリモートでアクセスするための一般的なmacOSサービスです。
これらのサービスは システム設定
--> 共有
で有効/無効にできます。
VNC、「Screen Sharing」として知られています(tcp:5900)
SSH、「Remote Login」と呼ばれています(tcp:22)
Apple Remote Desktop(ARD)または「Remote Management」(tcp:3283、tcp:5900)
AppleEvent、「Remote Apple Event」として知られています(tcp:3031)
有効になっているかどうかを確認するには、次を実行します:
ARDのペンテスト
Apple Remote Desktop (ARD) は、macOS向けにカスタマイズされたVirtual Network Computing (VNC)の強化バージョンであり、追加機能を提供しています。 ARDの顕著な脆弱性は、制御画面パスワードの認証方法であり、パスワードの最初の8文字のみを使用するため、HydraやGoRedShellなどのツールを使用した総当たり攻撃に対して脆弱性があります。デフォルトのレート制限がないため、特にVNC Authentication (2)
をサポートするサービスは、8文字のパスワードの切り捨てにより、総当たり攻撃に特に脆弱です。
nmapのvnc-info
スクリプトを使用して、脆弱なインスタンスを特定できます。VNC Authentication (2)
をサポートするサービスは、8文字のパスワードの切り捨てにより、総当たり攻撃に特に脆弱です。
特権昇格、GUIアクセス、ユーザーモニタリングなどのさまざまな管理タスクのためにARDを有効にするには、次のコマンドを使用します:
ARDは、観察、共有制御、フル制御など、さまざまな制御レベルを提供し、ユーザーパスワードの変更後もセッションが継続します。管理者ユーザーに対して、Unixコマンドを直接送信し、rootとして実行することができます。タスクスケジューリングやリモートスポットライト検索などの機能があり、複数のマシンで機密ファイルをリモートで検索するのに役立ちます。
Bonjourプロトコル
Bonjourは、Appleが設計した技術で、同じネットワーク上のデバイスが提供するサービスを検出できます。Rendezvous、Zero Configuration、またはZeroconfとしても知られ、TCP/IPネットワークにデバイスを参加させ、自動的にIPアドレスを選択し、そのサービスを他のネットワークデバイスにブロードキャストできます。
Bonjourによって提供されるZero Configuration Networkingにより、デバイスは次のことができます:
DHCPサーバーが存在しなくてもIPアドレスを自動的に取得できます。
DNSサーバーを必要とせずに名前からアドレスへの変換を実行できます。
ネットワーク上で利用可能なサービスを検出できます。
Bonjourを使用するデバイスは、169.254/16の範囲からIPアドレスを自動的に割り当て、そのネットワーク上での一意性を確認します。Macは、このサブネット用のルーティングテーブルエントリを維持し、netstat -rn | grep 169
で確認できます。
BonjourはDNSにおいて、マルチキャストDNS(mDNS)プロトコルを利用します。mDNSはポート5353/UDP上で動作し、標準DNSクエリを使用しますが、マルチキャストアドレス224.0.0.251を対象とします。このアプローチにより、ネットワーク上のすべてのリスニングデバイスがクエリを受信し、応答できるようになり、レコードの更新が容易になります。
ネットワークに参加すると、各デバイスは通常、ホスト名から派生した**.local**で終わる名前を自己選択します。
ネットワーク内でのサービス検出は、**DNS Service Discovery(DNS-SD)**によって容易になります。DNS SRVレコードの形式を活用するDNS-SDは、DNS PTRレコードを使用して複数のサービスをリスト化します。特定のサービスを求めるクライアントは、複数のホストから利用可能な場合、<Instance>.<Service>.<Domain>
という形式のPTRレコードのリストを受け取ります。
dns-sd
ユーティリティを使用して、ネットワークサービスの検出と広告ができます。以下はその使用例です:
SSHサービスの検索
ネットワーク上でSSHサービスを検索するには、次のコマンドを使用します:
このコマンドは、_ssh._tcpサービスのブラウジングを開始し、タイムスタンプ、フラグ、インターフェース、ドメイン、サービスタイプ、およびインスタンス名などの詳細を出力します。
HTTPサービスの広告
HTTPサービスを広告するには、次のコマンドを使用できます:
このコマンドは、ポート80で/index.html
のパスを持つHTTPサービスを「Index」という名前で登録します。
その後、ネットワーク上でHTTPサービスを検索するには:
サービスが開始されると、その存在をマルチキャストしてサブネット上のすべてのデバイスに通知します。これらのサービスに興味を持つデバイスはリクエストを送信する必要はなく、単にこれらのアナウンスを聞くだけです。
よりユーザーフレンドリーなインターフェースのために、Apple App Storeで入手可能なDiscovery - DNS-SD Browserアプリを使用すると、ローカルネットワークで提供されているサービスを視覚化できます。
また、python-zeroconf
ライブラリを使用してサービスをブラウズおよび検出するためのカスタムスクリプトを作成することもできます。python-zeroconfスクリプトは、_http._tcp.local.
サービス用のサービスブラウザの作成をデモし、追加または削除されたサービスを出力します。
Bonjourの無効化
セキュリティ上の懸念やその他の理由からBonjourを無効にする必要がある場合は、次のコマンドを使用してオフにすることができます:
参考文献
Last updated