Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
SigFlip — SigFlip es una herramienta para parchear archivos PE firmados con Authenticode (exe, dll, sys, etc.) sin invalidar ni romper la firma existente. | Kitploit
Herramientas/GitHubGitHub/med0x2e/sigflip
Herramientas DefensivasMecanismos de PersistenciaAnálisis de CódigoExplotaciónMovimiento LateralAnálisis de BinariosRed TeamingDesarrollo de Payloads
GitHubmed0x2e/sigflip

SigFlip

SigFlip es una herramienta para parchear archivos PE firmados con Authenticode (exe, dll, sys, etc.) sin invalidar ni romper la firma existente.

Ver Repositorio
1.3k20976hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

¿Qué es?

SigFlip es una herramienta para modificar archivos PE firmados con authenticode (exe, dll, sys, etc.) de forma que no afecte ni rompa la firma authenticode existente; en otras palabras, puedes cambiar el checksum/hash del archivo PE incrustando datos (por ejemplo, shellcode) sin romper la firma del archivo, las comprobaciones de integridad ni la funcionalidad del PE.

SigInject cifra e inyecta shellcode en la tabla de certificados [WIN_CERTIFICATE] de un archivo PE; la clave de cifrado se imprime para su uso con un cargador básico BOF/C/C# (SigLoader). SigInject guarda los cambios en un archivo PE modificado y mantiene intacta su firma y la validez del certificado.

SigLoader es un cargador básico que toma como parámetros la ruta de un archivo PE modificado creado por SigInject y la clave de descifrado, luego extrae y descifra el shellcode incrustado para usarlo con una inyección de shellcode de elección.

SigFlip verificará si el hash del PE se cambió exitosamente y también comprobará y saldrá de forma ordenada en caso de que los endpoints estén endurecidos contra esta configuración incorrecta común (consulta la sección "Detalles").

Nota rápida: SigFlip, SigInject y SigLoader están disponibles como scripts BOF y ensamblados .NET; la única diferencia es que la funcionalidad de SigInject está implementada como parte de SigFlip (-i) en caso de que elijas usar artefactos .NET en lugar de BOFs.

¿Por qué?

Se puede usar principalmente para persistencia, movimiento lateral o ejecución de código/comandos y puede ayudar con:

  • Evasión de listas blancas de aplicaciones, cambiando el hash del archivo PE (por ejemplo, msbuild.exe) sin romper la firma.
  • Evasión de EDRs que dependen de los hashes de LOLBINs específicos para detectar ejecución de código/comandos maliciosos.
  • Cargar controladores firmados usando un hash diferente; podría ayudar a evadir EDRs que vigilen controladores firmados vulnerables comunes usando una lista predefinida de hashes.
  • Incrustar shellcode cifrado en un archivo PE firmado y usar un stager (sigloader) de tu preferencia para analizar, descifrar, cargar y ejecutarlo.
  • Los proveedores de seguridad de endpoints tienden a clasificar los archivos PE firmados como benignos la mayoría de las veces; incrustar tu código sin firmar (shellcode, etc.) en un archivo PE firmado dificulta un poco su detección/marcado.
  • Evasión de proveedores de seguridad de endpoints que dependen principalmente de WinVerifyTrust predeterminado para la validación de firmas.
  • Mejorar OPSEC y desafiar a los defensores que dependen únicamente de utilidades de verificación de firmas típicas como signtool, sigcheck, Get-AuthenticodeSignature, etc., para validar la firma authenticode de archivos PE.

Uso y ejemplos:

Compilar/Construir:

En este proyecto no se proporcionan BOFs precompilados; se pueden compilar usando Mingw-w64. Para .NET usa VS o csc.exe para compilar proyectos .NET (SigFlip, SigLoader); para BOF consulta los pasos a continuación;

  • ➜ 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

Asegúrate de que todos los archivos objeto estén ubicados en el mismo directorio que sigflip.cna, luego carga el script sigflip.cna en Cobalt Strike.

Nota rápida: los BOFs precompilados fueron probados y son compatibles con mingw-64 v8.0.0_3; usar mingw-64 >= v9 podría funcionar pero podría bloquear beacons activos, consulta https://github.com/med0x2e/SigFlip/issues/2 para más detalles.

