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

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
FalconEye — Controlador de Windows en modo kernel para la detección en tiempo real de técnicas de inyección de procesos, incluyendo inyección de shellcode, DLL e inyección reflectiva, con hookeo de syscalls y detección de anomalías. | Kitploit
Herramientas/GitHubGitHub/rajiv2790/falconeye
Herramientas DefensivasAnálisis de MalwareAnálisis de BinariosDetección de Intrusiones
GitHubrajiv2790/falconeye

FalconEye

Controlador de Windows en modo kernel para la detección en tiempo real de técnicas de inyección de procesos, incluyendo inyección de shellcode, DLL e inyección reflectiva, con hookeo de syscalls y detección de anomalías.

Ver Repositorio
31067hace 5 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

FalconEye: Software de detección en tiempo real para inyecciones de procesos en Windows

FalconEye es un software de detección para endpoints Windows para inyecciones de procesos en tiempo real. Es un controlador en modo kernel que tiene como objetivo detectar inyecciones de procesos a medida que ocurren (tiempo real). Debido a que FalconEye se ejecuta en modo kernel, proporciona una defensa más sólida y confiable contra técnicas de inyección de procesos que intentan evadir varios hooks en modo usuario.

Puedes consultar nuestra presentación en 2021 Blackhat ASIA Arsenal y las diapositivas.

Resumen del Proyecto

Cobertura de Detección

La tabla a continuación muestra el estado de implementación y la lógica de detección para las diversas técnicas de inyección de procesos. WPM significa WriteProcessMemory. Para probar la detección, se puede consultar la sección de referencias.

TécnicaEstadoDetecciónPOC Utilizado
Atombombing✓Hook QueueUserAPC y buscar familia de funciones GlobalGetAtomPinjectra
Inyección mediante callback de instrumentación✓Detectar si se crea un nuevo hilo desde código flotantehttps://github.com/antonioCoco/Mapping-Injection
Inyección de DLL reflectante✓Detectar si se crea un nuevo hilo desde código flotante y si se está escribiendo la cabecera PE en la víctimaMInjector
PROPagate✓Hook SetProp para obtener la dirección de la propiedad que se está escribiendo y correlacionar con las llamadas WPM anteriores para obtener la dirección del código flotantePinjectra
Vaciado de proceso✓Detectado mediante cabecera PE escrita en la memoria del proceso objetivoMInjector
CreateRemoteThread con LoadLibrary✓Nuevo hilo con dirección de inicio apuntando a LoadLibrary. La versión de MInjector también escribe la ruta de la DLL usando WPM, lo cual también se detectaMInjector, Pinjectra
CreateRemoteThread con MapViewOfFile✓Detectar si se crea un nuevo hilo desde código flotantePinjectra
Susponder-Inyectar-Reanudar✓Detectar si se crea un nuevo hilo desde código flotante (MInjector). Ruta de DLL escrita mediante WPM (MInjector). Detectar si se establece contexto en un hilo previamente suspendido (Pinjectra)MInjector, Pinjectra
QueueUserAPC✓Ruta de DLL escrita mediante WPMMInjector
QueueUserAPC con memset (Stackbombing)✓Hook QueueUserAPC y buscar memsetPinjectra
SetWindowLong (Inyección en memoria de ventana extra)✓Hook SetWindowLong para obtener la dirección del puntero a función que se está escribiendo y correlacionar con las llamadas WPM anteriores para obtener la dirección del código flotantePinjectra
Desmapear + Sobrescribir✓Alertar si el proceso atacante está desmapeando ntdll de la víctimaPinjectra
Kernel Ctrl Table✓Detectar si WPM está sobrescribiendo el campo KernelCallbackTable en el PEB de la víctimahttps://github.com/odzhan/injection/blob/master/kct
USERDATA✓Verificar si la dirección objetivo de WPM está en el rango de conhost.exe. Si es así, comprobar si algún puntero a función relevante de conhost coincide con la dirección WPM almacenada previamentehttps://github.com/odzhan/injection/blob/master/conhost
Ctrl-inject✓Detectar si el atacante realiza WPM en el rango de KernelBase.dll de la víctimaPinjectra
ALPC Callback✓Extraer el pid de la víctima en llamadas NtConnectPort al puerto ALPC. Para el par atacante-víctima, verificar llamadas WPM anteriores y aplicar detección de código flotantePinjectra
WNF Callback✓WPM seguido de una llamada a UpdateWNFStateDatahttps://github.com/odzhan/injection/tree/master/wnf
SetWindowsHook✓Guardar las rutas de módulos registrados en el hook NtUserSetWindowsHookEx. Luego, cuando un módulo que coincide con esta ruta se carga en un proceso diferente, generar una alertaMInjector
GhostWriting✓Detectar si se establece contexto (se llama a NtSetContextThread) en un hilo previamente suspendidoPinjectra
Control de Servicio✓WPM sobrescribiendo el Service ID de un proceso (servicio)https://github.com/odzhan/injection/tree/master/svcctrl
Inyección de shellcode✓Nuevo hilo iniciado desde código flotante. Ruta de DLL siendo escrita por WPMMInjector
Mapeo de imagen✓Hilo iniciado desde código flotante. Cabecera PE siendo escrita por WPM. Ruta de DLL siendo escrita por WPMMInjector
Reutilización de hilo✓Hilo iniciado desde código flotante. Ruta de DLL siendo escrita por WPMMInjector

