TryHackMe Writeup：Wonderland


# 最初に

不思議の国のアリスを題材にしたRoomですね～
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/60ec4551-6ca3-3a52-4ec9-3590bd40c5b4.png)

Mediumはまだしんどいので、Writeup見つつやっていきます。。！！


# Task 1

## Obtain the flag in user.txt

まずはNmapから

ポート22と80が開いていますね
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/44f3fe4b-53ff-3ff7-d381-3bb414a6e57f.png)


まずHTTP接続すると不思議の国のアリスのウサギが！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/7599eac8-48b5-9cb7-6950-228858f627ef.png)

Webページのソースを見てみると、JPEGファイルみたいです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/441251cf-5ebe-b014-59e7-002f055a5c42.png)


ということで、さっそくStegseekしてみたら隠しファイルがありました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/c5053372-a850-e995-ecf6-7a3a0af3ebed.png)

ファイルの中身は
`follow the r a b b i t`
ということで、今はどこに使うのかわからないですね、、、


dirbをしてみました


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/5bba8b1a-426c-4533-c6b0-cc48af8e6aa8.png)


`http://10.10.201.27/r/`のディレクトリにアクセスすると以下の文章がありました（不思議の国のアリスをちゃんと読んだことないですが、これは本の中で出てくる文章なんでしょうね、、、）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/1f2db954-d528-c902-754b-054366829399.png)




`/r/a`もあって、`follow the r a b b i t`から、ディレクトリを`rabbit`に合わせてみるとページがありました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/18e076b4-df3f-247e-ca7a-da650d0862d8.png)


ページのソースを見てみると、何やら怪しい文章もありますね
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/68fe443f-4ab7-8be6-def2-eb1ad93873e0.png)


明らかにログイン名とパスワードなので、SSHしてみたら、入れました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/f589a90c-86cf-48ad-0f9c-bb228f2255b7.png)



ただ、ここにはuser.txtはないみたい。。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/419f3ef5-47d8-50c0-d673-45a1f86930ff.png)

と思って、Writeupを見てみると、`root/user.txt`があるみたい。。。
確かに`/home/alice/root.txt`があったからな、、、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/aea51472-947f-d662-483d-f1e2c7c1ec8d.png)

これだと`/root`はアクセス権限ではじかれて中身が見れなかったのも納得。。！





## Escalate your privileges, what is the flag in root.txt?


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/4e1a1512-430d-e1e0-3912-4cbbd13a99cf.png)

`/home/alice/walrus_and_the_carpenter.py`の中身は以下で、ランダムな文章を出力します
```
import random
poem = """The sun was shining on the sea,
Shining with all his might:

...（中略）

And that was scarcely odd, because
They’d eaten every one."""

for i in range(10):
    line = random.choice(poem.split("\n"))
    print("The line was:\t", line)
```


実行結果です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/7e56c39d-3a09-1a77-2cf2-6e003ce168d1.png)

Pythonの中身を書き換えてリバースシェルをはろうかと思いましたが、pythonでの実行しかできないので、むりそうです。。。

他の方のWriteupを見てみると、`import random`とあるので、自分で`random.py`を作成するみたい(;^ω^)

ということで、以下の内容の`random.py`を作成
```
import os
os.system('/bin/sh')
```

そして、`sudo -l`ででてきていたコマンドを`sudo -u rabbit`をつけて実行するとrabbitとしてシェルが起動しました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/40ffda07-8a80-947d-5c61-6dd9d8bf0321.png)

`/home/rabbit`にSUIDビットのたった`teaParty`という実行ファイルがあります。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/1f05e04d-02e9-764f-46b2-2d55ef83da30.png)

実行してみると、dateコマンドで今の時間から1時間後を取得して出力しているみたいです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/c5d0cbdf-5504-c89b-e678-584baa10eb21.png)

Writeupにはここで、`/bin/date`よりも優先度が高いPATHを通すことで任意のdateコマンドを実行させると書いてあって、そんなん初心者に思いつくわけない！！と思って憤っていました（難易度はMediumなので、自業自得です笑）

`export PATH=/home/rabbit:$PATH`で`/home/rabbit`のPATHを通しました！
優先度も最も高いです！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/f3eb976f-97fd-0c2d-62dc-e1773203fb16.png)


以下の内容の`date`を作成しました
```
#!/bin/sh
/bin/sh
```

今のままだと実行できないので、、、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/edc99a40-eb50-0989-86a5-6d0c98ca9029.png)

chmodで権限を付与しました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/e6d46ac7-4f50-623c-febf-da049d70d578.png)


再度、`teaParty`を実行すると、hatterでログインできました！
（なぜhatterなのかは調べてみたけど、なぞでした、、、、）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/08c32932-0264-6539-20cb-09454d3f32af.png)

hatterのディレクトリにパスワードがありました！
これでhatterのアカウントでSSH接続できそうです！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/d07b9efb-bf69-399a-80c4-f3ae0d207e32.png)


WhyIsARavenLikeAWritingDesk?


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/6001f138-9708-9014-17b7-6282247f131e.png)



Writeupによると、hatterでログインはしたあとにケーパビリティでroot権限で実行できるファイルを探すみたい
ケーパビリティはroot権限で実行できることを細かくして、ファイルなどに割り振ることみたい（勉強不足。。。）

hatterアカウントだと下図のperlに関わるファイルは`cap_setuid+ep`とあり、SUIDのビットが立っているのと同じ状態みたい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/58a7d33c-88a7-0ed2-9ea9-4e470eb057a4.png)

ちなみに普通にSUIDのビットが立っているファイルを探しても、これらはでてこないのです。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/c8acac47-eb65-7fc0-281f-bf1b63fed461.png)



「`cap_setuid+ep` PERL」でGoogleで調べると、GTFOBinsのサイトがトップにwwww
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/43387a09-27cc-66c1-e669-98b1fde74530.png)


書いてあるとおりに実行したら、root権限がとれました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/a67ad201-57c1-ad19-3f7d-035fa7301765.png)

あとはaliceのフォルダーにあったroot.txtを開けばおわりです！


# 最後に


今回学んだことは以下

- Root権限で実行できることの確認方法は以下
    - `sudo -l`　（現在のユーザーで利用できる特権を探す）
    - `find / -perm -4000 -type f 2>/dev/null`　（SUIDがセットされているファイルを探す）
    - `getcap -r / 2>/dev/null`　（ケーパビリティがセットされているファイルを探す）
- importしているファイルと同じ名前のファイルを作成すれば、任意のプログラムを実行できる
- コマンドはPATHが通っているディレクトリの実行ファイルを実行しているだけだから、PATHを書き換えれば任意の実行ファイルを実行できてしまう



参考にしたサイト
https://tech.kusuwada.com/entry/2022/02/17/132755


# ボツ
画像がすごく多かったので、画像から情報を抜き出すのかな？と思って、いろいろやっていました。。。。
完全にこんなことしたな、、、っていう備忘録です。。。。

`http://10.10.201.27/img/`には3つの画像があったので、exiftoolで詳細情報を確認します

```
└─# exiftool alice_door.jpg 
ExifTool Version Number         : 12.76
File Name                       : alice_door.jpg
Directory                       : .
File Size                       : 1556 kB
File Modification Date/Time     : 2024:10:08 21:01:38+09:00
File Access Date/Time           : 2024:10:08 21:01:38+09:00
File Inode Change Date/Time     : 2024:10:08 21:01:38+09:00
File Permissions                : -rw-rw-r--
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
JFIF Version                    : 1.02
Exif Byte Order                 : Big-endian (Motorola, MM)
Orientation                     : Horizontal (normal)
X Resolution                    : 600
Y Resolution                    : 600
Resolution Unit                 : inches
Software                        : Adobe Photoshop CS3 Macintosh
Modify Date                     : 2008:01:20 01:49:10
Color Space                     : Uncalibrated
Exif Image Width                : 1962
Exif Image Height               : 1942
Compression                     : JPEG (old-style)
Thumbnail Offset                : 332
Thumbnail Length                : 12311
Current IPTC Digest             : 460cf28926b856dab09c01a1b0a79077
Application Record Version      : 2
IPTC Digest                     : 460cf28926b856dab09c01a1b0a79077
Displayed Units X               : inches
Displayed Units Y               : inches
Print Style                     : Centered
Print Position                  : 0 0
Print Scale                     : 1
Global Angle                    : 30
Global Altitude                 : 30
Copyright Flag                  : False
URL List                        : 
Slices Group Name               : De_Alice's_Abenteuer_im_Wunderland_Carroll_pic_03
Num Slices                      : 1
Pixel Aspect Ratio              : 1
Photoshop Thumbnail             : (Binary data 12311 bytes, use -b option to extract)
Has Real Merged Data            : Yes
Writer Name                     : Adobe Photoshop
Reader Name                     : Adobe Photoshop CS3
Photoshop Quality               : 12
Photoshop Format                : Progressive
Progressive Scans               : 3 Scans
XMP Toolkit                     : Adobe XMP Core 4.1-c036 46.276720, Mon Feb 19 2007 22:13:43
Create Date                     : 2008:01:20 01:47:53-05:00
Metadata Date                   : 2008:01:20 01:49:10-05:00
Creator Tool                    : Adobe Photoshop CS3 Macintosh
Format                          : image/jpeg
Color Mode                      : RGB
History                         : 
Instance ID                     : uuid:436B87178CC8DC11A35E97C268772518
Native Digest                   : 256,257,258,259,262,274,277,284,530,531,282,283,296,301,318,319,529,532,306,270,271,272,305,315,33432;75A2F56A7448AE47A140395308BA4302
DCT Encode Version              : 100
APP14 Flags 0                   : [14]
APP14 Flags 1                   : (none)
Color Transform                 : YCbCr
Image Width                     : 1962
Image Height                    : 1942
Encoding Process                : Progressive DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:4:4 (1 1)
Image Size                      : 1962x1942
Megapixels                      : 3.8
Thumbnail Image                 : (Binary data 12311 bytes, use -b option to extract)

```


