2

ここで提供されている*ようなシェルコードを脆弱なプログラムへのペイロードとして使用する場合、シェルはルートとしてどのように実行されますか? 特権がルートに昇格する方法について質問していますか? setuidシェルコードは、ユーザーを変更するための呼び出しや何かをしていないようです。

* http://www.tenouk.com/Bufferoverflowc/Bufferoverflow5.html

4

4 に答える 4

2

これらの例には、次のようなものがあります。

     mov $70, %al           #setreuid is syscall 70

setreuid(2)そのため、プロセスの実際のユーザー ID と有効なユーザー ID の両方を設定する syscallを使用しています。

   int setreuid(uid_t ruid, uid_t euid);
于 2011-04-15T00:54:09.933 に答える
1

シェルコードを実行するには、バッファ オーバーフローのような脆弱性が必要です。シェルコードには、実行中のプロセスとしてのすべての権利があります。そのため、コマンドのように root に設定されているバイナリや、デーモン プロセスpasswdなどのルートとして実行されているバイナリを悪用すると、攻撃者はルート アクセス権を取得します。cupsdカーネルもバッファ オーバーフローの影響を受ける可能性があり、ルート アクセスもこの方法で取得できます。

于 2011-04-15T16:34:31.560 に答える
0

まず、プログラムにroot権限を与える必要があります(chownとchmodをrootとして使用します)。ペイロードにはsetreuid()が必要です。他のユーザーがプログラムを悪用できるのであれば、それはあなたにルートを与えるでしょう。

于 2011-05-06T21:07:59.963 に答える