Evil-WinRM: Guía Definitiva para Configurar, Conectar y Ejecutar Comandos en Windows Remotamente

Evil-WinRM es una herramienta de post-explotación diseñada para interactuar con el servicio de Windows Remote Management (WinRM) en sistemas Windows. Utilizada frecuentemente en pruebas de penetración y auditorías de seguridad, Evil-WinRM permite ejecutar comandos de PowerShell de forma remota. En esta guía, exploraremos a fondo cómo configurar y utilizar esta herramienta, así como los métodos de autenticación disponibles, tanto por contraseñas en texto claro como mediante hashes NTLM.

👺​Instalación de Evil-WinRM

Esta herramienta ya viene instalada por defecto en Kali Linux , pero si estuviéramos en otro entorno deberías de seguir los siguientes pasos.

Clonar el repositorio desde GitHub:
Abre una terminal y ejecuta:

git clone https://github.com/Hackplayers/evil-winrm.git

Instalar las dependencias:
Navega al directorio clonado y ejecuta:

cd evil-winrm
gem install bundler
bundle install

📶​Conexión a un Sistema Windows

Una vez instalada la herramienta, puedes conectarte al sistema Windows utilizando diferentes métodos de autenticación.

🔺​ Conexión mediante Contraseña

Para conectarte utilizando un nombre de usuario y una contraseña en texto claro, utiliza:

evil-winrm -i <IP_DEL_OBJETIVO> -u <NOMBRE_DE_USUARIO> -p <CONTRASEÑA>

Ejemplo:

evil-winrm -i 192.168.1.100 -u Administrator -p ‘P@$$W0rd’

🔺​Conexión mediante Hash NTLM

Para autenticación con hash NTLM, utiliza la opción -H:

evil-winrm -i <IP_DEL_OBJETIVO> -u <NOMBRE_DE_USUARIO> -H <HASH_NTLM>

Ejemplo:

evil-winrm -i 192.168.1.100 -u Administrador -H aad3b435b51404eeaad3b435b51404ee

🔁​Transferencia de Archivos

Una de las funcionalidades más interesantes y útiles de Evil-WinRM es la facilidad para transferir archivos. Esto se realiza a través de dos comandos:


El comando upload te permite enviar archivos desde tu sistema local al sistema remoto sin complicaciones. Es ideal para transferir scripts, herramientas o cualquier archivo necesario para la explotación o análisis.

🔺​Subir archivos (upload):

upload <ruta/local/del/archivo> <ruta/remota/destino>

Ejemplo:

upload /home/kali/scripts/payload.ps1 C:\Users\Administrador\Desktop\payload.ps1

Con este comando, subes el archivo payload.ps1 desde tu máquina local al escritorio del usuario administrador en el sistema remoto.

🔺​Descargar archivos (download):

Del mismo modo, el comando download te permite copiar archivos desde el sistema remoto a tu máquina local.

download <ruta/remota/del/archivo> <ruta/local/destino>

Ejemplo:

download C:\Users\Administrador\Desktop\log.txt /home/kali/logs/log.txt

Así, puedes obtener registros o cualquier archivo que necesites analizar en tu entorno local.

Carga de Scripts

Si deseas ejecutar scripts de PowerShell ya existentes, puedes cargarlos utilizando el comando load:

load <ruta/al/archivo.ps1>

Esto es muy útil para ejecutar secuencias de comandos complejas sin necesidad de escribir todos los comandos manualmente.

Otros Comandos

🔺​Clear

Limpia la pantalla de la sesión interactiva, facilitando la lectura y organización de la información mostrada.

Uso:

clear

🔺​Exit

Cierra la sesión actual y finaliza la conexión con el sistema remoto.

Uso:

exit

🔺​!<comando>

Permite ejecutar comandos en el sistema local (donde se está ejecutando Evil-WinRM) sin salir de la sesión remota. Esto es útil para realizar tareas rápidas o consultar información en tu propio equipo sin interrumpir la conexión remota.

Uso:

!<comando>

Ejemplo:

!ls -la /home/kali/

Explicación: Esto ejecutará el comando ls -la /home/kali/ en tu máquina local y mostrará el listado de archivos, sin cerrar la sesión remota.

Ejecución Directa de Comandos PowerShell

Además de los comandos internos, cualquier comando válido de PowerShell se puede ejecutar directamente en el prompt de Evil-WinRM.

Ejemplo:

ipconfig

Explicación: Se ejecutará el comando ipconfig en el sistema remoto, mostrando la configuración de red.

Opiniones?