Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
FalconEye — Driver in modalità kernel per Windows per il rilevamento in tempo reale di tecniche di iniezione di processi, inclusi shellcode, DLL e iniezione riflessiva, con hooking di syscall e rilevamento di anomalie. | Kitploit
Strumenti/GitHubGitHub/rajiv2790/falconeye
Strumenti DifensiviAnalisi MalwareAnalisi di BinariRilevamento Intrusioni
GitHubrajiv2790/falconeye

FalconEye

Driver in modalità kernel per Windows per il rilevamento in tempo reale di tecniche di iniezione di processi, inclusi shellcode, DLL e iniezione riflessiva, con hooking di syscall e rilevamento di anomalie.

Vedi Repository
310675 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

FalconEye: Software di rilevamento in tempo reale per iniezioni di processi Windows

FalconEye è un software di rilevamento endpoint Windows per iniezioni di processi in tempo reale. È un driver in modalità kernel che mira a intercettare le iniezioni di processi mentre avvengono (in tempo reale). Poiché FalconEye viene eseguito in modalità kernel, fornisce una difesa più forte e affidabile contro le tecniche di iniezione di processi che cercano di eludere vari hook in modalità utente.

Puoi consultare la nostra presentazione al 2021 Blackhat ASIA Arsenal e le slide.

Panoramica del Progetto

Copertura del Rilevamento

La tabella seguente mostra lo stato di implementazione e la logica di rilevamento per le varie tecniche di iniezione di processi. WPM sta per WriteProcessMemory. Per testare il rilevamento, si può fare riferimento alla sezione dei riferimenti.

TecnicaStatoRilevamentoPOC Utilizzato
Atombombing✓Hook di QueueUserAPC e ricerca delle funzioni della famiglia GlobalGetAtomPinjectra
Instrumentation callback injection✓Rileva se un nuovo thread viene creato da codice fluttuantehttps://github.com/antonioCoco/Mapping-Injection
Reflective DLL Injection✓Rileva se un nuovo thread viene creato da codice fluttuante e se l'intestazione PE viene scritta nella vittimaMInjector
PROPagate✓Hook di SetProp per ottenere l'indirizzo della proprietà scritta e correlare con le precedenti chiamate WPM per ottenere l'indirizzo del codice fluttuantePinjectra
Process Hollowing✓Rilevato utilizzando l'intestazione PE scritta nella memoria del processo targetMInjector
CreateRemoteThread with LoadLibrary✓Nuovo thread con indirizzo di inizio che punta a LoadLibrary. La versione MInjector scrive anche il percorso della DLL tramite WPM, che viene anch'esso rilevatoMInjector, Pinjectra
CreateRemoteThread with MapViewOfFile✓Rileva se un nuovo thread viene creato da codice fluttuantePinjectra
Suspend-Inject-Resume✓Rileva se un nuovo thread viene creato da codice fluttuante (MInjector). Percorso DLL scritto tramite WPM (MInjector). Rileva se il contesto viene impostato su un thread precedentemente sospeso (Pinjectra)MInjector, Pinjectra
QueueUserAPC✓Percorso DLL scritto tramite WPMMInjector
QueueUserAPC with memset (Stackbombing)✓Hook di QueueUserAPC e ricerca di memsetPinjectra
SetWindowLong (Extra window memory injection)✓Hook di SetWindowLong per ottenere l'indirizzo del puntatore a funzione scritto e correlare con le precedenti chiamate WPM per ottenere l'indirizzo del codice fluttuantePinjectra
Unmap + Overwrite✓Avviso se il processo attaccante sta smappando ntdll dalla vittimaPinjectra
Kernel Ctrl Table✓Rileva se WPM sta sovrascrivendo il campo KernelCallbackTable nel PEB della vittimahttps://github.com/odzhan/injection/blob/master/kct

Panoramica dell'Architettura

alt text

  1. Il driver è un driver caricabile su richiesta
  2. L'inizializzazione include l'impostazione di callback e hook di syscall tramite libinfinityhook
  3. I callback mantengono una mappa di PID costruita dall'attività tra processi come OpenProcess, ma non limitata a OpenProcess
  4. I callback successivi e gli hook di syscall utilizzano questa mappa PID per ridurre il rumore nell'elaborazione. Come parte della riduzione del rumore, gli hook di syscall filtrano l'attività dello stesso processo.
  5. La logica di rilevamento è suddivisa in sottocategorie: stateless (esempio: Atombombing), stateful (Unmap+Overwrite) e Floating code (shellcode da più tecniche)
  6. Per i rilevamenti stateful, gli hook di syscall registrano una ActionHistory implementata come buffer circolare. Ad esempio, registra tutte le chiamate NtWriteVirtualMemory in cui il processo chiamante è diverso dal processo target.
  7. La logica di rilevamento ha funzionalità comuni di rilevamento di anomalie come il rilevamento di codice fluttuante e il rilevamento di trigger di shellcode in processi remoti. Sia i callback che gli hook di syscall invocano questa funzionalità comune per il rilevamento effettivo.