```
# exiftool alice_door.png 
ExifTool Version Number         : 12.76
File Name                       : alice_door.png
Directory                       : .
File Size                       : 1844 kB
File Modification Date/Time     : 2024:10:08 21:01:28+09:00
File Access Date/Time           : 2024:10:08 21:01:28+09:00
File Inode Change Date/Time     : 2024:10:08 21:01:28+09:00
File Permissions                : -rw-rw-r--
File Type                       : PNG
File Type Extension             : png
MIME Type                       : image/png
Image Width                     : 1962
Image Height                    : 1942
Bit Depth                       : 8
Color Type                      : RGB with Alpha
Compression                     : Deflate/Inflate
Filter                          : Adaptive
Interlace                       : Noninterlaced
SRGB Rendering                  : Perceptual
Gamma                           : 2.2
Pixels Per Unit X               : 23622
Pixels Per Unit Y               : 23622
Pixel Units                     : meters
Image Size                      : 1962x1942
Megapixels                      : 3.8

```



```
└─# exiftool white_rabbit_1.jpg
ExifTool Version Number         : 12.76
File Name                       : white_rabbit_1.jpg
Directory                       : .
File Size                       : 1993 kB
File Modification Date/Time     : 2024:10:08 20:49:27+09:00
File Access Date/Time           : 2024:10:08 20:49:28+09:00
File Inode Change Date/Time     : 2024:10:08 20:49:27+09:00
File Permissions                : -rw-rw-r--
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
JFIF Version                    : 1.01
Resolution Unit                 : inches
X Resolution                    : 594
Y Resolution                    : 594
Image Width                     : 1102
Image Height                    : 1565
Encoding Process                : Baseline DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:2 (2 1)
Image Size                      : 1102x1565
Megapixels                      : 1.7

```

`binwalk`してみると、結構でてきました笑

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/4c74e331-b239-bf82-8908-00261ebca5ea.png)


PNGファイルからはZLIBファイルという圧縮ファイルがでてきました。
`zlib-flate`コマンドで解凍してみましたが、バイナリファイルでよく分からない。。。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/aef2f582-9066-b0e9-bcab-cb034cc5beaa.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/668c1fe5-2b46-830b-e76c-982bba5ccfab.png)


JPEGの方はなぜか抽出されなかったので、`dd`コマンドで抽出します

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/ebdb8eaa-3f0b-a158-7213-e9f05f9e5d6a.png)


新しく抽出したファイルにStegseekやBinwalkをしてみたが、特になにも得られなかった。。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/88f1e1a7-b4d9-bbbe-1612-b0b5609bb26e.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/9d5511ed-79e7-9ffc-6841-a430b22c48e1.png)


XMLファイルは最後に文字化けしていたので、その部分を消したら、ブラウザで開けましたが、特に情報になりそうなことはなかったです。。。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/856283d2-64fa-384d-ebad-1790ffeda50d.png)