
mssqlproxy è un toolkit progettato per eseguire movimenti laterali in ambienti ristretti attraverso un Microsoft SQL Server compromesso tramite riutilizzo di socket.
mssqlproxy è un toolkit progettato per eseguire movimenti laterali in ambienti ristretti attraverso un Microsoft SQL Server compromesso tramite il riutilizzo dei socket. Il client richiede impacket e privilegi sysadmin sul server SQL.
Si prega di leggere attentamente questo articolo prima di continuare.
È composto da tre parti:
È possibile compilare le librerie o scaricarle dalle release (x64).
Per generare la DLL core, basta importare il progetto in Visual Studio (reciclador.sln) e compilarlo.
Per generare l'assembly CLR, prima è necessario trovare il compilatore C#:
Get-ChildItem -Recurse "C:\Windows\Microsoft.NET\" -Filter "csc.exe" | Sort-Object fullname -Descending | Select-Object fullname -First 1 -ExpandProperty fullname
Quindi,
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe /target:library .\assembly.cs
Una volta compilate le due librerie, caricare la DLL core (reciclador) sul server di destinazione.
Le opzioni di autenticazione sono le stesse di mssqlclient originale. mssqlproxy opzioni:
proxy mode:
-reciclador path Percorso remoto dove è archiviata la DLL nel server
-install Installa l'assembly CLR
-uninstall Disinstalla l'assembly CLR
-check Verifica se CLR è pronto
-start Avvia il proxy
-local-port port Porta locale su cui ascoltare
-clr local_path Percorso locale del CLR
-no-check-src-port Usa questa opzione quando la connessione non è diretta (es. tramite proxy)
Abbiamo anche implementato due comandi (all'interno della shell SQL) per scaricare e caricare file. Relativamente alla parte proxy, abbiamo quattro comandi:
-clr per leggere il CLR generato da un file DLL locale.-reciclador), che può essere caricata usando il comando upload.-local-port non viene specificato, ascolterà sulla porta 1337/tcp.Una volta avviato il proxy, puoi collegare i tuoi proxychains ;)
Nota #1: se si utilizza una connessione non diretta (es. proxy intermedi), è necessario il flag -no-check-src-port, in modo che il server controlli solo l'indirizzo di origine.
Nota #2: al momento, sono supportati solo target IPv4 (né DNS né indirizzi IPv6).
Nota #3: utilizzare con cautela! per ora il servizio MSSQL si bloccherà se si tenta di stabilire più connessioni concorrenti.
Importante: è importante fermare mssqlproxy premendo Ctrl+C sul client. In caso contrario, il server potrebbe bloccarsi e sarà necessario riavviare manualmente il servizio MSSQL.
Pablo Martinez (@xassiz), Juan Manuel Fernandez (@TheXC3LL) [ www.blackarrow.net - www.tarlogic.com ]
Tutto il codice incluso in questo progetto è concesso in licenza secondo i termini della licenza MIT. Il file mssqlclient.py è basato su Impacket.