.. | ||
macos-mdm | ||
macos-keychain.md | ||
README.md |
macOS Red Teaming
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したいまたはHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksグッズを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つける
- 💬 Discordグループまたはtelegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする
- 自分のハッキングテクニックを共有するために、HackTricksとHackTricks CloudのGitHubリポジトリにPRを提出する
MDMの悪用
- JAMF Pro:
jamf checkJSSConnection
- Kandji
管理プラットフォームにアクセスするために管理者資格情報を侵害することができれば、マシンにマルウェアを配布することで、すべてのコンピュータを潜在的に侵害することができます。
MacOS環境でのレッドチーミングでは、MDMの動作原理についてある程度理解していることが強く推奨されています:
{% content-ref url="macos-mdm/" %} macos-mdm {% endcontent-ref %}
MDMをC2として使用する
MDMは、プロファイルのインストール、クエリまたは削除、アプリケーションのインストール、ローカル管理者アカウントの作成、ファームウェアパスワードの設定、FileVaultキーの変更などの権限を持っています。
独自のMDMを実行するには、https://mdmcert.download/で取得しようとするベンダーによって署名されたCSRが必要です。Appleデバイス用の独自のMDMを実行するには、MicroMDMを使用できます。
ただし、登録されたデバイスにアプリケーションをインストールするには、開発者アカウントで署名する必要があります... ただし、MDM登録時にデバイスはMDMのSSL証明書を信頼できるCAとして追加するため、今後は何でも署名できます。
デバイスをMDMに登録するには、mobileconfig
ファイルをルートとしてインストールする必要があります。これはpkgファイルを介して配信できます(Safariからダウンロードされると解凍されます)。
MythicエージェントOrthrusはこのテクニックを使用しています。
JAMF PROの悪用
JAMFはカスタムスクリプト(システム管理者が開発したスクリプト)、ネイティブペイロード(ローカルアカウントの作成、EFIパスワードの設定、ファイル/プロセスの監視...)、MDM(デバイスの構成、デバイス証明書...)を実行できます。
JAMFの自己登録
https://<company-name>.jamfcloud.com/enroll/
などのページに移動して、自己登録が有効になっているかどうかを確認します。有効になっている場合、アクセスのための資格情報を要求する場合があります。
JamfSniper.pyスクリプトを使用してパスワードスプレー攻撃を実行できます。
さらに、適切な資格情報を見つけた後、次のフォームで他のユーザー名を総当たり攻撃することができるかもしれません:
JAMFデバイス認証
![](/Mirrors/hacktricks/media/commit/bc8bfd800be1ecc1490699755df46847b052c1d8/.gitbook/assets/image%20%282%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29.png)
jamf
バイナリには、キーチェーンを開くための秘密が含まれており、発見時点では誰もが共有していました。それは**jk23ucnq91jfu9aj
でした。
さらに、jamfは/Library/LaunchAgents/com.jamf.management.agent.plist
にLaunchDaemonとして永続化**されます。
JAMFデバイス乗っ取り
jamf
が使用するJSS(Jamf Software Server)URLは**/Library/Preferences/com.jamfsoftware.jamf.plist
**にあります。
このファイルには基本的にURLが含まれています:
{% code overflow="wrap" %}
plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist
[...]
<key>is_virtual_machine</key>
<false/>
<key>jss_url</key>
<string>https://halbornasd.jamfcloud.com/</string>
<key>last_management_framework_change_id</key>
<integer>4</integer>
[...]
{% endcode %}
したがって、攻撃者は、このファイルを上書きする悪意のあるパッケージ(pkg
)をドロップすることができ、インストールされるとTyphonエージェントからMythic C2リスナーへのURLを設定し、JAMFをC2として悪用することができるようになります。
# After changing the URL you could wait for it to be reloaded or execute:
sudo jamf policy -id 0
# TODO: There is an ID, maybe it's possible to have the real jamf connection and another one to the C2
JAMFのなりすまし
デバイスとJMFの間の通信をなりすますには、以下が必要です:
- デバイスのUUID:
ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'
- JAMFキーチェーン:
/Library/Application\ Support/Jamf/JAMF.keychain
から、デバイス証明書を含む
この情報を使用して、盗まれたハードウェアUUIDを持つVMを作成し、SIPを無効にして、JAMFキーチェーンを落とし、Jamfエージェントをフックして情報を盗みます。
秘密の盗み出し
![](/Mirrors/hacktricks/media/commit/bc8bfd800be1ecc1490699755df46847b052c1d8/.gitbook/assets/image%20%2811%29.png)
a
また、カスタムスクリプトを監視することができます。管理者がJamfを介して実行したいと考えるかもしれない場所/Library/Application Support/Jamf/tmp/
。これらのスクリプトはここに配置され、実行され、削除されます。これらのスクリプトには資格情報が含まれる可能性があります。
ただし、これらのスクリプトにはパラメータとして資格情報が渡される場合がありますので、ps aux | grep -i jamf
を監視する必要があります(root権限がなくても)。
スクリプトJamfExplorer.pyは、新しいファイルの追加と新しいプロセス引数を監視できます。
macOSリモートアクセス
また、MacOSの"特別な"ネットワーク プロトコルについても:
{% content-ref url="../macos-security-and-privilege-escalation/macos-protocols.md" %} macos-protocols.md {% endcontent-ref %}
Active Directory
場合によっては、MacOSコンピュータがADに接続されていることがあります。このシナリオでは、通常どおりにActive Directoryを列挙してみてください。以下のページでヘルプを見つけることができます:
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %} pentesting-ldap.md {% endcontent-ref %}
{% content-ref url="../../windows-hardening/active-directory-methodology/" %} active-directory-methodology {% endcontent-ref %}
{% content-ref url="../../network-services-pentesting/pentesting-kerberos-88/" %} pentesting-kerberos-88 {% endcontent-ref %}
あなたを助けるローカルMacOSツールの1つはdscl
です:
dscl "/Active Directory/[Domain]/All Domains" ls /
また、MacOS向けにADを自動的に列挙し、kerberosを操作するためのツールがいくつか用意されています:
- Machound: MacHoundはBloodhound監査ツールの拡張機能で、MacOSホスト上でActive Directoryの関係を収集および取り込むことができます。
- Bifrost: Bifrostは、macOS上でHeimdal krb5 APIとやり取りするように設計されたObjective-Cプロジェクトです。このプロジェクトの目標は、macOSデバイス上でKerberosに関するセキュリティテストを、ターゲットに他のフレームワークやパッケージを必要とせずに、ネイティブAPIを使用して実現することです。
- Orchard: Active Directoryの列挙を行うためのJavaScript for Automation (JXA)ツール。
ドメイン情報
echo show com.apple.opendirectoryd.ActiveDirectory | scutil
ユーザー
MacOSの3つのタイプのユーザーは次のとおりです:
- ローカルユーザー — ローカルのOpenDirectoryサービスによって管理され、Active Directoryとは何の接続もありません。
- ネットワークユーザー — DCサーバーに接続して認証する必要がある、不安定なActive Directoryユーザー。
- モバイルユーザー — 資格情報とファイルのローカルバックアップを持つActive Directoryユーザー。
ユーザーとグループに関するローカル情報は、var/db/dslocal/nodes/Default フォルダに保存されています。
たとえば、ユーザー mark の情報は /var/db/dslocal/nodes/Default/users/mark.plist に保存され、グループ admin の情報は /var/db/dslocal/nodes/Default/groups/admin.plist に保存されています。
MacHound は、Bloodhoundデータベースに HasSession と AdminTo エッジに加えて、次の3つの新しいエッジを追加します:
- CanSSH - ホストにSSH接続を許可されたエンティティ
- CanVNC - ホストにVNC接続を許可されたエンティティ
- CanAE - ホストでAppleEventスクリプトを実行することを許可されたエンティティ
#User enumeration
dscl . ls /Users
dscl . read /Users/[username]
dscl "/Active Directory/TEST/All Domains" ls /Users
dscl "/Active Directory/TEST/All Domains" read /Users/[username]
dscacheutil -q user
#Computer enumeration
dscl "/Active Directory/TEST/All Domains" ls /Computers
dscl "/Active Directory/TEST/All Domains" read "/Computers/[compname]$"
#Group enumeration
dscl . ls /Groups
dscl . read "/Groups/[groupname]"
dscl "/Active Directory/TEST/All Domains" ls /Groups
dscl "/Active Directory/TEST/All Domains" read "/Groups/[groupname]"
#Domain Information
dsconfigad -show
詳細はhttps://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/にあります。
キーチェーンへのアクセス
キーチェーンには高い確率で機密情報が含まれており、プロンプトを生成せずにアクセスすることで、レッドチームの演習を進めるのに役立つ可能性が高いです:
{% content-ref url="macos-keychain.md" %} macos-keychain.md {% endcontent-ref %}
外部サービス
MacOS Red Teamingは通常のWindows Red Teamingとは異なり、MacOSは通常、複数の外部プラットフォームと直接統合されています。MacOSの一般的な構成は、OneLoginと同期された資格情報を使用してコンピュータにアクセスし、OneLoginを介して複数の外部サービス(github、awsなど)にアクセスすることです。
その他のRed Teamテクニック
Safari
Safariでファイルをダウンロードすると、"安全"なファイルの場合、自動的に開かれます。たとえば、zipファイルをダウンロードした場合、自動的に展開されます:
![](/Mirrors/hacktricks/media/commit/bc8bfd800be1ecc1490699755df46847b052c1d8/.gitbook/assets/image%20%2812%29%20%283%29.png)
参考文献
- https://www.youtube.com/watch?v=IiMladUbL6E
- https://medium.com/xm-cyber/introducing-machound-a-solution-to-macos-active-directory-based-attacks-2a425f0a22b6
- https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0
- Come to the Dark Side, We Have Apples: Turning macOS Management Evil
- OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall