ハンターのガイド:SCCM階層の悪用 SCCMHunter

Image

SCCMHunterはActive Directoryドメイン内のSCCM関連資産の特定、プロファイリング、および攻撃を効率化するために構築されたポスト・エクスプロイテーションツールです。このツールの基本的な機能は、findモジュールを使用してLDAPをクエリし、潜在的なSCCM関連資産を検索することです。これはADスキーマを拡張する際のデプロイメントプロセス中に作成されたオブジェクトのACLリコン、および「SCCM」または「MECM」キーワードのクエリ実行を通じて実現されます。このターゲットリストは、特定のSCCMロールで構成されたアセットに必要なデフォルト共有の説明をチェックするSMBモジュールでプロファイリングされます。さらに、モジュールはMSSQLサービスが実行中であるか、およびエンドポイントでSMB署名が強制されているかをチェックします。これらすべては、環境内の潜在的な攻撃パスの図を描くのに役立ちます。プロファイリングが完了すると、操作者はHTTP(@_xpn_)モジュールアカウントでクライアント登録の悪用をターゲットにするか、MSSQL(@_mayyhem)モジュールを使用して完全なサイトサーバーの乗っ取りに必要な構文を取得できます。サイトサーバーの乗っ取りが成功した場合、管理者とピボットモジュールはさらなる情報収集と悪用に利用できます。

モジュール

Find

findモジュールは、デプロイメント中のADスキーマ拡張時に作成されるデフォルトACLについてLDAPをクエリします。インストール中、「System」コンテナの下に「System Management」コンテナが作成され、サイトサーバーマシンアカウントにコンテナオブジェクトに対するGenericAllアクセス許可が付与されます。さらに、SCCMで「Management Point」(MP)ロールでサーバーを構成する場合、サイトサーバーはこの情報をmSSMSManagementPointクラスオブジェクト内の「System Management」コンテナに発行します。MPのdNSHostName属性がここに保存され、クライアントがADから利用可能な管理ポイントを解決する方法です。最後のステップは、管理者が関連するユーザー、グループ、およびシステムに対して説明的なラベルを使用する傾向に基づいて、SCCM またはMECM関連の頭字語についてADをクエリすることです。すべての潜在的なサイトサーバーのホスト名は、SMBおよびHttpモジュールで使用するために記録されます。

SMB

SMBモジュールはFindから結果を取得し、リモートホストのSMB共有、SMB署名ステータスを列挙し、サーバーがMSSQLを実行しているかどうかをチェックします。SCCMの特定のロール(MPまたはディストリビューションポイント(DP)ロール)のセットアップ中に、デフォルトファイル共有の説明は、特定のサーバーのロールが何であるかを明らかにします。これは、MP、DP、およびSQLデータベースロールで構成されたサーバーのサイトサーバーマシンアカウントがローカル管理者権を持つことが展開中に必要であり、SMB署名が無効になっているか必須でない場合はリレー攻撃に脆弱であるため、有用です。このプロファイリングを通じて、操作者はこの条件を特定するプロセスを効率化できます。さらに、SMBモジュールはPXEBootの使用を示すDPで見つかる「REMINST」ファイル共有の存在をチェックします。見つかった場合、このシェアは、Christopher Panayiによって詳細に説明されている ように、時には特権のあるドメインユーザーの認証情報を潜在的に取得するために活用できるメディア変数ファイルの存在をクローリングします。

HTTP

HTTPモジュールはFindから結果を取得し、SCCM登録Webサービスのリモートホストを列挙します。見つかった場合、モジュールはAdam Chesterの sccmwtf.py スクリプトを活用して、提供されたマシンアカウント認証情報でクライアント登録をスプーフするか、-autoフラグを使用して新しいマシンを作成しようとします。この攻撃の詳細情報はAdamのブログ で見つけることができます

MSSQL

MSSQLモジュールは引数を受け入れて、Chris Thompsonによって発見され詳細に説明された サイトサーバー乗っ取り攻撃を悪用するための正しいMSSQLクエリ構文を提供します。「Full Administrator」権限が付与されているユーザーの16進数形式のSIDがクエリされて、ターミナルに提供されます。最初のクエリラウンドが完了すると、操作者は新しく作成した管理者アカウントのAdminIDを提供するよう求められ、2番目のクエリラウンドがターミナルに出力されます。

Admin

Adminモジュールは、AdminService APIをクエリして、復復されたデータをローカルSQLiteデータベースに保存することを目的としたサイトサーバー乗っ取り後のモジュールです。保存される現在の情報には、ユーザー、デバイス、コレクション、デプロイメント、アプリケーション、UserDeviceAffinityが含まれます。このデータは、ターゲットユーザーが最近ログインしたかプライマリユーザーとして割り当てられたデバイスを識別するなどの有用な情報についてクエリされる可能性があります。注:このモジュールはラボ環境で機能しました。実際の結果は、その環境のサイズによって異なる場合があります。

Pivot

Pivotモジュールは、AdminService APIを活用して、 CMPivot ツールをリモートで使用することを目的としたサイトサーバー乗っ取り後のモジュールです。現在、概念実証の状態にあり、まだ構築およびテストされている多くの有用なコマンドが欠けています。CMPivotツールが有用である方法のいくつかの例は、操作者がターゲットデバイスまたはコレクションを列挙し、ローカル管理者、実行中のプロセス、またはネットワーク構成を識別するコマンドを実行することができるということです。

インストール

著作権(c)2024 Garrett Foster

翻訳元: https://meterpreter.org/sccmhunter-attacking-sccm-related-assets-in-an-active-directory-domain/

ソース: meterpreter.org