Offline IT PCAP analyzer using Zeek, Suricata and tshark.
Project description
IT PCAP Triage
Offline analyzer for enterprise IT packet captures.
IT PCAP Triage runs Zeek, Suricata, capinfos and compact tshark protocol summaries against a PCAP/PCAPNG file. It parses their output, correlates activity by host/protocol, scores findings and generates a compact HTML security report.
The project does not implement its own packet inspection engine. It orchestrates trusted offline engines and turns their output into an evidence-based security report.
Architecture
PCAP
├── Zeek → behavioral logs / metadata / protocol logs
├── Suricata → IDS alerts / IOC / exploit-pattern alerts
├── capinfos → PCAP metadata
├── tshark → protocol hierarchy summary
└── Python → correlation / scoring / SQLite evidence / HTML report
TShark is not used to dump huge raw conversation logs into the report. It is used as a compact statistics source. Conversation, endpoint, top talker, service and port summaries are calculated from Zeek conn.log.
Focus areas
- cleartext protocols and exposed credentials,
- legacy/insecure IT protocols,
- SMB/NTLM/Kerberos/LDAP/Windows network risks,
- DNS abuse and tunneling indicators,
- TLS and HTTP hygiene issues,
- scanning and lateral movement patterns,
- Suricata IDS alerts,
- suspicious beaconing and data movement,
- policy violations based on a user-defined network baseline.
Required system tools
The tool fails closed if any required engine is missing:
zeeksuricatatsharkcapinfos
Install system dependencies
Debian / Ubuntu / Kali
sudo apt update
sudo apt install -y python3 python3-pip pipx tshark zeek suricata
Fedora
sudo dnf install -y python3 python3-pip pipx wireshark-cli zeek suricata
Make sure pipx is available in your shell:
pipx ensurepath
Restart your shell if needed.
Install IT PCAP Triage
Install from PyPI with pipx:
pipx install it-pcap-triage
Check the installation and required system tools:
it-pcap-triage check
Run analysis:
it-pcap-triage analyze samples/test.pcapng --out out/test-report
Open the report:
xdg-open out/test-report/report.html
Output
out/test-report/
├── report.html
├── summary.json
├── findings.json
├── hosts.json
├── timings.json
├── triage.db
├── logs/
│ └── run.log
└── engines/
├── zeek/
├── suricata/
└── tshark/
The main output is:
report.html
The JSON files and SQLite database are intended for automation, debugging and deeper investigation.
Advanced: Evidence DB
The analysis also creates a SQLite evidence store:
triage.db
Useful inspection commands:
sqlite3 out/test-report/triage.db '.tables'
sqlite3 out/test-report/triage.db \
'select severity, category, title from findings order by id;'
sqlite3 out/test-report/triage.db \
'select host, risk_score, suricata_alerts, peers_count from host_profiles order by risk_score desc limit 20;'
sqlite3 out/test-report/triage.db \
'select src_ip, dest_ip, signature, severity from suricata_alerts limit 20;'
Reference mapping policy
The project does not bundle NIST PDFs, CIS PDFs, MITRE STIX bundles or other third-party source documents.
Runtime enrichment uses curated source names and mappings in:
src/it_pcap_triage/data/reference_catalog.yml
src/it_pcap_triage/data/security_mappings.yml
This avoids redistributing third-party documents and keeps the report clear about which public framework or document each recommendation is based on.
The report references documents by name, section/control/technique and URL where applicable, for example:
NIST SP 800-52 Rev.2
NIST SP 800-81 Rev.3
NIST SP 800-41 Rev.1
CIS Controls v8.1
MITRE ATT&CK Enterprise
Local development
git clone https://github.com/h0ek/it-pcap-triage.git
cd it-pcap-triage
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
Run locally:
it-pcap-triage check
it-pcap-triage analyze samples/test.pcapng --out out/test-report
Limitations
This is a triage tool, not a SIEM, permanent IDS sensor or full forensic platform.
Findings such as DNS tunneling, beaconing, lateral movement or ransomware-like behavior are indicators and require validation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file it_pcap_triage-0.6.tar.gz.
File metadata
- Download URL: it_pcap_triage-0.6.tar.gz
- Upload date:
- Size: 29.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e32effff89ddea31a765748aade8c708a915ba4bf4147bc2cc742b322e8a0641
|
|
| MD5 |
abddaa2cb8104b27f6ba86a30bfe6888
|
|
| BLAKE2b-256 |
a66543c18ebb87a02aa8bd2de4cde982e7aa4b37f29e5e37becd5804607cde2d
|
Provenance
The following attestation bundles were made for it_pcap_triage-0.6.tar.gz:
Publisher:
publish.yml on h0ek/it-pcap-triage
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
it_pcap_triage-0.6.tar.gz -
Subject digest:
e32effff89ddea31a765748aade8c708a915ba4bf4147bc2cc742b322e8a0641 - Sigstore transparency entry: 1614710306
- Sigstore integration time:
-
Permalink:
h0ek/it-pcap-triage@8946b8bfcc947de3320a4516bac6670c13459358 -
Branch / Tag:
refs/tags/v0.6 - Owner: https://github.com/h0ek
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8946b8bfcc947de3320a4516bac6670c13459358 -
Trigger Event:
push
-
Statement type:
File details
Details for the file it_pcap_triage-0.6-py3-none-any.whl.
File metadata
- Download URL: it_pcap_triage-0.6-py3-none-any.whl
- Upload date:
- Size: 38.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc93312c1017f81e07a934eb07dfcfdebaf124dce75a6cb0d1454d5d313a95fd
|
|
| MD5 |
8b219ca2ad270d69ac42ef5d3dfcb237
|
|
| BLAKE2b-256 |
653f6ee90241880b0a47cd8be08ba5018ca585b07164a4feaf28b09901b76927
|
Provenance
The following attestation bundles were made for it_pcap_triage-0.6-py3-none-any.whl:
Publisher:
publish.yml on h0ek/it-pcap-triage
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
it_pcap_triage-0.6-py3-none-any.whl -
Subject digest:
dc93312c1017f81e07a934eb07dfcfdebaf124dce75a6cb0d1454d5d313a95fd - Sigstore transparency entry: 1614710315
- Sigstore integration time:
-
Permalink:
h0ek/it-pcap-triage@8946b8bfcc947de3320a4516bac6670c13459358 -
Branch / Tag:
refs/tags/v0.6 - Owner: https://github.com/h0ek
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8946b8bfcc947de3320a4516bac6670c13459358 -
Trigger Event:
push
-
Statement type: