Top Related Projects
User interface for recording and managing ETW traces
A repository for using windows event forwarding for incident detection and response
Quick Overview
Fibratus is an open-source tool for Windows kernel exploration and tracing. It allows users to capture, analyze, and monitor various Windows kernel events, providing insights into system behavior, security incidents, and performance issues. Fibratus offers a powerful command-line interface and a Python API for advanced customization and integration.
Pros
- Comprehensive kernel event tracing capabilities
- Extensible architecture with support for custom filters and output formats
- Lightweight and efficient, with minimal performance impact on the system
- Active development and community support
Cons
- Limited to Windows operating systems
- Requires administrative privileges to run
- Steep learning curve for advanced usage and customization
- Documentation could be more extensive for some features
Code Examples
- Basic event capture using the command-line interface:
fibratus run --filters "process.name = 'chrome.exe'"
This command captures events related to the Chrome browser process.
- Using the Python API to create a custom filter:
from fibratus.filament import Filament
class CustomFilter(Filament):
def on_init(self):
self.set_filter("process.name = 'explorer.exe' and thread.id = 1234")
def on_event(self, event):
print(f"Event: {event.name}, PID: {event.process.pid}")
This example creates a custom filter for events related to the Explorer process with a specific thread ID.
- Outputting events to a file in JSON format:
fibratus run --output file://C:\output.json --format json
This command captures events and writes them to a JSON file.
Getting Started
-
Install Fibratus using pip:
pip install fibratus
-
Run Fibratus with administrative privileges:
fibratus run
-
Apply filters to capture specific events:
fibratus run --filters "process.name = 'notepad.exe'"
-
Explore more advanced features and customization options in the official documentation.
Competitor Comparisons
User interface for recording and managing ETW traces
Pros of UIforETW
- User-friendly graphical interface for ETW tracing
- Integrates well with Windows Performance Analyzer (WPA)
- Supports a wide range of ETW providers and customizable tracing options
Cons of UIforETW
- Limited to Windows operating systems
- Requires more system resources due to its GUI nature
- Less suitable for automated or scripted tracing scenarios
Code Comparison
UIforETW (C++):
void CUIforETWDlg::OnBnClickedStarttracing()
{
StartTracingThread();
UpdateEnabling();
}
Fibratus (Python):
def start_capture():
with KcapHandle() as handle:
handle.start_capture()
update_ui()
Key Differences
- UIforETW focuses on GUI-based ETW tracing, while Fibratus is a command-line tool for kernel event capturing
- UIforETW is Windows-specific, whereas Fibratus aims for cross-platform compatibility
- Fibratus offers more programmatic control and integration possibilities due to its Python codebase
- UIforETW provides better visualization and analysis tools through its integration with WPA
Both tools serve different use cases and target audiences, with UIforETW being more suitable for Windows developers and performance analysts, while Fibratus caters to security researchers and system administrators looking for a lightweight, scriptable solution.
A repository for using windows event forwarding for incident detection and response
Pros of Windows Event Forwarding
- Focused on Windows event forwarding and collection
- Provides comprehensive documentation and deployment guides
- Integrates well with existing Windows infrastructure
Cons of Windows Event Forwarding
- Limited to Windows event logs only
- Requires more complex setup and configuration
- Less flexible for custom event types or non-Windows systems
Code Comparison
Windows Event Forwarding (WEF configuration example):
<Subscription>
<SubscriptionId>Security</SubscriptionId>
<SubscriptionType>SourceInitiated</SubscriptionType>
<ContentFormat>RenderedText</ContentFormat>
<Heartbeat>86400</Heartbeat>
<Query>
<![CDATA[
<QueryList>
<Query Id="0">
<Select Path="Security">*</Select>
</Query>
</QueryList>
]]>
</Query>
</Subscription>
Fibratus (Python code example):
from fibratus.handle import HandleInfo
from fibratus.kevent import KEvent
from fibratus.apidefs.process import PROCESS_QUERY_INFORMATION
@kfilter
def process_open_handle(ketype, kevent, **kwargs):
if ketype == 'CreateHandle' and kevent.handle_info.type == HandleInfo.FILE:
print(f"Process {kevent.process.name} opened file: {kevent.handle_info.name}")
While Windows Event Forwarding focuses on collecting and forwarding Windows event logs, Fibratus provides a more flexible and programmable approach to Windows kernel monitoring. Fibratus allows for custom filtering and handling of various system events, making it more suitable for advanced monitoring and analysis scenarios.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Fibratus
Adversary tradecraft detection, protection, and hunting
Get Started »
Docs
•
Rules
•
Filaments
•
Download
•
Discussions
Fibratus detects, protects, and eradicates advanced adversary tradecraft by scrutinizing and asserting a wide spectrum of system events against a behavior-driven rule engine and YARA memory scanner.
Events can also be shipped to a wide array of output sinks or dumped to capture files for local inspection and forensics analysis. You can use filaments to extend Fibratus with your own arsenal of tools and so leverage the power of the Python ecosystem.
In a nutshell, the Fibratus mantra is defined by the pillars of realtime behavior detection, memory scanning, and forensics capabilities.
Installation
- Download the latest MSI package and follow the UI wizard or
alternatively install via
msiexec
in silent mode
$ msiexec /i fibratus-2.3.0-amd64.msi /qn
Quick start
- spin up a command line prompt
- list credentials from the vault by using the
VaultCmd
tool
$ VaultCmd.exe /listcreds:"Windows Credentials" /all
Credential discovery via VaultCmd.exe
rule should trigger and emit the alert to the Eventlog. Check the short demo here.
Documentation
To fully exploit and learn about Fibratus capabilities, read the docs.
Rules
Detection rules live in the rules
directory of this repository. The CLI provides a set of
commands to explore the rule catalog, validate the rules, or create a new rule from the template.
To describe all rules in the catalog, use the fibratus rules list
command. It is possible to pass the
-s
flag to show rules summary by MITRE tactics and techniques.
Contributing
We love contributions. To start contributing to Fibratus, please read our contribution guidelines.
Code Signing Policy
Free code signing provided by SignPath.io, certificate by SignPath Foundation. All releases are automatically signed.
Developed with â¤ï¸ by Nedim Å abiÄ Å abiÄ
Logo designed with â¤ï¸ by Karina Slizova
Top Related Projects
User interface for recording and managing ETW traces
A repository for using windows event forwarding for incident detection and response
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot