Invoke-TheHash
Invoke-TheHash contient des fonctions PowerShell pour effectuer des tâches WMI et SMB par pass-the-hash. Les connexions WMI et SMB sont accédées via le .NET TCPClient. L'authentification est effectuée en passant un hash NTLM dans le protocole d'authentification NTLMv2. Les privilèges d'administrateur local ne sont pas requis côté client.
Prérequis
PowerShell 2.0 minimum
Importation
Import-Module ./Invoke-TheHash.psd1
ou
. ./Invoke-WMIExec.ps1
. ./Invoke-SMBExec.ps1
. ./Invoke-SMBEnum.ps1
. ./Invoke-SMBClient.ps1
. ./Invoke-TheHash.ps1
Fonctions
- Invoke-WMIExec
- Invoke-SMBExec
- Invoke-SMBEnum
- Invoke-SMBClient
- Invoke-TheHash
Invoke-WMIExec
- Fonction d'exécution de commande WMI.
Paramètres :
- Target - Nom d'hôte ou adresse IP de la cible.
- Username - Nom d'utilisateur à utiliser pour l'authentification.
- Domain - Domaine à utiliser pour l'authentification. Ce paramètre n'est pas nécessaire avec les comptes locaux ou lorsque @domain est utilisé après le nom d'utilisateur.
- Hash - Hash du mot de passe NTLM pour l'authentification. Cette fonction accepte les formats LM:NTLM ou NTLM.
- Command - Commande à exécuter sur la cible. Si aucune commande n'est spécifiée, la fonction vérifie simplement si le nom d'utilisateur et le hash ont accès à WMI sur la cible.
- Sleep - Par défaut = 10 millisecondes : Définit les valeurs Start-Sleep de la fonction en millisecondes.
Exemple :
Invoke-WMIExec -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Command "command or launcher to execute" -verbose
Capture d'écran :

Invoke-SMBExec
- Fonction d'exécution de commande SMB (PsExec) prenant en charge SMB1, SMB2.1, avec et sans signature SMB.
Paramètres :
- Target - Nom d'hôte ou adresse IP de la cible.
- Username - Nom d'utilisateur à utiliser pour l'authentification.
- Domain - Domaine à utiliser pour l'authentification. Ce paramètre n'est pas nécessaire avec les comptes locaux ou lorsque @domain est utilisé après le nom d'utilisateur.
- Hash - Hash du mot de passe NTLM pour l'authentification. Cette fonction accepte les formats LM:NTLM ou NTLM.
- Command - Commande à exécuter sur la cible. Si aucune commande n'est spécifiée, la fonction vérifie simplement si le nom d'utilisateur et le hash ont accès à SCM sur la cible.
- CommandCOMSPEC - Par défaut = Activé : Ajouter %COMSPEC% /C à la commande.
- Service - Par défaut = 20 caractères aléatoires : Nom du service à créer et supprimer sur la cible.
- Sleep - Par défaut = 150 millisecondes : Définit les valeurs Start-Sleep de la fonction en millisecondes.
- Version - Par défaut = Auto : (Auto,1,2.1) Forcer la version SMB. Le comportement par défaut consiste à effectuer une négociation de version SMB et à utiliser SMB2.1 si pris en charge par la cible.
Exemple :
Invoke-SMBExec -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Command "command or launcher to execute" -verbose
Exemple :
Vérifier les exigences de signature SMB sur la cible.
Invoke-SMBExec -Target 192.168.100.20
Capture d'écran :

Invoke-SMBEnum
- Invoke-SMBEnum effectue des tâches d'énumération d'utilisateurs, de groupes, de sessions réseau et de partages via SMB2.1 avec et sans signature SMB.
Paramètres :
- Target - Nom d'hôte ou adresse IP de la cible.
- Username - Nom d'utilisateur à utiliser pour l'authentification.
- Domain - Domaine à utiliser pour l'authentification. Ce paramètre n'est pas nécessaire avec les comptes locaux ou lorsque @domain est utilisé après le nom d'utilisateur.
- Hash - Hash du mot de passe NTLM pour l'authentification. Cette fonction accepte les formats LM:NTLM ou NTLM.
- Action - (All,Group,NetSession,Share,User) Par défaut = Share : Action d'énumération à effectuer.
- Group - Par défaut = Administrators : Groupe à énumérer.
- Sleep - Par défaut = 150 millisecondes : Définit les valeurs Start-Sleep de la fonction en millisecondes.
- Version - Par défaut = Auto : (Auto,1,2.1) Forcer la version SMB. Le comportement par défaut consiste à effectuer une négociation de version SMB et à utiliser SMB2.1 si pris en charge par la cible. Note : seule la vérification de signature fonctionne avec SMB1.
Exemple :
Invoke-SMBEnum -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -verbose
Capture d'écran :

Invoke-SMBClient
- Fonction client SMB prenant en charge SMB2.1 et la signature SMB. Cette fonction offre principalement des capacités de partage de fichiers SMB pour travailler avec des hashs qui n'ont pas de privilège d'exécution de commande à distance. Cette fonction peut également être utilisée pour préparer des charges utiles pour Invoke-WMIExec et Invoke-SMBExec. Notez que Invoke-SMBClient est construit sur le .NET TCPClient et n'utilise pas le client SMB Windows. Invoke-SMBClient est beaucoup plus lent que le client Windows.
Paramètres :
- Username - Nom d'utilisateur à utiliser pour l'authentification.
- Domain - Domaine à utiliser pour l'authentification. Ce paramètre n'est pas nécessaire avec les comptes locaux ou lorsque @domain est utilisé après le nom d'utilisateur.
- Hash - Hash du mot de passe NTLM pour l'authentification. Cette fonction accepte les formats LM:NTLM ou NTLM.
- Action - Par défaut = List : (List/Recurse/Delete/Get/Put) Action à effectuer.
-
- List : Liste le contenu d'un répertoire.
-
- Recurse : Liste le contenu d'un répertoire et de tous ses sous-répertoires.
-
- Delete : Supprime un fichier.
-
- Get : Télécharge un fichier.
-
- Put : Téléverse un fichier et définit les heures de création, d'accès et de dernière écriture pour correspondre au fichier source.
- Source
-
- List et Recurse : Chemin UNC vers un répertoire.
-
- Delete : Chemin UNC vers un fichier.
-
- Get : Chemin UNC vers un fichier.
-
- Put : Fichier à téléverser. Si un chemin complet n'est pas spécifié, le fichier doit se trouver dans le répertoire courant. Lorsque l'interrupteur 'Modify' est utilisé, 'Source' doit être un tableau d'octets.
- Destination
-
- List et Recurse : Non utilisé.
-
-
- Get : S'il est utilisé, la valeur sera le nouveau nom du fichier téléchargé. Si un chemin complet n'est pas spécifié, le fichier sera créé dans le répertoire courant.
-
- Put : Chemin UNC pour le fichier téléversé. Le nom du fichier doit être spécifié.
- Modify
-
- List et Recurse : La fonction renvoie un objet contenant le contenu du répertoire.
-
-
- Get : La fonction renvoie un tableau d'octets du fichier téléchargé au lieu d'écrire le fichier sur le disque. Il est conseillé de n'utiliser ceci qu'avec des fichiers plus petits et de rediriger la sortie vers une variable.
-
- Put : Téléverse un tableau d'octets vers un nouveau fichier de destination.
- NoProgress - Empêche l'affichage d'une barre de progression de téléversement et de téléchargement.
- Sleep - Par défaut = 100 millisecondes : Définit les valeurs Start-Sleep de la fonction en millisecondes.
- Version - Par défaut = Auto : (Auto,1,2.1) Forcer la version SMB. Le comportement par défaut consiste à effectuer une négociation de version SMB et à utiliser SMB2.1 si pris en charge par la cible. Note : seule la vérification de signature fonctionne avec SMB1.