【TryHackMe】Slingshot：Walkthrough

# 概要

TryHackMe「Slingshot」のWalkthroughです。

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

# Task1

## **Q1**.*What was the attacker's IP?*

Webサーバーにアクセスするとログイン画面が表示されるので、`Username: elastic`,`Password: raCK0W**BLlW66oNlKAk`でログインします。

![login page.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/a9993110-ceae-7c56-7557-4b679271c3b4.jpeg)

Elasticというサービスを利用していると分かります。

https://www.elastic.co/jp/

`Analytics`->`Duscover`ページに移動し右上のカレンダーマークから攻撃が観測された`2023 年 7 月 26 日`に設定します。
そうするとログが見られます。

![analytics discover.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/e98c9688-7dcf-428c-cf98-0f95fd072cde.jpeg)

左のバナーから`transaction.remote_address`をみると`10.0.2.15`から多くのリクエストが飛んできていると分かります。

![q1 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/80bcb5ef-45d2-4566-e96c-8249ad02f0e2.jpeg)

**A**.**10.0.2.15**

## **Q2**.*What was the first scanner that the attacker ran against the web server?*

`Sort Old-New`でソートします。

![q2 sort.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/553eb3a1-9e30-87a5-7f96-df2109e659a0.jpeg)

スキャンツールはUser-Agentをツール名に設定している場合があります。
左のバナーから`request.headers.User-Agent`を追加してログを見ていくと、`Nmap`の痕跡を発見しました。

![q2 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/692a6a07-6b44-62ee-bede-477407e85dc3.jpeg)

**A**.**Nmap Scripting Engine**

## **Q3**.*What was the User Agent of the directory enumeration tool that the attacker used on the web server?*

そのままログを見ていくと`Gobuster`の痕跡を発見しました。

![q3 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/a1a6bfd9-c4e3-69f6-7974-07d8109807cd.jpeg)

**A**.**Mozilla/5.0 (Gobuster)**

## **Q4**.*In total, how many requested resources on the web server did the attacker fail to find?*

`fail to find`なのでレスポンスのステータスコードが404の場合でフィルタリングします。
`response.status`から`404`を追加して数を集計できます。

![q4 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/73fad5bf-8645-36f2-b67e-022ea5b1b418.jpeg)

**A**.**1867**

## **Q5**.*What is the flag under the interesting directory the attacker found?*

レスポンスのステータスコードを`200`,攻撃者のIPアドレスでフィルタリングしURLを見ていくと、攻撃者がアクセスしたFlagのパスを見つけました。

![q5 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/9d085ebc-5b31-ca2d-ab82-a1e3ee723782.jpeg)

**A**.**a76637b62ea99acda12f5859313f539a**

## **Q6**.*What login page did the attacker discover using the directory enumeration tool?*

ディレクトリ列挙ツールの`Gobuster`でフィルタリングしてURLを見ていきます。

![q6 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/aed885ff-368a-719b-e3b7-64f5d23e302b.jpeg)

**A**.**/admin-login.php**

## **Q7**.*What was the user agent of the brute-force tool that the attacker used on the admin panel?*

`/admin-login.php`が分かったので、このパスでフィルタリングして`User-Agent`をみると使用されたツールが分かります。

![q7 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/9795f38a-7996-69aa-0cef-f4720e6b1bcc.jpeg)

**A**.**Mozilla/4.0 (Hydra)**

## **Q8**.*What username:password combination did the attacker use to gain access to the admin page?*

`/admin-login.php`,`Hydra`でフィルタリングし`response.status`コードを見ると`200`のコードが0.2%あると分かったので、`401`をNOTイコールでフィルタリングします。

![q8 response filter.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/406fffa7-9e82-8eaa-6f31-ad56575a53d0.jpeg)

そうすると一件のログがヒットしました。
右のボタンからJSON形式で内容を表示できます。

![q8 hit 1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/dfb61dd3-0c24-ec31-94cc-f586548d307a.jpeg)

`request.headers.Authorization`からBase64エンコードされた文字列を発見を発見しました。

![q8 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/23eb38d8-c216-8de4-dd03-638dfbf27360.jpeg)

デコードするとユーザー名とパスワードの組み合わせを発見できます。

```
$ echo -n "YWRtaW46dGh4MTEzOA==" | base64 -d
admin:thx1138
```

**A**.**admin:thx1138**

## **Q9**.*What flag was included in the file that the attacker uploaded from the admin directory?*

上部のフィルタリングフォームに`http.url : *upload*`を入力して`upload`に関係するパスでフィルタリングします。

![q9 filter.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/21f4e6f3-b5ce-a701-8330-16209d6e6073.jpeg)

`/admin/upload.php?action=upload`を見つけたので一番ひりのボタンから詳細を確認すると`request.body`からフラグを確認できました。

![q9 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/a1ee67d3-47b5-f617-9a9d-8eea71586126.jpeg)

**A**.**THM{ecb012e53a58818cbd17a924769ec447}**

## **Q10**.*What was the first command the attacker ran on the web shell?*

ログの内容から`cmd`パラメータでコマンドを実行していると分かったので、`http.url : *cmd*`で検索をかけます。

![q10 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/adb28891-6efb-43bd-3838-94095653b82c.jpeg)

**A**.**whoami**

## **Q11**.*What file location on the web server did the attacker extract database credentials from using Local File Inclusion?*

その他のログから相対パスでファイルを指定していると分かったので、`http.url : *../../*`で検索をかけます。

![q11 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/7709dd43-93c6-6bdb-c5cf-f12a4441ea34.jpeg)

**A**.**/etc/phpmyadmin/config-db.php**

## **Q12**.*What directory did the attacker use to access the database manager?*

データベースへのアクセスなので`http.url : *db*`で検索をかけます。

![q12 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/aea1261f-0f78-cb0e-2b89-0e33f9dcc1d1.jpeg)

**A**.**/phpmyadmin**

## **Q13**.*What was the name of the database that the attacker exported?*

エクスポートしているログを探すので`http.url : *export*`で検索をかけます。

![q13 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/b63a3c3f-f4a5-705a-568e-7952ea60bb7e.jpeg)

**A**.**customer_credit_cards**

## **Q14**.*What flag does the attacker insert into the database?*

DBにinsertしているので`http.url : *insert*`で検索しましたが、ヒットしませんでした。

![q14 insert no hit.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/a15b9ef4-2fb8-af9f-8cc8-e0041f7b2416.jpeg)

`http.url : *import*`で検索すると`/phpmyadmin/import.php`を発見しました。

![q14 get path.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/f650dc38-02a4-2fdd-cbc7-717ccaecc0c6.jpeg)

`request body`を抽出します。

![q14 request body.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/b3247d4c-76a9-f367-86aa-81a8a12a2bb2.jpeg)

`sql_query`をURLデコードします。

![q14 sql query.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/be9d3963-c48e-8866-4bed-e03d9b3dc012.jpeg)

インサートされた値がわかりました。

![q14 answer.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3005822/5fac91dd-b4ed-fe4a-9fd7-39d2edc911ab.jpeg)

**A**.**c6aa3215a7d519eeb40a660f3b76e64c**