
mssqlproxy é um kit de ferramentas destinado a realizar movimento lateral em ambientes restritos através de um Microsoft SQL Server comprometido por meio de reutilização de socket
mssqlproxy é um conjunto de ferramentas destinado a realizar movimento lateral em ambientes restritos através de um Microsoft SQL Server comprometido via reutilização de socket. O cliente requer impacket e privilégios de sysadmin no servidor SQL.
Por favor, leia este artigo atentamente antes de continuar.
Consiste em três partes:
Você pode compilar as bibliotecas ou baixá-las dos releases (x64).
Para gerar a DLL principal, basta importar o projeto para o Visual Studio (reciclador.sln) e compilá-lo.
Para gerar o assembly CLR, primeiro você precisa encontrar o compilador C#:
Get-ChildItem -Recurse "C:\Windows\Microsoft.NET\" -Filter "csc.exe" | Sort-Object fullname -Descending | Select-Object fullname -First 1 -ExpandProperty fullname
Em seguida,
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:library .\assembly.cs
Uma vez que as duas bibliotecas estejam compiladas, faça o upload da DLL principal (reciclador) para o servidor alvo.
As opções de autenticação são as mesmas do mssqlclient original. Opções do mssqlproxy:
proxy mode:
-reciclador path Remote path where DLL is stored in server
-install Installs CLR assembly
-uninstall Uninstalls CLR assembly
-check Checks if CLR is ready
-start Starts proxy
-local-port port Local port to listen on
-clr local_path Local CLR path
-no-check-src-port Use this option when connection is not direct (e.g. proxy)
Também implementamos dois comandos (dentro do shell SQL) para baixar e enviar arquivos. Relacionados ao proxy, temos quatro comandos:
-clr para ler o CLR gerado a partir de um arquivo DLL local.-reciclador), que pode ser enviada usando o comando upload.-local-port não for especificado, ele escutará na porta 1337/tcp.Uma vez que o proxy esteja iniciado, você pode conectar seus proxychains ;)
Nota #1: se estiver usando uma conexão não direta (ex.: proxies intermediários), a flag -no-check-src-port é necessária, para que o servidor verifique apenas o endereço de origem.
Nota #2: no momento, apenas alvos IPv4 são suportados (nem DNS nem endereços IPv6).
Nota #3: use com cuidado! por enquanto o serviço MSSQL irá travar se você tentar estabelecer múltiplas conexões simultâneas.
Importante: É importante parar o mssqlproxy pressionando Ctrl+C no cliente. Caso contrário, o servidor pode travar e você precisará reiniciar o serviço MSSQL manualmente.
Pablo Martinez (@xassiz), Juan Manuel Fernandez (@TheXC3LL) [ www.blackarrow.net - www.tarlogic.com ]
Todo o código incluído neste projeto está licenciado sob os termos da licença MIT. O mssqlclient.py é baseado no Impacket.