hacktricks/macos-hardening/macos-red-teaming/macos-mdm
2024-02-08 22:31:36 +00:00
..
enrolling-devices-in-other-organisations.md Translated ['a.i.-exploiting/bra.i.nsmasher-presentation/BIM_Bruteforcer 2024-02-08 22:31:36 +00:00
macos-serial-number.md Translated ['a.i.-exploiting/bra.i.nsmasher-presentation/BIM_Bruteforcer 2024-02-08 22:31:36 +00:00
README.md Translated ['a.i.-exploiting/bra.i.nsmasher-presentation/BIM_Bruteforcer 2024-02-08 22:31:36 +00:00

macOS MDM

ゼロからヒーローまでAWSハッキングを学ぶ htARTEHackTricks AWS Red Team Expertを使って学ぶ!

HackTricksをサポートする他の方法

macOS MDMについて学ぶ:

基本

MDMモバイルデバイス管理概要

モバイルデバイス管理MDMは、スマートフォン、ートパソコン、タブレットなどのさまざまなエンドユーザーデバイスを管理するために使用されます。特にAppleのプラットフォームiOS、macOS、tvOSでは、専門機能、API、およびプラクティスが関与します。MDMの操作は、互換性のあるMDMサーバーに依存し、商用またはオープンソースである必要があり、MDMプロトコルをサポートする必要があります。主なポイントは次のとおりです:

  • デバイスに対する集中制御。
  • MDMプロトコルに準拠するMDMサーバーへの依存。
  • MDMサーバーが、リモートデータ消去や構成のインストールなど、さまざまなコマンドをデバイスに送信できる能力。

DEPデバイス登録プログラムの基本

Appleが提供するデバイス登録プログラムDEPは、iOS、macOS、tvOSデバイスのゼロタッチ構成を容易にすることで、モバイルデバイス管理MDMの統合を効率化します。DEPは登録プロセスを自動化し、デバイスを最小限のユーザーまたは管理者の介入で即座に操作可能にします。主な側面は次のとおりです

  • デバイスが初めて起動されると、事前定義されたMDMサーバーに自動的に登録されるようにします。
  • 新しいデバイスに最適ですが、再構成中のデバイスにも適用できます。
  • 組織での使用にすばやく準備されるように、簡単なセットアップを容易にします。

セキュリティに関する考慮事項

DEPによって提供される簡単な登録の利点はありますが、適切な保護措置がMDM登録に適切に施されていない場合、攻撃者はこの簡略化されたプロセスを悪用して、企業のMDMサーバーに自分のデバイスを登録し、法人デバイスを装ってしまう可能性があります。

{% hint style="danger" %} セキュリティアラート: 簡略化されたDEP登録は、適切な保護措置が施されていない場合、組織のMDMサーバーに認可されていないデバイスの登録を許可する可能性があります。 {% endhint %}

SCEPSimple Certificate Enrolment Protocolとは

  • TLSやHTTPSが普及する前に作成された比較的古いプロトコル。
  • クライアントに証明書署名リクエストCSRを送信する標準化された方法を提供します。クライアントは、サーバーに署名された証明書を付与するように依頼します。

構成プロファイル別名mobileconfigsとは

  • Appleの公式方法でシステム構成を設定/強制することです。
  • 複数のペイロードを含むファイル形式。
  • プロパティリストXMLタイプに基づいています。
  • 「起源を検証し、整合性を確保し、内容を保護するために署名と暗号化できます。」Basics — Page 70, iOS Security Guide, January 2018.

プロトコル

MDM

  • APNsAppleサーバー+ RESTful APIMDMベンダーサーバー)の組み合わせ
  • デバイスデバイス管理製品に関連するサーバー間で通信が行われます
  • MDMからデバイスにplistエンコードされた辞書でコマンドが送信されます
  • すべてHTTPS経由。MDMサーバーは通常ピン留めされます。
  • AppleはMDMベンダーにAPNs証明書を認証するために付与します

DEP

  • 3つのAPI販売店用1つ、MDMベンダー用1つ、デバイス識別用1つ未公開
  • いわゆるDEP "クラウドサービス"API。これは、MDMサーバーがDEPプロファイルを特定のデバイスに関連付けるために使用されます。
  • Apple認定販売店が使用するDEP APIは、デバイスの登録、登録状態の確認、トランザクション状態の確認に使用されます。
  • 未公開のプライベートDEP API。これは、AppleデバイスがDEPプロファイルをリクエストするために使用されます。macOSでは、cloudconfigurationdバイナリがこのAPIを介して通信を行います。
  • より現代的でJSONベースvs. plist
  • AppleはMDMベンダーにOAuthトークンを付与します

DEP "クラウドサービス"API

  • RESTful
  • AppleからMDMサーバーへのデバイスレコードの同期
  • MDMサーバーからAppleへのDEPプロファイルの同期後でデバイスに配信されます
  • DEP「プロファイル」には次のものが含まれます
  • MDMベンダーサーバーのURL
  • サーバーURLの追加信頼された証明書オプションのピン留め
  • その他の設定Setup Assistantでスキップする画面など

シリアル番号

2010年以降に製造されたAppleデバイスは、一般的に12文字の英数字のシリアル番号を持ち、最初の3桁は製造場所を表し、次の2桁は製造年を示し、次の3桁は一意の識別子を提供し、最後の4桁はモデル番号を表します。

{% content-ref url="macos-serial-number.md" %} macos-serial-number.md {% endcontent-ref %}

登録および管理手順

  1. デバイスレコードの作成販売店、Apple新しいデバイスのレコードが作成されます
  2. デバイスレコードの割り当て顧客デバイスがMDMサーバーに割り当てられます
  3. デバイスレコードの同期MDMベンダーMDMはデバイスレコードを同期し、DEPプロファイルをAppleにプッシュします
  4. DEPチェックインデバイスデバイスがDEPプロファイルを取得します
  5. プロファイルの取得(デバイス)
  6. プロファイルのインストール(デバイス) a. MDM、SCEP、ルートCAペイロードを含む
  7. MDMコマンドの発行デバイス

ファイル/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/System/Library/PrivateFrameworks/ConfigurationProfiles.framework/ConfigurationProfiles.tbdは、登録プロセスの**高レベルな「ステップ」**と見なすことができる関数をエクスポートします。

ステップ4: DEPチェックイン - アクティベーションレコードの取得

このプロセスのこの部分は、ユーザーがMacを初めて起動したとき(または完全なワイプ後)

またはsudo profiles show -type enrollmentを実行したとき

  • デバイスがDEP対応かどうかを判断
  • アクティベーションレコードはDEP「プロファイル」の内部名です
  • デバイスがインターネットに接続されるとすぐに開始
  • **CPFetchActivationRecord**によって駆動
  • **cloudconfigurationdによってXPC経由で実装されます。デバイスが最初に起動されたときの「セットアップアシスタント」またはprofiles**コマンドは、このデーモンにアクティベーションレコードを取得するように連絡します。
  • LaunchDaemon常にrootとして実行

**MCTeslaConfigurationFetcher**によって実行されるアクティベーションレコードの取得手順は、Absintheと呼ばれる暗号化を使用します。

  1. 証明書を取得
  2. 証明書から状態を初期化NACInit
    • IOKitを介したさまざまなデバイス固有データを使用(たとえば、シリアル番号
  3. セッションキーを取得
  4. セッションを確立(NACKeyEstablishment
  5. リクエストを作成
    • { "action": "RequestProfileConfiguration", "sn": "" }というデータを送信して、https://iprofiles.apple.com/macProfileにPOST
    • JSONペイロードはAbsintheを使用して暗号化されますNACSign
    • すべてのリクエストはHTTPS経由で行われ、組み込みのルート証明書が使用されます

応答は、次のような重要なデータを含むJSON辞書です

  • urlアクティベーションプロファイルのMDMベンダーホストのURL
  • anchor-certs信頼されたアンカーとして使用されるDER証明書の配列

ステップ5: プロファイルの取得

  • DEPプロファイルで提供されたURLにリクエストを送信します。
  • アンカー証明書が提供された場合、信頼を評価するために使用されます。
  • 注意DEPプロファイルのanchor_certsプロパティ
  • リクエストは、デバイス識別情報などの**.plist**形式で送信されます
  • 例:UDID、OSバージョン
  • CMSで署名され、DERでエンコードされます
  • **デバイス識別証明書APNSから**を使用して署名されます
  • 証明書チェーンには期限切れのApple iPhone Device CAが含まれます

**ステップ6: プロファイ