hacktricks/macos-hardening/macos-red-teaming
2023-10-05 15:54:35 +00:00
..
macos-mdm Translated to Japanese 2023-07-07 23:42:27 +00:00
macos-keychain.md Translated to Japanese 2023-07-07 23:42:27 +00:00
README.md Translated ['README.md', 'backdoors/salseo.md', 'forensics/basic-forensi 2023-10-05 15:54:35 +00:00

macOS レッドチーミング

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

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の登録時にデバイスは信頼されたCAとしてMDMのSSL証明書を追加するため、今では何でも署名できます。

デバイスをMDMに登録するには、ルートとして**mobileconfigファイルをインストールする必要があります。これはpkg**ファイルを介して配信することができますzipで圧縮し、Safariからダウンロードすると解凍されます

MythicエージェントOrthrusは、この技術を使用しています。

JAMF PROの乱用

JAMFは、カスタムスクリプト(システム管理者によって開発されたスクリプト)、ネイティブペイロードローカルアカウントの作成、EFIパスワードの設定、ファイル/プロセスの監視...)、MDM(デバイスの設定、デバイス証明書...)を実行できます。

JAMFの自己登録

https://<company-name>.jamfcloud.com/enroll/のようなページにアクセスして、自己登録が有効になっているかどうかを確認します。有効な場合、資格情報を要求する場合があります。

JamfSniper.pyスクリプトを使用してパスワードスプレー攻撃を実行できます。

さらに、適切な資格情報を見つけた後、次のフォームで他のユーザー名をブルートフォース攻撃することができます:

JAMFデバイス認証

jamfバイナリには、キーチェーンを開くための秘密が含まれており、発見当時は誰でも共有されていました。秘密は**jk23ucnq91jfu9ajです。
さらに、jamfは
LaunchDaemonとして/Library/LaunchAgents/com.jamf.management.agent.plist**に永続化されます。

JAMFデバイスの乗っ取り

jamfが使用するJSSJamf Software ServerURLは、**/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として悪用することができるようになります。

{% code overflow="wrap" %}

# 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

{% endcode %}

JAMFのなりすまし

デバイスとJMFの間の通信をなりすますためには、以下が必要です

  • デバイスのUUIDioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'
  • デバイス証明書を含むJAMFキーチェーン/Library/Application\ Support/Jamf/JAMF.keychain

これらの情報を使用して、盗まれたハードウェアUUIDSIPが無効化されたJAMFキーチェーンを持つVMを作成し、Jamfエージェントフックして情報を盗みます。

秘密の盗み出し

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ツールには、dsclがあります:

dscl "/Active Directory/[Domain]/All Domains" ls /

また、MacOS用にいくつかのツールが用意されており、ADの自動列挙とKerberosの操作が可能です

  • MachoundMacHoundは、Bloodhound監査ツールの拡張であり、MacOSホスト上でActive Directoryの関係を収集および取り込むことができます。
  • BifrostBifrostは、Objective-Cプロジェクトであり、macOS上のHeimdal krb5 APIとの対話を目的としています。このプロジェクトの目標は、ネイティブAPIを使用してmacOSデバイス上のKerberosのセキュリティテストをより効果的に行うことであり、対象となる環境に他のフレームワークやパッケージを必要としません。
  • OrchardActive Directoryの列挙を行うためのJavaScript for AutomationJXAツールです。

ドメイン情報

echo show com.apple.opendirectoryd.ActiveDirectory | scutil

ユーザー

MacOSのユーザーには3つのタイプがあります

  • ローカルユーザー - ローカルのOpenDirectoryサービスによって管理され、Active Directoryとは何の関係もありません。
  • ネットワークユーザー - 一時的なActive Directoryユーザーで、認証するためにDCサーバーへの接続が必要です。
  • モバイルユーザー - ローカルのバックアップを持つ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など)にアクセスすることです。

その他の赤チームのテクニック

Safari

Safariでファイルをダウンロードすると、それが「安全な」ファイルであれば、自動的に開かれます。例えば、zipファイルをダウンロードすると、自動的に展開されます。

参考文献

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