NOTA: Il nostro focus è stato il rilevamento e non la creazione di un motore di rilevamento performante. Continueremo questi sforzi oltre la presentazione al BlackHat.

File

root@kitploit:~
.
├── src 
│   ├── FalconEye ---------------------------# FalconEye user and kernel space
│   └── libinfinityhook ---------------------# Kernel hook implementation
├── 2021BHASIA_FalconEye.pdf
└── README.md

Per Iniziare

Prerequisiti

  1. Windows 10 Build 1903/1909
  2. Microsoft Visual Studio 2019 onwards
  3. Virtualization Software such as VmWare, Hyper-V (Optional)

Installazione

Build

  1. Apri la soluzione con Visual Studio 2019
  2. Seleziona x64 come piattaforma di compilazione
  3. Compila la soluzione. Questo dovrebbe generare il binario FalconEye.sys in src\kernel\FalconEye\x64\Debug o src\kernel\FalconEye\x64\Release

Configurazione Macchina di Test

  1. Installa Windows 10 Build 1903/1909 in una VM
  2. Configura la VM per testare driver non firmati
  • Utilizzando bcdedit, disabilita i controlli di integrità: BCDEDIT /set nointegritychecks ON
  1. Esegui DbgView da sysinternals nella VM o avvia una connessione di debug usando WinDbg.

Utilizzo

  1. Copia FalconEye.sys nella macchina di test (VM Windows 10)
  2. Carica FalconEye.sys come driver 'On Demand' utilizzando OSR Loader o strumenti simili
  3. Esegui strumenti di test di iniezione come pinjectra, minjector o altri esempi
  4. Monitora i log di debug tramite WinDbg o DbgView

Riferimenti

InfinityHook, 2019

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

Pinjectra, 2019

Mapping-Injection, 2020

Atombombing: Brand new code injection for windows, 2016

Propagate - a new code injection trick, 2017

Windows process injection: Extra window bytes, 2018

Pavel Asinovsky. Diving into zberp's unconventional process injection technique, 2016

Rotem Kerner. Ctrl-inject, 2018

Windows process injection: Consolewindowclass, 2018

Windows process injection: Windows notication facility, 2018

A paradox: Writing to another process without openning it nor actually writing to it, 2007

Windows process injection: Service control handler, 2018

Marcos Oviedo. Memhunter - Automated hunting of memory resident malware at scale. Defcon Demo Labs, 2019

Termini di Licenza

FalconEye è concesso in licenza a te secondo la licenza open source Apache 2.0.

Scarica lo strumento
USERDATA✓Verifica se l'indirizzo target di WPM è nell'intervallo di conhost.exe. In tal caso, verifica se eventuali puntatori a funzione rilevanti da conhost corrispondono all'indirizzo WPM precedentemente memorizzatohttps://github.com/odzhan/injection/blob/master/conhost
Ctrl-inject✓Rileva se l'attaccante esegue WPM nell'intervallo di KernelBase.dll della vittimaPinjectra
ALPC Callback✓Estrai il pid della vittima nelle chiamate NtConnectPort alla porta ALPC. Per la tupla pid attaccante-vittima, controlla le precedenti chiamate WPM e applica il rilevamento di codice fluttuantePinjectra
WNF Callback✓WPM seguito dalla chiamata UpdateWNFStateDatahttps://github.com/odzhan/injection/tree/master/wnf
SetWindowsHook✓Salva i percorsi dei moduli registrati nell'hook NtUserSetWindowsHookEx. Successivamente, quando un modulo corrispondente a questo percorso viene caricato in un processo diverso, genera un avvisoMInjector
GhostWriting✓Rileva se il contesto viene impostato (viene chiamato NtSetContextThread) su un thread precedentemente sospesoPinjectra
Service Control✓WPM sovrascrive l'IDE del servizio di un processo (servizio)https://github.com/odzhan/injection/tree/master/svcctrl
Shellcode injection✓Nuovo thread avviato da codice fluttuante. Percorso DLL scritto da WPMMInjector
Image Mapping✓Thread avviato da codice fluttuante. Intestazione PE scritta da WPM. Percorso DLL scritto da WPMMInjector
Thread Reuse✓Thread avviato da codice fluttuante. Percorso DLL scritto da WPMMInjector