
Fidelis Network and Deception - 不適切なファイルパーミッションによる権限昇格
本エクスプロイトは、米国政府による公開が承認されています。無制限配布のための文書化を承認してくださった軍人および政府関係者に特に感謝します。以下のOTR番号を参照してください。
日時: 20220516 0123H UTC
エクスプロイト作成者: Henry Reed, The Aerospace Corporation
ベンダーホームページ: https://fidelissecurity.com/
影響を受けるバージョン:
テスト環境:
CVE: CVE-2022-0997
CVE 説明: Fidelis Network and Deception の CommandPost、Collector、および Sensor コンポーネントにおける不適切なファイル権限により、CLI へのローカル管理者アクセス権を持つ攻撃者が影響を受けるスクリプトファイルを変更でき、その結果、ルートユーザーによる後続のログイン時に任意のコマンドがルートとして実行される可能性があります。この脆弱性は Fidelis Network and Deception バージョン 9.4.5 未満に存在します。この脆弱性に対処するためのパッチとアップデートが利用可能です。
/etc/profile.d/ ディレクトリ内のスクリプトはログイン時に実行されます。fidelis ユーザーは login.sh スクリプトを所有しており、そのため fidelis ユーザーはファイルを任意に変更できます。その後、ルートユーザーがログインすると、このスクリプトが実行され、攻撃者はルートとして任意のコードを実行できます。
影響を受ける Fidelis Deception または Fidelis Network のユーザーは、この脆弱性を修正するためにソフトウェアを更新することを推奨します。また、すべてのユーザーは、この脆弱性の影響を受けるかどうかに関わらず、初期設定後に Fidelis 製品へのシェルアクセスを無効にすることを推奨します。
何らかの理由でこれらのいずれも不可能な場合、脆弱なファイルに対する緩和策がこのドキュメントで説明されています。著者のテストの範囲では、ユーザーは緩和策を適用する前に脆弱性を利用して特権を昇格する必要があるようです。そのため、代わりに Fidelis の更新と SSH の無効化を強く推奨します。
テスト環境:
/etc/profile.d/login.sh の所有権設定が不適切であるため、複数の Fidelis 製品において fidelis ユーザーがルートユーザーと同等の特権に昇格できます。/etc/profile.d 内のスクリプトは、ユーザーがシェルを開くたびに実行されます。このファイルは fidelis ユーザーが所有しているため、fidelis ユーザーはスクリプトを任意に変更でき、ルートユーザーがログインした際にリバースシェルなどの任意のコードを実行できます。
$ vim /etc/profile.d/login.sh
この脆弱性は、Linux 特権昇格列挙スクリプト LinPEAS を使用して最初に発見されました。

赤いハイライトのテキスト「You have write privileges over /etc/profile.d/login.sh」に注意してください。赤でハイライトされた出力は、エクスプロイトが機能する可能性が高いことを示しています。
LinPEAS によって開示されたエクスプロイトの各潜在カテゴリには、nook.hacktricks.xyz にあるガイドへのリンクが付随しており、脆弱性を悪用する方法が説明されています。簡単に読んだ後、Python2 によるリバースシェルがこの脆弱性を悪用する最も簡単な方法であると判断されました。ただし、他のどのコードでも使用可能でした。新しいコードは if 文 if [[ $(whoami) = root ]] から始まります。

login.sh にリバースシェルを追加した後、手動でルートユーザーとしてログインし、ルートログインをシミュレートします。実際の環境では、攻撃者は管理者が手動でルートユーザーとしてログインするまで待機する必要があることに注意してください。

攻撃者はその後、ルート権限のリバースシェルを取得します。

/etc/profile.d/login.sh のユーザーとグループの所有者を root:root に変更し、/etc/profile.d/login.sh の「その他」カテゴリのユーザーに対して読み取りと実行の権限のみを許可することで、この脆弱性を緩和できます。
