私達はsudoeditを使用することがより安全であることを知っています*。しかし、sudoersで以下を使用すると、どのような悪いことが起こりますか?
Cmnd_Alias FOO = /bin/ed, /usr/bin/ed, /usr/bin/vi
foouser LOCALHOST = NOPASSWD: NOEXEC: FOO
「fouser」をルートプロンプトにエスケープできますか? - 間違いなくとは別に今、彼は/etc/shadowファイルを編集し、カスタムpwdハッシュをルートに送り、約3秒でルートになることができます。
たぶんLD_PRELOADとedを使う魔法がありますか?正確にはどうですか?
*=sudo edはrootとして実行されます。ただし、sudoeditは指定されたユーザーとして実行され、編集されたファイルは編集の前後にコピーされます。
ベストアンサー1
「fouser」をルートプロンプトにエスケープできますか?
おそらくfoouserはすべてのシステムバイナリを開き、まったく異なるものとして「編集」できるようになり、foouserが想像できるあらゆる種類のセキュリティホールを残すことができます。たとえば、setuidバイナリに対してこれを行うと、passwd
root以外のユーザーがそれを使用して意図しない特権タスクを実行できるため、特別な可能性があります。
これに加えて、/etc/shadowファイルを編集してカスタムパスワードハッシュを配置できるようになりました。
あるいは、ハッシュを削除すると、rootとしてログインするためにパスワードは必要ありません。