Replies: 18 comments 9 replies
-
I have written some Python that will construct this PPI header.
|
Beta Was this translation helpful? Give feedback.
-
The .pcap and .pcapng format supports Per-Packet Information (PPI). The links you have referenced describe PCAPPPI while hcxdumptool uses pcapng, only. My reference of the PCAP Next Generation (pcapng) Capture File Format: |
Beta Was this translation helpful? Give feedback.
-
I've analyzed the attached pcapng file.
via hcxpcapngtool:
via capinfos:
When dissolving the encapsulation remains the pcapppi format:
|
Beta Was this translation helpful? Give feedback.
-
There is a pull request about this: |
Beta Was this translation helpful? Give feedback.
-
I took a closer look at the pcapppi header:
This is a horrible construct from days gone by, to handle additional GEO information what the pcap format can't do by default. Unfortunately KISMET is using its own implementation which is not a standard: |
Beta Was this translation helpful? Give feedback.
-
This is pure pcapng format as recorded by the interface:
Please take a look at the capture length. This is the current work flow:
|
Beta Was this translation helpful? Give feedback.
-
The PCAPPPI workflow:
|
Beta Was this translation helpful? Give feedback.
-
BTW: With regard to pcapng it is a big step backwards. |
Beta Was this translation helpful? Give feedback.
-
Maybe somebody can add a hcxdumptool NMEA dissector to Wireshark similar to this one. |
Beta Was this translation helpful? Give feedback.
-
Yes, a snaplen of 1k should be plenty for what this tool does. If performance in real-time is at a premium, maybe it makes more sense to do the extra calculation after the fact. It could be done to post-process the .pcapng file with a Scapy script, parse out the NMEA sentence, then emit a new .pcapng with the PPI headers added. |
Beta Was this translation helpful? Give feedback.
-
Performance is by far the top priority and form always follows function. |
Beta Was this translation helpful? Give feedback.
-
To draw a price tag, I've added some time measurement to hcxdumptool:
Now hcxdumptool shows the time that has elapsed to process an entire NMEA0183 string:
How about your PCAP PPI code? |
Beta Was this translation helpful? Give feedback.
-
Now measuring handling of NMEA0183 and handling of incoming ieee802.11 packets (on my fast coding machine):
We are close to the limit. |
Beta Was this translation helpful? Give feedback.
-
I forgot to mention. |
Beta Was this translation helpful? Give feedback.
-
I have c code that i just provided to aircrack team for writing pcap ppi and radio tap headers. Dude, there is a way to do this that is simple, provides low-ish loss (ns), and also, geo data is important to some users. |
Beta Was this translation helpful? Give feedback.
-
There is no real need to process GPS data on the fly. And when finished, sync timestamps of both records and merge data off-line (e,g. by tools like GPS Babel). |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Feel free to fork hcxdumptool and to add the PPI support. The GPS parts are wrapped by:
GPS read is done here: GPS pcapng block write is here: Sooner or later (I think sooner), I'm going to remove the entire GPS code from hcxdumptool in favor of the off-line solution mentioned above. Since 6.3.0 hcxdumptool is going back to the roots: discover weak points in 802.11 by doing fast attacks. |
Beta Was this translation helpful? Give feedback.
-
I was playing around with the GPS support and I think there's a relatively simple change that could make GPS data much more useful: tag each packet with the geo-coordinates where it was captured.
The
.pcap
and.pcapng
format supportsPer-Packet Information (PPI)
, which allows you to include additional meta-data about the packet. One of the supported types of metadata is GPS. This is supported in Scapy and Wireshark.It's possible to have Kismet output PPI GPS data if you set
log_types=kismet,pcapppi
.The full spec for this can be found here.
Having this data per-packet makes doing geo-filtering your packets trivially easy. Example:
A packet captured with Kismet's
pcapppi
:example_ppi_gps.pcapng.zip
Thoughts?
Beta Was this translation helpful? Give feedback.
All reactions