Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
FalconEye — Kernel-mode Windows-Treiber zur Echtzeiterkennung von Prozessinjektionstechniken, einschließlich Shellcode-, DLL- und reflektiver Injektion, mit Syscall-Hooking und Anomalieerkennung. | Kitploit
Tools/GitHubGitHub/rajiv2790/falconeye
DefensivwerkzeugeMalware-AnalyseBinäranalyseEinbruchserkennung
GitHubrajiv2790/falconeye

FalconEye

Kernel-mode Windows-Treiber zur Echtzeiterkennung von Prozessinjektionstechniken, einschließlich Shellcode-, DLL- und reflektiver Injektion, mit Syscall-Hooking und Anomalieerkennung.

Repository anzeigen
3106753vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

FalconEye: Echtzeit-Erkennungssoftware für Windows-Prozess-Injektionen

FalconEye ist eine Windows-Endpunkt-Erkennungssoftware für Echtzeit-Prozess-Injektionen. Es ist ein Kernel-Mode-Treiber, der darauf abzielt, Prozessinjektionen im Moment ihres Auftretens (Echtzeit) zu erkennen. Da FalconEye im Kernel-Modus läuft, bietet es eine stärkere und zuverlässigere Verteidigung gegen Prozessinjektionstechniken, die versuchen, verschiedene User-Mode-Hooks zu umgehen.

Sie können unsere Präsentation auf dem 2021 Blackhat ASIA Arsenal und die Folien einsehen.

Projektübersicht

Erkennungsabdeckung

Die folgende Tabelle zeigt den Implementierungsstatus und die Erkennungslogik für die verschiedenen Prozessinjektionstechniken. WPM steht für WriteProcessMemory. Zum Testen der Erkennung kann auf den Abschnitt 'Referenzen' verwiesen werden.

TechnikStatusErkennungVerwendeter POC
Atombombing✓Hook QueueUserAPC und suche nach Funktionen der GlobalGetAtom-FamiliePinjectra
Instrumentation callback injection✓Erkennen, ob ein neuer Thread aus fließendem Code erstellt wirdhttps://github.com/antonioCoco/Mapping-Injection
Reflective DLL Injection✓Erkennen, ob ein neuer Thread aus fließendem Code erstellt wird und ob ein PE-Header in das Opfer geschrieben wirdMInjector
PROPagate✓Hook SetProp, um die Adresse der geschriebenen Eigenschaft zu erhalten, und korreliere mit vorherigen WPM-Aufrufen, um die Adresse von fließendem Code zu erhaltenPinjectra
Process Hollowing✓Erkannt durch in den Zielprozessspeicher geschriebenen PE-HeaderMInjector
CreateRemoteThread with LoadLibrary✓Neuer Thread mit Startadresse, die auf LoadLibrary zeigt. Die MInjector-Version schreibt auch den DLL-Pfad mittels WPM, was ebenfalls erkannt wirdMInjector, Pinjectra
CreateRemoteThread with MapViewOfFile✓Erkennen, ob ein neuer Thread aus fließendem Code erstellt wirdPinjectra
Suspend-Inject-Resume✓Erkennen, ob ein neuer Thread aus fließendem Code erstellt wird (MInjector). DLL-Pfad wird via WPM geschrieben (MInjector). Erkennen, ob ein Kontext auf einen zuvor ausgesetzten Thread gesetzt wird (Pinjectra)MInjector, Pinjectra
QueueUserAPC✓DLL-Pfad wird via WPM geschriebenMInjector
QueueUserAPC with memset (Stackbombing)✓Hook QueueUserAPC und suche nach memsetPinjectra
SetWindowLong (Extra window memory injection)✓Hook SetWindowLong, um die Adresse des geschriebenen Funktionszeigers zu erhalten, und korreliere mit vorherigen WPM-Aufrufen, um die Adresse von fließendem Code zu erhaltenPinjectra
Unmap + Overwrite✓Warnen, wenn der Angreiferprozess ntdll aus dem Opfer entferntPinjectra
Kernel Ctrl Table✓Erkennen, ob WPM das KernelCallbackTable-Feld im PEB des Opfers überschreibthttps://github.com/odzhan/injection/blob/master/kct
USERDATA✓Prüfen, ob die WPM-Zieladresse im Bereich von conhost.exe liegt. Wenn ja, prüfen, ob relevante Funktionszeiger von conhost mit zuvor gespeicherter WPM-Adresse übereinstimmenhttps://github.com/odzhan/injection/blob/master/conhost
Ctrl-inject✓Erkennen, ob der Angreifer WPM im Bereich der KernelBase.dll des Opfers durchführtPinjectra
ALPC Callback✓Extrahiere die Opfer-PID in NtConnectPort-Aufrufen an den ALPC-Port. Für das Angreifer-Opfer-PID-Tupel überprüfe vorherige WPM-Aufrufe und wende Floating-Code-Erkennung anPinjectra
WNF Callback✓WPM gefolgt von UpdateWNFStateData-Aufrufhttps://github.com/odzhan/injection/tree/master/wnf
SetWindowsHook✓Speichere Modulpfade, die im NtUserSetWindowsHookEx-Hook registriert sind. Später, wenn ein Modul, das diesem Pfad entspricht, in einem anderen Prozess geladen wird, generiere eine WarnungMInjector
GhostWriting✓Erkennen, ob ein Kontext (NtSetContextThread wird aufgerufen) auf einen zuvor ausgesetzten Thread gesetzt wirdPinjectra
Service Control✓WPM überschreibt die Service-ID eines Prozesses (Dienstes)https://github.com/odzhan/injection/tree/master/svcctrl
Shellcode injection✓Neuer Thread, gestartet aus fließendem Code. DLL-Pfad wird von WPM geschriebenMInjector
Image Mapping✓Thread gestartet aus fließendem Code. PE-Header wird von WPM geschrieben. DLL-Pfad wird von WPM geschriebenMInjector
Thread Reuse✓Thread gestartet aus fließendem Code. DLL-Pfad wird von WPM geschriebenMInjector

