Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Invoke-TheHash — PowerShell Pass The Hash Utils | Kitploit
Tools/GitHubGitHub/kevin-robertson/invoke-thehash
PasswortangriffeLaterale BewegungPost-ExploitationNetzwerksicherheitPenetrationstestsAuthentifizierung
GitHubkevin-robertson/invoke-thehash

Invoke-TheHash

PowerShell Pass The Hash Utils

Repository anzeigen
1.8k313vor 7 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Invoke-TheHash

Invoke-TheHash enthält PowerShell-Funktionen zur Durchführung von Pass-the-Hash-WMI- und SMB-Aufgaben. WMI- und SMB-Verbindungen werden über den .NET TCPClient hergestellt. Die Authentifizierung erfolgt durch die Übergabe eines NTLM-Hashs an das NTLMv2-Authentifizierungsprotokoll. Lokale Administratorrechte sind clientseitig nicht erforderlich.

Voraussetzungen

Mindestens PowerShell 2.0

Import

Import-Module ./Invoke-TheHash.psd1

oder

. ./Invoke-WMIExec.ps1 . ./Invoke-SMBExec.ps1 . ./Invoke-SMBEnum.ps1 . ./Invoke-SMBClient.ps1 . ./Invoke-TheHash.ps1

Funktionen

  • Invoke-WMIExec
  • Invoke-SMBExec
  • Invoke-SMBEnum
  • Invoke-SMBClient
  • Invoke-TheHash

Invoke-WMIExec

  • Funktion zur Ausführung von WMI-Befehlen.
Parameter:
  • Target – Hostname oder IP-Adresse des Ziels.
  • Username – Für die Authentifizierung zu verwendender Benutzername.
  • Domain – Für die Authentifizierung zu verwendende Domäne. Dieser Parameter wird bei lokalen Konten oder bei Verwendung von @domain nach dem Benutzernamen nicht benötigt.
  • Hash – NTLM-Passwort-Hash für die Authentifizierung. Diese Funktion akzeptiert das Format LM:NTLM oder NTLM.
  • Command – Auf dem Ziel auszuführender Befehl. Wenn kein Befehl angegeben wird, prüft die Funktion lediglich, ob der Benutzername und der Hash Zugriff auf WMI auf dem Ziel haben.
  • Sleep – Standardwert = 10 Millisekunden: Legt die Start-Sleep-Werte der Funktion in Millisekunden fest.
Beispiel:

Invoke-WMIExec -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Command "command or launcher to execute" -verbose

Screenshot:

wmi

Invoke-SMBExec

  • SMB (PsExec)-Befehlsausführungsfunktion mit Unterstützung für SMB1, SMB2.1, mit und ohne SMB-Signierung.
Parameter:
  • Target – Hostname oder IP-Adresse des Ziels.
  • Username – Für die Authentifizierung zu verwendender Benutzername.
  • Domain – Für die Authentifizierung zu verwendende Domäne. Dieser Parameter wird bei lokalen Konten oder bei Verwendung von @domain nach dem Benutzernamen nicht benötigt.
  • Hash – NTLM-Passwort-Hash für die Authentifizierung. Diese Funktion akzeptiert das Format LM:NTLM oder NTLM.
  • Command – Auf dem Ziel auszuführender Befehl. Wenn kein Befehl angegeben wird, prüft die Funktion lediglich, ob der Benutzername und der Hash Zugriff auf SCM auf dem Ziel haben.
  • CommandCOMSPEC – Standardwert = Aktiviert: %COMSPEC% /C vor den Befehl stellen.
  • Service – Standardwert = 20 Zeichen zufällig: Name des auf dem Ziel zu erstellenden und zu löschenden Dienstes.
  • Sleep – Standardwert = 150 Millisekunden: Legt die Start-Sleep-Werte der Funktion in Millisekunden fest.
  • Version – Standardwert = Auto: (Auto,1,2.1) Erzwingt die SMB-Version. Das Standardverhalten führt eine SMB-Versionsaushandlung durch und verwendet SMB2.1, falls vom Ziel unterstützt.
Beispiel:

Invoke-SMBExec -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Command "command or launcher to execute" -verbose

Beispiel:

Überprüfen der SMB-Signierungsanforderungen auf dem Ziel. Invoke-SMBExec -Target 192.168.100.20

Screenshot:

smb

Invoke-SMBEnum

  • Invoke-SMBEnum führt Aufgaben zur Aufzählung von Benutzern, Gruppen, NetSessions und Freigaben über SMB2.1 mit und ohne SMB-Signierung durch.
