
Ferramenta avançada de teste de penetração MSSQL para movimento lateral, execução de comandos, relé NTLM e ataques de força bruta através de servidores vinculados e múltiplos métodos de autenticação.
MSSqlPwner é uma ferramenta de pentest avançada e versátil projetada para interagir e comprometer servidores MSSQL de forma integrada.
Essa ferramenta é baseada no impacket, que permite que atacantes autentiquem em bancos de dados usando senhas em texto claro, hashes NTLM e tickets kerberos.
Com o MSSqlPwner, os usuários podem executar comandos personalizados através de vários métodos, incluindo assembly personalizado, xp_cmdshell e sp_oacreate (Procedimentos de Automação Ole) e muito mais.
A ferramenta começa com enumeração recursiva em servidores vinculados e possíveis impersonações para reunir todas as cadeias possíveis para execução de comandos.
Além disso, a ferramenta MSSqlPwner pode ser usada para capacidades de relay NTLM, utilizando funções como xp_dirtree, xp_subdirs, xp_fileexist.
Esta ferramenta pode ser usada para avaliações de movimento lateral e exploração de servidores vinculados.
Se o usuário MSSQL autenticado não tiver permissão para executar certas operações, a ferramenta pode encontrar a cadeia correta que permitirá a execução de comandos. Por exemplo, se seu usuário não puder executar comandos no contexto atual, a ferramenta construirá uma cadeia que usará um servidor vinculado e se conectará de volta ao nosso servidor com privilégios elevados.
Começar com o mssqlpwner é muito simples. Você pode fazer isso puxando diretamente do repositório:
pip install 'mssqlpwner@git+https://github.com/ScorpionesLabs/MSSqlPwner.git'
Ou, usando pipx - e você deveria -, experimente:
pipx install 'git+https://github.com/ScorpionesLabs/MSSqlPwner.git'
E agora você pode usar sua nova ferramenta favorita:
mssqlpwner -hashes ':0CB6948805F797BF2A82807973B89537' 'Administrator'@172.16.2.12 -windows-auth interactive
Esta ferramenta é suportada por múltiplos métodos de autenticação e descritos abaixo.
Esta ferramenta foi projetada para profissionais de segurança e pesquisadores apenas para fins de teste e não deve ser usada para fins ilegais.
interactive: permite usar a ferramenta interativamente com execução ao vivo.enumerate: enumera os servidores vinculados e as cadeias.get-chain-list obtém a lista das cadeias:
-filter-hostname HOSTNAME - Obter resultados filtrados com um hostname específico.get-link-server-list obtém a lista dos servidores vinculados.set-chain Define o ID da cadeia (Apenas para modo interativo!)
CHAIN - O ID da cadeia a ser definido.set-link-server Define o servidor vinculado (Apenas para modo interativo!)
LINK - O servidor vinculado a ser definido.get-rev2self-queries recupera consultas para reverter para SELF (Apenas para modo interativo!).get-adsi-provider-list recupera a lista de provedores ADSI.rev2self reverter para SELF (Apenas para modo interativo!).exec Execute comandos usando exec no servidor local ou em servidores vinculados
COMMAND - O comando a ser executado.-command_execution_method - O método de execução de comando a ser usado.
xp_cmdshell - Executa comandos usando o procedimento xp_cmdshell (Padrão).sp_oacreate - Executa comandos usando o procedimento Ole Automation Procedure (Deve ser usado como "cmd /c algo").retrieve-password Recuperação de senhas de provedores ADSI.
-listen-port - A porta para ouvir (Padrão: 1389).-adsi-provider - Provedor ADSI a ser usado (se não definido, será escolhido automaticamente).-arch - A arquitetura a ser usada (se não definido, será escolhida automaticamente).
x86 - Usar arquitetura x86.x64 - Usar arquitetura x64.ntlm-relay - Forçar relay NTLM para um servidor.
SMB_SERVER - O servidor SMB para o qual fazer relay.-relay-method - O método de relay a ser usado.
xp_dirtree - Usar o procedimento xp_dirtree (Padrão).xp_subdirs - Usar o procedimento xp_subdirs.xp_fileexist - Usar o procedimento xp_fileexist (Em algumas situações, este módulo deve ser executado a partir de uma cadeia privilegiada).custom-asm - Executar procedimentos usando assembly personalizado
COMMAND - O comando/caminho ou consulta a ser usada.-procedure-name - O nome do procedimento a ser usado (Padrão: execute_command).
execute_command - Executa comandos usando assembly personalizado (Padrão).run_query - Executa consultas usando assembly personalizado.run_query_system_service - Executa consultas usando assembly personalizado como usuário do sistema (Como SqlSVC).inject-custom-asm Injetar código usando assembly personalizado.
file_location - O local do arquivo a ser injetado.-procedure-name - O nome do procedimento a ser usado (Padrão: Inject).direct-query Executar consultas diretasQUERY - A consulta a ser executada.-query-method - O método de consulta a ser usado.
OpenQuery - Usar o procedimento OpenQuery (Padrão).exec_at - Usar o procedimento exec AT.brute Iniciar bruteforce (Pode receber tickets, hashes e senhas)TARGETS_FILE - um arquivo contém hosts e ips para bruteforce.-ul - um arquivo contém usuários para bruteforce.-pl - um arquivo contém senhas para bruteforce.-tl - um arquivo contém tickets para bruteforce.-hl - um arquivo contém hashes para bruteforce.-link-name - O nome do servidor vinculado a ser usado-chain-id - O ID da cadeia a ser usado-max-link-depth - A profundidade máxima de vinculação a ser usada (Padrão: 10)-max-impersonation-depth - A profundidade máxima de impersonação a ser usada (Padrão: 10)-auto-yes - Responder automaticamente sim a todas as perguntas (Padrão: Falso)-timeout - O tempo limite a ser usado (Padrão: 30)