導入 このストーリーでは、ハードウェア仮想化 (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のハイライト
暗号通貨とブロックチェーンの分野では、業界関係者の間でよく話題になる新しい用語があります。それは、分...
処方薬のオンライン販売に関するタブーは、間もなく解除される見込みだ。 5月28日、国家食品医薬品監督...
今日の中国の電子商取引は、多くのプレーヤーによる戦いであると言えます。JD.comやTaobaoなど...
[[259132]] 2019 年第 1 四半期には、世界のクラウド業界で将来を決定づける大きな出来...
ウェブマスターがウェブサイトを最適化する際に、さまざまな問題に遭遇し、どこから始めればよいのかわから...
クラウド時代の発展とともに、データベースの物語は続きます。 Oracle の商用バージョンであれ、M...
ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービス2011 年のトップ 1...
[360 に関する最近のニュースは、他のインターネット企業に対する攻撃が減り、自社の開発に対する反省...
みなさんこんにちは。私は恵州 SEO の Ye Jianhui です。恵州 SEO ブログのブロガー...
hostodo.com は、ハロウィーン プロモーション (hostodo 割引コードを探す必要はあ...
「オパ カンナムスタイル」 このリズムを聞くと、つい一緒に踊りたくなる。 そう、これが神曲「カンナム...
BandwagonHost VPS は非常に人気があるため、偽のウェブサイトがたくさんあります。騙さ...
11月6日、テンセント副社長兼テンセントクラウド社長の邱月鵬氏が「テンセントテクノデベロッパー」カン...
2012年、Taobao AllianceプラットフォームがウェブマスターとTaobao顧客にもたら...
Hony Technology傘下の商業ブランドNewlineは本日、「Enjoy the Futu...