Ausnahme gefangen: SSL certificate problem: certificate is not yet valid ๐Ÿ“Œ FalconEye - Real-time detection software for Windows process injections

๐Ÿ  Team IT Security News

TSecurity.de ist eine Online-Plattform, die sich auf die Bereitstellung von Informationen,alle 15 Minuten neuste Nachrichten, Bildungsressourcen und Dienstleistungen rund um das Thema IT-Sicherheit spezialisiert hat.
Ob es sich um aktuelle Nachrichten, Fachartikel, Blogbeitrรคge, Webinare, Tutorials, oder Tipps & Tricks handelt, TSecurity.de bietet seinen Nutzern einen umfassenden รœberblick รผber die wichtigsten Aspekte der IT-Sicherheit in einer sich stรคndig verรคndernden digitalen Welt.

16.12.2023 - TIP: Wer den Cookie Consent Banner akzeptiert, kann z.B. von Englisch nach Deutsch รผbersetzen, erst Englisch auswรคhlen dann wieder Deutsch!

Google Android Playstore Download Button fรผr Team IT Security



๐Ÿ“š FalconEye - Real-time detection software for Windows process injections


๐Ÿ’ก Newskategorie: IT Security Nachrichten
๐Ÿ”— Quelle: feedproxy.google.com


FalconEye is a windows endpoint detection software for real-time process injections. It is a kernel-mode driver that aims to catch process injections as they are happening (real-time). Since FalconEye runs in kernel mode, it provides a stronger and reliable defense against process injection techniques that try to evade various user-mode hooks.

You can check our presentation at 2021 Blackhat ASIA Arsenal and slides.


Project Overview

Detection Coverage

The table below shows the implementation status and the detection logic for the various process injection techniques. WPM stands for WriteProcessMemory. To test the detection, one can refer to the references section.

Technique Status Detection POC Used
Atombombing โœ“ Hook QueueUserAPC and look for GlobalGetAtom family of functions Pinjectra
Instrumentation callback injection โœ“ Detect if a new thread is created from floating code https://github.com/antonioCoco/Mapping-Injection
Reflective DLL Injection โœ“ Detect if a new thread is created from floating code and if PE header is being written into victim MInjector
PROPagate โœ“ Hook SetProp to get the address of the property being written and corelate with the previous WPM calls to get the address of floating code Pinjectra
Process Hollowing โœ“ Detected using PE header written into target process memory MInjector
CreateRemoteThread with LoadLibrary โœ“ New thread with start address pointing to LoadLibrary. MInjector version also writes DLL path using WPM which is also detected MInjector, Pinjectra
CreateRemoteThread with MapViewOfFile โœ“ Detect if a new thread is created from floating code Pinjectra
Suspend-Inject-Resume โœ“ Detect if a new thread is created from floating code(MInjector). DLL Path being written via WPM (MInjector). Detect if context set on a previously suspended thread (Pinjectra) MInjector, Pinjectra
QueueUserAPC โœ“ DLL path being written via WPM MInjector
QueueUserAPC with memset (Stackbombing) โœ“ Hook QueueUserAPC and look for memset Pinjectra
SetWindowLong (Extra window memory injection) โœ“ Hook SetWindowLong to get the address of the function pointer being written and corelate with the previous WPM calls to get the address of floating code Pinjectra
Unmap + Overwrite โœ“ Alert if attacker process is unmapping ntdll from the victim Pinjectra
Kernel Ctrl Table โœ“ Detect if WPM is overwriting KernelCallbackTable field in the PEB of the victim https://github.com/odzhan/injection/blob/master/kct
USERDATA โœ“ Check if WPM target address is in conhost.exe range. If so check if any relevant function pointers from conhost match previously stored WPM address https://github.com/odzhan/injection/blob/master/conhost
Ctrl-inject โœ“ Detect if the attacker does WPM in victim's KernelBase.dll range Pinjectra
ALPC Callback โœ“ Extract victim pid in NtConnectPort calls to ALPC port. For attacker-victim pid tuple check prior WPM calls and apply Floating code detection Pinjectra
WNF Callback โœ“ WPM followed by UpdateWNFStateData call https://github.com/odzhan/injection/tree/master/wnf
SetWindowsHook โœ“ Save module paths registered in NtUserSetWindowsHookEx hook. Later when a module matching this path loads in a different process, generate alert MInjector
GhostWriting โœ“ Detect if context is set (NtSetContextThread is called) on a previously suspended thread Pinjectra
Service Control โœ“ WPM overwriting Service IDE of a process (service) https://github.com/odzhan/injection/tree/master/svcctrl
Shellcode injection โœ“ New thread started from floating code. DLL path being written by WPM MInjector
Image Mapping โœ“ Thread started from floating code. PE header being written by WPM. DLL path being written by WPM MInjector
Thread Reuse โœ“ Thread started from floating code. DLL path being written by WPM MInjector

