ルートEUIDからルートUIDを取得します。

ルートEUIDからルートUIDを取得します。

現状はこんな感じです。 「user1」と「root」という2人のユーザーを持つ仮想マシンがあります。ユーザー "user1" は uid=1000 の sudoer ではなく通常のユーザーで、root は uid=0 の一般 root ユーザーです。

user1がシステムの特定の脆弱性を介してeuid = 0を取得する可能性がありますが、彼のuidはまだ1000であると仮定します。これは彼にいくつかの基本的な能力を提供しますが、すべてではありません。たとえば、/rootにアクセスするとルートがそうするように動作しますが、「sudo」または「su」を実行するとEUIDではなくUIDに基づいているように見えます。

私の質問は:euid = 0なので、バイナリをアップロードしたり/etc/shadowまたは/etc/passwdを変更してuidを0に切り替える必要がないエレガントな方法はありますか?メソッドが基本的に実行され、特定のプログラム(gccなど)があると仮定しない場合は良いでしょう。

これまではどれがかなり良いかを理解できますが、python -c 'import pty; import os; os.setuid(0); pty.spawn("/bin/bash")'これはPythonがシステムにインストールされていると仮定しています。より良い提案がありますか?

答え1

これは多くの基本構成に適用されます。

perl -MEnglish -e '$UID = 0; $ENV{PATH} = "/bin:/usr/bin:/sbin:/usr/sbin"; exec "su - root"'

これでuidが設定され、ルートされます。

イルカチョから借りました。

関連情報