CMesS
Область тестирования и использованные службы.
| IP/домен | Порт | Сервис | Сервис целевого сервера |
|---|---|---|---|
| localhost | 5901 | WinKexServer | - |
| localhost | - | Nmap Port Scanner | - |
| localhost | - | GoBuster Directory Scanner | - |
| localhost | - | Obsidian Notes | - |
| localhost | 8000 | Python HTTP Simple Server | - |
| localhost | - | john the ripper hash cracker | - |
| localhost | 80 | Python HTTP Simple Server | - |
| localhost | 1234 | NetCat listener for Reverse Shell (user) | - |
| localhost | 1337 | NetCat listener for Reverse Shell (root) | - |
| 10.10.215.34 | 80 | nginx Web Server | + |
Использованные файлы:
- linpeas.sh - Privilege Escalation Awesome Scripts SUITE new generation.
- hash.txt - файл для расшифровки хэша.
- root.sh - файл для повышения привеллегий.
- php.php - easy simple php web shell, с помощью которого мы получили Reverse Shell.
- user.txt - флаг.
- root.txt - флаг.
Порядок действий
1) Запуск openvpn для доступа; kex для того, чтобы сделать linux удобнее
kex --win && sudo openvpn lab_Kolya080808.ovpn2) Сканирование портов с помощью nmap.
Результаты:
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 d9:b6:52:d3:93:9a:38:50:b4:23:3b:fd:21:0c:05:1f (RSA)
| 256 21:c3:6e:31:8b:85:22:8a:6d:72:86:8f:ae:64:66:2b (ECDSA)
|_ 256 5b:b9:75:78:05:d7:ec:43:30:96:17:ff:c6:a8:6c:ed (ED25519)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-generator: Gila CMS
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
| http-robots.txt: 3 disallowed entries
|_/src/ /themes/ /lib/
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
3) Запуск dirsearch для поиска директорий.
- Результаты:
┌──(kolya080808㉿Nikolapc)-[~]
└─$ dirsearch -e extensions.txt -w directory-list-2.3-medium.txt -u http://cmess.thm
/usr/lib/python3/dist-packages/dirsearch/dirsearch.py:23: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import DistributionNotFound, VersionConflict
_|. _ _ _ _ _ _|_ v0.4.3
(_||| _) (/_(_|| (_| )
Extensions: extensions.txt | HTTP method: GET | Threads: 25 | Wordlist size: 220545
Output File: /home/kolya080808/reports/http_cmess.thm/_24-11-27_19-14-34.txt
Target: http://cmess.thm/
[19:14:34] Starting:
[19:14:35] 200 - 1KB - /about
[19:14:35] 200 - 1KB - /index
[19:14:35] 200 - 1KB - /blog
[19:14:36] 200 - 2KB - /01
[19:14:36] 200 - 2KB - /1
[19:14:36] 200 - 693B - /login
[19:14:36] 200 - 1KB - /category
[19:14:36] 200 - 1KB - /0
[19:14:36] 301 - 318B - /themes -> http://cmess.thm/themes/?url=themes
[19:14:36] 200 - 389B - /feed
[19:14:38] 200 - 693B - /admin
[19:14:38] 301 - 318B - /assets -> http://cmess.thm/assets/?url=assets
[19:14:39] 200 - 1KB - /search
[19:14:39] 200 - 1KB - /tag
[19:14:39] 200 - 1KB - /author
[19:14:39] 200 - 1KB - /Search
[19:14:39] 301 - 316B - /sites -> http://cmess.thm/sites/?url=sites
[19:14:40] 200 - 1KB - /About
[19:14:40] 301 - 312B - /log -> http://cmess.thm/log/?url=log
[19:14:40] 200 - 1KB - /Index
[19:14:40] 200 - 1KB - /tags
[19:14:40] 200 - 2KB - /1x1
[19:14:40] 301 - 312B - /lib -> http://cmess.thm/lib/?url=lib
[19:14:40] 301 - 312B - /src -> http://cmess.thm/src/?url=src
[19:14:42] 200 - 0B - /api
[19:14:46] 200 - 2KB - /001
[19:14:47] 500 - 0B - /cm
[19:14:52] 200 - 2KB - /1pix
[19:14:53] 200 - 0B - /fm
[19:14:53] 301 - 312B - /tmp -> http://cmess.thm/tmp/?url=tmp
[19:14:55] 200 - 2KB - /1a
[19:14:59] 200 - 2KB - /0001
[19:15:01] 200 - 2KB - /1x1transparent
[19:15:03] 200 - 1KB - /INDEX
[19:15:04] 200 - 2KB - /1px
[19:15:11] 200 - 2KB - /1d
[19:15:13] 200 - 2KB - /1_1
CTRL+C detected: Pausing threads, please wait...
Task Completed
4) Посмотрев на сайт, я зашел в тупик на странице /admin
Результат:

5) Что там вводить - нигде не написано. Я предположил, что нужно искать сабдомены:
Результат:

6) Добавляем его к /etc/hosts/ и смотрим на сабдомен:
Результат:

7) Заходим в админку и осматриваемся:
Результат:
Ура! Сможем загрузить реверс шелл)8) Загружаем php web shell и получаем reverse shell:

9) Читаем конфиг:
Результат:

10) Заходим в базу данных и смотрим пароль:
Результат:

11) С помощью John The Ripper взламываем пароль andre:
Результат:

12) Думаю, надо еще кое где поискать. И я нашел:
Результат:

13) Меняем пользователя, читаем User.txt и смотрим на интересную директорию:
Результат:

14) Просмотрим что в ней есть:
Результат:

15) Я думаю, что каждые несколько минут создается бекап этой папки. Тогда, попробуем что-то сделать:
Результат:

16) Получаем второй revshell:
Результат:

17) Читаем root.txt
Результат:

Найденные уязвимости
Information Disclosure
PoC:
(пункт 6)
CVSSv3 Score: 8.9 (Critical)
Описание:
Information Disclosure в данном случае связана с доступом всех пользователей к сабдомену dev.cmess.thm, где находятся девелопмент логи. Там же и находится новый пароль пользователя andre.
Воспроизведение уязвимости:
(пункт 5)
(пункт 6)
Рекомендации по устранению:
- Ограничьте доступ пользователей к сабдомену dev.*.
- Храните логи и пароли в другом месте, недоступном для остальных разработчиков.
- Не добавляйте на сайт пароли пользователей.
Insecure Temporary File Handling
PoC:
(пункт 16)
CVSSv3 Score: 10.0 (Critical)
Описание:
В ходе проведенного анализа системы было выявлено, что каждые две минуты в директории /tmp сохраняется файл формата .tar.gz, содержащий содержимое домашней папки пользователя. Это привело к утечке чувствительных данных и повышению привилегий (Privilege Escalation) на системе.
Воспроизведение уязвимости:
(пункт 15)
(пункт 16)
Рекомендации по устранению:
- Используйте безопасные расположения бэкапов.
- Шифруйте файлы до их сохранения.
- Настройте права доступа к этим файлам.
Необходима ли вам вообще постоянная архивация...?
Видео выполнения
- YouTube