21

Reversing: Secrets of Reverse EngineeringHacking: The Art of Exploitation の両方を読み、読み終えました。どちらも独自の方法で光を当てていましたが、それらの中で提示された多くのテクニックや情報は、ある程度時代遅れになっているように感じます.

悪名高い Phrack の記事、Smashing the Stack for Fun and Profitが書かれた 1996 年は、私がコンピューター セキュリティの「黄金時代」と考える直前のことでした。

その後の数年間、エクスプロイトを作成するのは比較的簡単でした。被害者のマシンでバッファ オーバーフローを実行し、任意のシェル コードを実行するために必要なのは、C とアセンブリの基本的な知識だけでした。

簡単に言えば、物事ははるかに複雑になっています。現在、セキュリティ エンジニアは、Address Space Layout Randomization (ASLR)Data Execution Prevention (DEP)Stack Cookies、Heap Cookies などと戦わなければなりません。エクスプロイトの作成の複雑さは、少なくとも 1 桁増加しました。

最新の保護をオフにするための一連のフラグを使用してコンパイルしないと、今日見られるチュートリアルのバッファ オーバーラン エクスプロイトのほとんどをイベント実行することはできません。

エクスプロイトを作成する場合は、DEP を無効にする方法を考案し、シェル コードをヒープに何百回もスプレーして、シェルコードに近いランダムなメモリ位置を推測する必要があります。これらの脆弱性に関しては、はるかに安全なマネージド言語が現在使用されていることは言うまでもありません。

10 年前のシステムのおもちゃのエクスプロイトを書くことを超えて、セキュリティの知識を広げたいと考えています。上記で概説したすべての保護に直面してエクスプロイトを作成する際の問題に対処するのに役立つリソースを見つけるのに苦労しています。

最新のシステムのエクスプロイトを作成するという課題に対処するための、より高度で普及している論文、本、またはその他のリソースは何ですか?

4

4 に答える 4

7

あなたは「スタックを壊す」と言いました。研究的には、この記事は公開される前に時代遅れになっています。80年代後半のMorrisワームは、(指で触れたIIRCを悪用するために)それを使用しました。当時、すべてのサーバーは楽観的なCで記述されていたため、大きな混乱を引き起こしました。

数年(10年ほど)かかりましたが、次第に誰もが公開サーバーに関連するセキュリティ上の懸念をより意識するようになりました。

Cで記述されたサーバーは、多くのセキュリティ分析の対象となり、同時にサーバー側の処理は他の言語とランタイムに分岐しました。

今日、物事は少し異なって見えます。サーバーは大きなターゲットとは見なされません。最近、大きな魚であるのはクライアントです。クライアントをハイジャックすると、サーバーはそのクライアントの資格情報の下で操作できるようになります。

風景が変わりました。

個人的には、アセンブリゲームをプレイするのが散発的なファンです。私はそれらを実際に使用することはありませんが、これに参加したい場合は、Metasploitソースをチェックしてそれらのメーリングリストを読むことをお勧めします。彼らは多くのクレイジーなことをします、そしてそれはすべてオープンにあります。

于 2009-12-06T03:44:24.870 に答える
2

私は感銘を受けました、あなたは私のようなリートハッカーです. Web アプリケーションに移行する必要があります。過去数年間に発行された CVE 番号の大半は、Web アプリケーションに関するものでした。

次の 2 つの論文をお読みください。

http://www.securereality.com.au/studyinscarlet.txt

http://www.ngssoftware.com/papers/HackproofingMySQL.pdf

LAMP スタックを取得し、次の 3 つのアプリケーションをインストールします。

http://sourceforge.net/projects/dvwa/ (php)

http://sourceforge.net/projects/gsblogger/ (php)

http://www.owasp.org/index.php/Category:OWASP_WebGoat_Project (j2ee)

w3afをダウンロードしてマスターする必要があります。そのためのプラグインを作成します。w3af はすばらしい攻撃プラットフォームですが、バグが多く、DVWA に問題があり、グレースケールが破綻します。Acunetix は優れた商用スキャナーですが、高価です。

于 2010-01-26T08:56:22.853 に答える
1

「The Shellcoder's Handbook」を強くお勧めします。エクスプロイトの作成に関しては、これまで読んだ中で最高のリファレンスです。

エクスプロイトの作成に興味がある場合は、リバース エンジニアリングの方法を学ばなければならないでしょう。世界の 99% にとって、これは IDA Pro を意味します。私の経験では、Chris Eagle の「The IDA Pro Book」ほど優れた IDA Pro の本はありません。彼は、IDA Pro で行う必要があるほとんどすべてのことを詳しく説明しています。

OpenRCE.org には非常に優れたリバース エンジニアリング コミュニティがあります。そこにはたくさんの論文やさまざまな便利なアプリが用意されています。RECon と呼ばれる、年 2 回開催される優れたリバース エンジニアリング カンファレンスで、この Web サイトについて知りました。次回開催は2010年。

最近のほとんどの研究は、「容易に達成できる成果」になります。私が行った最近のセキュリティ カンファレンスでの講演の大部分は、モバイル プラットフォーム (iPhone、Android など) の脆弱性に関するものでした。モバイル プラットフォームでは、最新の OS で利用できる保護はほとんどまたはまったくありません。

一般に、OS には多数の保護機能が組み込まれているため、最新のエクスプロイトの作成方法を説明するリファレンスは 1 つもありません。たとえば、ヒープの脆弱性を発見したものの、Windows の厄介な新しい Safe Unlinking 機能が実行を妨げているとします。2 人の天才がこの機能を研究し、欠陥を発見したことを知っておく必要があります。

勉強頑張ってください。エクスプロイトの書き込みは非常にイライラしますが、非常にやりがいがあります!

ばっ!スパムのせいで、すべてのリンクを投稿できなくなっています。ごめん!

于 2009-12-06T04:11:44.900 に答える
1

DEP (データ実行防止)、NX (非実行)、および特に実行を禁止するその他のセキュリティ強化は、Ret2Lib や Ret2Esp などの別の悪用手法を使用して簡単に回避できます。アプリケーションがコンパイルされるとき、通常は他のライブラリ (Linux) または DLL (Windows) を使用してコンパイルされます。これらの Ret2* 手法は、メモリ内に存在する既存の function() を呼び出すだけです。

たとえば、通常のエクスプロイトでは、スタックをオーバーフローさせ、NOP スレッドのアドレス、シェルコード、またはシェルコードを含む環境変数を使用してリターン アドレス (EIP) を制御できます。スタックの実行を許可しないシステムでこのエクスプロイトを試みると、コードは実行されません。代わりに、リターン アドレス (EIP) がオーバーフローしたときに、system() や execv() などのメモリ内の既存の関数を指すことができます。必要なレジスターに、この関数が期待するパラメーターを事前に設定すると、スタックから何も実行しなくても /bin/sh を呼び出すことができるようになります。

詳細については、ここを参照してください。

http://web.textfiles.com/hacking/smackthestack.txt

于 2010-03-16T17:04:26.813 に答える