2

バッファ フロー エクスプロイトのデモを実行しようとしています。シェル コードを使用してスタックをオーバーフローさせ、sh セッションを取得したいと考えています。ここhttp://www.shell-storm.org/papers/files/432.pdfのチュートリアルに従って、まったく同じシェルコードを生成することさえできます。shellcode3.cしかし、チュートリアルのように使用してシェルコードを実行することはできません。私が得たのは常に「セグメンテーション違反」です。

「Red Hat Enterprise Linux AS release 4 (Nahant Update 4)」を使用しています。

同様の方法を使用して機能させる人はいますか?他のシステムに変更する必要がありますか?

4

3 に答える 3

1

セグメンテーション違反は、スタックをオーバーフローさせてクラッシュを引き起こしたことを意味します。EIP の正しいオフセットを見つけて、そこにシェルコードを配置する必要があります。シェルコードを適切な場所に配置していると確信している場合は、いつでも Metasploit を使用して、必要に応じてシェルコードを生成できます。また、最新の Linux バージョンではデフォルトでオンになっているさまざまなスタック オーバーフロー保護をオフにする必要があります。知りたいことは何でもGoogleが教えてくれます。http://www.corelan.beをチェックアウトしましたか? これは Windows エクスプロイトの開発用ですが、開始するのに適した場所です。

于 2011-12-03T22:18:56.907 に答える
1

使用する Linux は重要な要素です。スタックの全体構造は、OS によって異なります。適切なシェル コードには、バッファー内のコードの実行を停止する Null バイトが含まれていてはなりません。

"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\ xcd\x80\x31\xdb\x89\xd8\x40\xcd\x80\xe8\xdc\xff\xff\xff/bin/sh"

上記は適切なシェルコードで、わずか 46 バイトです。このサイトは、Red-hat スタックに関する構造やその他の情報を見つけるのに役立ちます。また、「gcc -fno-stack-protector -o out test.c」を使用して、execstack、Stack canaries などのすべてのタイプのスタック保護を無効にする必要があります。 '

于 2012-01-21T04:36:33.883 に答える
0

セグメンテーション違反が発生したためにスタックを上書きしたようです。gdb などのデバッガーを使用して、EIP レジスターの正確な内容とシェルコードのアドレスを調べます。それらは一致する必要があります。ジャンプが行われている場所とジャンプすべき場所を把握してみてください。これにより、より良いアイデアが得られます。

于 2011-12-05T19:29:26.337 に答える