【TryHackMe】CTF collection Vol.1：Walkthrough

# 概要

TryHackMe「CTF collection Vol.1」のWalkthroughです。

https://tryhackme.com/r/room/ctfcollectionvol1

# Task2

## **Q1**.*「VEhNe2p1NTdfZDNjMGQzXzdoM19iNDUzfQ==」Feed me the flag!*

**Hint**.*base64*

`base64`でデコードしてフラグゲットです。

```
$ echo -n 'VEhNe2p1NTdfZDNjMGQzXzdoM19iNDUzfQ==' | base64 -d
THM{ju57_d3c0d3_7h3_b453} 
```

**A**.**THM{ju57_d3c0d3_7h3_b453}**

# Task3

画像をダウンロードしました。

![Find_me_1577975566801.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/d5d0be38-aaa1-1f9e-ec17-e25aa54ed7d8.jpeg)

## **Q1**.*I'm hungry, I need the flag.*

**Hint**.*EXIF tool*

`exiftool`で画像ファイルのメタデータをみます。

```
$ exiftool /media/sf_share/Find_me_1577975566801.jpg 
```

`Owner Name`項目にフラグが表示されました。

```
Owner Name                      : THM{3x1f_0r_3x17}
```

**A**.**THM{3x1f_0r_3x17}**

# Task4

## **Q1**.*It is sad. Feed me the flag.*

**Hint**.*Steghide*

`steghide`で内部に隠されたテキストファイルを抽出します。

```
$ steghide extract -sf /media/sf_share/Extinction_1577976250757.jpg 
Enter passphrase: 
wrote extracted data to "Final_message.txt".
```

`Final_message.txt`が抽出されたので閲覧してフラグゲットです。

```
$ cat Final_message.txt     
It going to be over soon. Sleep my child.

THM{500n3r_0r_l473r_17_15_0ur_7urn}
```

**A**.**THM{500n3r_0r_l473r_17_15_0ur_7urn}**

# Task5

## **Q1**.*Did you find the flag?*

**Hint**.*Highlight the text or check the html.*

問題文の中に白文字でフラグがありました。

![task5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/8c2dc48d-57c3-a6d3-63df-7ca762230241.png)

**A**.**THM{wh173_fl46}**

# Task6

## **Q1**.*More flag please!*

ダウンロードしたQRコードを読み込むとフラグが表示されました。

![MicrosoftTeams-image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/5fa4a824-3de4-d7df-5c74-09f3961328b1.png)

**A**.**THM{qr_m4k3_l1f3_345y}**

# Task7

## **Q1**.*Found the flag?*

ダウンロードしたファイルをバイナリエディタで見ると、フラグを発見しました。

![task7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/2b74daa0-f4d4-f8b5-4d79-0073338f372b.png)

**A**.**THM{345y_f1nd_345y_60}**

# Task8

## **Q1**.*Oh, Oh, Did you get it?*

**Hint**.*base58*

`base58`でデコードしてフラグゲットです。

```
$ echo -n '3agrSy1CewF9v8ukcSkPSYm3oKUoByUpKG4L' | base58 -d
THM{17_h45_l3553r_l3773r5} 
```

**A**.**THM{17_h45_l3553r_l3773r5}**

# Task9

## **Q1**.*What did you get?*

**Hint**.*Ceaser cipher*

`cyberchef`で`ROT13 Brute Force`をしてフラグを見つけました。

![task9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/f15d3c2b-1d7e-5f3c-a975-dcb550ae3369.png)

**A**.**THM{hail_the_caesar}**

# Task10

## **Q1**.*I'm hungry now... I need the flag*

**Hint**.*Check the html*

`task10`付近のHTMLにフラグが隠されていました。

![task10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/b6f1a230-a185-e85f-0fb5-066c2ac9ded7.png)

**A**.**THM{4lw4y5_ch3ck_7h3_c0m3mn7}**

# Task11

## **Q1**.*What is the content?*

**Hint**.*Check the PNG file header.*

PNGのマジックナンバー`89 50 4E 47`に置き換えます。

![task11 after.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/151103e4-f651-17b9-00a5-9efcb01d1a10.png)

画像が正しく表示されてフラグゲットです。

![task11_flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/eb3ff9bf-ef86-32f1-be46-931addd874b5.png)

**A**.**THM{y35_w3_c4n}**

# Task12

## **Q1**.*Did you found the hidden flag?*

**Hint**.*reddit.*

`intext:”THM” intitle:”tryhackme site:"reddit.com"`でルームが公開された2020年ごろに絞って検索しました。

![task12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/e7131ce9-b3bd-903b-7567-ceac590bf91a.png)

**A**.**THM{50c14l_4cc0un7_15_p4r7_0f_051n7}**

# Task13

## **Q1**.*Can you decode it?*

**Hint**.*binaryfuck*

`binaryfuck`という難解プログラミング言語があるらしいです。

> Binaryfuck is a spinoff of the most famous esoteric programming language Brainfuck, created by User:TastyToast. 

