Се­год­ня вся лаба пос­вящена пен­тесту сер­вера Microsoft SQL. Про­ведем раз­ведку, затем шаг за шагом прод­винем­ся к ком­про­мета­ции домен­ной учет­ной записи. По дороге раз­берем перех­ват NTLM-хешей, генера­цию Kerberos silver ticket и нес­тандар­тное исполь­зование сер­верных при­виле­гий SQL Server для локаль­ного повыше­ния прав вплоть до пол­ного зах­вата сис­темы.

На­ша цель — получить пра­ва супер­поль­зовате­ля на машине Signed с учеб­ной пло­щад­ки Hack The Box. Уро­вень слож­ности задания — сред­ний.

warning

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

 

Разведка

 

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

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

10.10.11.90 signed.htb

На этот раз, помимо IP-адре­са машины, нам дают и учет­ные дан­ные к служ­бе MSSQL с пра­вами поль­зовате­ля домена.

Информация о машине
Ин­форма­ция о машине

За­пус­каем ска­ниро­вание пор­тов.

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

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

Са­мый извес­тный инс­тру­мент для ска­ниро­вания — 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).

Под­робнее о работе с Nmap читай в статье «Nmap с самого начала. Осва­иваем раз­ведку и ска­ниро­вание сети».

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

При ска­ниро­вании мы наш­ли все­го один откры­тый порт — 1433. На нем кру­тит­ся служ­ба управле­ния базами дан­ных Microsoft SQL Server 2022.

 

Точка входа

Про­верим выдан­ные нам учет­ные дан­ные на MSSQL с помощью NetExec.

nxc mssql 10.10.11.90 -u scott -p 'Sm230#C5NatH' --local-auth
Результат проверки учетных данных
Ре­зуль­тат про­вер­ки учет­ных дан­ных

Под­клю­чаем­ся с помощью скрип­та mssqlclient.py из набора Impacket и про­буем вклю­чить про­цеду­ру xp_cmdshell, что­бы выпол­нять сис­темные коман­ды через шелл.

mssqlclient.py scott:'Sm230#C5NatH'@10.10.11.90
enable_xp_cmdshell
Результат выполнения команды
Ре­зуль­тат выпол­нения коман­ды

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

enum_logins
enum_links
enum_impersonate
Проверка конфигураций MSSQL
Про­вер­ка кон­фигура­ций MSSQL

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии