Home

Awesome

<p align="center"></p>

Standalone SIGMA-based detection tool for EVTX, Auditd, Sysmon for linux, XML or JSONL/NDJSON Logs

python version

Zircolite is a standalone tool written in Python 3 that allows you to use SIGMA rules on:

Key Features

You can use Zircolite directly in Python or use the binaries provided in the releases.

Documentation is available here (dedicated site) or here (repo directory).

Requirements / Installation

The project has only beek tested with Python 3.10. If you only want to use base functionnalities of Zircolite, you can install dependencies with : pip3 install -r requirements.txt. But pip3 install -r requirements.full.txt is strongly recommended.

The use of evtx_dump is optional but required by default (because it is -for now- much faster), If you do not want to use it you have to use the --noexternal option. The tool is provided if you clone the Zircolite repository (the official repository is here).

:warning: On some systems (Mac, Arm, ...) the evtx library may need Rust and Cargo to be installed.

Quick start

Check tutorials made by other (EN, SP and FR) here.

EVTX files :

Help is available with:

python3 zircolite.py -h

If your EVTX files have the extension ".evtx" :

# python3 zircolite.py --evtx <EVTX FOLDER or EVTX FILE> --ruleset <SIGMA RULESET> [--ruleset <OTHER RULESET>]
python3 zircolite.py --evtx sysmon.evtx --ruleset rules/rules_windows_sysmon_pysigma.json

Auditd / Sysmon for Linux / JSONL or NDJSON logs :

# For Auditd logs
python3 zircolite.py --events auditd.log --ruleset rules/rules_linux.json --auditd
# For Sysmon for Linux logs
python3 zircolite.py --events sysmon.log --ruleset rules/rules_linux.json --sysmon4linux
# For JSONL or NDJSON logs
python3 zircolite.py --events <JSON_FOLDER_OR_FILE> --ruleset rules/rules_windows_sysmon_pysigma.json --jsononly

[!TIP] If you want to try the tool you can test with EVTX-ATTACK-SAMPLES (EVTX Files).

Running with Docker

# Pull docker image
docker pull wagga40/zircolite:latest
# If your logs and rules are in a specific directory
docker run --rm --tty \
    -v $PWD:/case/input:ro \
    -v $PWD:/case/output \
    wagga40/zircolite:latest \
    -e /case/input \
    -o /case/output/detected_events.json \
    -r /case/input/a_sigma_rule.yml

Updating default rulesets

python3 zircolite.py -U

[!IMPORTANT]
Please note these rulesets are provided to use Zircolite out-of-the-box, but you should generate your own rulesets as they can be very noisy or slow. These auto-updated rulesets are available in the dedicated repository: Zircolite-Rules.

Docs

Complete documentation is available here.

Mini-Gui

The Mini-GUI can be used totally offline. It allows you to display and search results. You can automatically generate a Mini-GUI "package" with the --package option. To learn how to use the Mini-GUI, check the docs here.

Detected events by Mitre Att&ck (c) techniques and criticity levels

Detected events Timeline

Detected events by Mitre Att&ck (c) techniques displayed on the Matrix

Tutorials, references and related projects

Tutorials

References


License