Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/klezvirus/syswhispers3
Herramientas DefensivasGeneración de PayloadsExplotaciónEvasión de IDS/IPSShellcodeRed TeamingGeneración de ShellcodeDesarrollo de PayloadsTop en Evasión de IDS/IPS #19Top en Desarrollo de Payloads #7Top en Generación de Payloads #9Top en Shellcode #7Top en Generación de Shellcode #9
GitHubklezvirus/syswhispers3

SysWhispers3

SysWhispers on Steroids - Evasión de AV/EDR mediante llamadas directas al sistema.

Ver Repositorio
1.6k20785hace 2 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

SysWhispers3

SysWhispers ayuda con la evasión generando archivos de cabecera/ASM que los implantes pueden usar para realizar llamadas directas al sistema.

Canal oficial de Discord

¡Ven a pasar el rato en Discord!

Inceptor Server

¿Por qué demonios no creé un PR para SysWhispers2?

Las razones para que SysWhispers3 sea una versión independiente son muchas, pero las más importantes son:

  • SysWhispers3 es el "fork" de facto utilizado por [Inceptor][1], e implementa algunas clases de utilidades que no son relevantes para la versión original de la herramienta.
  • SysWhispers2 se está moviendo hacia el soporte de compilación NASM (para gcc/mingw), mientras que esta versión está específicamente diseñada y probada para soportar MSVC (porque [Inceptor][1] seguirá siendo un framework solo para Windows en el futuro cercano).
  • SysWhispers3 contiene características parcialmente implementadas (como egg-hunting) que no tendría sentido incluir en la versión original de la herramienta.

Diferencias con SysWhispers2

El uso es bastante similar a SysWhispers2, con las siguientes excepciones:

  • También soporta x86/WoW64
  • Soporta reemplazo de instrucciones de syscalls con un EGG (para ser reemplazado dinámicamente)
  • Soporta saltos directos a syscalls en modo x86/x64 (en WOW64 es casi estándar)
  • Soporta saltos directos a syscalls aleatorios (tomando prestada la idea de @ElephantSeal)

Una mejor explicación de estas características está mejor descrita en la publicación del blog [SysWhispers is dead, long live SysWhispers!][2]

Introducción

Los productos de seguridad, como los AV y EDR, suelen colocar hooks en las funciones de API en modo usuario para analizar el flujo de ejecución de un programa, con el fin de detectar actividades potencialmente maliciosas.

SysWhispers2 es una herramienta diseñada para generar pares de cabecera/ASM para cualquier llamada al sistema en la imagen del núcleo del kernel (ntoskrnl.exe), que luego pueden integrarse y llamarse directamente desde código C/C++, evadiendo los hooks en modo usuario.

La herramienta, sin embargo, genera algunos patrones que pueden ser incluidos en firmas, o comportamientos que pueden ser detectados en tiempo de ejecución.

SysWhispers3 está construido sobre SysWhispers2, e integra algunas características útiles para evadir estas formas de detección.

Instalación

C:\> git clone https://github.com/klezVirus/SysWhispers3.git
C:\> cd SysWhispers3
C:\> python .\syswhispers.py --help

Uso y Ejemplos

La ayuda muestra todos los comandos y características disponibles de la herramienta:

C:\>python syswhispers.py -h

usage: syswhispers.py [-h] [-p PRESET] [-a {x86,x64}] [-m {embedded,egg_hunter,jumper,jumper_randomized}] [-f FUNCTIONS] -o OUT_FILE [--int2eh] [--wow64] [-v] [-d]

SysWhispers3 - SysWhispers on steroids

optional arguments:
  -h, --help            show this help message and exit
  -p PRESET, --preset PRESET
                        Preset ("all", "common")
  -a {x86,x64}, --arch {x86,x64}
                        Architecture
  -c {msvc,mingw,all}, --compiler {msvc,mingw,all}
                        Compiler
  -m {embedded,egg_hunter,jumper,jumper_randomized}, --method {embedded,egg_hunter,jumper,jumper_randomized}
                        Syscall recovery method
  -f FUNCTIONS, --functions FUNCTIONS
                        Comma-separated functions
  -o OUT_FILE, --out-file OUT_FILE
                        Output basename (w/o extension)
  --int2eh              Use the old `int 2eh` instruction in place of `syscall`
  --wow64               Use Wow64 to run x86 on x64 (only usable with x86 architecture)
  -v, --verbose         Enable debug output
  -d, --debug           Enable syscall debug (insert software breakpoint)