Architecture Overview

  1. The driver is an on-demand load driver
  2. The initialization includes setting up callbacks and syscall hooks via libinfinityhook
  3. The callbacks maintain a map of Pids built from cross process activity such as OpenProcess but it is not limited to OpenProcess
  4. Subsequent callbacks and syscall hooks use this Pid map to reduce the noise in processing. As a part of noise reduction, syscall hooks filter out same process activity.
  5. The detection logic is divided into subcategories namely - stateless (example: Atombombing), stateful (Unmap+Overwrite) and Floating code(Shellcode from multiple techniques)
  6. For stateful detections, syscall hooks record an ActionHistory which is implemented as a circular buffer. e.g. It records all the NtWriteVirtualMemory calls where the caller process is different from the target process.
  7. The detection logic has common anomaly detection functionality such as floating code detection and detection for shellcode triggers in remote processes. Both callbacks and syscall hooks invoke this common functionality for actual detection.

NOTE: Our focus has been detection and not creating a performant detection engine. Weโ€™ll continue on these efforts past the BlackHat presentation.


Files
.
โ”œโ”€โ”€ src
โ”‚ โ”œโ”€โ”€ FalconEye ---------------------------# FalconEye user and kernel space
โ”‚ โ””โ”€โ”€ libinfinityhook ---------------------# Kernel hook implementation
โ”œโ”€โ”€ 2021BHASIA_FalconEye.pdf
โ””โ”€โ”€ README.md

Getting Started

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

Installation

Build
  1. Open the solution with Visual Studio 2019
  2. Select x64 as build platform
  3. Build solution. This should generate FalconEye.sys binary under src\kernel\FalconEye\x64\Debug or src\kernel\FalconEye\x64\Release

Test Machine Setup
  1. Install Windows 10 Build 1903/1909 in a VM
  2. Configure VM for testing unsigned driver
  • Using bcdedit, disable integrity checks : BCDEDIT /set nointegritychecks ON
  1. Run DbgView from sysinternals in the VM or start a debugging connection using WinDbg.

Usage
  1. Copy FalconEye.sys to the Test Machine (Windows 10 VM)
  2. Load FalconEye.sys as 'On Demand' load driver using OSR Loader or similar tools
  3. Run injection test tools such as pinjectra, minjector or other samples
  4. Monitor debug logs either via WinDbg or DbgView

References

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



...



๐Ÿ“Œ Bugtraq: Blind SQL injections in CivicRM


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Bugtraq: [RCESEC-2016-002] XenAPI v1.4.1 for XenForo Multiple Unauthenticated SQL Injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ [webapps] - XenAPI 1.4.1 for XenForo - Multiple SQL Injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Do web injections exist for Android?


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Bugtraq: Blind SQL injections in CivicRM


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Bugtraq: [RCESEC-2016-002] XenAPI v1.4.1 for XenForo Multiple Unauthenticated SQL Injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ [webapps] - XenAPI 1.4.1 for XenForo - Multiple SQL Injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Do web injections exist for Android?


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Wheelchair-bound Man Walks Again After Stem Cell Injections!


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Hackers sentenced for SQL injections that cost $300 million


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Bugtraq: Command injections via USB upgrade in MSTAR Set-Top box products


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ An unpatched high-severity vulnerability allows keystroke injections in fujitsu wireless keyboards.


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ An unpatched high-severity vulnerability allows keystroke injections in fujitsu wireless keyboards.


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Traveler - Travel Booking WordPress Theme v2.7.1 Reflected & Stored XSS Injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ The state of advanced code injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ WpJobBoard <= 4.4.4 - Multiple SQL Injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ All In One WP Security And Firewall < 4.0.7 - Multiple SQL Injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ All In One WP Security And Firewall < 4.0.9 - Multiple SQL Injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ GigToDo - Freelance Marketplace Script v1.3 Reflected & Persistent XSS Injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Can Two Injections of Tuberculosis Vaccine Cure Diabetes?


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Why SQL Injections Are The Cockroaches Of The Appsec World (and how CISOs can eradicate them once and for all)


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Researchers discover a new family of injections dubbed eternalsilence.


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Is 2FA useless in preventing SQL Injections?


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Optimization Method For The Exploitation Times Of Blind SQL Injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ GitHub Security Lab: CodeQL query to detect JNDI injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ GitHub Security Lab: CodeQL query to detect Server-Side Template Injections (JavaScript)


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ GitHub Security Lab: CodeQL query for MVEL injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ GitHub Security Lab: CodeQL query for SpEL injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ GitHub Security Lab: CodeQL query to detect OGNL injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ [7069/7190] Protect translations display from XSS injections


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ Tracking down library injections on Linux


๐Ÿ“ˆ 19.94 Punkte

๐Ÿ“Œ [20191202] - Core - Various SQL injections through configuration parameters


๐Ÿ“ˆ 19.94 Punkte











matomo