TryHackMe Writeup：Basic Pentesting

## 最初に

2人が作っているWebサイトの脆弱性をついていくRoomです

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/67b0bd89-57e4-52c7-d4a2-323a63b3fe68.png)



## Task1

### Deploy the machine and connect to our network

マシンを起動するだけです！


### Find the services exposed by the machine

初手安定のnmapを実施した結果です
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/d503f40e-af79-cf15-29d2-974938ceb6d7.png)


気になるのは以下ですね
- 22番：SSH
- 80番：HTTP
- 445番：SMB
- 8080番：HTTP-proxy


SSHとSMBはユーザー名・パスワードがわからないので置いておいて、HTTPで接続してみます。
メンテナンス中と記載されたWebページがでてきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/a0895db8-07c9-01d0-1e0b-b7f27bbc03f7.png)

8080番ポートを指定するとTomcatのページがでてきましたが、特に情報はなさそうですね、、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/bed00269-5ab4-53d0-8efc-97bb04703acc.png)




### What is the name of the hidden directory on the web server(enter name without /)?

gobusterをした結果、`development`というディレクトリがあるみたい
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/9eadff12-fa28-c970-f221-1ad76157ac72.png)


以下2つのファイルがありました
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/ad9f1fdc-2874-516b-2c48-9d3f5840e372.png)

dev.txt
>2018-04-23: I've been messing with that struts stuff, and it's pretty cool! I think it might be neat
to host that on this server too. Haven't made any real web apps yet, but I have tried that example
you get to show off how it works (and it's the REST version of the example!). Oh, and right now I'm 
using version 2.5.12, because other versions were giving me trouble. -K
2018-04-22: SMB has been configured. -K
2018-04-21: I got Apache set up. Will put in our content later. -J

j.txt
>For J:
I've been auditing the contents of /etc/shadow to make sure we don't have any weak credentials,
and I was able to crack your hash really easily. You know our password policy, so please follow
it? Change that password ASAP.
-K

JやKで始まるユーザー名があるのかな。。。

### User brute-forcing to find the username & password

回答する必要はないのですが、ブルートフォースをするみたいですね。

### What is the username?


ここでユーザー名・パスワードの両方わからない状態でSSHをブルートフォースをしてみたけど、時間がかかりすぎ、、、

わからくなったので、以下のWriteupを見ていると、`enum4linux`をつかうとあった？！

https://qiita.com/H4ppyR41nyD4y/items/4f0a534250cbceaae71f


enum4linuxは何なのか調べてみた
>enum4linuxツールは、Sambaを介して情報を抽出できるツールです。

引用元：https://whitemarkn.com/learning-ethical-hacker/enum4linux/


そういえば、445番ポート開いていた。。。

以下を実行するとユーザー名が手に入りました！
```
enum4linux -a 10.10.125.14
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/d9486027-e003-06d1-b003-b87043d2206a.png)


### What is the password?

ここはhydraを使います！
ユーザー名わかっているとはやいですね～～～
（回答欄が7文字だったので、rockyou.txtから7文字のものだけを通出しています(;^ω^)）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/5bcc6192-9eb6-61db-e40f-dee2781d0780.png)

これでパスワードが見つかります！！


### What service do you use to access the server(answer in abbreviation in all caps)?

[Find the services exposed by the machine](#find-the-services-exposed-by-the-machine)で開いていたポートの中から選びます！


### What is the name of the other user you found(all lower case)?


[What is the username?](#what-is-the-username?)のところで二つのユーザー名があったので、それが答えです！

### What is the final password you obtain?

janでログインした後にフォルダーを探っているとkayのフォルダーも見つけた
その中に`pass.bak`という明らかに怪しいファイルがあったが、アクセス権限がないため見れない。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/5841eade-f7fd-f18a-abf3-97327b4b4221.png)

おそらくこれが最後の回答になると思ったので、何とかしてkayのアカウントでsshしたい！

ということで、kayのフォルダーで.sshのフォルダーを見てみると
秘密鍵があった！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/679b0483-c1e2-b6fb-bbab-e4805716cd80.png)

これをscpでローカルに落としてきたが、パスワードかかっている（キャプチャ取ったのが最後だったので、横にあるファイルは見逃してください。。。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/d391dca3-9b9e-90e7-01ca-682e0c342432.png)

というわけで、JohnTheRipperでパスワードクラッキングしていきます
ただ、そのままでは秘密鍵をJohnTheRipperでは処理できないので、`ssh2john.py`で変換します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/ec3a4a2d-0d13-9648-ae0a-ec6ca9229068.png)


そして、rockyou.txtをパスワードリストとして実行すると秘密鍵のパスワードがとれました！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/de1680b3-59b4-8b5a-46cd-859ab3ea8c2b.png)

秘密鍵を使ってSSHしようとしても、エラーがでる。。。
調べてみると、秘密鍵`id_rsa`のアクセス権限が緩すぎることが原因みたいだったので、アクセス権限を所有者にのみしたら、うまくいった！！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2152468/b980657c-a7cd-a620-c045-7bee9a66caec.png)


あとはpass.bakをひらけば答えがでます


## さいごに

以下3つの学びがありました！

- SMBのポート（445番）が開いているサーバーにはenum4linuxでユーザー情報がとれる
- SSHはパスワードの他に秘密鍵でもアクセスできる（見落としていた。。）
- 秘密鍵はアクセス権限が緩すぎると使えなくなる