【Linux権限昇格の基本編】侵入後にrootへ届くまでの思考|CTF思考フレームワーク P01

Linux権限昇格って、root を取るってこと?🐧

そうです。低権限ユーザーで侵入したあと、root(管理者)になるまでの『侵入後の本番』。SUID バイナリ、sudo 設定ミス、書き込み可能な cron job、SUID 経由の GTFOBins――無数のパスがあります。
Linux 権限昇格は、侵入後の必須スキル。LinPEAS・linpostexp・linux-smart-enumeration といった自動偵察ツールで、SUID・sudoers・cron・書き込み可能 systemd unit・SSH key を一気に列挙。GTFOBins の知識と組み合わせれば、root への昇格パスが見えてきます。
広告・PRを含みます。この記事にはアフィリエイトリンクが含まれます。掲載内容は編集方針に基づいて作成していますが、価格・在庫・キャンペーン内容はリンク先で最新情報を確認してください。

侵入してからが本番、ってよく聞くな…
この記事は、CTF思考フレームワーク Privesc編 P01。Linux 権限昇格の基本フロー(情報収集→候補絞り込み→exploit→検証)と、LinPEAS・GTFOBins の使い方、最初の root 取得体験を整理します。
PrivEsc編へようこそ。Web経由でshellは取れた、SSHパスワードは見つけた、SQLインジェクションでOSコマンド実行できた…そんな「とりあえず一般ユーザーで侵入後」のフェーズです。ここからroot/Administratorに昇格して初めて被害は最大化します🔐
Linux PrivEscの基本は「現状把握→怪しい設定の発見→既知テクニックに当てはめる」の三段ロケット。
先に意味を押さえておくと読みやすい用語です。
- CTF: セキュリティの練習問題を解く競技。必ず許可された環境だけで試します。
- SQLインジェクション: 検索欄などにSQLを紛れ込ませ、データベースを不正操作する攻撃です。
- 権限昇格: 一般ユーザーから管理者権限など、より強い権限を得ることです。
- SUID: Linuxで一時的に強い権限で実行できる仕組み。設定ミスが危険です。
難易度:★★☆(中級) / この枝ルートの記事は、必要な回だけ選んで読めます。
👀 観察フェーズ:まず何を見る?
人間がやると数十分かかりますが、LinPEAS / linux-smart-enumeration / linenum を一発実行すれば情報は数十秒で揃います。
🤔 仮説フェーズ:攻撃者は何を考える?
攻撃者はまず「sudo -l でパスワードなしに実行できるコマンドはないか」「root所有のSUIDバイナリにGTFOBins掲載のものは混じっていないか」を確認します。同時に、uname -a と /etc/os-release からカーネルバージョンを拾い、PwnKit(CVE-2021-4034)、DirtyPipe(CVE-2022-0847)、OverlayFS系(CVE-2023-0386)など、稼働中のディストリビューションで未パッチになりがちなローカルCVEに当てはまるかを頭の中で照合します。さらに /etc/cron.d や /etc/systemd/system 配下に一般ユーザーが書き込めるユニットやスクリプトが落ちていないかも疑い、定期的にroot権限で実行される処理に対して相対パス・PATH注入・シンボリックリンクで割り込めないかを検討します。
LinuxのPrivEscは「一般ユーザーから見える設定の異常」を探すゲーム。慣れると数分でroot到達できる環境もあります。
🔬 検証フェーズ:どうやって確かめる?
まず sudo -l で許可コマンドと NOPASSWD・SETENV の有無を確認し、find / -perm -4000 -type f 2>/dev/null で SUID バイナリを列挙、getcap -r / 2>/dev/null で capabilities 付きの実行ファイルを洗い出します。次に ls -la /etc/cron.* /etc/cron.d /var/spool/cron で定期実行ジョブの所有者と権限を確認し、pspy64 を流して実際に root が実行しているプロセスとパスを観測します。最後に uname -a と /etc/os-release を控えて Linux Exploit Suggester 2 や linux-exploit-suggester.sh にかけ、候補CVEを 2〜3 本に絞り込みます。ここまで終えてから初めて exploit を投入するのが、誤爆と侵害痕跡を最小化するコツです。
⚔️ 攻撃フェーズ:実際の手口
典型的な一発昇格としては、sudo -l に (ALL) NOPASSWD: /usr/bin/find が出てきたら sudo find . -exec /bin/sh \; -quit でその場で root シェル、というパターンが挙げられます。SUID では /usr/bin/pkexec が未パッチなら PwnKit、/usr/bin/python3.x に cap_setuid+ep が付いていれば python3 -c ‘import os; os.setuid(0); os.system(“/bin/sh”)’ でほぼ即時 root です。書き込み可能な cron スクリプトが root で動いていれば、そこに reverse shell や chmod u+s /bin/bash を仕込むだけで次回実行時に昇格できます。カーネル系では DirtyPipe や OverlayFS で /etc/passwd や SUID バイナリを書き換える流れになり、いずれも「観察フェーズで拾った1〜2行」が決定打になります。
CTF{check_sudo_suid_kernel_first_then_explore}
「sudo -l → SUID探索 → カーネルCVE」がLinux PrivEscの最初のチェックリスト。これだけで多くの環境はroot到達できます。
🛡️ 防御フェーズ:どう守る?
防御側は sudoers を最小権限で書き直し、NOPASSWD・SETENV・env_keep の付与を棚卸ししたうえで、Defaults requiretty や Defaults !env_reset を残したまま運用しないことが第一歩です。SUID バイナリは debsums や rpm -Va、find / -perm -4000 を定期実行して構成管理ツール経由でホワイトリスト化し、不要なものは即座に chmod u-s で剥がします。カーネル系 LPE は unattended-upgrades や dnf-automatic で security リポジトリだけでも自動適用し、更新後のリブートを Ansible や cron で強制する運用にすると未パッチ放置を減らせます。加えて auditd で execve と setuid 系のシステムコールをログ化しておくと、万一突破された際の侵害痕跡追跡に役立ちます。
🧪 検証用のLinuxラボを用意
権限昇格やエクスプロイトの練習は、許可を得た自分の検証環境で行うのがルール。💻 ConoHa VPSならUbuntuやCentOSをワンクリックで立てて、スナップショットも取れるので安心して試せます。
※ 上記は他社サービスへのリンクです。購入は各自でご判断ください。
⚠️ よくある落とし穴
よくあるミス。
- 「サービス用ユーザーだから安全」と思いSUIDバイナリを置きっぱなし。
- sudo NOPASSWD で less / vi / find 等を許可してしまう。
- カーネル更新後にリブートを忘れ、新カーネルが有効化されない。
- docker / lxd グループへの所属を「便利だから」と一般ユーザーにも付与。
- /etc/cron.d/ や /etc/systemd/system/ への書き込み権限を付与してしまう。
- PATH に . やユーザー書き込み可ディレクトリが含まれる。
🧰 ツール早見表
使う道具。
| ツール | 用途 | ひと言 |
|---|---|---|
| LinPEAS | Linux列挙の決定版 | 色付きで読みやすい |
| linux-smart-enumeration (lse) | 段階的列挙 | ノイズ少なめ |
| GTFOBins | 昇格テク事典 | ブラウザでバイナリ名検索 |
| Linux Exploit Suggester 2 | カーネルCVE推定 | 古い環境で活躍 |
| pspy | プロセス監視 | cron実行を捕まえる |
🎓 本気で学びたい人へ
Linuxとサーバ・セキュリティを仕事レベルで学びたい方へ。🎓 ササエルはインフラエンジニア向けスクールで、システム設計から防御設計まで広くカバーしています。
📚 もっと深く学びたい人へ
体系的に学ぶなら『ホワイトハッカー入門』、手を動かして覚えるなら『TryHackMeを使って身体で覚える攻撃手法と脆弱性』が定番。両方持っておくと、知識と実践の両輪で伸びます📚
📚 次に読みたい
- 【SUID・sudoers深掘り編】GTFOBinsの裏側を読み解く|CTF思考フレームワーク P02
- 【Windowsローカル権限昇格編】サービス・レジストリ・MSIを巡る攻防|CTF思考フレームワーク P03
- 【DNS編】サブドメイン列挙とCT logが暴く組織の地図|CTF思考フレームワーク R01
✍️ 学んだことを発信する
学んだことをブログにまとめるなら、高速で安価なConoHa WINGが使いやすいです。