> Binaryfuck は、User:TastyToast によって作成された、最も有名な難解なプログラミング言語 Brainfuck のスピンオフです。
>> [Binaryfuck](https://esolangs.org/wiki/Binaryfuck)

下記サイトで実行できます。

https://www.dcode.fr/brainfuck-language

実行するとフラグが得られます。

![task13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/d2e8b2a2-48b3-9350-bd2b-054b72f94ba2.png)

**A**.**THM{0h_my_h34d}**

# Task14

## **Q1**.*Did you crack it? Feed me now!*

**Hint**.*S1 XOR S2*

`python`でXORを求めるコード書きました。

```task14.py
s1 = '44585d6b2368737c65252166234f20626d'
s2 = '1010101010101010101010101010101010'

s1_bytes = bytes.fromhex(s1)
s2_bytes = bytes.fromhex(s2)

result = bytes(a ^ b for a, b in zip(s1_bytes, s2_bytes))
print(result)
```

実行してフラグが得られました。

```
$ python task14.py 
b'THM{3xclu51v3_0r}'
```

**A**.**THM{3xclu51v3_0r}**

# Task15

## **Q1**.*Flag! Flag! Flag!*

**Hint**.*Check the PNG file header.*

`binwalk`でファイルを読み込むとzipファイルで中に`hello_there.txt`の存在を確認できました。

```
$ binwalk /media/sf_share/task15.jpg 

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0             0x0             JPEG image data, JFIF standard 1.02
30            0x1E            TIFF image data, big-endian, offset of first image directory: 8
265845        0x40E75         Zip archive data, at least v2.0 to extract, uncompressed size: 69, name: hello_there.txt
266099        0x40F73         End of Zip archive, footer length: 22
```

拡張子をzipに変更して解凍しテキストファイルを閲覧します。

```
$ cp task15.jpg ./task15.zip
$ unzip task15.zip         
Archive:  task15.zip
warning [task15.zip]:  265845 extra bytes at beginning or within zipfile
  (attempting to process anyway)
  inflating: hello_there.txt
$ cat hello_there.txt                  
Thank you for extracting me, you are the best!

THM{y0u_w4lk_m3_0u7}
```

フラグが得られました。

**A**.**THM{y0u_w4lk_m3_0u7}**

# Task16

## **Q1**.*What does the flag said?*

**Hint**.*Try stegsolve.*

下記サイトで画像を読み込ませるとフラグが見えました。

https://www.aperisolve.com/

![task16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/871f3810-922e-067c-271d-07a515e9790f.png)

**A**.**THM{7h3r3_15_h0p3_1n_7h3_d4rkn355}**

# Task17

## **Q1**.*What does the bot said?*

QRコードを読み取るとサンクラに繋がります。

https://soundcloud.com/user-86667759/thm-ctf-vol1

音声でフラグを言っているので聞き取ります。

**A**.**THM{SOUNDINGQR}**

# Task18

## **Q1**.*Did you found my past?*

**Hint**.*Wayback machine*

`Wayback Machine`にアクセスします。

https://web.archive.org/

指示のURLと期間で検索するとフラグが得られました。

![task18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/bc950f4c-568b-fbb9-0069-8177a33a8fa5.png)

**A**.**THM{ch3ck_th3_h4ckb4ck}**

# Task19

## **Q1**.*The deciphered text*

**Hint**.*Find the key of vigenere cipher*

cyberchefで`vigenere`を選択し、フラグフォーマットが分かっているので、それに合わせてkeyを一文字ずつ総当たりしました。

![task19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/80ce7f4b-5878-549f-b10d-d45e90fa6f43.png)

**A**.**TRYHACKME{YOU_FOUND_THE_KEY}**

# Task20

## **Q1**.*What is the flag?*

**Hint**.*dec -> hex -> ascii*

下記サイトで`decimal`->`hex`変換を行いました。

https://www.rapidtables.com/convert/number/decimal-to-hex.html

`54484D7B31375F6A7535375F346E5F307264316E3472795F62343533357D`という値を得られました。

![task20 part1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/1b07a0b5-3992-130a-d3af-655ad48712c0.png)

得られた値を`ascii`コードに変換するとフラグゲットです。

https://www.rapidtables.com/convert/number/hex-to-ascii.html

![task20 part2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/c7290ef7-d19d-8164-6850-1a04fd08f915.png)

**A**.**THM{17_ju57_4n_0rd1n4ry_b4535}**

# Task21

## **Q1**.*Did you captured my neighbor's flag?*

**Hint**.*Put it into stream. It will be much easier.*

`flag`という文字列で検索するとHTTP通信が見つかったので追跡します。

![search flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/282e2498-f20e-15d5-aab5-3277fef2dc2c.png)

レスポンスを確認するとフラグが得られました。

![task21 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/702733a7-ccd8-7d7c-05d7-65b3f798097e.png)

**A**.**THM{d0_n07_574lk_m3}**