PacketWhiz — Network Forensics & Analysis (NFA)
PacketWhiz is a lightweight, beginner-friendly, but powerful network forensics toolkit.
It parses PCAP/PCAPNG (optionally .gz) or simple logs, summarizes protocols, finds indicators,
previews file carving, extracts credentials when possible, generates quick reports, and includes
a guided interactive shell for non-experts.
Highlights
- Safe-by-default I/O — nothing is written to disk unless you explicitly say so
- Protocol summary — quick view of HTTP/HTTPS/DNS/… counts + assessment notes
- Indicators — surface beaconing patterns, suspicious pairs, etc.
- File extraction (preview-first) — see what can be carved before saving
- Credentials — attempts clear-text credential recovery where applicable
- CTF helper — finds
FLAG{}patterns with common encodings/containers - PCAP stats —
capinfosandtsharkprotocol hierarchy (read-only) - Top talkers — most chatty
src → dst[:port]pairs (read-only) - Reports —
htmlortxtreports you can hand to a teammate - Interactive shell — tab completion + history (
~/.packetwhiz_history)
Installation
Requirements
- Python 3.9+
- Optional CLI tools (only needed for some features):
tshark(for protocol hierarchy & talkers)capinfos(Wireshark suite)
Quick Start (recommended)
# From your project folder (or clone first):
python3 -m venv .venv
source .venv/bin/activate
# Editable install
pip install -e .
# Run the tool (both forms are equivalent):
packetwhiz --help
# or
python -m packetwhiz --help
Prefer a venv to keep dependencies clean.
Usage
Common options
packetwhiz --pcap sample.pcap --protocols
packetwhiz --pcap sample.pcap --extract-files # preview first; choose whether to save
packetwhiz --pcap sample.pcap --indicators
packetwhiz --pcap sample.pcap --pcap-stats # capinfos + tshark protocol hierarchy
packetwhiz --pcap sample.pcap --talkers # top src→dst[:port]
packetwhiz --pcap sample.pcap --report html -o PacketWhiz_output
packetwhiz --pcap sample.pcap --ctf
packetwhiz --shell --pcap sample.pcap # guided shell for non-experts
“Do a lot for me” run
packetwhiz --pcap sample.pcap --all --no-prompt
What --all does: runs --protocols --sessions --extract-creds --extract-files --indicators --ctf.
It still does not write to disk unless you later choose to save or specify --report.
Zero-write safety
No writes occur unless you explicitly confirm saving, pass --report, or run “save now” in the shell.
You can hard-enforce no writes with --no-writes or PWZ_NO_WRITES=1.
Interactive Shell
packetwhiz --shell --pcap sample.pcap
You’ll see options like:
1) PCAP stats (capinfos + tshark hierarchy) — no writes
2) Protocol summary
3) Top talkers (src→dst:port) — no writes
4) Extract files (preview)
5) Save files now
6) Credentials
7) Indicators
8) CTF flags
r) Generate report (html/txt/both)
h) Help q) Quit
- Tab completion for commands (e.g.,
pro…→protocols) - Command history is saved to
~/.packetwhiz_history - File extraction is preview-first; saving asks for a destination folder.
Visuals
Protocols
Indicators (beaconing, suspicious pairs, etc.)
Top Talkers
Shell Example (command 1)
Reports
Generate HTML or text reports containing whatever you ran in the session:
packetwhiz --pcap sample.pcap --protocols --indicators --report both -o PacketWhiz_output
Or from the shell: r → choose html, txt, or both, then choose the output folder.
Useful Examples
# 1) Quick protocol picture + talkers (read-only)
packetwhiz --pcap corp_traffic.pcap --protocols --talkers
# 2) Preview then save carved files
packetwhiz --pcap web_no_tls.pcap --extract-files
# ... if you see interesting hits, choose to save and pick an output folder
# 3) Indicators + simple text report
packetwhiz --pcap beaconing_slice.pcap --indicators --report txt -o PacketWhiz_output
# 4) CTF mode
packetwhiz --pcap ctf.pcap --ctf
# 5) All analyses (no writes), then decide
packetwhiz --pcap case1.pcap --all --no-prompt
Troubleshooting
“parser.pcap_parser function not found.”
Make sure you installed the package (not just running a stray script). The source layout is a proper package:
packetwhiz/
__main__.py
analyzers/
parser/
utils/
Running pip install -e . should expose the packetwhiz module & CLI.
“File not found” with slight typos or .gz
PacketWhiz tries common path fixes (parent folder, .gz partner, and some typo healing like witp→with).
If you pass x.pcap.gz, it will transparently decompress to a temp file.
Need Wireshark CLI tools
Install tshark and capinfos if you want protocol hierarchy and stats:
- Debian/Ubuntu:
sudo apt install tshark - macOS (Homebrew):
brew install wireshark
Authors & Collaboration
PacketWhiz is a collaborative project by:
- Omar Tamer (@Omar-tamerr) — co-founder, project lead, CLI & shell UX, analyzers integration, and reporting.
- Farida Ismail (@faridaaismaill12) — co-founder, network forensics expert, design collaborator, and analyzer workflows.
If you use PacketWhiz in a write-up, class, or video, please credit both authors.
Contributing
PRs are welcome!
Before submitting, please run your changes locally and keep the CLI safe-by-default (no unintended writes).
License
MIT — see LICENSE.
Release files for packetwhiz-nfa 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| packetwhiz_nfa-0.1.0.tar.gz | 18.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| packetwhiz_nfa-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 34.9 kB
Release files / packetwhiz_nfa-0.1.0.tar.gz
| Download URL | packetwhiz_nfa-0.1.0.tar.gz |
|---|---|
| Size | 18.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
173e0a7e3804b0925d7d401ef7ce47cb7f3deca319e5bd1436c3bc13540b9219
|
|
BLAKE2b-256 checksum How to use checksums |
dc849925c8bc132d1972e592c9e0986d5e310c324c8bbe9b91226c24b4043898
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|
Release files / packetwhiz_nfa-0.1.0-py3-none-any.whl
| Download URL | packetwhiz_nfa-0.1.0-py3-none-any.whl |
|---|---|
| Size | 16.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
64357eeb3195df6ab1d5211b41584c60288b501b82068489906bb754b827f153
|
|
BLAKE2b-256 checksum How to use checksums |
b11a855e92138bc3a91098a19505873683231bd6b635576d2e1319dd0ab7fd2a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.5
|