私はMetasploit Frameworkについて数年間知っていましたが、実際にはそれについて知りませんでした。ネットワークに関してはある程度知識がありますが、私はプロではありません。 Metasploitでいくつかのテストを行ったところ、1つのことに興味がありました。 (間違っている場合は修正してください)
MicrosoftがInternet Explorerの新しいバージョンをリリースしているとしましょう。誰かが脆弱性(バッファオーバーフロー)を見つけ、Metasploit(Metasploitだけでなくそうです)を使用して、エクスプロイトを設定し、ペイロードを設定し、パラメーターを設定し、エクスプロイトを入力して、meterpreterシェルを取得しました。
Internet Explorerには脆弱性がありますが、exploitとpayloadの間の接続はどのように行われますか?私が知っていることから、バッファオーバーフローはアプリケーションをクラッシュさせるものにすぎませんが、アプリケーションのクラッシュからハッカーのコンピュータへの接続に戻るにはどうすればよいですか?
この脆弱性は、攻撃者が制御を取得できるようにするソフトウェアの弱点にすぎません。たとえば(バッファオーバーフローについて言及したため)、strcpyによる未チェックのバッファコピー、または攻撃者が制御する長さのmemcpyの使用。
エクスプロイトは、脆弱性を利用する実際のプロセスです。バッファオーバーフローの場合、これはスタックに保存されたEIPを上書きするプロセス、関数ポインタを上書きするプロセス、または実際にアプリケーションの制御を可能にするその他のプロセスです。
ペイロードは、エクスプロイトを使用して実行するものです。コマンド(シェルなど)を実行し、ネットワークポートを開いてリッスン(バインドシェル)、ユーザーに接続(リバースシェル)、または一般的に他のすべてを実行できます。したいかもしれません。多くの場合、Metasploitを使用している場合、Meterpreterはさまざまなタスク(スクリーンショット、コマンドの実行、データの抽出など)を実行できるように設計されているため、Meterpreterを起動する必要があります。
payload
とexploit
との間で混乱しているようです。
payload
を挿入してアクセスを許可するプログラムまたはツールです。例:Metasploitのエクスプロイトライブラリ
Payload
がexploit
が成功した後に実行されるバイトコード\x12\x64\x23\xAB
として考えます。例:シェルを生成するシェルコード:\xeb\x12\x31\xc9\x5e\x56\x5f\xb1\x15\x8a\x06\xfe\xc8\x88\x06\x46\xe2 \xf7\xff\xe7\xe8\xe9\xff\xff\xff\x32\xc1\x32\xca\x52\x69\x30\x74\x69 \x01\x69\x30\x63\x6a\x6f\x8a\xe4\xb1\x0c\xce\x81
exploitは、バッファオーバーフローのようなバグを使用して、ターゲットソフトウェアにコードpayloadを実行させます。
基本的に、ターゲットは自分のソフトウェアを実行します。エクスプロイトがやって来て実行され、最後にエクスプロイトがペイロードを実行します。バグによっては、ペイロードのサイズが制限される場合があります。
エクスプロイトはターゲットソフトウェアをクラッシュさせる可能性がありますが、クラッシュさせる必要はありません。これは、利用しているバグによって異なります。悪用の中には、何も起こらないままソフトウェアを続行させるものもあります。