Resumen de Arquitectura

Diagrama de Arquitectura de FalconEye

  1. El controlador es un controlador de carga bajo demanda.
  2. La inicialización incluye la configuración de callbacks y hooks de syscall mediante libinfinityhook.
  3. Los callbacks mantienen un mapa de Pids construido a partir de actividad entre procesos, como OpenProcess, pero no se limita a OpenProcess.
  4. Los callbacks y hooks de syscall posteriores utilizan este mapa de Pid para reducir el ruido en el procesamiento. Como parte de la reducción de ruido, los hooks de syscall filtran la actividad del mismo proceso.
  5. La lógica de detección se divide en subcategorías: sin estado (ejemplo: Atombombing), con estado (Unmap+Overwrite) y Código flotante (Shellcode de múltiples técnicas).
  6. Para detecciones con estado, los hooks de syscall registran un ActionHistory que se implementa como un búfer circular. Por ejemplo, registra todas las llamadas NtWriteVirtualMemory donde el proceso llamante es diferente del proceso objetivo.
  7. La lógica de detección tiene funcionalidad común de detección de anomalías, como la detección de código flotante y la detección de desencadenantes de shellcode en procesos remotos. Tanto los callbacks como los hooks de syscall invocan esta funcionalidad común para la detección real.

NOTA: Nuestro enfoque ha sido la detección y no la creación de un motor de detección eficiente. Continuaremos estos esfuerzos después de la presentación de BlackHat.

Archivos

root@kitploit:~
.
├── src 
│   ├── FalconEye ---------------------------# FalconEye espacio de usuario y kernel
│   └── libinfinityhook ---------------------# Implementación de hooks del kernel
├── 2021BHASIA_FalconEye.pdf
└── README.md

Comenzando

Requisitos previos

  1. Windows 10 Build 1903/1909
  2. Microsoft Visual Studio 2019 en adelante
  3. Software de virtualización como VmWare, Hyper-V (Opcional)

Instalación

Compilación

  1. Abra la solución con Visual Studio 2019
  2. Seleccione x64 como plataforma de compilación
  3. Compile la solución. Esto debería generar el binario FalconEye.sys en src\kernel\FalconEye\x64\Debug o src\kernel\FalconEye\x64\Release

Configuración de la Máquina de Prueba

  1. Instale Windows 10 Build 1903/1909 en una VM
  2. Configure la VM para probar controladores sin firma
    • Usando bcdedit, desactive las comprobaciones de integridad: BCDEDIT /set nointegritychecks ON
  3. Ejecute DbgView de sysinternals en la VM o inicie una conexión de depuración usando WinDbg.

Uso

  1. Copie FalconEye.sys a la Máquina de Prueba (VM Windows 10)
  2. Cargue FalconEye.sys como controlador de carga 'On Demand' usando OSR Loader o herramientas similares
  3. Ejecute herramientas de prueba de inyección como pinjectra, minjector u otras muestras
  4. Monitoree los registros de depuración ya sea mediante WinDbg o DbgView

Referencias

InfinityHook, 2019

Itzik Kotler and Amit Klein. Process Injection Techniques - Gotta Catch Them All, Blackhat USA Briengs, 2019

Pinjectra, 2019

Mapping-Injection, 2020

Atombombing: Nueva inyección de código para Windows, 2016

Propagate - un nuevo truco de inyección de código, 2017

Inyección de procesos en Windows: Bytes extra de ventana, 2018

Pavel Asinovsky. Sumergiéndose en la técnica no convencional de inyección de procesos de zberp, 2016

Rotem Kerner. Ctrl-inject, 2018

Inyección de procesos en Windows: Consolewindowclass, 2018

Inyección de procesos en Windows: Facilidad de notificación de Windows, 2018

Una paradoja: Escribir en otro proceso sin abrirlo ni escribir realmente en él, 2007

Inyección de procesos en Windows: Manejador de control de servicios, 2018

Marcos Oviedo. Memhunter - Caza automatizada de malware residente en memoria a escala. Defcon Demo Labs, 2019

Términos de Licencia

FalconEye está licenciado bajo la licencia de código abierto Apache 2.0.

Descargar herramienta