Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/kevin-robertson/invoke-thehash
Ataques de ContraseñasMovimiento LateralPost-ExplotaciónSeguridad de RedesPruebas de PenetraciónAutenticación
GitHubkevin-robertson/invoke-thehash

Invoke-TheHash

PowerShell Utilidades de Pass the Hash

Ver Repositorio
1.8k3136hace 7 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Invoke-TheHash

Invoke-TheHash contiene funciones de PowerShell para realizar tareas de pass the hash en WMI y SMB. Las conexiones WMI y SMB se acceden a través de .NET TCPClient. La autenticación se realiza pasando un hash NTLM al protocolo de autenticación NTLMv2. No se requiere privilegio de administrador local del lado del cliente.

Requisitos

PowerShell 2.0 como mínimo.

Importar

Import-Module ./Invoke-TheHash.psd1

o

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

Funciones

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

Invoke-WMIExec

  • Función de ejecución de comandos mediante WMI.
Parámetros:
  • Target - Nombre de host o dirección IP del objetivo.
  • Username - Nombre de usuario para la autenticación.
  • Domain - Dominio para la autenticación. Este parámetro no es necesario con cuentas locales o cuando se usa @domain después del nombre de usuario.
  • Hash - Hash de contraseña NTLM para la autenticación. Esta función acepta tanto el formato LM:NTLM como NTLM.
  • Command - Comando a ejecutar en el objetivo. Si no se especifica un comando, la función solo verificará si el nombre de usuario y el hash tienen acceso a WMI en el objetivo.
  • Sleep - Predeterminado = 10 milisegundos: Establece los valores de Start-Sleep de la función en milisegundos.
Ejemplo:

Invoke-WMIExec -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Command "comando o lanzador a ejecutar" -verbose

Captura de pantalla:

wmi

Invoke-SMBExec

  • Función de ejecución de comandos SMB (PsExec) compatible con SMB1, SMB2.1, con y sin firmado SMB.
Parámetros:
  • Target - Nombre de host o dirección IP del objetivo.
  • Username - Nombre de usuario para la autenticación.
  • Domain - Dominio para la autenticación. Este parámetro no es necesario con cuentas locales o cuando se usa @domain después del nombre de usuario.
  • Hash - Hash de contraseña NTLM para la autenticación. Esta función acepta tanto el formato LM:NTLM como NTLM.
  • Command - Comando a ejecutar en el objetivo. Si no se especifica un comando, la función solo verificará si el nombre de usuario y el hash tienen acceso a SCM en el objetivo.
  • CommandCOMSPEC - Predeterminado = Habilitado: Anteponer %COMSPEC% /C al Comando.
  • Service - Predeterminado = 20 caracteres aleatorios: Nombre del servicio a crear y eliminar en el objetivo.
  • Sleep - Predeterminado = 150 milisegundos: Establece los valores de Start-Sleep de la función en milisegundos.
  • Version - Predeterminado = Auto: (Auto,1,2.1) Forzar versión SMB. El comportamiento predeterminado es realizar la negociación de versión SMB y usar SMB2.1 si el objetivo lo admite.
Ejemplo:

Invoke-SMBExec -Target 192.168.100.20 -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Command "comando o lanzador a ejecutar" -verbose

Ejemplo:

Verificar los requisitos de firmado SMB en el objetivo. Invoke-SMBExec -Target 192.168.100.20

Captura de pantalla:

smb

Invoke-SMBEnum

  • Invoke-SMBEnum realiza tareas de enumeración de usuarios, grupos, sesiones Net y recursos compartidos a través de SMB2.1 con y sin firmado SMB.
Parámetros:
  • Target - Nombre de host o dirección IP del objetivo.
  • Username - Nombre de usuario para la autenticación.
  • Domain - Dominio para la autenticación. Este parámetro no es necesario con cuentas locales o cuando se usa @domain después del nombre de usuario.
  • Hash - Hash de contraseña NTLM para la autenticación. Esta función acepta tanto el formato LM:NTLM como NTLM.
  • Action - (All,Group,NetSession,Share,User) Predeterminado = Share: Acción de enumeración a realizar.
  • Group - Predeterminado = Administrators: Grupo a enumerar.
  • Sleep - Predeterminado = 150 milisegundos: Establece los valores de Start-Sleep de la función en milisegundos.
  • Version - Predeterminado = Auto: (Auto,1,2.1) Forzar versión SMB. El comportamiento predeterminado es realizar la negociación de versión SMB y usar SMB2.1 si el objetivo lo admite. Tenga en cuenta que solo la verificación de firmado funciona con SMB1.
Ejemplo:

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

Captura de pantalla:

invoke-smbenum

Invoke-SMBClient

  • Función de cliente SMB compatible con SMB2.1 y firmado SMB. Esta función proporciona principalmente capacidades de archivos compartidos SMB para trabajar con hashes que no tienen privilegio de ejecución remota de comandos. Esta función también se puede utilizar para preparar cargas útiles para usar con Invoke-WMIExec e Invoke-SMBExec. Tenga en cuenta que Invoke-SMBClient está construido sobre .NET TCPClient y no utiliza el cliente SMB de Windows. Invoke-SMBClient es mucho más lento que el cliente de Windows.
Parámetros:
  • Username - Nombre de usuario para la autenticación.
  • Domain - Dominio para la autenticación. Este parámetro no es necesario con cuentas locales o cuando se usa @domain después del nombre de usuario.
  • Hash - Hash de contraseña NTLM para la autenticación. Esta función acepta tanto el formato LM:NTLM como NTLM.
  • Action - Predeterminado = List: (List/Recurse/Delete/Get/Put) Acción a realizar.
      • List: Enumera el contenido de un directorio.
      • Recurse: Enumera el contenido de un directorio y todos sus subdirectorios.
      • Delete: Elimina un archivo.
      • Get: Descarga un archivo.
      • Put: Sube un archivo y establece las horas de creación, acceso y última escritura para que coincidan con el archivo fuente.
  • Source
      • List y Recurse: Ruta UNC a un directorio.
      • Delete: Ruta UNC a un archivo.
      • Get: Ruta UNC a un archivo.
      • Put: Archivo a subir. Si no se especifica una ruta completa, el archivo debe estar en el directorio actual. Al usar el modificador 'Modify', 'Source' debe ser un arreglo de bytes.
  • Destination
      • List y Recurse: No se usa.
      • Delete: No se usa.
      • Get: Si se usa, el valor será el nuevo nombre del archivo descargado. Si no se especifica una ruta completa, el archivo se creará en el directorio actual.
      • Put: Ruta UNC para el archivo subido. Se debe especificar el nombre del archivo.
  • Modify
      • List y Recurse: La función generará un objeto que consiste en el contenido del directorio.
      • Delete: No se usa.
      • Get: La función generará un arreglo de bytes del archivo descargado en lugar de escribir el archivo en el disco. Es recomendable usar esto solo con archivos pequeños y enviar la salida a una variable.
      • Put: Sube un arreglo de bytes a un nuevo archivo de destino.
Ejemplo:

Listar el contenido de un directorio raíz compartido.
Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Source \\server\share -verbose

Ejemplo:

Listar recursivamente el contenido de un recurso compartido comenzando desde la raíz.
Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Recurse -Source \\server\share

Ejemplo:

Listar recursivamente el contenido de un subdirectorio de un recurso compartido y devolver solo el contenido en una variable.
$directory_contents = Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Recurse -Source \\server\share\subdirectory -Modify

Ejemplo:

Eliminar un archivo en un recurso compartido.
Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Delete -Source \\server\share\file.txt

Ejemplo:

Eliminar un archivo en subdirectorios dentro de un recurso compartido.
Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Delete -Source \\server\share\subdirectory\subdirectory\file.txt

Ejemplo:

Descargar un archivo de un recurso compartido.
Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Get -Source \\server\share\file.txt

Ejemplo:

Descargar un archivo desde un subdirectorio de un recurso compartido y establecer un nuevo nombre de archivo.
Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Get -Source \\server\share\subdirectory\file.txt -Destination file.txt

Ejemplo:

Descargar un archivo de un recurso compartido a una variable de arreglo de bytes en lugar de disco.
$password_file = Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Get -Source \\server\share\file.txt -Modify

Ejemplo:

Subir un archivo a un subdirectorio de un recurso compartido.
Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Put -Source file.exe -Destination \\server\share\subdirectory\file.exe

Ejemplo:

Subir un archivo a un recurso compartido desde una variable de arreglo de bytes.
Invoke-SMBClient -Domain TESTDOMAIN -Username TEST -Hash F6F38B793DB6A94BA04A52F1D3EE92F0 -Action Put -Source $file_byte_array -Destination \\server\share\file.txt -Modify

Captura de pantalla:

invoke-smbclient

Invoke-TheHash

  • Función para ejecutar funciones de Invoke-TheHash contra múltiples objetivos.
Parámetros:
  • Type - Establece la función deseada de Invoke-TheHash. Establecer en SMBClient, SMBEnum, SMBExec o WMIExec.
  • Target - Lista de nombres de host, direcciones IP, notación CIDR o rangos IP para los objetivos.
  • TargetExclude - Lista de nombres de host, direcciones IP, notación CIDR o rangos IP a excluir de la lista de objetivos.
  • PortCheckDisable - (Switch) Deshabilitar la comprobación de puerto WMI o SMB. Dado que esta función aún no está enhebrada, la comprobación de puerto sirve para acelerar la función verificando si hay un puerto WMI o SMB abierto antes de intentar una conexión TCPClient síncrona completa.
  • PortCheckTimeout - Predeterminado = 100: Establecer el tiempo de espera de falta de respuesta en milisegundos para la comprobación de puerto WMI o SMB.
  • Username - Nombre de usuario para la autenticación.
  • Domain - Dominio para la autenticación. Este parámetro no es necesario con cuentas locales o cuando se usa @domain después del nombre de usuario.
  • Hash - Hash de contraseña NTLM para la autenticación. Este módulo acepta tanto el formato LM:NTLM como NTLM.
  • Command - Comando a ejecutar en el objetivo. Si no se especifica un comando, la función solo verificará si el nombre de usuario y el hash tienen acceso a WMI o SCM en el objetivo.
  • CommandCOMSPEC - Predeterminado = Habilitado: Solo tipo SMBExec. Anteponer %COMSPEC% /C al Comando.
  • Service - Predeterminado = 20 caracteres aleatorios: Solo tipo SMBExec. Nombre del servicio a crear y eliminar en el objetivo.
  • SMB1 - (Switch) Forzar SMB1. Solo tipo SMBExec. El comportamiento predeterminado es realizar la negociación de versión SMB y usar SMB2 si el objetivo lo admite.
  • Sleep - Predeterminado = WMI 10 milisegundos, SMB 150 milisegundos: Establece los valores de Start-Sleep de la función en milisegundos.
Ejemplo:

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

Captura de pantalla:

ithsmb

Descargar herramienta
  • NoProgress - Evita mostrar una barra de progreso de subida y descarga.
  • Sleep - Predeterminado = 100 milisegundos: Establece los valores de Start-Sleep de la función en milisegundos.
  • Version - Predeterminado = Auto: (Auto,1,2.1) Forzar versión SMB. El comportamiento predeterminado es realizar la negociación de versión SMB y usar SMB2.1 si el objetivo lo admite. Tenga en cuenta que solo la verificación de firmado funciona con SMB1.