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
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
3106752hace 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

.
├── 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
Descargar herramienta