権限昇格の脆弱性を自己点検するツール ” unix-privesc-check ” の話です。
ツールの名前について
” privesc ” は、 ” priv ” と ” esc ” に分かれて、
- priv = privilege 権限
- esc = escalation 昇格
つまり、権限昇格という意味です。
ツールの起動
02-Vulnerability Analysisにあります
使い方の説明が出てきます。オプションは無く、 ” standard ” と ” detailed ” の2つのモード選択のみです。
実行は普通にコマンドで実行します。
実行モード
以下のどちらかのモードで実行します。
標準モード
早い(12秒)
unix-privesc-check standard
詳細モード
遅いけど詳しい(3分20秒)
unix-privesc-check detailed
検証実行
異常が発見されると ‘ WARNING ‘ の警告が出ます。
つまり ‘ WARNING ‘ が出なければ合格です。
検査する項目
検証する項目と実際の実行結果画面です。
standardモード
バージョンは1.4
自分のファイルや設定の権限昇格のチェックを行います。
1) Recording hostname
2) Recording uname
3) Recording Interface IP addresses
4) Checking if external authentication is allowed in /etc/passwd
5) Checking nsswitch.conf for addition authentication methods
6) Checking for writable config files
7) Checking if /etc/shadow is readable
8) Checking for password hashes in /etc/passwd
9) Checking account settings
10) Checking library directories from /etc/ld.so.conf
11) Checking sudo configuration
12) Checking permission on swap file(s)
13) Checking programs run from inittab
14) Checking postogres trust relationships
15) Checking permissions on device files for mounted partitions
16) Checking cron job programs aren’t writable (/etc/crontab)
17) Checking cron job programs aren’t writable (/etc/spool/cron/crontabs)
18) Checking cron job programs aren’t writable (var/spool/cron/tabs)
19) Checking inetd programs aren’t writable
20) Checking xinetd programs aren’t writable
21) Checking home directories aren’t writable
22) Checking for readable sensitive files in home directries
23) Checking SUID programs
24) Checking for Private SSH Keys home directries
25) Checking for Public SSH Keys home directries
26) Checking for SSH agents
27) Checking for GPG agents
” 26) SSH agents ” と、 ” 27) GPG agents ” に、WARNINGが出ています。
28) Checking startup files (init.d/ rc.d) aren’t writable
29) Checking if running programs are writable
detailedモード
detailedモードもstandardモードと全く同じチェック項目の構成です。
但し実行時間が長く、情報量が多いです。
standard版に比べて特に、23) 28) 29) を念入りに調べていました。ここで新たにWARNINGが多数出ました。
検証結果
結果一覧表
警告数の欄は、A→Bの形式で表示しており、Aがstandardモード、Bがdetailedモードで検査した時の警告数です。
項目 | 備考 | 警告数 | |
1 | Recording hostname | ホスト名 | |
2 | Recording uname | カーネルなどの情報 | |
3 | Recording Interface IP addresses | インターフェースとIPアドレスの情報 | |
4 | Checking if external authentication is allowed in /etc/passwd | passwdファイルへの外部からの認証可否の検証 | 0→0 |
5 | Checking nsswitch.conf for addition authentication methods | 名前解決設定への認証方法追加の検証 | 0→0 |
6 | Checking for writable config files | 書込可能設定の検証 | 0→0 |
7 | Checking if /etc/shadow is readable | shadowファイル(パスワードハッシュ)の可読性の検証 | 0→0 |
8 | Checking for password hashes in /etc/passwd | パスワードファイル内のハッシュ値の有無のチェック | 0→0 |
9 | Checking account settings | アカウント設定の検証 | 0→0 |
10 | Checking library directories from /etc/ld.so.conf | ライブラリディレクトリの検証 | 0→0 |
11 | Checking sudo configuration | sudo設定の検証 | 0→0 |
12 | Checking permission on swap file(s) | swap file認証情報の検証 | 0→0 |
13 | Checking programs run from inittab | OS起動時の実行プログラム検証 | 0→0 |
14 | Checking postogres trust relationships | postogresデータベースのリレーション検証 | 0→0 |
15 | Checking permissions on device files for mounted partitions | デバイス上のファイル認証情報の検証 | 0→0 |
16 | Checking cron job programs aren’t writable (/etc/crontab) | /etc/crontab内のcron jobの書込不可の検証 | 0→0 |
17 | Checking cron job programs aren’t writable (/etc/spool/cron/crontabs) | /var/spool/cron/crontabs内のcron jobの書込不可の検証 | 0→0 |
18 | Checking cron job programs aren’t writable (var/spool/cron/tabs) | /var/spool/cron/tabs内のcron jobの書込不可の検証 | 0→0 |
19 | Checking inetd programs aren’t writable | スーパーサーバー(利用頻度の低いサービスの管理)の書込不可の検証 | 0→0 |
20 | Checking xinetd programs aren’t writable | スーパーサーバー(xinetd : inetdの新版)の書込不可の検証 | 0→0 |
21 | Checking home directories aren’t writable | ホームディレクトリの書込不可の検証 | 0→0 |
22 | Checking for readable sensitive files in home directries | 機密ファイルの可読性不可の検証 | 0→0 |
23 | Checking SUID programs | SUIDファイル(所有者の権限で実行できるファイル)の検証 | 0→37 |
24 | Checking for Private SSH Keys home directries | プライベートSSHキーの検証 | 0→0 |
25 | Checking for Public SSH Keys home directries | パブリックSSHキーの検証 | 0→0 |
26 | Checking for SSH agents | SSHの検証 | 1→1 |
27 | Checking for GPG agents | GPGの検証 | 1→1 |
28 | Checking startup files (init.d/ rc.d) aren’t writable | スタートアップファイルの書込不可の検証 | 0→13 |
29 | Checking if running programs are writable | 実行中プログラムの書込可能の検証 | 0→26 |
警告について
26) SSHと27) GPG
standardモードで実行の結果、脆弱性の警告である ‘ WARNING ‘ は、 ” 26) SSH-agent ” と ” 27) GPG-agent ” で見つかりました。
kali linuxのデフォルトの設定のままなのですが、どうやらSSHとGPGのエージェントは(権限昇格のセキュリティ上は)良くないようです。
detailモードで見つかった警告
detailedモードではそれに加えて、23)で37個、28)で13個、29)で26個の警告が追加で見つかりました。
23) Checking SUID programsのWARNING
このような警告が合計37個出ました。
28) Checking startup files (init.d/ rc.d) aren’t writableのWARNING
このような警告が合計13個出ました。
29) Checking if running programs are writableのWARNING
このような警告が合計26個出ました。
まとめ
unixの権限昇格検証ツール ” unix-privesc-check ” で脆弱性の検証を行いました。
補足
parrot os(SE) 6.1で ” unix-privesc-check ” の検証を行ったところ、WARNING数は以下の通りでした。
項目 | standardモード | detailedモード |
23)Checking SUID programs | 0 | 22 |
26)Checking for SSH agents | 1 | 1 |
28)Checking startup files | 0 | 21 |
29)Checking if running programs are writable | 0 | 33 |
kaliと違って、parrot上ではGPGは走っていないようです。
コメント