
SCCM 配布ポイント (DP) は、Microsoft SCCM がソフトウェアのインストール、パッチ、スクリプト展開などで使用されるすべてのファイルをホストするために使用するサーバーです。デフォルトでは、これらのサーバーは SMB (TCP/445) および HTTP/S (TCP/80 および/または TCP/443) を介したアクセスを許可し、何らかの Windows 認証 (NTLM など) を必要とします。
現在の SCCM DP 収集ツールは、SMB 共有を閲覧してファイルを収集する機能に依存しています。
しかし、組織が内部ネットワーク上のサーバーへのインバウンド SMB アクセスを制限することは珍しくなく、インターネットからのインバウンド SMB アクセスを防ぐのは標準的な慣行です。一方、HTTP/S アクセスは通常、内部ネットワークでは制限されておらず、インターネットからも許可されていることがよくあります。これは、HTTP/S 経由で SCCM DP からファイルを取得する方法があれば、攻撃者に機会を与えることになります。
SMB ツールは、SCCMContentLib$ 共有の DataLib フォルダを列挙して、ファイルのハッシュを含む <filename.ext>.INI ファイルを見つけることで機能します。その後、FileLib/<hash[0:4]>/<hash> で実際のファイルを見つけることができます。これが機能するのは、共有へのアクセスがあれば DataLib フォルダ内のすべてのファイルを列挙できるためです。
HTTP/S を使用する場合、事情は異なります。http://<SCCM DP>/SMS_DP_SMSPKG$/Datalib にブラウズすると、番号付きファイルと INI のディレクトリ一覧が表示されます。
さまざまな理由(速度など)により、これらの配布ポイントは匿名アクセスを許可するように構成できます。

ただし、INI 以外のリンクに移動しても同じページが表示されるだけなので、直接アクセスできるファイルは Datalib の「ルート」ディレクトリ内のファイルに限定されます。ディレクトリ用の INI ファイルから抽出したハッシュは、実際のファイルのみを格納する FileLib 内のディレクトリを見つけるために使用できないためです。

ただし、http://<SCCM DP>/SMS_DP_SMSPKG$/ ルートから直接ディレクトリ名にブラウズすると、そのディレクトリ内のファイルが表示され、直接ダウンロードできます。

これが sccm-http-looter の通常の動作です。Datalib のディレクトリ一覧を解析してディレクトリを特定し、それらにリクエストを送信して各ディレクトリ内のファイルを解析し、ユーザーが指定した許可リストに含まれる拡張子を持つファイルをダウンロードします。
匿名アクセスが有効だが、http://<SCCM DP>/SMS_DP_SMSPKG$/ ルート配下のディレクトリのディレクトリ一覧が無効になっている場合は、-use-signature-method を指定してツールを実行することで使用できる、ファイルを取得するための2番目の手法があります。このモードでは、ツールは次のことを行います。
http://<SCCM DP>/SMS_DP_SMSPKG$/Datalib から Datalib の一覧をダウンロードします。http://<SCCM DP>/SMS_DP_SMSSIG$/<filename>.tar から .INI 以外のリンクファイル名をダウンロードします。ここで <filename> は Datalib ページの任意の href の最後の要素です(例: 12300005.1)。http://<SCCM DP>/SMS_DP_SMSPKG$/Datalib/<filename>/<抽出されたファイル名>.INI から INI ファイルをダウンロードします。http://<SCCM DP>/SMS_DP_SMSPKG$/Filelib/<hash[0:4]>/<hash> から実際のファイルをダウンロードし、署名ファイルで指定された正しいファイル名に名前を変更します。署名ファイルは .tar ファイルですが、実際の tar ではありません。ファイル名は、以下に示すバイト文字列 0x18, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01 の512バイト前に含まれています。

このツールはこのバイト文字列を検索し、署名ファイルからすべてのファイル名を抽出します。