
Shell WinRM nativa de Nim con NTLM, Kerberos, transferencia de archivos, utilidades en memoria e informes de AD/OPSEC.
Cliente de shell WinRM nativo escrito en Nim
Versión 1.2.0 · Autor Chokri Hammedi (blue0x1) · Licencia MIT
nimrm está diseñado para administración legítima, pruebas de seguridad e investigación en sistemas que usted posee o para los que tiene permiso explícito de acceso. El autor no es responsable por el uso indebido o los daños causados por esta herramienta.
nimrm proporciona un shell WinRM compacto y rápido con ayudantes prácticos de autenticación, ejecución de comandos, transferencia y elaboración de informes. Está compilado como un binario Nim nativo sin dependencias de paquetes Nim.
| Área | Soporte |
|---|---|
| Autenticación | Contraseña NTLM, hash NTLM, Kerberos mediante KRB5CCNAME |
| Transporte WinRM | HTTP, HTTPS/TLS, puerto personalizado |
| Shell | PowerShell interactivo, prefijo CMD, modo de comando único, autocompletado de comandos y rutas locales |
| Transferencias | Subida/descarga de archivos, transferencia recursiva de directorios, retransmisión remota de archivos y directorios entre sesiones |
| En memoria | Importación de scripts de PowerShell, ejecución de ensamblados .NET administrados |
| Informes | Contexto de AD/dominio, postura de registro y auditoría |
| Fiabilidad | Envoltura de mensajes Kerberos, manejo de reinicio/reintento del transporte |
| Componente | Requisito |
|---|---|
| Compilación | Nim >= 1.6.0 |
| Kerberos | libgssapi_krb5.so.2 en Linux o libgssapi_krb5.dylib en macOS |
| Compilación TLS | OpenSSL y -d:ssl |
| Objetivo | WinRM accesible en el puerto seleccionado |
Nimble:
nimble install nimrm
Descargar la última versión:
curl -L -o nimrm https://github.com/blue0x1/nimrm/releases/latest/download/nimrm
chmod +x nimrm
Binario de la versión para Windows:
Invoke-WebRequest -Uri https://github.com/blue0x1/nimrm/releases/latest/download/nimrm.exe -OutFile nimrm.exe
Paquete Debian:
curl -L -o nimrm_1.2.0_amd64.deb https://github.com/blue0x1/nimrm/releases/latest/download/nimrm_1.2.0_amd64.deb
sudo dpkg -i nimrm_1.2.0_amd64.deb
BlackArch:
sudo pacman -S nimrm
El PKGBUILD de BlackArch sigue la última confirmación de git del repositorio upstream, por lo que las nuevas versiones llegan a los usuarios de BlackArch en su próxima actualización del sistema. Si nimrm ya está instalado, actúalice con:
sudo pacman -Syu nimrm
Compilar desde el código fuente:
git clone https://github.com/blue0x1/nimrm.git
cd nimrm
make linux
make linux
make ssl
make windows
Compilación manual:
nim c -d:release --opt:speed -o:nimrm nimrm.nim
nimrm está diseñado para mantenerse rápido mediante el uso de un binario Nim nativo, un espacio de ejecución WinRM persistente, lógica de transferencia por fragmentos y una representación compacta del progreso.
| Operación | Implementación |
|---|---|
| Subida | Escrituras Base64 por fragmentos con reintento adaptativo en sobres grandes |
| Descarga | Fragmentos Base64 en streaming con seguimiento del progreso y una ruta rápida para archivos pequeños |
| Retransmisión remota entre sesiones | Lee de una sesión WinRM y escribe en otra a través de la memoria del controlador sin escribir el archivo en el disco local |
| Transferencia de directorios | Enumeración recursiva de archivos mediante la misma ruta de transferencia por fragmentos |
| Ejecución de comandos | Reutiliza el shell/espacio de ejecución WinRM activo en lugar de reconectar por cada comando |
Contraseña NTLM:
./nimrm -T 192.168.1.10 -A 'CORP\administrator' -P 'Password123'
Pass-the-hash NTLM:
./nimrm -T 192.168.1.10 -A 'CORP\user' -N aad3b435b51404eeaad3b435b51404ee:0123456789abcdef0123456789abcdef
Kerberos:
KRB5CCNAME=FILE:/tmp/user.ccache ./nimrm -k -T dc01.corp.local -Z CORP.LOCAL
Forzar cifrado de mensajes NTLM sobre HTTP:
./nimrm -T 192.168.1.10 -A 'CORP\user' -P 'Password123' --seal
Puerto personalizado:
./nimrm -T 192.168.1.10 -A 'CORP\user' -P 'Password123' -p 5985
Comando único:
./nimrm -T 192.168.1.10 -A 'CORP\user' -P 'Password123' -c 'whoami'
Omitir verificación del certificado TLS (certificados autofirmados):
./nimrm -T 192.168.1.10 -A 'CORP\user' -P 'Password123' --tls --insecure
| Opción | Descripción |
|---|---|
-T, --target | IP o nombre de host de destino |
-A, --account | Nombre de usuario: user, user@domain o DOMAIN\user |
-P, --secret | Contraseña NTLM |
-p, --port | Puerto WinRM |
-N, --nt-proof | Hash NT o hash LM:NT |
-Z, --krb-zone | Anulación del realm Kerberos |
-K, --kerb-spn | Anulación del SPN Kerberos |
-k, --kerb | Usar autenticación Kerberos |
-c, --command | Ejecutar un comando y salir |
--tls | Usar HTTPS/TLS |
--insecure | Omitir la verificación del certificado TLS |
-h, --help | Mostrar ayuda |