Skip to main content

PacketWhiz — Network Forensics & Analysis (NFA) toolkit

Project description

PacketWhiz — Network Forensics & Analysis (NFA)

PacketWhiz main screen

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 statscapinfos and tshark protocol hierarchy (read-only)
  • Top talkers — most chatty src → dst[:port] pairs (read-only)
  • Reportshtml or txt reports 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

Shell feature

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

Protocols feature

Indicators (beaconing, suspicious pairs, etc.)

Indicators

Top Talkers

Top talkers

Shell Example (command 1)

Shell command example


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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

packetwhiz_nfa-0.1.0.tar.gz (18.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

packetwhiz_nfa-0.1.0-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

Details for the file packetwhiz_nfa-0.1.0.tar.gz.

File metadata

  • Download URL: packetwhiz_nfa-0.1.0.tar.gz
  • Upload date:
  • Size: 18.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for packetwhiz_nfa-0.1.0.tar.gz
Algorithm Hash digest
SHA256 173e0a7e3804b0925d7d401ef7ce47cb7f3deca319e5bd1436c3bc13540b9219
MD5 e8ecb0c1e56b663f04d44e101a71893f
BLAKE2b-256 dc849925c8bc132d1972e592c9e0986d5e310c324c8bbe9b91226c24b4043898

See more details on using hashes here.

File details

Details for the file packetwhiz_nfa-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: packetwhiz_nfa-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for packetwhiz_nfa-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 64357eeb3195df6ab1d5211b41584c60288b501b82068489906bb754b827f153
MD5 2e713b439cfab9510e49ca7693934ef4
BLAKE2b-256 b11a855e92138bc3a91098a19505873683231bd6b635576d2e1319dd0ab7fd2a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page