agentleFS
BrownFineSecurityBrownFineSecurity/iothackbot/skills/netflows/SKILL.md

netflows

Skill847 starsChanged 5 months agoMITView on GitHub

Network flow extractor that analyzes pcap/pcapng files to identify outbound connections with automatic DNS hostname resolution. Use when you need to enumerate network destinations, identify what hosts a device communicates with, or map IP addresses to hostnames from packet captures.

The file

We split this skill into the rules it gives an agent

4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    When the user asks to analyze network flows, extract destinations, or identify what hosts a device talks to:

    line 23
  2. Distinctive:

    Ask if they want to filter by a specific source IP (e.g., the IoT device's IP)

    line 27
  3. Very specific:

    Use the netflows command from the iothackbot bin directory

    line 31
  4. Distinctive:

    Does not require elevated privileges (unlike live capture tools)

    line 128

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

NetFlows - Network Flow Extractor with DNS Resolution

You are helping the user extract and analyze network flows from packet capture files using the netflows tool.

Tool Overview

NetFlows analyzes pcap/pcapng files to:

  • Extract unique TCP and UDP flows (destination IP:port pairs)
  • Build a DNS resolution table from DNS responses in the capture
  • Automatically resolve IP addresses to hostnames where possible
  • Filter flows by source IP address
  • Generate a summary of all network destinations contacted

This is particularly useful for IoT device analysis to understand what external services a device communicates with.

Instructions

When the user asks to analyze network flows, extract destinations, or identify what hosts a device talks to:

  1. Gather requirements:
    • Get the pcap/pcapng file path(s)
    • Ask if they want to filter by a specific source IP (e.g., the IoT device's IP)
    • Determine preferred output format
  2. Execute the analysis:
    • Use the netflows command from the iothackbot bin directory
  3. Interpret results:
    • Explain resolved hostnames and their significance
    • Note any unresolved IPs that may need further investigation
    • Highlight interesting patterns (cloud services, P2P connections, etc.)

Usage

Basic Analysis

Analyze a pcap file showing all flows:

netflows capture.pcap

Filter by Source IP

Extract flows from a specific device:

netflows capture.pcap --source-ip 192.168.1.100

Multiple Files

Analyze multiple capture files:

netflows capture1.pcap capture2.pcapng

Output Formats

# Human-readable colored output (default)
netflows capture.pcap --format text

# Machine-readable JSON
netflows capture.pcap --format json

# Minimal output - just hostname:port list
netflows capture.pcap --format quiet

Parameters

Input:

  • pcap_files: One or more pcap/pcapng files to analyze (required)

Filtering:

  • -s, --source-ip: Filter flows originating from this IP address

Output:

  • --format text|json|quiet: Output format (default: text)
  • -v, --verbose: Enable verbose output

Examples

Analyze IoT device traffic:

netflows iot-capture.pcap --source-ip 192.168.1.50

Get just the flow list for scripting:

netflows capture.pcap -s 10.0.0.100 --format quiet

JSON output for parsing:

netflows capture.pcap --format json | jq '.data[].flow_summary'

Output Information

Text format includes:

  • DNS mappings discovered (IP -> hostname)
  • TCP flows with hostname resolution status
  • UDP flows with hostname resolution status
  • Consolidated flow summary (hostname:port or ip:port)

JSON format includes:

  • dns_mappings: Dictionary of IP to hostname mappings
  • tcp_flows: List of TCP flow objects with hostname, ip, port
  • udp_flows: List of UDP flow objects with hostname, ip, port
  • flow_summary: List of "hostname:port" or "ip:port" strings
  • dns_queries: List of DNS domains queried
  • total_packets: Number of packets analyzed

Use Cases

  1. IoT Device Profiling: Identify all cloud services and endpoints an IoT device communicates with
  2. Network Forensics: Enumerate destinations contacted during an incident
  3. Privacy Analysis: Discover telemetry and tracking endpoints
  4. Firewall Rule Creation: Generate allowlist/blocklist of endpoints
  5. Malware Analysis: Identify C2 servers and exfiltration destinations

Important Notes

  • The tool resolves hostnames using DNS responses found within the same pcap file
  • IPs without corresponding DNS lookups in the capture will show as "unresolved"
  • Supports both pcap and pcapng formats
  • Does not require elevated privileges (unlike live capture tools)
  • Large pcap files may take time to process

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.