Parameter:
  • Target – Hostname oder IP-Adresse des Ziels.
  • Username – Für die Authentifizierung zu verwendender Benutzername.
  • Domain – Für die Authentifizierung zu verwendende Domäne. Dieser Parameter wird bei lokalen Konten oder bei Verwendung von @domain nach dem Benutzernamen nicht benötigt.
  • Hash – NTLM-Passwort-Hash für die Authentifizierung. Diese Funktion akzeptiert das Format LM:NTLM oder NTLM.
  • Action – (All,Group,NetSession,Share,User) Standardwert = Share: Auszuführende Aufzählungsaktion.
  • Group – Standardwert = Administrators: Aufzuzählende Gruppe.
  • Sleep – Standardwert = 150 Millisekunden: Legt die Start-Sleep-Werte der Funktion in Millisekunden fest.
  • Version – Standardwert = Auto: (Auto,1,2.1) Erzwingt die SMB-Version. Das Standardverhalten führt eine SMB-Versionsaushandlung durch und verwendet SMB2.1, falls vom Ziel unterstützt. Hinweis: Nur die Signierungsprüfung funktioniert mit SMB1.
Beispiel:

Invoke-SMBEnum -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -verbose

Screenshot:

invoke-smbenum

Invoke-SMBClient

  • SMB-Client-Funktion mit Unterstützung für SMB2.1 und SMB-Signierung. Diese Funktion bietet in erster Linie SMB-Dateifreigabefunktionen für die Arbeit mit Hashes, die keine Berechtigung zur Remotebefehlsausführung haben. Diese Funktion kann auch zum Staging von Payloads für die Verwendung mit Invoke-WMIExec und Invoke-SMBExec verwendet werden. Hinweis: Invoke-SMBClient basiert auf dem .NET TCPClient und verwendet nicht den Windows SMB-Client. Invoke-SMBClient ist deutlich langsamer als der Windows-Client.
Parameter:
  • Username – Für die Authentifizierung zu verwendender Benutzername.
  • Domain – Für die Authentifizierung zu verwendende Domäne. Dieser Parameter wird bei lokalen Konten oder bei Verwendung von @domain nach dem Benutzernamen nicht benötigt.
  • Hash – NTLM-Passwort-Hash für die Authentifizierung. Diese Funktion akzeptiert das Format LM:NTLM oder NTLM.
  • Action – Standardwert = List: (List/Recurse/Delete/Get/Put) Auszuführende Aktion.
      • List: Listet den Inhalt eines Verzeichnisses auf.
      • Recurse: Listet den Inhalt eines Verzeichnisses und aller Unterverzeichnisse auf.
      • Delete: Löscht eine Datei.
      • Get: Lädt eine Datei herunter.
      • Put: Lädt eine Datei hoch und setzt die Erstellungs-, Zugriffs- und letzten Schreibzeitpunkte passend zur Quelldatei.
  • Source
      • List und Recurse: UNC-Pfad zu einem Verzeichnis.
      • Delete: UNC-Pfad zu einer Datei.
      • Get: UNC-Pfad zu einer Datei.
      • Put: Hochzuladende Datei. Wenn kein vollständiger Pfad angegeben ist, muss sich die Datei im aktuellen Verzeichnis befinden. Bei Verwendung des 'Modify'-Schalters muss 'Source' ein Byte-Array sein.
  • Destination
      • List und Recurse: Nicht verwendet.
      • Delete: Nicht verwendet.
      • Get: Falls verwendet, ist der Wert der neue Dateiname der heruntergeladenen Datei. Wenn kein vollständiger Pfad angegeben ist, wird die Datei im aktuellen Verzeichnis erstellt.
      • Put: UNC-Pfad für die hochgeladene Datei. Der Dateiname muss angegeben werden.
  • Modify
      • List und Recurse: Die Funktion gibt ein Objekt mit dem Verzeichnisinhalt aus.
      • Delete: Nicht verwendet.
      • Get: Die Funktion gibt ein Byte-Array der heruntergeladenen Datei aus, anstatt die Datei auf die Festplatte zu schreiben. Es wird empfohlen, dies nur bei kleineren Dateien zu verwenden und die Ausgabe in eine Variable umzuleiten.
Beispiel:

Liste den Inhalt eines Stammverzeichnisses einer Freigabe auf. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Source \\server\share -verbose

Beispiel:

Liste rekursiv den Inhalt einer Freigabe ab dem Stammverzeichnis auf. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Recurse -Source \\server\share

Beispiel:

Liste rekursiv den Inhalt eines Unterverzeichnisses einer Freigabe auf und gib nur die Inhaltsausgabe an eine Variable zurück. $directory_contents = Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Recurse -Source \\server\share\subdirectory -Modify

Beispiel:

