この質問のフォローアップ: これ以上、バッファオーバーフローを教える必要はありませんか?
私はIT研究者であり、セキュリティコースのインストラクターでもあります。最近、件名自体が年間に渡って関与していることから、バッファオーバーフロー、バッファオーバーフロー手法などの有効性(新しい対策、新しい手法など)について疑問が投げかけられています。私がリンクした質問は、バッファオーバーフローの概念の学習を全体として合理化しましたが、より具体的な領域を求めたいと思います。
要するに、シェルコードを書くことはまだ学ぶ価値がありますか?また、エッグハンティング、NOPそりなどの他のテクニックもあります。
はい、それはまだ学ぶ価値があります。エクスプロイト開発の学習の初期段階にいる人々は、すべてを知っているゲートから出てくることはありません。バッファオーバーフローを使用し、参照してシェルコードを記述して、pplの興味をそそり、プロのエクスプロイト開発者になるための足がかりとして使用することをお勧めします。あなたは決して知らない、あなたは次のエクスプロイト開発者の天才を教えているかもしれません、そしてシェルコード開発について学ぶことは新しい革新を引き起こすかもしれません。だからはい、それを教え続けます。その上それはまだ使用されています。
これまでのところ、答えは、シェルのコーディング方法を学ぶことで得られる知識の部分のみについて述べてきました。ただし、実際の攻撃を実行するにはシェルコードの知識が必要であり、その知識は攻撃者がステルス状態を維持するため、および特定の環境に固有のタスクを実行するために使用されます。
例を示すために、 iTrust Consulting APT Technical Backstage ドキュメントを参照してください。これにより、研究者が使用したサーバーを侵害する方法を段階的に詳しく説明します攻撃者。11ページでは、リバースコードとバインドシェルコードの両方がnetstatに表示されるため、独自のカスタマイズされたシェルコードを開発した方法の詳細を提供します。通信をカバーするために、バインドシェルコードをカスタマイズする必要がありました。シェルサーバーの知識がない場合、特定の要件に合わせてシェルコードをカスタマイズすることはできません。
シェルコーディングが依然として興味深い理由はいくつかあります。まず、オペレーティングシステムが低レベルでどのように機能するかを学習します。これらのことがどのように機能するかを十分に理解することは依然として重要です。
さらに、数値を見ると、バッファオーバーフローの脆弱性がまだ見つかっているため、関連性はあります。