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

This commit is contained in:
Translator 2024-06-03 13:36:25 +00:00
parent 400bd5034f
commit 78a7e9e1c1

View file

@ -2,12 +2,12 @@
<details>
<summary><strong>Aprenda hacking na AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
@ -50,7 +50,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" %}
Se **não tiver credenciais**, você pode tentar adivinhá-las. Você pode usar nmap ou metasploit. Tenha cuidado, você pode **bloquear contas** se falhar ao fazer login várias vezes usando um nome de usuário existente.
Se você **não tem credenciais**, pode tentar adivinhá-las. Você pode usar nmap ou metasploit. Tenha cuidado, você pode **bloquear contas** se falhar ao fazer login várias vezes usando um nome de usuário existente.
{% endhint %}
#### Metasploit (necessita de credenciais)
@ -153,13 +153,13 @@ SELECT * FROM sysusers
#### Obter Permissões
1. **Securável:** Definido como os recursos gerenciados pelo SQL Server para controle de acesso. Estes são categorizados em:
* **Servidor** Exemplos incluem bancos de dados, logins, endpoints, grupos de disponibilidade e funções do servidor.
* **Banco de Dados** Exemplos abrangem função do banco de dados, funções de aplicativo, esquema, certificados, catálogos de texto completo e usuários.
* **Esquema** Inclui tabelas, visualizações, procedimentos, funções, sinônimos, etc.
* **Servidor** - Exemplos incluem bancos de dados, logins, endpoints, grupos de disponibilidade e funções do servidor.
* **Banco de Dados** - Exemplos abrangem função do banco de dados, funções de aplicativo, esquema, certificados, catálogos de texto completo e usuários.
* **Esquema** - Inclui tabelas, visualizações, procedimentos, funções, sinônimos, etc.
2. **Permissão:** Associada aos securáveis do SQL Server, permissões como ALTER, CONTROL e CREATE podem ser concedidas a um principal. A gestão de permissões ocorre em dois níveis:
* Nível do **Servidor** usando logins
* Nível do **Banco de Dados** usando usuários
3. **Principal:** Este termo refere-se à entidade que recebe permissão para um securável. Os principais incluem principalmente logins e usuários de banco de dados. O controle sobre o acesso aos securáveis é exercido através da concessão ou negação de permissões ou incluindo logins e usuários em funções equipadas com direitos de acesso.
3. **Principal:** Este termo refere-se à entidade que recebe permissão para um securável. Principais incluem principalmente logins e usuários de banco de dados. O controle sobre o acesso aos securáveis é exercido através da concessão ou negação de permissões ou incluindo logins e usuários em funções equipadas com direitos de acesso.
```sql
# Show all different securables names
SELECT distinct class_desc FROM sys.fn_builtin_permissions(DEFAULT);
@ -232,7 +232,7 @@ sudo impacket-smbserver share ./ -smb2support
msf> use auxiliary/admin/mssql/mssql_ntlm_stealer
```
{% hint style="warning" %}
Você pode verificar se quem (além dos sysadmins) tem permissão para executar essas funções MSSQL com:
Você pode verificar se alguém (além dos sysadmins) tem permissão para executar essas funções MSSQL com:
```sql
Use master;
EXEC sp_helprotect 'xp_dirtree';
@ -258,7 +258,7 @@ Você pode ver como usar essas ferramentas em:
### **Escrever Arquivos**
Para escrever arquivos usando `MSSQL`, nós **precisamos habilitar** [**Procedimentos de Automação Ole**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), o que requer privilégios de administrador, e então executar alguns procedimentos armazenados para criar o arquivo:
Para escrever arquivos usando `MSSQL`, **precisamos habilitar** [**Procedimentos de Automação Ole**](https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/ole-automation-procedures-server-configuration-option), que requer privilégios de administrador, e então executar alguns procedimentos armazenados para criar o arquivo:
```bash
# Enable Ole Automation Procedures
sp_configure 'show advanced options', 1
@ -346,11 +346,11 @@ Para **mais exemplos** confira a [**fonte original**](https://blog.waynesheffiel
[**Seguindo este link**](../../pentesting-web/sql-injection/mssql-injection.md#mssql-user-defined-function-sqlhttp) para ver um exemplo.
### Outras maneiras de RCE
### Outras maneiras de obter RCE
Existem outros métodos para obter execução de comandos, como adicionar [procedimentos armazenados estendidos](https://docs.microsoft.com/en-us/sql/relational-databases/extended-stored-procedures-programming/adding-an-extended-stored-procedure-to-sql-server), [Assemblies CLR](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/sql/introduction-to-sql-server-clr-integration), [Trabalhos do Agente SQL Server](https://docs.microsoft.com/en-us/sql/ssms/agent/schedule-a-job?view=sql-server-ver15) e [scripts externos](https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-execute-external-script-transact-sql).
## Escalação de Privilégios MSSQL
## Escalonamento de Privilégios MSSQL
### De db\_owner para sysadmin
@ -445,9 +445,9 @@ Invoke-SqlServer-Escalate-ExecuteAs -SqlServerInstance 10.2.9.101 -SqlUser myuse
## Extraindo senhas dos Servidores Vinculados do SQL Server
Um atacante pode extrair senhas dos Servidores Vinculados do SQL Server das Instâncias SQL e obtê-las em texto claro, concedendo ao atacante senhas que podem ser usadas para obter uma posição mais forte no alvo. O script para extrair e descriptografar as senhas armazenadas para os Servidores Vinculados pode ser encontrado [aqui](https://www.richardswinbank.net/admin/extract\_linked\_server\_passwords)
Um atacante pode extrair as senhas dos Servidores Vinculados do SQL Server das Instâncias SQL e obtê-las em texto claro, concedendo ao atacante senhas que podem ser usadas para obter uma posição mais forte no alvo. O script para extrair e descriptografar as senhas armazenadas para os Servidores Vinculados pode ser encontrado [aqui](https://www.richardswinbank.net/admin/extract\_linked\_server\_passwords)
Alguros requisitos e configurações devem ser feitos para que esse exploit funcione. Primeiramente, você deve ter direitos de Administrador na máquina, ou a capacidade de gerenciar as Configurações do SQL Server.
Alguns requisitos e configurações devem ser feitos para que essa exploração funcione. Em primeiro lugar, você deve ter direitos de Administrador na máquina ou a capacidade de gerenciar as Configurações do SQL Server.
Após validar suas permissões, você precisa configurar três coisas, que são as seguintes:
@ -457,13 +457,13 @@ Após validar suas permissões, você precisa configurar três coisas, que são
Para automatizar essas configurações, [este repositório](https://github.com/IamLeandrooooo/SQLServerLinkedServersPasswords/) possui os scripts necessários. Além de ter um script em PowerShell para cada etapa da configuração, o repositório também possui um script completo que combina os scripts de configuração e a extração e descriptografia das senhas.
Para mais informações, consulte os seguintes links sobre esse ataque: [Descriptografando Senhas de Servidores de Banco de Dados MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
Para mais informações, consulte os seguintes links sobre esse ataque: [Descriptografando Senhas de Servidores de Links de Banco de Dados MSSQL](https://www.netspi.com/blog/technical/adversary-simulation/decrypting-mssql-database-link-server-passwords/)
[Resolvendo problemas de Conexão de Administrador Dedicado do SQL Server](https://www.mssqltips.com/sqlservertip/5364/troubleshooting-the-sql-server-dedicated-administrator-connection/)
## Escalação de Privilégios Local
## Escalação Local de Privilégios
O usuário executando o servidor MSSQL terá habilitado o token de privilégio **SeImpersonatePrivilege.**\
O usuário que executa o servidor MSSQL terá habilitado o token de privilégio **SeImpersonatePrivilege.**\
Provavelmente você será capaz de **escalar para Administrador** seguindo uma dessas 2 páginas:
{% content-ref url="../../windows-hardening/windows-local-privilege-escalation/roguepotato-and-printspoofer.md" %}
@ -556,8 +556,8 @@ Command: msfconsole -q -x 'use auxiliary/scanner/mssql/mssql_ping; set RHOSTS {I
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.