Lösche eine Datei auf einer Freigabe. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Delete -Source \\server\share\file.txt

Beispiel:

Lösche eine Datei in Unterverzeichnissen innerhalb einer Freigabe. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Delete -Source \\server\share\subdirectory\subdirectory\file.txt

Beispiel:

Lade eine Datei von einer Freigabe herunter. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Get -Source \\server\share\file.txt

Beispiel:

Lade eine Datei aus einem Unterverzeichnis einer Freigabe herunter und lege einen neuen Dateinamen fest. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Get -Source \\server\share\subdirectory\file.txt -Destination file.txt

Beispiel:

Lade eine Datei von einer Freigabe in eine Byte-Array-Variable statt auf die Festplatte herunter. $password_file = Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Get -Source \\server\share\file.txt -Modify

Beispiel:

Lade eine Datei in ein Unterverzeichnis einer Freigabe hoch. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Put -Source file.exe -Destination \\server\share\subdirectory\file.exe

Beispiel:

Lade eine Datei aus einer Byte-Array-Variable auf eine Freigabe hoch. Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Put -Source $file_byte_array -Destination \\server\share\file.txt -Modify

Screenshot:

invoke-smbclient

Invoke-TheHash

  • Funktion zum Ausführen von Invoke-TheHash-Funktionen gegen mehrere Ziele.
Parameter:
  • Type – Legt die gewünschte Invoke-TheHash-Funktion fest. Setzen Sie entweder auf SMBClient, SMBEnum, SMBExec oder WMIExec.
  • Target – Liste von Hostnamen, IP-Adressen, CIDR-Notation oder IP-Bereichen für Ziele.
  • TargetExclude – Liste von Hostnamen, IP-Adressen, CIDR-Notation oder IP-Bereichen, die aus der Liste oder den Zielen ausgeschlossen werden sollen.
  • PortCheckDisable – (Schalter) Deaktiviert die WMI- oder SMB-Portprüfung. Da diese Funktion noch nicht threaded ist, dient die Portprüfung dazu, die Funktion zu beschleunigen, indem ein offener WMI- oder SMB-Port überprüft wird, bevor eine vollständige synchrone TCPClient-Verbindung versucht wird.
  • PortCheckTimeout – Standardwert = 100: Legt das Timeout für keine Antwort in Millisekunden für die WMI- oder SMB-Portprüfung fest.
  • Username – Für die Authentifizierung zu verwendender Benutzername.
  • Domain – Für die Authentifizierung zu verwendende Domäne. Dieser Parameter wird bei lokalen Konten oder bei Verwendung von @domain nach dem Benutzernamen nicht benötigt.
  • Hash – NTLM-Passwort-Hash für die Authentifizierung. Dieses Modul akzeptiert das Format LM:NTLM oder NTLM.
  • Command – Auf dem Ziel auszuführender Befehl. Wenn kein Befehl angegeben wird, prüft die Funktion lediglich, ob der Benutzername und der Hash Zugriff auf WMI oder SCM auf dem Ziel haben.
  • CommandCOMSPEC – Standardwert = Aktiviert: Nur SMBExec-Typ. Stellt %COMSPEC% /C dem Befehl voran.
  • Service – Standardwert = 20 Zeichen zufällig: Nur SMBExec-Typ. Name des auf dem Ziel zu erstellenden und zu löschenden Dienstes.
  • SMB1 – (Schalter) Erzwingt SMB1. Nur SMBExec-Typ. Das Standardverhalten führt eine SMB-Versionsaushandlung durch und verwendet SMB2, falls vom Ziel unterstützt.
  • Sleep – Standardwert = WMI 10 Millisekunden, SMB 150 Millisekunden: Legt die Start-Sleep-Werte der Funktion in Millisekunden fest.
Beispiel:

Invoke-TheHash -Type WMIExec -Target 192.168.100.0/24 -TargetExclude 192.168.100.50 -Username Administrator -Hash F6F38B793DB6A94BA04A52F1D3EE92F0

Screenshot:

ithsmb

Tool herunterladen
    • Put: Lädt ein Byte-Array in eine neue Zieldatei hoch.
  • NoProgress – Verhindert die Anzeige eines Upload- und Download-Fortschrittsbalkens.
  • Sleep – Standardwert = 100 Millisekunden: Legt die Start-Sleep-Werte der Funktion in Millisekunden fest.
  • Version – Standardwert = Auto: (Auto,1,2.1) Erzwingt die SMB-Version. Das Standardverhalten führt eine SMB-Versionsaushandlung durch und verwendet SMB2.1, falls vom Ziel unterstützt. Hinweis: Nur die Signierungsprüfung funktioniert mit SMB1.