
Um kit de ferramentas C# para MS SQL projetado para reconhecimento ofensivo e pós-exploração.
SQLRecon é um kit de ferramentas para Microsoft SQL Server projetado para reconhecimento ofensivo e pós-exploração. Para informações detalhadas sobre como usar cada técnica, consulte a wiki.
Você pode baixar uma cópia do SQLRecon na página de releases. Alternativamente, sinta-se à vontade para compilar a solução você mesmo. Isso deve ser tão simples quanto clonar o repositório, clicar duas vezes no arquivo da solução e compilar.
Guia de prevenção, detecção e mitigação também foi fornecido para todos os defensores de plantão.
Confira meu artigo no site IBM Security Intelligence. Se preferir vídeos, veja minha apresentação no Black Hat.
Os Módulos de Enumeração não requerem que um provedor de autenticação seja fornecido. Esses módulos devem ser passados para a flag de módulo de enumeração (/e:, /enum:). A wiki tem detalhes sobre o uso de módulos de enumeração.```
Info - Show information about the SQL server.
/h:, /host -> SQL server hostname or IP. Multiple hosts supported.
/port: -> (OPTIONAL) Defaults to 1434 (UDP).
/t:, timeout: -> (OPTIONAL) Defaults to 3s.
SqlSpns - Use the current user token to enumerate the AD domain for MSSQL SPNs. /d:, /domain: -> (OPTIONAL) NETBIOS name or FQDN of domain.
# Provedores de Autenticação
O SQLRecon suporta um conjunto diversificado de provedores de autenticação (`/a:, /auth:`) para permitir a interação com um Microsoft SQL Server.```
WinToken - Use the current users token to authenticate against the SQL database
/h:, /host: -> SQL server hostname or IP
WinDomain - Use AD credentials to authenticate against the SQL database
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/d:, /domain: -> NETBIOS name or FQDN of domain.
/u:, /username: -> Username for domain user.
/p:, /password: -> Password for domain user.
Local - Use local SQL credentials to authenticate against the SQL database
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/u:, /username: -> Username for local SQL user.
/p:, /password: -> Password for local SQL user.
EntraID - Use Azure EntraID credentials to authenticate against the Azure SQL database
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/d:, /domain: -> FQDN of domain (DOMAIN.COM).
/u:, /username: -> Username for domain user.
/p:, /password: -> Password for domain user.
AzureLocal - Use local SQL credentials to authenticate against the Azure SQL database
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/u:, /username: -> Username for local SQL user.
/p:, /password: -> Password for local SQL user.
Pth - Authenticate using an NT hash (pass-the-hash) over raw TDS/NTLM. Elevated privileges or SeImpersonate is not required.
/h:, /host: -> SQL server hostname or IP. Multiple hosts supported.
/d:, /domain: -> NETBIOS domain name.
/u:, /username: -> Domain username.
/hash: -> NT hash (32 hex chars, 8846f7eaee8fb117ad06bdd830b7586c) or LM:NT format.
/h:, host:) é obrigatório e permite um ou mais servidores SQL. Se quiser executar um módulo em vários servidores SQL, separe os hosts com vírgula, por exemplo /h:SQL01,10.10.10.2,SQL03.master por predefinição, no entanto, isto pode ser alterado opcionalmente fornecendo um nome de base de dados personalizado através do sinalizador de base de dados (/database:)./debug é opcional e exibe todas as consultas SQL que são executadas por um módulo, sem realmente executá-las no(s) anfitrião(ões) remoto(s). Um exemplo disto pode ser encontrado na wiki.1433 por predefinição, no entanto, isto pode ser alterado opcionalmente usando o sinalizador /port:.3 segundos, no entanto, este valor pode ser alterado opcionalmente fornecendo um valor de tempo limite (/t:, /timeout:) que corresponde ao número de segundos antes de terminar a tentativa de ligação./v, /verbose é opcional e exibe todas as consultas SQL que são executadas por um módulo antes de executá-las no(s) anfitrião(ões) remoto(s). Um exemplo disto pode ser encontrado na wiki.Tenha em atenção que o fornecedor de autenticação EntraID requer que a Azure Active Directory Authentication Library (ADAL) ou a Microsoft Authentication Library (MSAL) exista no sistema a partir do qual o SQLRecon é executado. Isto é para funcionalidade de autenticação e autorização do Azure EntraID.
Os módulos SQL são executados contra uma ou mais instâncias do Microsoft SQL Server. Estes módulos devem ser passados para o sinalizador de módulo (/m:, /module:).