はじめに
Emiは最新の侵害、攻撃、防御について報告するサイバーセキュリティ・ジャーナリストです。この記事では、Linuxシステムでsudoの設定が誤っている可能性のある危険性を示すハッキングチャレンジの動画を紹介しています。
チャレンジの設定
講演者は、「Curly Fries」チャレンジがNCONのキャプチャー・ザ・フラグイベントの一般的なタスクだったと説明しています。このチャレンジにはSSH接続が必要で、NCONのインフラが停止しているため、講演者はローカルで実行しています。講演者には、チャレンジの環境にアクセスするためのユーザー名「user」とパスワード「user pass」が与えられています。
初期の調査と探索
講演者は「sudo -l」コマンドを使って、「user」ユーザーが実行できるコマンドを確認します。すると、「user」ユーザーが「fry」ユーザーとしてパスワードなしで「curl」コマンドを実行できることがわかります。講演者は「localhost:8000」の「health check」ファイルにアクセスしようとしますが、そのポートにサーバーが立っていないため、簡単なPythonのHTTPサーバーを立ち上げてそのファイルを提供します。
シンボリックリンクを使った特権昇格
講演者は「health check」ファイルから「fry」ユーザーの「.bash_history」ファイルへのシンボリックリンクを作成し、ユーザーの履歴コマンドを読み取ります。履歴にSSHパスワードが見つかったため、それを使って「fry」ユーザーとしてシステムにログインします。再び「sudo -l」を実行すると、「fry」ユーザーがパスワードなしで「root」ユーザーとして「curl」コマンドを実行できることがわかります。
rootとしての任意の読み書き
講演者は「file://」スキームを使って「/etc/shadow」ファイルを読み取り、すべてのユーザーのパスワードハッシュを表示します。さらに「curl」コマンドの「-o」オプションを使って、任意のデータをファイルに書き込む方法も示しています。より良い方法として、SSH公開鍵を「root」ユーザーの「authorized_keys」ファイルに追加し、パスワードなしでrootとして認証できるようにすることを提案しています。
チャレンジの完了
講演者はSSH公開鍵を生成し、「root」ユーザーの「authorized_keys」ファイルに追加することで、パスワードなしでrootユーザーとしてログインできるようになりました。「get_flag_random_suffix」コマンドを実行することでフラグを取得しました。このコマンドは1秒以内に応答する必要があり、対話型シェルの検証に使われています。講演者は、sudoの出力に「*」があると、特権昇格や任意の読み書きアクセスにつながる可能性があることを説明しています。
結論
この動画と記事は、Linuxシステムのsudo権限を適切に設定することの重要性を示しています。特権昇格攻撃を防ぐため、このような脆弱性を理解し対処することで、サイバーセキュリティ専門家はシステムのセキュリティを強化できます。
ポイント:
- 「Curly Fries」チャレンジは、Linuxシステムでのsudo設定の誤りの危険性を示しました。
- 講演者は「fry」ユーザーから「root」ユーザーへの特権昇格を実現しました。これは「curl」コマンドをパスワードなく実行できたことが原因でした。
- 講演者は「/etc/shadow」ファイルの読み取りなど、「root」ユーザーとしての任意の読み書きアクセスを実証しました。
- 講演者は、SSH公開鍵認証をより安全な方法として提案しました。
- このチャレンジは、特権昇格攻撃を防ぐためにsudo権限を適切に設定する重要性を示しました。