Ethical Hacking Academy · レッスン

SUIDとsudoの悪用

設定ミス

レッスン 2/413 ステップ

「SUIDとsudoの悪用」はCoddyKit上の無料Ethical Hacking Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはEthical Hacking Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Ethical Hacking Academyコースには全4レッスンが含まれています。

SUIDビット

SUID権限ビットが設定されていると、ファイルは起動したユーザーではなく、ファイルの所有者の権限で実行されます。所有者がrootの場合、SUIDバイナリはrootとして実行されます。これはpasswdのようなツールには便利ですが、悪用されると危険です。

-rwsr-xr-x  1 root root  /usr/bin/passwd
# the s in rws = SUID bit

SUIDバイナリの発見

すべてのSUIDファイルを列挙し、安全性が確認された基準と比較します。テキストエディタ、インタープリタ、カスタムバイナリなど、通常とは異なるものは候補になります。

find / -perm -4000 -type f 2>/dev/null

GTFOBins

GTFOBinsは、標準的なUnixバイナリにSUID権限やsudo権限が与えられた場合に、それらを悪用して制限を抜け出したり、権限を昇格したり、ファイルを読み書きしたりする方法をまとめたカタログです。発見したバイナリは必ずGTFOBinsで確認してください。

# gtfobins.github.io -> search the binary name

SUID付きfindの悪用

findにSUIDビットが設定されている場合、その-execオプションでrootとしてコマンドを実行でき、即座にrootシェルを取得できます。

find . -exec /bin/sh -p \; -quit
# -p preserves the elevated privileges

SUIDによるシェルエスケープ

多くのインタープリタやページャーはシェルを起動できます。SUIDが設定されたvim、less、awk、pythonを使うと、rootシェルに移行できる場合があります。

awk "BEGIN {system(\"/bin/sh -p\")}"
# or in less:  !/bin/sh

Sudoの設定ミス

sudo -lを実行して、許可されたコマンドを一覧表示します。悪用可能なバイナリをrootとして実行できるエントリや、NOPASSWDを使用するエントリは、すぐに利用できる権限昇格の機会です。対象のコマンドはシェルである必要はありません。GTFOBinsには、多くのコマンドから抜け出す方法が示されています。

sudo -l
# (ALL) NOPASSWD: /usr/bin/vim

エディタまたはページャーのSudo実行

sudo vim(またはless、more、man、nanoの派生コマンド)を実行できる場合、そのプログラム内からrootとしてシェルを起動できます。

sudo vim -c ":!/bin/sh"
# inside less:  sudo less file  ->  !/bin/sh

LD_PRELOADトリック

sudoがenv_keepを通じてLD_PRELOADを保持する場合、sudoコマンドの起動時にrootとして実行される悪意のある共有ライブラリを読み込めます。

sudo -l  # look for env_keep+=LD_PRELOAD
sudo LD_PRELOAD=/tmp/evil.so program

Sudoのバージョン脆弱性

特定のsudoバージョンには脆弱性があります。たとえば、Baron Samedit(CVE-2021-3156)のヒープオーバーフローや、-u#-1によるバイパス(CVE-2019-14287)などです。sudo --versionの結果を既知のCVEと照合してください。

sudo --version
# vulnerable < 1.9.5p2 -> Baron Samedit

カスタムSUIDバイナリ

開発者が、絶対パスを使わずに他のプログラムを名前で呼び出すカスタムSUIDヘルパーを提供することがあります。PATHを制御できる場合、その呼び出しを乗っ取ることができます。これは、次に扱うPATH悪用の手法につながります。

強化と倫理

防御側はSUIDバイナリを最小限にし、絶対パスを使用し、早い段階で権限を降格し、厳格なルールでsudoを最新の状態に保つ必要があります。テスターは、認可された範囲内でのみこれらを悪用してください。

クイックチェック

SUIDとsudoに関する知識を確認しましょう。

まとめ

SUIDとsudoの悪用について学びました。

  • SUIDはバイナリを所有者(多くの場合root)として実行する
  • 発見したバイナリをGTFOBinsで確認する
  • SUIDやsudoが設定されたfind、vim、awk、lessからシェルエスケープできる
  • LD_PRELOADやsudoのCVE(Baron Samedit)でも権限を昇格できる

次は、cronジョブとPATH悪用について学びます。

無料で開始

AI チューターと学ぶ Ethical Hacking Academy — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
31
レッスン
111

よくある質問

「SUIDとsudoの悪用」レッスンは無料ですか?

はい。「SUIDとsudoの悪用」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Ethical Hacking Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Ethical Hacking Academyコースには全4レッスンが含まれています。

「SUIDとsudoの悪用」で何を学びますか?

設定ミス ブラウザで直接実行するハンズオンコードでEthical Hacking Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Ethical Hacking Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのEthical Hacking Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「SUIDとsudoの悪用」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このEthical Hacking Academyレッスンでコードを書いて実行できますか?

はい。すべてのEthical Hacking Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 列挙
  2. SUIDとsudoの悪用
  3. CronジョブとPATH
  4. カーネルエクスプロイト
← Ethical Hacking Academyに戻る