|
| 1 | +--- |
| 2 | +name: "wireshark-traffic-analysis" |
| 3 | +description: "Use when analyzing packet captures or live network traffic with Wireshark MCP; choose the right workflow for triage, security hunting, incident response, troubleshooting, or CTF work, then produce evidence-backed findings with exact filters, streams, frames, and next steps." |
| 4 | +--- |
| 5 | + |
| 6 | +# Wireshark Traffic Analysis |
| 7 | + |
| 8 | +Use this skill to turn raw packet captures into a disciplined investigation. The goal is not to list packets. The goal is to build a defensible answer from capture-wide context, protocol-level evidence, and clearly labeled inferences. |
| 9 | + |
| 10 | +## When to use |
| 11 | + |
| 12 | +- `pcap` or `pcapng` analysis |
| 13 | +- live traffic review after capture |
| 14 | +- security triage, threat hunting, or incident response |
| 15 | +- network and protocol troubleshooting |
| 16 | +- CTF and forensics-style packet challenges |
| 17 | +- any task where packet evidence matters more than intuition |
| 18 | + |
| 19 | +## Required inputs |
| 20 | + |
| 21 | +- capture path |
| 22 | +- primary goal: `triage`, `security`, `incident-response`, `troubleshoot`, or `ctf` |
| 23 | +- any known scope: suspicious host, port, domain, time window, protocol, or symptom |
| 24 | + |
| 25 | +If the user does not name a goal, default to `triage`. |
| 26 | + |
| 27 | +## Core workflow |
| 28 | + |
| 29 | +1. Open the capture first. |
| 30 | + - Use `wireshark_open_file` before protocol-specific tools. It activates contextual tools and gives an initial protocol summary. |
| 31 | +2. Build a global picture before drilling down. |
| 32 | + - Prefer `wireshark_quick_analysis`, `wireshark_stats_protocol_hierarchy`, `wireshark_stats_endpoints`, and `wireshark_stats_conversations`. |
| 33 | +3. Choose one mode and follow its playbook. |
| 34 | + - Read [references/playbooks.md](references/playbooks.md) and use the matching section. |
| 35 | +4. Confirm interesting leads with packet-level evidence. |
| 36 | + - Use `wireshark_follow_stream`, `wireshark_get_packet_details`, `wireshark_get_packet_context`, `wireshark_extract_fields`, and `wireshark_search_packets`. |
| 37 | +5. Separate observation from interpretation. |
| 38 | + - Facts come from tool output. |
| 39 | + - Inferences must be labeled `confirmed`, `likely`, `possible`, or `unresolved`. |
| 40 | +6. End with next actions. |
| 41 | + - Suggest exact display filters, stream indexes, frame numbers, fields, or follow-up questions. |
| 42 | + |
| 43 | +## Analysis rules |
| 44 | + |
| 45 | +- Start broad, then narrow. |
| 46 | +- Prefer Wireshark MCP tools over freehand `tshark` syntax. |
| 47 | +- Never guess display filter syntax. Use `wireshark://reference/display-filters`. |
| 48 | +- Use `wireshark://reference/protocol-fields` when you need field names for extraction or filters. |
| 49 | +- Never decode payloads manually when `wireshark_decode_payload` can verify the result. |
| 50 | +- Treat `wireshark_stats_expert_info` as a lead generator, not a final verdict. |
| 51 | +- When a finding depends on context, follow the full stream before concluding. |
| 52 | +- For large captures, paginate instead of treating the first page as representative. |
| 53 | +- If the capture vantage point could distort interpretation, say so explicitly. |
| 54 | +- If evidence is incomplete, say exactly what is missing. |
| 55 | + |
| 56 | +## Statistics notes |
| 57 | + |
| 58 | +- `wireshark_stats_protocol_hierarchy` is for structure, not naive percentage math. A single packet can contribute to multiple protocol rows across layers. |
| 59 | +- `wireshark_stats_endpoints` is the fastest host inventory view. Use it to identify broadcast, multicast, and heavy talkers before drilling into conversations. |
| 60 | +- `wireshark_stats_conversations` is usually the best place to prioritize long-lived, high-volume, or asymmetric exchanges. |
| 61 | +- Stream indexes are tool evidence too. When `wireshark_follow_stream` explains the finding, include the exact stream index in the report. |
| 62 | + |
| 63 | +For official Wireshark behavior notes and source links, see [references/official-wireshark-notes.md](references/official-wireshark-notes.md). |
| 64 | + |
| 65 | +## Evidence standard |
| 66 | + |
| 67 | +For any non-trivial finding, include at least two of the following: |
| 68 | + |
| 69 | +- the tool call that surfaced it |
| 70 | +- exact host, port, protocol, or field names |
| 71 | +- a stream index or frame number |
| 72 | +- a display filter or field extraction query |
| 73 | +- a short explanation of why the signal matters |
| 74 | + |
| 75 | +When a pattern looks suspicious but could still be normal, read [references/evidence-rubric.md](references/evidence-rubric.md) before concluding. |
| 76 | + |
| 77 | +## Professional reporting style |
| 78 | + |
| 79 | +- Write like an analyst, not like a chatty observer. |
| 80 | +- Do not say "weird", "sketchy", or "probably malware" without evidence. |
| 81 | +- Keep severity or impact separate from confidence. |
| 82 | +- State scope, assumptions, and gaps when they materially affect the conclusion. |
| 83 | +- Prefer "observed", "evidence shows", "likely indicates", and "could not verify" over vague language. |
| 84 | +- If the capture alone cannot prove intent, say so directly. |
| 85 | + |
| 86 | +## Output shape |
| 87 | + |
| 88 | +Use the structure in [references/report-template.md](references/report-template.md). Keep reports concise, evidence-backed, and action-oriented. |
| 89 | + |
| 90 | +## Mode selection |
| 91 | + |
| 92 | +Use the matching playbook in [references/playbooks.md](references/playbooks.md): |
| 93 | + |
| 94 | +- `triage`: unknown capture, fast situational awareness |
| 95 | +- `security`: suspicious traffic, exfiltration, credential exposure, malware behavior |
| 96 | +- `incident-response`: reconstruct the timeline, scope, and affected systems |
| 97 | +- `troubleshoot`: retransmissions, latency, resets, failed handshakes, unstable services |
| 98 | +- `ctf`: flags, hidden payloads, staged transfers, encoded streams |
| 99 | + |
| 100 | +## Built-in prompts and references |
| 101 | + |
| 102 | +If the user mainly needs a starting workflow rather than a full investigation, the MCP prompts in this repo can help: |
| 103 | + |
| 104 | +- `traffic_overview` |
| 105 | +- `security_audit` |
| 106 | +- `performance_analysis` |
| 107 | +- `incident_response` |
| 108 | +- `ctf_solve` |
| 109 | + |
| 110 | +Use `wireshark://guide/usage` when you need the repo's built-in MCP workflow reference. |
| 111 | + |
| 112 | +## Common mistakes to avoid |
| 113 | + |
| 114 | +- calling something malicious because it is uncommon |
| 115 | +- calling something benign because it is encrypted |
| 116 | +- over-trusting a single heuristic such as long DNS queries or one retransmission |
| 117 | +- skipping endpoints and conversations, then missing the real top talker |
| 118 | +- reporting a hypothesis as a confirmed root cause |
0 commit comments