
Shell WinRM nativa in Nim con NTLM, Kerberos, trasferimento file, helper in memoria e reporting AD/OPSEC.
Client shell WinRM nativo scritto in Nim
Versione 1.2.0 · Autore Chokri Hammedi (blue0x1) · Licenza MIT
nimrm è pensato per l'amministrazione legittima, i test di sicurezza e la ricerca su sistemi di tua proprietà o per i quali hai esplicita autorizzazione all'accesso. L'autore non è responsabile per usi impropri o danni causati da questo strumento.
nimrm fornisce una shell WinRM compatta e veloce con pratici helper per autenticazione, esecuzione di comandi, trasferimento e report. È costruito come binario Nim nativo senza dipendenze da pacchetti Nim.
| Area | Supporto |
|---|---|
| Autenticazione | Password NTLM, hash NTLM, Kerberos tramite KRB5CCNAME |
| Trasporto WinRM | HTTP, HTTPS/TLS, porta personalizzata |
| Shell | PowerShell interattivo, prefisso CMD, modalità comando singolo, completamento automatico di comandi e percorsi locali |
| Trasferimenti | Caricamento/scaricamento file, trasferimento ricorsivo di directory, relay di file e directory tra sessioni remote |
| In-memory | Importazione di script PowerShell, esecuzione di assembly .NET gestiti |
| Reportistica | Contesto AD/dominio, posture di logging e auditing |
| Affidabilità | Avvolgimento messaggi Kerberos, gestione reset/retry del trasporto |
| Componente | Requisito |
|---|---|
| Compilazione | Nim >= 1.6.0 |
| Kerberos | libgssapi_krb5.so.2 su Linux o libgssapi_krb5.dylib su macOS |
| Compilazione TLS | OpenSSL e -d:ssl |
| Destinazione | WinRM raggiungibile sulla porta selezionata |
Nimble:
nimble install nimrm
Scarica l'ultima release:
curl -L -o nimrm https://github.com/blue0x1/nimrm/releases/latest/download/nimrm
chmod +x nimrm
Binario di release per Windows:
Invoke-WebRequest -Uri https://github.com/blue0x1/nimrm/releases/latest/download/nimrm.exe -OutFile nimrm.exe
Pacchetto 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
Il PKGBUILD di BlackArch segue l'ultimo commit git upstream, quindi le nuove release raggiungono gli utenti BlackArch al successivo aggiornamento di sistema. Se nimrm è già installato, aggiornalo con:
sudo pacman -Syu nimrm
Compila dal sorgente:
git clone https://github.com/blue0x1/nimrm.git
cd nimrm
make linux
make linux
make ssl
make windows
Compilazione manuale:
nim c -d:release --opt:speed -o:nimrm nimrm.nim
nimrm è progettato per restare veloce grazie a un binario Nim nativo, runspace WinRM persistente, logica di trasferimento a blocchi e rendering compatto dell'avanzamento.
| Operazione | Implementazione |
|---|---|
| Caricamento | Scritture Base64 a blocchi con retry adattivo per envelope di grandi dimensioni |
| Scaricamento | Blocchi Base64 in streaming con monitoraggio dell'avanzamento e percorso rapido per file piccoli |
| Relay tra sessioni remote | Legge da una sessione WinRM e scrive in un'altra attraverso la memoria del controller senza scrivere il file su disco locale |
| Trasferimento directory | Enumerazione ricorsiva dei file tramite lo stesso percorso di trasferimento a blocchi |
| Esecuzione comandi | Riutilizza la shell/runspace WinRM attiva invece di riconnettersi a ogni comando |
Password NTLM:
./nimrm -T 192.168.1.10 -A 'CORP\administrator' -P 'Password123'
NTLM pass-the-hash:
./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
Forza la crittografia dei messaggi NTLM su HTTP:
./nimrm -T 192.168.1.10 -A 'CORP\user' -P 'Password123' --seal
Porta personalizzata:
./nimrm -T 192.168.1.10 -A 'CORP\user' -P 'Password123' -p 5985
Comando singolo:
./nimrm -T 192.168.1.10 -A 'CORP\user' -P 'Password123' -c 'whoami'
Salta la verifica del certificato TLS (certificati self-signed):
./nimrm -T 192.168.1.10 -A 'CORP\user' -P 'Password123' --tls --insecure
| Opzione | Descrizione |
|---|---|
-T, --target | IP o hostname di destinazione |
-A, --account | Nome utente: user, user@domain o DOMAIN\user |
-P, --secret | Password NTLM |
-p, --port | Porta WinRM |
-N, --nt-proof | Hash NT o hash LM:NT |
-Z, --krb-zone | Override del realm Kerberos |
-K, --kerb-spn | Override dello SPN Kerberos |
-k, --kerb | Usa l'autenticazione Kerberos |
-c, --command | Esegue un comando ed esce |
--tls | Usa HTTPS/TLS |
--insecure | Salta la verifica del certificato TLS |
-h, --help | Mostra l'aiuto |