Cobalt Strike:

  1. Execute-Assembly

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

    • Para usar con Cobalt Strike, una vez que cargues el script SigFlip.cna, se registrarán dos nuevos comandos: SigFlip y SigInject; luego úsalos como se indica a continuación:
      • SigFlip: Cambia el hash de un archivo PE (DLL, EXE, SYS, OCX, etc.) sin romper la firma ni la validez del certificado:

        • SigFlip "<RUTA_DEL_PE>" "<RUTA_DEL_PE_SALIDA (con extensión)>"
      • SigInject: Cifra e inyecta shellcode en la tabla de certificados [WIN_CERTIFICATE] de un archivo PE; la clave de cifrado se imprime para usarla con un cargador básico C/C# y mantiene intacta la firma y validez del certificado:

        • SigInject "<RUTA_DEL_PE> <RUTA_DEL_PE_SALIDA (con extensión)>" "<RUTA_DEL_SHELLCODE>"
      • SigLoader: Carga shellcode cifrado desde archivos PE creados por SigInject, luego usa Early Bird queueuserapc para generar/inyectar el shellcode en un proceso sacrificial; la lógica de inyección de shellcode se puede personalizar o reemplazar con cualquier otra técnica de inyección de código de elección:

        • SigLoader <RUTA_DEL_PE_CON_SH> <CLAVE_DESCIFRADO> <RUTA_DEL_PROCESO_DESTINO> <ID_DEL_PROCESO_PADRE>
  3. Ejemplos

    • BOF:

      • Inyectar datos aleatorios en msbuild.exe (es decir, bit flip msbuild.exe):
        • SigFlip "C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" "C:\lolbins\modified-msbuild.exe"
      • Inyectar shellcode en kernel32.dll (el orden de los argumentos es diferente; asegúrate de tomar nota de la clave de descifrado):
        • SigInject "C:\Windows\System32\kernel32.dll" "C:\random\modified-kernel32.dll" "C:\shellcode\cobaltstrike_or_msf_shellcode.bin"
        • Sigloader "C:\random\modified-kernel32.dll" "CLAVE_DESCIFRADO" "C:\Windows\System32\werfault.exe" 6300
    • Execute-Assembly:

      • Inyectar datos aleatorios en msbuild.exe:
        • execute-assembly SigFlip.exe -b C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe -o C:\Temp\MSBuild.exe
      • Inyectar shellcode en kernel32.dll (el orden de los argumentos es diferente; asegúrate de tomar nota de la clave de descifrado):
        • 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

Detalles:

Esta es una técnica conocida utilizada por APT#10 en múltiples campañas o conjuntos de intrusiones.

¿Firmas digitales Authenticode?

Authenticode es una tecnología de firma de código de Microsoft que identifica al editor de software firmado con Authenticode. Authenticode también verifica que el software no haya sido manipulado desde que se firmó y publicó.

¿Cómo funciona?

Microsoft se basa principalmente en el formato de firma Authenticode para verificar la integridad y el origen de los binarios PE. Según la especificación del formato PE de Authenticode, las firmas Authenticode pueden estar "incrustadas" en un archivo PE de Windows, en una ubicación especificada por la entrada de la tabla de certificados en los directorios de datos del encabezado opcional. Cuando se usa Authenticode para firmar un archivo PE de Windows, el algoritmo que calcula el valor hash Authenticode del archivo excluye ciertos campos PE. Al incrustar la firma en el archivo, el proceso de firma puede modificar estos campos sin afectar el valor hash del archivo. Estos campos son los siguientes: **el checksum, RVA de la tabla de certificados, tamaño de la tabla de certificados y la tabla de certificados de atributos. La tabla de certificados de atributos contiene una estructura PKCS#7 SignedData que contiene el valor hash del archivo PE, una firma creada con la clave privada del editor del software y los certificados X.509 v3 que vinculan la clave de firma del editor del software con una entidad legal.

En términos simples, podemos modificar o incrustar datos en campos excluidos del cálculo hash authenticode sin preocuparnos por romper la firma authenticode y las comprobaciones de integridad del archivo.

Descargar herramienta