私達は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としてログインするためにパスワードは必要ありません。
答え2
変更できるファイルの数が非常に多い「バックドアの取り付け」システムでは(編集が/etc/group
最も簡単ですが、これを達成するためのより微妙な方法がたくさんあります)。この保護はnoexec
ファイルを編集して無効にすることもできます/etc/sudoers
。NOEXEC
私は「sudo $editor」を安全にすることには依存しません。安全ではありません。代わりに sudoedit を使用してください。 (root権限を得るために多くのファイルを使用することができますので、非常に注意してください!)
また、sudoのnoexecラッパーは(ゆっくりと)動いているターゲットを追跡します(参照:sudo_noexec.c 履歴そしてfork()、vfork()、exec()、clone() の違い)。したがって、sudo_noexec
ラッパーは一部のUnixバリアントからユーザーを保護できない可能性があり、新しいシステム呼び出しを制限することはできません(エディタがこれらの新しいAPIを使用していると仮定)。
あなたの質問に具体的に答えるために、LD_PRELOAD
sudoプロフィールはenv_reset
デフォルトで有効になっています。新しい最小環境でコマンドが実行されるようにします。。それでそれが悪用されるかどうか疑問だ。
PS:私も同様の質問を投稿しました。https://unix.stackexchange.com/q/200411/16640!
答え3
問題は、「何が起こったのか」ではなく、「何が起こったのか」です。できない発生する。私は、vi
これは非常に強力なツールであり、権限のあるユーザーがそれを使用すると、攻撃と悪用のための多くの潜在的なパスが開かれることを意味します。
あなたがそれをしてはいけない理由は次のとおりです。なぜなら、あなたは大きくて古い家で「ネズミ穴を差し込む」遊びをしているからです。
すべての相互作用は「危険」です。攻撃経路:
- Shell Escape - NOEXECがお手伝いします。
- システム構成ファイルの編集 - などの「明白な」犯人がたくさんありますが、
/etc/passwd
CGIスクリプトをApacheインスタンスに挿入してそのパスの権限を高めるなど、これを行うことができる場所もあります。または、scrontabによって呼び出されるスクリプトを修正してくださいroot
。 (NFSがマウントされている場合は特に興味深いでしょう!) - システムスクリプトを編集します(例:content
/etc/rc
)。 - シンボリックリンク巡回攻撃 - シンボリックリンクを作成して
/etc/passwd
編集それすべての種類のファイルホワイトリストをバイパスします。
NOPASSWD: ALL
あなたが実際に依存するのは、ユーザーがルートのように愚かなことをしないということであるため、直接提供することもできます。
ちなみに、多くの人が好きな編集者を持っています。私は必要なときと最近はほとんどの時間をed
使いました。vim
しかし、誰もがそれらを愛しているわけではありません。これの最大の利点の1つは、sudoedit
何でも使用できることです。