導入 このストーリーでは、ハードウェア仮想化 (HVM) を使用して、独自のフック コードの一部をカーネルから遠ざけ、他のカーネル フックの影響を受けにくくし、検出を困難にする方法について説明します。この記事のアイデアは、学校の動的な Linux カーネル アップデートから生まれたもので、多くのコードは bluepill からコピーされています。
第1章(アヴァロン)アヴァロンの夜明け システムのコントロールをめぐる駆動力間の競争が激化するにつれ、カーネル内にクリーンなスペースはほとんどなくなります。インライン フック、ssdt フックなどのさまざまなフックが若いカーネルを埋め尽くします。複雑な構造を持つもの、相互接続されたもの、検出と監視機能を備えたものなどがあります。これらのコントロール ポイントの制御を取り戻したい場合は、それらのフックを研究するためにいくらかの労力を費やす必要があり、元々単純なフックがドミノ効果を引き起こすことになります。 今では、ハードウェア仮想化テクノロジーにより、考え方を変えてこれらの問題を解決できるようになりました... 1. (アバロン) アバロンの構成 (アバロン) アバロン本体は以下の部分で構成されています。 1. Avlboot.sys (初期化されたばかりでフックによって汚染されていないシステム カーネルを後で使用するために保存するために使用されます) 2. Avalon.sys (擬似カーネル情報の読み取り、ハードウェア仮想化の有効化、擬似カーネルのロードに使用) 3. XXX.sys (ユーザーが Avlboot.sys で提供される情報を使用して特定のフック操作を実行するプログラム) 2. (アバロン) アバロンの真実 この記事で紹介するAvalon(アバロン)は、仮想化をベースにしたカーネルローディングフレームワークです。ハードウェア仮想化 (HVM) とフックによって汚染されないカーネル メモリを使用して、PC 内で 2 つのカーネルを同時に実行できるようにします。そして、Avalon は、sysenter_eip と idt 内の疑似カーネルを指す対応するアドレスを制御することによって制御を獲得します。 つまり、(Avalon) Avalon はハードウェア仮想化 (HVM) を使用して独自のカーネルをロードし、元のカーネルを上書きすることで、検出されない環境でカーネルを制御できるようになります。 実装原理を下図に示します。 擬似カーネルのベース アドレスを取得したら、独自のフック プログラムで hookport を介して ssdt と shadow ssdt を処理できます (strongod はフックした ssdt をバックアップする必要があるため、少し面倒です。AGP はアドレスをオフセットするだけで使用できます)。 3. アバロンの応用 実際、Avalon は sysenter フック + idt フックを偽装したものと見なすことができます。 (Avalon) Avalon はハードウェア仮想化 (HVM) に基づいているため、カーネル全体をオーバーライドし、実行時にカーネルをリアルタイムで置き換え可能にすることができます。 擬似カーネルが配置されているメモリ範囲はメモリ監視の対象ではなく、他のプログラムが直接アクセスできないため、擬似カーネルは他の干渉問題を心配することなく自由にフックできる安全なユートピアになります。 このタイプのフックには、従来のフックに比べて次のような利点があります。 1. 従来のメモリ監視の範囲外であり、検出が困難です。 2. システム内のオリジナルフックコードに干渉せず、高い互換性を備えています。 しかし、いくつかの欠点もあります。 1. オブジェクトフック、irpフック、およびカーネルメモリに依存しないその他のフックコードに直接干渉できない 2. システム全体はハードウェア仮想化 (HVM) に依存しており、ハードウェア デバイスに対して特定の要件があります。 第2章: ビジョンは現実になる 1. 純粋な初期化 まず、Avalonの初期化を実装しましょう。初期化は、カーネル情報の取得、疑似カーネルの構築、IDT 情報の保存、元の SYSENTER_EIP の取得という 4 つの部分で構成されます。 実装コードは次のとおりです。
初期化後、他のコンポーネントは Avlboot.sys にアクセスして疑似カーネル情報とカーネルのオリジナル情報を取得できます。 2. コピーされた仮想化 ここでは、Intel VT ハードウェア仮想化の手順を簡単に紹介します。 1. vt環境を確認する 2. vt機能を有効にする 3. 仮想マシンのステータスを保存するためにvtを入力します。 4. 傍受する必要がある項目を設定する 5. 仮想マシンを終了するときの戻りアドレスを設定する 6. 仮想マシンを起動し、傍受プロジェクトがトリガーされるのを待ちます。 7. 傍受プロジェクトが起動され、関連プロジェクトの処理ルーチンに入る 8. 仮想マシンを復元して実行を継続する ここに少しトリッキーなコードがあります:
3. 面倒な傍受処理 sysenterの扱い方: ハードウェア仮想化 (HVM) は sysenter 命令を直接インターセプトできないため、制御を取得するには他の方法しか使用できません。 これを行うには、次の 3 つの方法があります。 1. 割り込みまたは特権命令を使用して VM に入るには、kifastcallentery のヘッダーに cpuid、int3 などを書き込みます。 2. デバッグレジスタを使用してkifastcallenteryでハードウェア割り込みを実行し、その割り込みを使用してVMに入ります。 3. VMM に入った後、ゲストの sysenter_eip アドレスを直接変更し、msr の読み取りと書き込みを制御することで、msr にアクセスする他のプログラムを欺きます。 メモリ検出を回避し、デバッグ レジスタを最大限に活用するために、sysenter を実行した後、プロセスの実行方向を制御するために Avalon のソリューション 3 を選択しました。 コードの一部:
IDTリダイレクト処理方法: 1. IDTアドレスのなりすまし 2. IDTシミュレーション配信 最初のものは、sidt を傍受するスキームを指し、lidt 命令は偽造された idt アドレスを入力して訪問者を誤解させます (システムによる配信は比較的安定しています)。 2 番目の方法は、IDT の処理をシミュレートし、IDT を配信する独自のプログラムを作成することです。 最初のソリューションでは、特定のストレージ アドレスを分析するために逆アセンブリ エンジンを使用する必要があり、これが大きすぎるため、このバージョンの Avalon では 2 番目のソリューション、つまり idt シミュレーション配信を使用します。 コードの一部:
第3章 ユートピアの黄昏 1. (アバロン) アバロン検出 ハードウェア仮想化 (HVM) に基づくプログラムの場合、最初に思い浮かぶ方法は、ハードウェア仮想化を直接検出して対抗することです。 ハードウェア仮想化の主な検出は、efer 検出と vme 検出です。 割り込みを処理する vmm の場合は、割り込みの前後の時間差を計算することで仮想マシン内かどうかを判断することもできます。 もちろん、Avalonには他の検出方法もあります(xx文字は省略) 2. 今後のアップデート Avalon はまだ始まったばかりで、その機能はまだ完成していません。追加したい機能がまだたくさんあります: 1. カーネルをEPT(NPT)に移動して、まったく見えないようにします。 2. ring3 プログラムとの対話... 3. その他の隠れた機能 要約する Avalon は、ハードウェア仮想化アプリケーションの氷山の一角にすぎません。私たちが探索するのを待っているアプリケーションは他にもたくさんあります。私のレベルには限界があるので、今後も専門家のアドバイスを聞きながら頑張って勉強していきたいと思います。 ビンテスト環境は次のとおりです。 ボクサー2.4.5 ウィンドウズXP SP3 注: このビンは単なる単純なサンプルです。実機で実行する場合は青色で、ring0 の割り込みのみを対象とします。 ring3 には修正されていないバグが 3 つあります。 |
<<: AWS がプライベートクラウドの空に残っていた最後の暗雲を吹き飛ばす
>>: IT の進化を考察し、業界のデジタル変革を分析する | ITE 2018のハイライト
[51CTO.com からのオリジナル記事] 7 年間の努力と見事な変貌。 2012年以降、6年連続...
8月4日、Kaisa International GroupとTencent Cloudは戦略的協力...
ここにいる皆さんは、この活動が 2 年前に始まり、それがキックオフ活動であることをご存知でしょう。私...
vpsaceは2011年に設立されました。コロクロッシングとの関係が曖昧だと言う人が多いようですが、...
[[421897]]本日より、「Advanced Architect Series」の技術記事の更新...
ウェブサイトのトラフィックを増やすことは、多くの SEO 最適化担当者にとって常に究極の目標です。ウ...
私が初めて SEO について学んだのは、ボーイフレンドが、自分の Web サイトに外部リンクを貼り、...
広州の弁護士である何干林氏は、iPhone 6sの広告スローガン「唯一の違いは、すべてが違うというこ...
5月14日、Taobaoは最近規則を変更し、TaobaoのアプリケーションとツールがTaobaoの商...
クラウド コンピューティング サービスは、主にエネルギー効率の向上と持続可能な慣行の促進を通じて、I...
Meilishuoは、Weiboなどのソーシャルメディアを女性向けオンラインショッピングの分野に垂直...
[51CTO.com からのオリジナル記事] 大きな変動から利益を得ることは生物学の究極の能力です。...
親指を立てるまで、友達がどれだけ素晴らしいかはわかりません。WeChatモーメントで毎日どれだけの「...
私は2年間SEO最適化とプロモーションの仕事に従事し、工業化学、生活サービス、ウェディング業界、医療...
2018年6月20日、インターネット動画コラム「CamLogic」が最後の動画を更新しました。 「イ...