OpenBSDプロジェクト
Xorgは、Linuxで使用されている非常に有名なXウィンドウシステムです。これは、X11標準を使用するグラフィカルユーザーインターフェースであり、X11標準は通信プロトコルです。 Xorgは、現在活発に開発されていないXFree86プロジェクトから分岐しました。
特権昇格の悪用
1.19.0から1.20.3までのすべてのXorgX11サーバーバージョンは、-modulepathおよび-logfileオプションに存在するパーミッションチェックの欠陥に対して脆弱です。これにより、権限のないユーザーはサーバーを起動したり、権限が昇格した状態で任意のコードを実行したりできるようになります。
研究者は、ロードされたエクスプロイトでCRONスクリプトを実行すると、SELinuxがそれを強制することを発見しました。 crontab.oldバックアップファイルが作成されます。これは基本的にMetasploitモジュールに置き換えられ、cronデーモンを実行するためのコマンドと命令を含む新しいファイルが追加されます。悪用に失敗すると、crontabが破損する可能性があります。 Xorgには、エクスプロイトが機能するためのSUID権限も必要です。これは、以下のコードスニペットから確認できます。
#Linuxチェック
uname = cmd_exec“ uname”
unameの場合=〜/ linux / i
vprint_status「Linuxの追加チェックの実行」
if datastore [‘ConsoleLock’] user = cmd_exec“ id -un”
存在しない限り? 「/ var / run / console /#{user}」
vprint_error「#{user}のコンソールロックがありません」
CheckCode :: Safeを返す
終わり
vprint_good「#{user}のコンソールロック」
終わり
selinux_installedの場合?
selinux_enforcingの場合?
vprint_error「Selinuxは強制しています」
CheckCode :: Safeを返す
終わり
終わり
vprint_good「Selinuxは問題ではありません」
終わり
#suidプログラムチェック
xorg_path = cmd_exec“ command -v Xorg”
xorg_path.include?(“ Xorg”)でない限り
vprint_error「Xorg実行可能ファイルが見つかりませんでした」
CheckCode :: Safeを返す
終わり
vprint_good「#{xorg_path}で見つかったXorgパス」
setuidでない限り? xorg_path
vprint_error「Xorgバイナリ#{xorg_path}はSUIDではありません」
CheckCode :: Safeを返す
終わり
vprint_good「Xorgバイナリ#{xorg_path}はSUIDです」
テスト方法
このエクスプロイトは4人の研究者によって開発されました–
- Narendra Shinde –発見と悪用
- Raptor-0xdea –cronの変更されたエクスプロイト
- Aaron Ringo –Metasploitモジュール
- Brendan Coles –Metasploitモジュール
これは、OpenBSD 6.3、6.4、およびCentOS 7(1708)でテストされました。 Packetstormのメモによると、デフォルトでインストールされているCentOSでは、ユーザーのセッションに対してコンソール認証が必要になります。
Xorgの使用規模を考えると、これは深刻な脆弱性です。このエクスプロイトが機能するにはいくつかのプリセットが必要ですが、プロの環境には存在しない可能性があります。
タグ CentOS OpenBSD Xorg