他の組織へのデバイスの登録
Reading time: 7 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
はじめに
以前にコメントしたように**、**デバイスを組織に登録するためには、その組織に属するシリアル番号のみが必要です。デバイスが登録されると、いくつかの組織が新しいデバイスに機密データをインストールします:証明書、アプリケーション、WiFiパスワード、VPN設定など。
したがって、登録プロセスが適切に保護されていない場合、これは攻撃者にとって危険な入り口となる可能性があります。
以下は、研究の要約ですhttps://duo.com/labs/research/mdm-me-maybe。さらなる技術的詳細については確認してください!
DEPとMDMバイナリ分析の概要
この研究は、macOS上のデバイス登録プログラム(DEP)およびモバイルデバイス管理(MDM)に関連するバイナリに深く掘り下げています。主要なコンポーネントは以下の通りです:
mdmclient
:MDMサーバーと通信し、macOSバージョン10.13.4以前でDEPチェックインをトリガーします。profiles
:構成プロファイルを管理し、macOSバージョン10.13.4以降でDEPチェックインをトリガーします。cloudconfigurationd
:DEP API通信を管理し、デバイス登録プロファイルを取得します。
DEPチェックインは、プライベート構成プロファイルフレームワークからのCPFetchActivationRecord
およびCPGetActivationRecord
関数を利用して、アクティベーションレコードを取得します。CPFetchActivationRecord
は、XPCを介してcloudconfigurationd
と調整します。
テスラプロトコルとアブサンシスキームのリバースエンジニアリング
DEPチェックインでは、cloudconfigurationd
が暗号化された署名付きJSONペイロードを_iprofiles.apple.com/macProfile_に送信します。ペイロードにはデバイスのシリアル番号と「RequestProfileConfiguration」というアクションが含まれています。使用される暗号化スキームは内部的に「Absinthe」と呼ばれています。このスキームを解明することは複雑で、多くのステップを含み、アクティベーションレコードリクエストに任意のシリアル番号を挿入するための代替手法を探ることにつながりました。
DEPリクエストのプロキシ
Charles Proxyのようなツールを使用して_iprofiles.apple.com_へのDEPリクエストを傍受し、変更しようとする試みは、ペイロードの暗号化とSSL/TLSセキュリティ対策によって妨げられました。しかし、MCCloudConfigAcceptAnyHTTPSCertificate
構成を有効にすることで、サーバー証明書の検証をバイパスすることができますが、ペイロードの暗号化された性質により、復号化キーなしでシリアル番号の変更は依然として不可能です。
DEPと相互作用するシステムバイナリの計測
cloudconfigurationd
のようなシステムバイナリを計測するには、macOSでシステム整合性保護(SIP)を無効にする必要があります。SIPが無効になっている場合、LLDBのようなツールを使用してシステムプロセスにアタッチし、DEP APIインタラクションで使用されるシリアル番号を変更する可能性があります。この方法は、権限やコード署名の複雑さを回避できるため、好ましいです。
バイナリ計測の悪用:
cloudconfigurationd
内でJSONシリアル化の前にDEPリクエストペイロードを変更することが効果的であることが証明されました。このプロセスには以下が含まれます:
cloudconfigurationd
にLLDBをアタッチします。- システムシリアル番号が取得されるポイントを特定します。
- ペイロードが暗号化されて送信される前に、メモリに任意のシリアル番号を注入します。
この方法により、任意のシリアル番号に対して完全なDEPプロファイルを取得できることが示され、潜在的な脆弱性が明らかになりました。
Pythonによる計測の自動化
悪用プロセスは、LLDB APIを使用してPythonで自動化され、任意のシリアル番号をプログラム的に注入し、対応するDEPプロファイルを取得することが可能になりました。
DEPとMDMの脆弱性の潜在的影響
この研究は、重大なセキュリティ上の懸念を浮き彫りにしました:
- 情報漏洩:DEPに登録されたシリアル番号を提供することで、DEPプロファイルに含まれる機密の組織情報を取得できます。
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。