Architekturübersicht

alt text

  1. Der Treiber ist ein On-Demand-Ladetreiber
  2. Die Initialisierung umfasst das Einrichten von Callbacks und Syscall-Hooks über libinfinityhook
  3. Die Callbacks verwalten eine Karte von PIDs, die aus prozessübergreifenden Aktivitäten wie OpenProcess aufgebaut wird, aber nicht auf OpenProcess beschränkt ist
  4. Nachfolgende Callbacks und Syscall-Hooks verwenden diese PID-Karte, um das Rauschen bei der Verarbeitung zu reduzieren. Als Teil der Rauschunterdrückung filtern Syscall-Hooks Aktivitäten im selben Prozess heraus.
  5. Die Erkennungslogik ist in Unterkategorien unterteilt: zustandslos (Beispiel: Atombombing), zustandsbehaftet (Unmap+Overwrite) und Floating Code (Shellcode aus mehreren Techniken)
  6. Für zustandsbehaftete Erkennungen zeichnen Syscall-Hooks eine ActionHistory auf, die als Ringpuffer implementiert ist. Z.B. zeichnet sie alle NtWriteVirtualMemory-Aufrufe auf, bei denen der aufrufende Prozess vom Zielprozess verschieden ist.
  7. Die Erkennungslogik verfügt über gemeinsame Anomalieerkennungsfunktionen wie die Erkennung von fließendem Code und die Erkennung von Shellcode-Triggern in entfernten Prozessen. Sowohl Callbacks als auch Syscall-Hooks rufen diese gemeinsame Funktionalität für die eigentliche Erkennung auf.

HINWEIS: Unser Fokus lag auf der Erkennung und nicht auf der Erstellung einer leistungsfähigen Erkennungsengine. Wir werden diese Bemühungen auch nach der BlackHat-Präsentation fortsetzen.

Dateien

.
├── src 
│   ├── FalconEye ---------------------------# FalconEye Benutzer- und Kernelraum
│   └── libinfinityhook ---------------------# Kernel-Hook-Implementierung
├── 2021BHASIA_FalconEye.pdf
└── README.md

Erste Schritte

Voraussetzungen

  1. Windows 10 Build 1903/1909
  2. Microsoft Visual Studio 2019 und höher
  3. Virtualisierungssoftware wie VmWare, Hyper-V (Optional)

Installation

Erstellen

  1. Öffnen Sie die Projektmappe mit Visual Studio 2019
  2. Wählen Sie x64 als Build-Plattform
  3. Erstellen Sie die Projektmappe. Dies sollte die Binärdatei FalconEye.sys unter src\kernel\FalconEye\x64\Debug oder src\kernel\FalconEye\x64\Release erzeugen
Tool herunterladen