phoenix-power前回紹介した権限昇格の脆弱性を突いて、権限奪取するコードですが、そのコードを実行すると/etc/sudoersが編集されます。もし実行してしまった場合や/etc/sudoersの記述をミスしてしまった場合の修正方法について書きます。

コードは以下。内容は読んでみても分かるように、/etc/sudoersALL ALL=(ALL) NOPASSWD: ALLを追記して、sudo suを実行できてしまうコード。

1
$ echo python -c '"import os;os.write(3,\"ALL ALL=(ALL) NOPASSWD: ALL\")"'|DYLD_PRINT_TO_FILE=/etc/sudoers newgrp;sudo su

もし/etc/sudoersの記述をミスってしまうとsudoが実行できなくなってしまいます。これは割と有名で、通常はこのファイルは直接編集するのではなくvisudoで編集します。

しかし、復旧方法も簡単で、Linuxの場合は、単にマウントして/etc/sudoersを修正すればよいです。rootのSessionが残っていればそれを辿って、rootで編集します。

Macの場合は、rootというユーザーを有効にすることで復旧可能です。有効にする方法は以下のコマンドを使います。

1
$ dsenableroot

あとはcommand + shift + option + Qでログアウトして、rootでログイン後に/etc/sudoersを編集。