Líneas de comando

SysWhispers estándar, llamadas al sistema incrustadas (x64)

# Export all functions with compatibility for all supported Windows versions (see example-output/).
py .\syswhispers.py --preset all -o syscalls_all

# Export just the common functions (see below for list).
py .\syswhispers.py --preset common -o syscalls_common

# Export NtProtectVirtualMemory and NtWriteVirtualMemory with compatibility for all versions.
py .\syswhispers.py --functions NtProtectVirtualMemory,NtWriteVirtualMemory -o syscalls_mem

Muestras solo de SysWhispers3

# Normal SysWhispers, 32-bits mode
py .\syswhispers.py --preset all -o syscalls_all -m jumper --arch x86

# Normal SysWhispers, using WOW64 in 32-bits mode (only specific functions)
py .\syswhispers.py --functions NtProtectVirtualMemory,NtWriteVirtualMemory -o syscalls_mem --arch x86 --wow64

# Egg-Hunting SysWhispers, to bypass the "mark of the sycall" (common function)
py .\syswhispers.py --preset common -o syscalls_common -m egg_hunter

# Jumping/Jumping Randomized SysWhispers, to bypass dynamic RIP validation (all functions) using MinGW as the compiler
py .\syswhispers.py --preset all -o syscalls_all -m jumper -c mingw


Salida del script

PS C:\Projects\SysWhispers2> py .\syswhispers.py --preset common --out-file temp\syscalls_common -v 
                                                       
                  .                         ,--.
,-. . . ,-. . , , |-. o ,-. ,-. ,-. ,-. ,-.  __/
`-. | | `-. |/|/  | | | `-. | | |-' |   `-. .  \
`-' `-| `-' ' '   ' ' ' `-' |-' `-' '   `-'  '''
     /|                     |  @Jackson_T
    `-'                     '  @modexpblog, 2021

                      Edits by @klezVirus,  2022
SysWhispers3: Why call the kernel when you can whisper?


Common functions selected.

Complete! Files written to:
        temp\syscalls_common.h
        temp\syscalls_common.c
        temp\syscalls_common_.asm
Press a key to continue...

Importación en Visual Studio

  1. Copie los archivos H/C/ASM generados en la carpeta del proyecto.
  2. En Visual Studio, vaya a Project → Build Customizations... y habilite MASM.
  3. En el Solution Explorer, agregue los archivos .h y .c/.asm al proyecto como archivos de cabecera y fuente, respectivamente.
  4. Vaya a las propiedades del archivo ASM y establezca el Item Type en Microsoft Macro Assembler.

Compilación fuera de Visual Studio

Windows

Makefile para 64 bits:

Makefile.msvc

OPTIONS = -Zp8 -c -nologo -Gy -Os -O1 -GR- -EHa -Oi -GS-
LIBS = libvcruntime.lib libcmt.lib ucrt.lib kernel32.lib

program:
  ML64 /c syscalls-asm.x64.asm /link /NODEFAULTLIB /RELEASE /MACHINE:X64
  cl.exe $(OPTIONS) syscalls.c  program.c
  link.exe /OUT:program.x64.exe -nologo $(LIBS) /MACHINE:X64 -subsystem:console -nodefaultlib syscalls-asm.x64.obj syscalls.obj program.obj

Makefile para 32 bits:

Makefile.msvc

OPTIONS = -Zp8 -c -nologo -Gy -Os -O1 -GR- -EHa -Oi -GS-
LIBS = libvcruntime.lib libcmt.lib ucrt.lib kernel32.lib

program:
  ML /c syscalls-asm.x86.asm /link /NODEFAULTLIB /RELEASE /MACHINE:X86
  cl.exe $(OPTIONS) syscalls.c  program.c
  link.exe /OUT:program.x86.exe -nologo $(LIBS) /MACHINE:X86 -subsystem:console -nodefaultlib syscalls-asm.x86.obj syscalls.obj program.obj

Compilar con nmake:

nmake -f Makefile.msvc

Linux

Makefile para 64 y 32 bits:

Makefile.mingw

CC_x64 := x86_64-w64-mingw32-gcc
CC_x86 := i686-w64-mingw32-gcc
OPTIONS := -masm=intel -Wall

program:
  $(CC_x64) syscalls.c program.c -o program.x64.exe $(OPTIONS)
  $(CC_x86) syscalls.c program.c -o program.x86.exe $(OPTIONS)

Compilar con make:

make -f Makefile.mingw

Advertencias y Limitaciones

Descargar herramienta