Mitre ATT&CK マトリックスの 3 つのプロセス インジェクション手法

王林
リリース: 2019-11-26 10:02:21
転載
3528 人が閲覧しました

Mitre ATT&CK マトリックスの 3 つのプロセス インジェクション手法

Mitre ATT&CK マトリックスには、クラシック プロセス インジェクション、プロセス ホロイング、および プロセス ドッペルゲンジングという 3 つのプロセス インジェクション手法があります。

プロセス インジェクションを使用するマルウェアの主な目的は、通常、ウイルス対策ソフトウェアによる検出を回避するか、権限昇格操作を実行することです。ここでは、主に最初の 3 つの方法について詳しく説明します。

1: 古典的なプロセス インジェクション (DLL インジェクション)

これは最も古典的な方法であり、プロセスも非常にシンプルかつ明確です:

OpenProcess -> VirtualAllocEx -> WriteProcessMemory -> CreateRemoteThread

Mitre ATT&CK マトリックスの 3 つのプロセス インジェクション手法

#2: プロセス空洞化

##これは非常に古いメソッドであり、一般的に中国語では「操り人形プロセスの作成」と訳されます。このメソッドを使用して作成されたプロセスは、IE などの合法的なプロセスに偽装することができ、そのアイコン リソースと説明は、プロセス ハッカーを使用して表示できます。メモリ、デジタル署名はすべて IE 値です。これは、緊急対応者が調査中に発見するのが難しい場合があります。

このメソッドを簡潔な言葉で要約します。つまり、悪意のあるプロセスは、まず一時停止状態のプロセスを作成し、次に元のメモリ マッピングをキャンセルして、事前に準備された悪意のあるコードに置き換えてから、そのプロセスに対して操作を実行します。変更されたイメージ ファイル。リダイレクト後にプロセスの実行状態を復元します。

実装アイデア:

1. CreateProcess を通じてターゲット プロセスを作成し、パラメーター CREATE_SUSPENDED を渡してプロセスを一時停止します

1 (2).jpg

2 . NtQueryProcessInformation を通じて、対象プロセスのメモリ内のイメージ ファイルのベース アドレスを取得します。 (PEB ブロック データ構造)

Mitre ATT&CK マトリックスの 3 つのプロセス インジェクション手法

3. NtUnmapViewOfSection を通じてターゲット プロセスのメモリ データ (セクション) をクリアします。入力パラメータは、プロセス ハンドルとプロセスのベース アドレスです。イメージ ファイル


Mitre ATT&CK マトリックスの 3 つのプロセス インジェクション手法

4. VirtualAllocEx を通じて新しいメモリを申請します (開始アドレスは前のイメージ ファイルのベース アドレス、サイズはイメージ ファイルのサイズです) payload)

5. WriteProcessMemory

6 を通じてペイロードをメモリに書き込み、メモリに書き込まれたペイロードのベース アドレスをリダイレクトします

7、 GetThreadContext を介してターゲット スレッドを取得し、コンテキストの eax レジスタを修正してコード エントリ ポイントを修正します

8。SetThreadContext

9 を介してエントリ ポイントを設定します。ResumeThread を介してプロセスを起動し、ペイロードを実行します

対立アイデア:

実装から ステップ 1、4、5、6、7、8、および 9 は、プロセスを作成して注入する従来の方法であることがわかります。それは自分自身です。ステップ 2 と 3 だけが特別です。フックキー機能など従来の検出方法で検出可能です。

3: プロセス ドッペルゲンギング

これは、2017 年のヨーロッパ ブラック ハット カンファレンスで最初に提案された、比較的新しい注入方法です。この手法は、プロセス ホローイングと原理も性能も似ており、プロセス ドッペルゲンギングで作成されたプロセスをプロセス ハッカーでメモリ上に表示すると、そのアイコン リソース、説明、デジタル署名はすべて指定されたターゲット プログラムになります。

この方法は、Windows トランザクション (TxF) の特性を利用し、悪意のあるファイルを使用してトランザクション内の正当なファイルを上書きします。この時点では、トランザクションは送信されません (つまり、上書きは行われません)。ディスク)、次にセクション (現在のトランザクションのコピー)。セクション ハンドルを取得した後、トランザクションはロールバックされ、悪意のあるファイルがディスク上の正当なファイルを実際に上書きするのを防ぎます。その後、メモリ内のセクションのハンドルを使用してプロセスが作成されます。作成されたプロセスには、合法的な実行可能ファイルに関する情報が含まれています。

ご覧のとおり、トランザクションでファイルを上書きする必要があるため、このメソッドでは対象ファイルに対する書き込み権限が必要です。

実装アイデア:

1. TxF トランザクション オブジェクト (NtCreateTransaction) を作成します

Mitre ATT&CK マトリックスの 3 つのプロセス インジェクション手法

#2. トランザクション API を使用して正当な実行可能ファイルを開きます。つまり、ファイルをトランザクション オブジェクトに追加します (CreateFileTransacted)

Mitre ATT&CK マトリックスの 3 つのプロセス インジェクション手法

3. 悪意のあるファイルを開き、そのファイルにメモリ領域を割り当てます (CreateFile、GetFileSizeEx -> NtAllocateVirtualMemory -> ; ReadFile)

4. トランザクション内の正規の実行可能ファイルをメモリ内の悪意のあるファイルで上書きします (WriteFile)

Mitre ATT&CK マトリックスの 3 つのプロセス インジェクション手法

5. のセクションを作成します。現在のトランザクション (NtCreateSection)

Mitre ATT&CK マトリックスの 3 つのプロセス インジェクション手法

6. トランザクションをロールバックし、上書きされたばかりのファイルを正当な実行可能ファイル (NtRollbackTransaction) に復元します

Mitre ATT&CK マトリックスの 3 つのプロセス インジェクション手法

7. メモリ内のセクションを使用してプロセスを作成しますオブジェクト (NtCreateProcessEx )

Mitre ATT&CK マトリックスの 3 つのプロセス インジェクション手法

8. 悪意のあるファイルのエントリ ポイントを取得し、プロセス パラメーター ブロックを作成し、そのプロセス ブロックをプロセス メモリに書き込みます (NtQueryInformationProcess -> ; RtlInitUnicodeString -> RtlCreateProcessParametersEx)

9. PEB 内のプロセス パラメーター ブロックを更新し、対象のプロセス オブジェクトのスレッドを作成し、悪意のあるコードを実行します (NtCreateThreadEx)

対策:

手順よりフック この手法は、主要な関数 (NtCreateThreadEx など) を判断することで検出できます。

要約

上記 3 つの手法の進化から、いくつかの傾向がわかります。

第一点は、メモリの隠蔽能力がますます強くなっているということで、当初は全く隠蔽していなかったものが、今では法的プログラムに沿ってメモリ上で動作するようになりました。

2 番目のポイントは、ペイロードがメモリに解放される手段の検出がますます困難になっているということです。当初、ペイロードはメモリに直接コピーされていました。現在、攻撃者はいくつかの機能 (TxF など) を使用できるようになりました。 ) リリースプロセスをさらに隠蔽します。

3点目は、最終段階の主要な関数はほとんど変更がなく、ペイロードの解放がどんどん隠蔽されていく場合でも、メモリ上に解放されて実行が呼び出されることになります。限られた数の主要な関数をフックすることで、最終的なペイロードをダンプする必要があります。

その他の関連チュートリアルの推奨事項: Web サーバーのセキュリティ

以上がMitre ATT&CK マトリックスの 3 つのプロセス インジェクション手法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:freebuf.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!