mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
Translated ['network-services-pentesting/pentesting-mssql-microsoft-sql-
This commit is contained in:
parent
8d612d43da
commit
b2ae8738c8
1 changed files with 25 additions and 25 deletions
|
@ -6,9 +6,9 @@
|
||||||
|
|
||||||
Drugi načini podrške HackTricks-u:
|
Drugi načini podrške HackTricks-u:
|
||||||
|
|
||||||
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
|
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
|
||||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||||
|
|
||||||
|
@ -22,11 +22,11 @@ Drugi načini podrške HackTricks-u:
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
## Osnovne informacije
|
## Osnovne Informacije
|
||||||
|
|
||||||
Sa [wikipedije](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
|
Sa [wikipedije](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
|
||||||
|
|
||||||
> **Microsoft SQL Server** je **relacioni sistem upravljanja bazama podataka** razvijen od strane Microsoft-a. Kao serverska baza podataka, to je softverski proizvod sa primarnom funkcijom skladištenja i dohvatanja podataka po zahtevu drugih softverskih aplikacija - koje mogu raditi ili na istom računaru ili na drugom računaru preko mreže (uključujući i Internet).\\
|
> **Microsoft SQL Server** je **relacioni sistem upravljanja bazama podataka** razvijen od strane Microsoft-a. Kao serverska baza podataka, to je softverski proizvod sa primarnom funkcijom skladištenja i dohvatanja podataka po zahtevu drugih softverskih aplikacija - koje mogu raditi ili na istom računaru ili na drugom računaru preko mreže (uključujući Internet).\\
|
||||||
|
|
||||||
**Podrazumevani port:** 1433
|
**Podrazumevani port:** 1433
|
||||||
```
|
```
|
||||||
|
@ -36,8 +36,8 @@ Sa [wikipedije](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
|
||||||
|
|
||||||
* **master baza podataka**: Ova baza podataka je ključna jer sadrži sve detalje na nivou sistema za instancu SQL Servera.
|
* **master baza podataka**: Ova baza podataka je ključna jer sadrži sve detalje na nivou sistema za instancu SQL Servera.
|
||||||
* **msdb baza podataka**: SQL Server Agent koristi ovu bazu podataka za upravljanje zakazivanjem upozorenja i poslova.
|
* **msdb baza podataka**: SQL Server Agent koristi ovu bazu podataka za upravljanje zakazivanjem upozorenja i poslova.
|
||||||
* **model baza podataka**: Deluje kao predložak za svaku novu bazu podataka na instanci SQL Servera, gde se sve izmene poput veličine, kolacije, modela oporavka i više odražavaju u novo kreiranim bazama podataka.
|
* **model baza podataka**: Deluje kao predlog za svaku novu bazu podataka na instanci SQL Servera, gde se sve izmene poput veličine, kolacije, modela oporavka i više odražavaju u novostvorenim bazama podataka.
|
||||||
* **Resource baza podataka**: Baza podataka samo za čitanje koja sadrži sistemski objekte koji dolaze sa SQL Serverom. Ovi objekti, iako fizički smešteni u Resource bazi podataka, logički su prikazani u sys šemi svake baze podataka.
|
* **Resource Database**: Baza podataka samo za čitanje koja sadrži sistemski objekte koji dolaze sa SQL Serverom. Ovi objekti, iako fizički smešteni u Resource bazi podataka, logički su prikazani u šemi sys svake baze podataka.
|
||||||
* **tempdb baza podataka**: Služi kao privremeno područje za skladištenje prolaznih objekata ili privremenih skupova rezultata.
|
* **tempdb baza podataka**: Služi kao privremeno područje za skladištenje prolaznih objekata ili privremenih skupova rezultata.
|
||||||
|
|
||||||
## Nabrojavanje
|
## Nabrojavanje
|
||||||
|
@ -50,10 +50,10 @@ nmap --script ms-sql-info,ms-sql-empty-password,ms-sql-xp-cmdshell,ms-sql-config
|
||||||
msf> use auxiliary/scanner/mssql/mssql_ping
|
msf> use auxiliary/scanner/mssql/mssql_ping
|
||||||
```
|
```
|
||||||
{% hint style="info" %}
|
{% hint style="info" %}
|
||||||
Ako **nemate pristupne podatke**, možete pokušati da ih pogodite. Možete koristiti nmap ili metasploit. Budite oprezni, možete **blokirati naloge** ako nekoliko puta pogrešno unesete pristupne podatke koristeći postojeće korisničko ime.
|
Ako **nemate** **poverenje** možete pokušati da ih pogodite. Možete koristiti nmap ili metasploit. Budite oprezni, možete **blokirati naloge** ako nekoliko puta neuspešno pokušate prijavljivanje koristeći postojeće korisničko ime.
|
||||||
{% endhint %}
|
{% endhint %}
|
||||||
|
|
||||||
#### Metasploit (potrebni pristupni podaci)
|
#### Metasploit (potrebne akreditacije)
|
||||||
```bash
|
```bash
|
||||||
#Set USERNAME, RHOSTS and PASSWORD
|
#Set USERNAME, RHOSTS and PASSWORD
|
||||||
#Set DOMAIN and USE_WINDOWS_AUTHENT if domain is used
|
#Set DOMAIN and USE_WINDOWS_AUTHENT if domain is used
|
||||||
|
@ -126,7 +126,7 @@ select sp.name as login, sp.type_desc as login_type, sl.password_hash, sp.create
|
||||||
CREATE LOGIN hacker WITH PASSWORD = 'P@ssword123!'
|
CREATE LOGIN hacker WITH PASSWORD = 'P@ssword123!'
|
||||||
EXEC sp_addsrvrolemember 'hacker', 'sysadmin'
|
EXEC sp_addsrvrolemember 'hacker', 'sysadmin'
|
||||||
```
|
```
|
||||||
#### Dobijanje korisnika
|
#### Dobijanje Korisnika
|
||||||
|
|
||||||
{% content-ref url="types-of-mssql-users.md" %}
|
{% content-ref url="types-of-mssql-users.md" %}
|
||||||
[types-of-mssql-users.md](types-of-mssql-users.md)
|
[types-of-mssql-users.md](types-of-mssql-users.md)
|
||||||
|
@ -152,7 +152,7 @@ SELECT * FROM sysusers
|
||||||
```
|
```
|
||||||
#### Dobijanje Dozvola
|
#### Dobijanje Dozvola
|
||||||
|
|
||||||
1. **Obezbeđenje:** Definisano kao resursi koje upravlja SQL Server za kontrolu pristupa. Oni su kategorisani u:
|
1. **Obezbeđenje:** Definisano kao resursi koje upravlja SQL Server za kontrolu pristupa. Oni su kategorizovani u:
|
||||||
* **Server** – Primeri uključuju baze podataka, prijave, krajnje tačke, grupe dostupnosti i serverske uloge.
|
* **Server** – Primeri uključuju baze podataka, prijave, krajnje tačke, grupe dostupnosti i serverske uloge.
|
||||||
* **Baza podataka** – Primeri obuhvataju ulogu baze podataka, uloge aplikacije, šemu, sertifikate, kataloge punog teksta i korisnike.
|
* **Baza podataka** – Primeri obuhvataju ulogu baze podataka, uloge aplikacije, šemu, sertifikate, kataloge punog teksta i korisnike.
|
||||||
* **Šema** – Uključuje tabele, poglede, procedure, funkcije, sinonime, itd.
|
* **Šema** – Uključuje tabele, poglede, procedure, funkcije, sinonime, itd.
|
||||||
|
@ -258,7 +258,7 @@ Možete videti kako koristiti ove alatke u:
|
||||||
|
|
||||||
### **Pisanje fajlova**
|
### **Pisanje fajlova**
|
||||||
|
|
||||||
Da biste pisali fajlove koristeći `MSSQL`, **potrebno je omogućiti** [**Ole Automation Procedures**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), što zahteva administratorske privilegije, a zatim izvršiti neke uskladištene procedure za kreiranje fajla:
|
Za pisanje fajlova korišćenjem `MSSQL`, **potrebno je omogućiti** [**Ole Automation Procedures**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), što zahteva administratorske privilegije, a zatim izvršiti neke uskladištene procedure za kreiranje fajla:
|
||||||
```bash
|
```bash
|
||||||
# Enable Ole Automation Procedures
|
# Enable Ole Automation Procedures
|
||||||
sp_configure 'show advanced options', 1
|
sp_configure 'show advanced options', 1
|
||||||
|
@ -287,19 +287,19 @@ Međutim, opcija **`BULK`** zahteva dozvolu **`ADMINISTER BULK OPERATIONS`** ili
|
||||||
# Check if you have it
|
# Check if you have it
|
||||||
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTER BULK OPERATIONS' OR permission_name='ADMINISTER DATABASE BULK OPERATIONS';
|
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTER BULK OPERATIONS' OR permission_name='ADMINISTER DATABASE BULK OPERATIONS';
|
||||||
```
|
```
|
||||||
#### Vektor zasnovan na grešci za SQLi:
|
#### Error-based vektor za SQLi:
|
||||||
```
|
```
|
||||||
https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))--
|
https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))--
|
||||||
```
|
```
|
||||||
### **RCE/Čitanje fajlova izvršavanjem skripti (Python i R)**
|
### **RCE/Čitanje datoteka izvršavanjem skripti (Python i R)**
|
||||||
|
|
||||||
MSSQL bi vam mogao omogućiti izvršavanje **skripti u Python-u i/ili R-u**. Ovaj kod će biti izvršen od strane **različitog korisnika** od onog koji koristi **xp\_cmdshell** za izvršavanje komandi.
|
MSSQL vam može omogućiti izvršavanje **skripti u Pythonu i/ili R-u**. Ovaj kod će biti izvršen od strane **različitog korisnika** od onog koji koristi **xp\_cmdshell** za izvršavanje naredbi.
|
||||||
|
|
||||||
Primer pokušaja izvršavanja **'R'** _"Hellow World!"_ **ne radi**:
|
Primer pokušaja izvršavanja **'R'** _"Hellow World!"_ **ne radi**:
|
||||||
|
|
||||||
![](<../../.gitbook/assets/image (393).png>)
|
![](<../../.gitbook/assets/image (393).png>)
|
||||||
|
|
||||||
Primer korišćenja konfigurisanog python-a za obavljanje nekoliko akcija:
|
Primer korišćenja konfigurisanog Pythona za obavljanje nekoliko akcija:
|
||||||
```sql
|
```sql
|
||||||
# Print the user being used (and execute commands)
|
# Print the user being used (and execute commands)
|
||||||
EXECUTE sp_execute_external_script @language = N'Python', @script = N'print(__import__("getpass").getuser())'
|
EXECUTE sp_execute_external_script @language = N'Python', @script = N'print(__import__("getpass").getuser())'
|
||||||
|
@ -315,9 +315,9 @@ GO
|
||||||
```
|
```
|
||||||
### Čitanje registra
|
### Čitanje registra
|
||||||
|
|
||||||
Microsoft SQL Server pruža **više proširenih uskladištenih procedura** koje vam omogućavaju da komunicirate ne samo sa mrežom već i sa sistemom datoteka i čak [**Windows registrom**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server)**:**
|
Microsoft SQL Server pruža **više proširenih uskladištenih procedura** koje vam omogućavaju da komunicirate ne samo sa mrežom već i sa sistemom datoteka i čak [**Windows registrom**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
|
||||||
|
|
||||||
| **Regularno** | **Svesno instance** |
|
| **Regularne** | **Svesne instanci** |
|
||||||
| ---------------------------- | -------------------------------------- |
|
| ---------------------------- | -------------------------------------- |
|
||||||
| sys.xp\_regread | sys.xp\_instance\_regread |
|
| sys.xp\_regread | sys.xp\_instance\_regread |
|
||||||
| sys.xp\_regenumvalues | sys.xp\_instance\_regenumvalues |
|
| sys.xp\_regenumvalues | sys.xp\_instance\_regenumvalues |
|
||||||
|
@ -342,13 +342,13 @@ Za **više primera** pogledajte [**originalni izvor**](https://blog.waynesheffie
|
||||||
|
|
||||||
### RCE sa MSSQL korisnički definisanom funkcijom - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
|
### RCE sa MSSQL korisnički definisanom funkcijom - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
|
||||||
|
|
||||||
Moguće je **učitati .NET dll unutar MSSQL sa prilagođenim funkcijama**. Međutim, **potrebno je `dbo` pristup** pa vam je potrebna veza sa bazom podataka **kao `sa` ili sa administratorskom ulogom**.
|
Moguće je **učitati .NET dll unutar MSSQL sa prilagođenim funkcijama**. Međutim, **potrebno je `dbo` pristup** pa vam je potrebna veza sa bazom podataka **kao `sa` ili ulogom Administratora**.
|
||||||
|
|
||||||
[Pogledajte ovaj link](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp) da vidite primer.
|
[Klikom na ovaj link](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp) možete videti primer.
|
||||||
|
|
||||||
### Druge metode za RCE
|
### Druge metode za RCE
|
||||||
|
|
||||||
Postoje i druge metode za izvršavanje komandi, kao dodavanje [proširenih uskladištenih procedura](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR skupova](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent poslova](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), i [spoljnih skripti](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
|
Postoje i druge metode za izvršenje komandi, kao dodavanje [proširenih uskladištenih procedura](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [CLR skupova](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [SQL Server Agent poslova](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15), i [spoljnih skripti](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
|
||||||
|
|
||||||
## MSSQL Eskalacija privilegija
|
## MSSQL Eskalacija privilegija
|
||||||
|
|
||||||
|
@ -452,10 +452,10 @@ Potrebno je izvršiti određene zahteve i konfiguracije da bi ovaj eksploit radi
|
||||||
Nakon provere dozvola, treba konfigurisati tri stvari, a to su:
|
Nakon provere dozvola, treba konfigurisati tri stvari, a to su:
|
||||||
|
|
||||||
1. Omogućiti TCP/IP na SQL Server instancama;
|
1. Omogućiti TCP/IP na SQL Server instancama;
|
||||||
2. Dodati start up parametar, u ovom slučaju, biće dodat trag fleg, a to je -T7806.
|
2. Dodati startni parametar, u ovom slučaju, biće dodat trag za praćenje, a to je -T7806.
|
||||||
3. Omogućiti udaljenu administratorsku vezu.
|
3. Omogućiti udaljenu administratorsku vezu.
|
||||||
|
|
||||||
Za automatizaciju ovih konfiguracija, [ovaj repozitorijum](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) ima potrebne skripte. Osim što ima powershell skriptu za svaki korak konfiguracije, repozitorijum takođe ima potpunu skriptu koja kombinuje konfiguracione skripte i izvlačenje i dešifrovanje lozinki.
|
Za automatizaciju ovih konfiguracija, [ovaj repozitorijum](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) ima potrebne skripte. Pored toga što ima powershell skriptu za svaki korak konfiguracije, repozitorijum takođe ima potpunu skriptu koja kombinuje konfiguracione skripte i izvlačenje i dešifrovanje lozinki.
|
||||||
|
|
||||||
Za dodatne informacije, pogledajte sledeće linkove u vezi sa ovim napadom: [Decrypting MSSQL Database Link Server Passwords](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: [Decrypting MSSQL Database Link Server Passwords](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
|
||||||
|
|
||||||
|
@ -556,9 +556,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/mssql/mssql_ping; set RHOSTS {I
|
||||||
|
|
||||||
Drugi načini da podržite HackTricks:
|
Drugi načini da podržite HackTricks:
|
||||||
|
|
||||||
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRETPLATU**](https://github.com/sponsors/carlospolop)!
|
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJATELJSTVO**](https://github.com/sponsors/carlospolop)!
|
||||||
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||||
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
|
||||||
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||||
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue