* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparte tus trucos de hacking enviando PR al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
El problema de "doble salto" de Kerberos aparece cuando un atacante intenta usar la autenticación de **Kerberos** a través de **dos saltos**, por ejemplo, usando **PowerShell**/**WinRM**.
Cuando ocurre una **autenticación** a través de **Kerberos**, las **credenciales****no se almacenan** en la **memoria**. Por lo tanto, si ejecutas mimikatz, **no encontrarás las credenciales** del usuario en la máquina, incluso si está ejecutando procesos.
1. El usuario1 proporciona credenciales y el **controlador de dominio** devuelve un **TGT** de Kerberos al usuario1.
2. El usuario1 utiliza el **TGT** para solicitar un **ticket de servicio** para **conectarse** al servidor1.
3. El usuario1 **se conecta** al **servidor1** y proporciona el **ticket de servicio**.
4.**El servidor1****no tiene** las **credenciales** de usuario1 en caché ni el **TGT** de usuario1. Por lo tanto, cuando el usuario1 desde el servidor1 intenta iniciar sesión en un segundo servidor, **no puede autenticarse**.
Si la **delegación sin restricciones** está habilitada en la PC, esto no sucederá ya que el **servidor** obtendrá un **TGT** de cada usuario que acceda a él. Además, si se utiliza la delegación sin restricciones, probablemente se pueda **comprometer el controlador de dominio** desde ella.\
[Más información en la página de delegación sin restricciones](unconstrained-delegation.md).
Otra opción sugerida para **los administradores del sistema** para evitar este problema, que es [**notablemente insegura**](https://docs.microsoft.com/en-us/powershell/module/microsoft.wsman.management/enable-wsmancredssp?view=powershell-7), es **Proveedor de soporte de seguridad de credenciales**. Habilitar CredSSP ha sido una solución mencionada en varios foros a lo largo de los años. De Microsoft:
_"La autenticación de CredSSP delega las credenciales de usuario de la computadora local a una computadora remota. Esta práctica aumenta el riesgo de seguridad de la operación remota. Si la computadora remota está comprometida, cuando se pasan las credenciales a ella, las credenciales se pueden usar para controlar la sesión de red."_
Si encuentra que **CredSSP está habilitado** en sistemas de producción, redes sensibles, etc., se recomienda deshabilitarlos. Una forma rápida de **verificar el estado de CredSSP** es ejecutando `Get-WSManCredSSP`. Lo que se puede ejecutar de forma remota si WinRM está habilitado.
Este método es una especie de _"trabajar con"_ el problema de doble salto, no necesariamente solucionándolo. No depende de ninguna configuración y simplemente se puede ejecutar desde su máquina atacante. Básicamente es un **`Invoke-Command`** anidado.
También podrías tener una **sesión de PowerShell** establecida con el **primer servidor** y simplemente **ejecutar** el **`Invoke-Command`** con `$cred` desde allí en lugar de anidarla. Aunque, ejecutarlo desde tu máquina atacante centraliza las tareas:
Si en lugar de usar **`evil-winrm`** se utiliza el cmdlet **`Enter-PSSession`**, entonces se puede utilizar **`Register-PSSessionConfiguration`** y reconectar para evitar el problema de doble salto:
Dado que tenemos permisos de Administrador Local en el objetivo intermedio **bizintel: 10.35.8.17**, podemos agregar una regla de reenvío de puerto para enviar nuestras solicitudes al servidor final/tercero **secdev: 10.35.8.23**.
El **primer servidor** está escuchando en el puerto 5446 y reenviará las solicitudes que lleguen a 5446 al puerto 5985 (también conocido como WinRM) del **segundo servidor**.
También parece funcionar el reenvío de puertos de solicitudes WinRM cuando se utiliza **`winrs.exe`**. Esta puede ser una mejor opción si se sabe que PowerShell está siendo monitoreado. El siguiente comando devuelve "secdev" como resultado de `hostname`.
Al igual que `Invoke-Command`, esto se puede escribir fácilmente en un script para que el atacante simplemente emita comandos del sistema como argumento. Un ejemplo de script de lote genérico _winrm.bat_:
Este método requiere [instalar OpenSSH](https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH) en el primer servidor. La instalación de OpenSSH para Windows se puede hacer **completamente a través de CLI** y no lleva mucho tiempo, ¡además no se detecta como malware!
Este método puede ser especialmente útil en una configuración de caja de salto - con acceso a una red de otro modo inaccesible. Una vez establecida la conexión SSH, el usuario/atacante puede disparar tantas `New-PSSession` como sea necesario contra la red segmentada sin explotar el problema de doble salto.
Cuando se configura para usar **Autenticación de contraseña** en OpenSSH (no claves o Kerberos), el **tipo de inicio de sesión es 8** también conocido como _Inicio de sesión de texto claro de red_. Esto no significa que su contraseña se envíe en texto claro, de hecho está encriptada por SSH. A su llegada, se descifra en texto claro a través de su [paquete de autenticación](https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-logonusera?redirectedfrom=MSDN) para que su sesión solicite más TGT jugosos.
Esto permite que el servidor intermedio solicite y obtenga un TGT en su nombre para almacenarlo localmente en el servidor intermedio. Su sesión puede entonces usar este TGT para autenticarse (PS remoto) en servidores adicionales.
Descargue el último [zip de lanzamiento de OpenSSH de github](https://github.com/PowerShell/Win32-OpenSSH/releases) en su máquina atacante y muévalo (o descárguelo directamente en la caja de salto).
Por último, agregue una regla de firewall para **abrir el puerto 22**. Verifique que los servicios SSH estén instalados y arranque. Ambos servicios deberán estar en ejecución para que SSH funcione.
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* Obtén la [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).