#------------------------------------------------------------------------------ # $File: sniffer,v 1.36 2024/06/16 15:09:26 christos Exp $ # sniffer: file(1) magic for packet capture files # # From: guy@alum.mit.edu (Guy Harris) # # # Microsoft Network Monitor 1.x capture files. # 0 string RTSS NetMon capture file >5 byte x - version %d >4 byte x \b.%d >6 leshort 0 (Unknown) >6 leshort 1 (Ethernet) >6 leshort 2 (Token Ring) >6 leshort 3 (FDDI) >6 leshort 4 (ATM) >6 leshort >4 (type %d) # # Microsoft Network Monitor 2.x capture files. # 0 string GMBU NetMon capture file >5 byte x - version %d >4 byte x \b.%d >6 leshort 0 (Unknown) >6 leshort 1 (Ethernet) >6 leshort 2 (Token Ring) >6 leshort 3 (FDDI) >6 leshort 4 (ATM) >6 leshort 5 (IP-over-IEEE 1394) >6 leshort 6 (802.11) >6 leshort 7 (Raw IP) >6 leshort 8 (Raw IP) >6 leshort 9 (Raw IP) >6 leshort >9 (type %d) # # Network General Sniffer capture files. # Sorry, make that "Network Associates Sniffer capture files." # Sorry, make that "Network General old DOS Sniffer capture files." # 0 string TRSNIFF\040data\040\040\040\040\032 Sniffer capture file >33 byte 2 (compressed) >23 leshort x - version %d >25 leshort x \b.%d >32 byte 0 (Token Ring) >32 byte 1 (Ethernet) >32 byte 2 (ARCNET) >32 byte 3 (StarLAN) >32 byte 4 (PC Network broadband) >32 byte 5 (LocalTalk) >32 byte 6 (Znet) >32 byte 7 (Internetwork Analyzer) >32 byte 9 (FDDI) >32 byte 10 (ATM) # # Cinco Networks NetXRay capture files. # Sorry, make that "Network General Sniffer Basic capture files." # Sorry, make that "Network Associates Sniffer Basic capture files." # Sorry, make that "Network Associates Sniffer Basic, and Windows # Sniffer Pro", capture files." # Sorry, make that "Network General Sniffer capture files." # Sorry, make that "NetScout Sniffer capture files." # 0 string XCP\0 NetXRay capture file >4 string >\0 - version %s >44 leshort 0 (Ethernet) >44 leshort 1 (Token Ring) >44 leshort 2 (FDDI) >44 leshort 3 (WAN) >44 leshort 8 (ATM) >44 leshort 9 (802.11) # # "libpcap" capture files. # https://www.tcpdump.org/manpages/pcap-savefile.5.html # (We call them "libpcap capture file(s)", as "libpcap" is # the first library that uses that format, but there are other programs # that use "libpcap", or that use the same capture file format.) # 0 name pcap-be >4 beshort x - version %d >6 beshort x \b.%d # clear that continuation level match >20 clear x >20 belong&0x03FFFFFF 0 (No link-layer encapsulation >20 belong&0x03FFFFFF 1 (Ethernet >20 belong&0x03FFFFFF 2 (3Mb Ethernet >20 belong&0x03FFFFFF 3 (AX.25 >20 belong&0x03FFFFFF 4 (ProNET >20 belong&0x03FFFFFF 5 (CHAOS >20 belong&0x03FFFFFF 6 (Token Ring >20 belong&0x03FFFFFF 7 (BSD ARCNET >20 belong&0x03FFFFFF 8 (SLIP >20 belong&0x03FFFFFF 9 (PPP >20 belong&0x03FFFFFF 10 (FDDI >20 belong&0x03FFFFFF 11 (RFC 1483 ATM >20 belong&0x03FFFFFF 12 (Raw IP >20 belong&0x03FFFFFF 13 (BSD/OS SLIP >20 belong&0x03FFFFFF 14 (BSD/OS PPP >20 belong&0x03FFFFFF 19 (Linux ATM Classical IP >20 belong&0x03FFFFFF 50 (PPP or Cisco HDLC >20 belong&0x03FFFFFF 51 (PPP-over-Ethernet >20 belong&0x03FFFFFF 99 (Symantec Enterprise Firewall >20 belong&0x03FFFFFF 100 (RFC 1483 ATM >20 belong&0x03FFFFFF 101 (Raw IP >20 belong&0x03FFFFFF 102 (BSD/OS SLIP >20 belong&0x03FFFFFF 103 (BSD/OS PPP >20 belong&0x03FFFFFF 104 (BSD/OS Cisco HDLC >20 belong&0x03FFFFFF 105 (802.11 >20 belong&0x03FFFFFF 106 (Linux Classical IP over ATM >20 belong&0x03FFFFFF 107 (Frame Relay >20 belong&0x03FFFFFF 108 (OpenBSD loopback >20 belong&0x03FFFFFF 109 (OpenBSD IPsec encrypted >20 belong&0x03FFFFFF 112 (Cisco HDLC >20 belong&0x03FFFFFF 113 (Linux cooked v1 >20 belong&0x03FFFFFF 114 (LocalTalk >20 belong&0x03FFFFFF 117 (OpenBSD PFLOG >20 belong&0x03FFFFFF 119 (802.11 with Prism header >20 belong&0x03FFFFFF 122 (RFC 2625 IP over Fibre Channel >20 belong&0x03FFFFFF 123 (SunATM >20 belong&0x03FFFFFF 127 (802.11 with radiotap header >20 belong&0x03FFFFFF 129 (Linux ARCNET >20 belong&0x03FFFFFF 130 (Juniper Multi-Link PPP >20 belong&0x03FFFFFF 131 (Juniper Multi-Link Frame Relay >20 belong&0x03FFFFFF 132 (Juniper Encryption Services PIC >20 belong&0x03FFFFFF 133 (Juniper GGSN PIC >20 belong&0x03FFFFFF 134 (Juniper FRF.16 Frame Relay >20 belong&0x03FFFFFF 135 (Juniper ATM2 PIC >20 belong&0x03FFFFFF 136 (Juniper Advanced Services PIC >20 belong&0x03FFFFFF 137 (Juniper ATM1 PIC >20 belong&0x03FFFFFF 138 (Apple IP over IEEE 1394 >20 belong&0x03FFFFFF 139 (SS7 MTP2 with pseudo-header >20 belong&0x03FFFFFF 140 (SS7 MTP2 >20 belong&0x03FFFFFF 141 (SS7 MTP3 >20 belong&0x03FFFFFF 142 (SS7 SCCP >20 belong&0x03FFFFFF 143 (DOCSIS >20 belong&0x03FFFFFF 144 (Linux IrDA >20 belong&0x03FFFFFF 147 (Private use 0 >20 belong&0x03FFFFFF 148 (Private use 1 >20 belong&0x03FFFFFF 149 (Private use 2 >20 belong&0x03FFFFFF 150 (Private use 3 >20 belong&0x03FFFFFF 151 (Private use 4 >20 belong&0x03FFFFFF 152 (Private use 5 >20 belong&0x03FFFFFF 153 (Private use 6 >20 belong&0x03FFFFFF 154 (Private use 7 >20 belong&0x03FFFFFF 155 (Private use 8 >20 belong&0x03FFFFFF 156 (Private use 9 >20 belong&0x03FFFFFF 157 (Private use 10 >20 belong&0x03FFFFFF 158 (Private use 11 >20 belong&0x03FFFFFF 159 (Private use 12 >20 belong&0x03FFFFFF 160 (Private use 13 >20 belong&0x03FFFFFF 161 (Private use 14 >20 belong&0x03FFFFFF 162 (Private use 15 >20 belong&0x03FFFFFF 163 (802.11 with AVS header >20 belong&0x03FFFFFF 164 (Juniper Passive Monitor PIC >20 belong&0x03FFFFFF 165 (BACnet MS/TP >20 belong&0x03FFFFFF 166 (PPPD >20 belong&0x03FFFFFF 167 (Juniper PPPoE >20 belong&0x03FFFFFF 168 (Juniper PPPoE/ATM >20 belong&0x03FFFFFF 169 (GPRS LLC >20 belong&0x03FFFFFF 170 (GPF-T >20 belong&0x03FFFFFF 171 (GPF-F >20 belong&0x03FFFFFF 174 (Juniper PIC Peer >20 belong&0x03FFFFFF 175 (Ethernet with Endace ERF header >20 belong&0x03FFFFFF 176 (Packet-over-SONET with Endace ERF header >20 belong&0x03FFFFFF 177 (Linux LAPD >20 belong&0x03FFFFFF 178 (Juniper Ethernet >20 belong&0x03FFFFFF 179 (Juniper PPP >20 belong&0x03FFFFFF 180 (Juniper Frame Relay >20 belong&0x03FFFFFF 181 (Juniper C-HDLC >20 belong&0x03FFFFFF 182 (FRF.16 Frame Relay >20 belong&0x03FFFFFF 183 (Juniper Voice PIC >20 belong&0x03FFFFFF 184 (Arinc 429 >20 belong&0x03FFFFFF 185 (Arinc 653 Interpartition Communication >20 belong&0x03FFFFFF 186 (USB with FreeBSD header >20 belong&0x03FFFFFF 187 (Bluetooth HCI H4 >20 belong&0x03FFFFFF 188 (802.16 MAC Common Part Sublayer >20 belong&0x03FFFFFF 189 (Linux USB >20 belong&0x03FFFFFF 190 (Controller Area Network (CAN) v. 2.0B >20 belong&0x03FFFFFF 191 (802.15.4 with Linux padding >20 belong&0x03FFFFFF 192 (PPI >20 belong&0x03FFFFFF 193 (802.16 MAC Common Part Sublayer plus radiotap header >20 belong&0x03FFFFFF 194 (Juniper Integrated Service Module >20 belong&0x03FFFFFF 195 (802.15.4 with FCS >20 belong&0x03FFFFFF 196 (SITA >20 belong&0x03FFFFFF 197 (Endace ERF >20 belong&0x03FFFFFF 198 (Ethernet with u10 Networks pseudo-header >20 belong&0x03FFFFFF 199 (IPMB >20 belong&0x03FFFFFF 200 (Juniper Secure Tunnel >20 belong&0x03FFFFFF 201 (Bluetooth HCI H4 with pseudo-header >20 belong&0x03FFFFFF 202 (AX.25 with KISS header >20 belong&0x03FFFFFF 203 (LAPD >20 belong&0x03FFFFFF 204 (PPP with direction pseudo-header >20 belong&0x03FFFFFF 205 (Cisco HDLC with direction pseudo-header >20 belong&0x03FFFFFF 206 (Frame Relay with direction pseudo-header >20 belong&0x03FFFFFF 209 (Linux I2C >20 belong&0x03FFFFFF 215 (802.15.4 with non-ASK PHY header >20 belong&0x03FFFFFF 216 (Linux evdev events >20 belong&0x03FFFFFF 219 (MPLS with label as link-layer header >20 belong&0x03FFFFFF 220 (Memory-mapped Linux USB >20 belong&0x03FFFFFF 221 (DECT >20 belong&0x03FFFFFF 222 (AOS Space Data Link protocol >20 belong&0x03FFFFFF 223 (Wireless HART >20 belong&0x03FFFFFF 224 (Fibre Channel FC-2 >20 belong&0x03FFFFFF 225 (Fibre Channel FC-2 with frame delimiters >20 belong&0x03FFFFFF 226 (Solaris IPNET >20 belong&0x03FFFFFF 227 (SocketCAN >20 belong&0x03FFFFFF 228 (Raw IPv4 >20 belong&0x03FFFFFF 229 (Raw IPv6 >20 belong&0x03FFFFFF 230 (802.15.4 without FCS >20 belong&0x03FFFFFF 231 (D-Bus messages >20 belong&0x03FFFFFF 232 (Juniper Virtual Server >20 belong&0x03FFFFFF 233 (Juniper SRX E2E >20 belong&0x03FFFFFF 234 (Juniper Fibre Channel >20 belong&0x03FFFFFF 235 (DVB-CI >20 belong&0x03FFFFFF 236 (MUX27010 >20 belong&0x03FFFFFF 237 (STANAG 5066 D_PDUs >20 belong&0x03FFFFFF 238 (Juniper ATM CEMIC >20 belong&0x03FFFFFF 239 (Linux netfilter log messages >20 belong&0x03FFFFFF 240 (Hilscher netAnalyzer >20 belong&0x03FFFFFF 241 (Hilscher netAnalyzer with delimiters >20 belong&0x03FFFFFF 242 (IP-over-Infiniband >20 belong&0x03FFFFFF 243 (MPEG-2 Transport Stream packets >20 belong&0x03FFFFFF 244 (ng4t ng40 >20 belong&0x03FFFFFF 245 (NFC LLCP >20 belong&0x03FFFFFF 246 (Packet filter state syncing >20 belong&0x03FFFFFF 247 (InfiniBand >20 belong&0x03FFFFFF 248 (SCTP >20 belong&0x03FFFFFF 249 (USB with USBPcap header >20 belong&0x03FFFFFF 250 (Schweitzer Engineering Laboratories RTAC packets >20 belong&0x03FFFFFF 251 (Bluetooth Low Energy air interface >20 belong&0x03FFFFFF 252 (Wireshark Upper PDU export >20 belong&0x03FFFFFF 253 (Linux netlink >20 belong&0x03FFFFFF 254 (Bluetooth Linux Monitor >20 belong&0x03FFFFFF 255 (Bluetooth Basic Rate/Enhanced Data Rate baseband packets >20 belong&0x03FFFFFF 256 (Bluetooth Low Energy air interface with pseudo-header >20 belong&0x03FFFFFF 257 (PROFIBUS data link layer >20 belong&0x03FFFFFF 258 (Apple DLT_PKTAP >20 belong&0x03FFFFFF 259 (Ethernet with 802.3 Clause 65 EPON preamble >20 belong&0x03FFFFFF 260 (IPMI trace packets >20 belong&0x03FFFFFF 261 (Z-Wave RF profile R1 and R2 packets >20 belong&0x03FFFFFF 262 (Z-Wave RF profile R3 packets >20 belong&0x03FFFFFF 263 (WattStopper Digital Lighting Mngmt/Legrand Nitoo Open Proto >20 belong&0x03FFFFFF 264 (ISO 14443 messages >20 belong&0x03FFFFFF 265 (IEC 62106 Radio Data System groups >20 belong&0x03FFFFFF 266 (USB with Darwin header >20 belong&0x03FFFFFF 267 (OpenBSD DLT_OPENFLOW >20 belong&0x03FFFFFF 268 (IBM SDLC frames >20 belong&0x03FFFFFF 269 (TI LLN sniffer frames >20 belong&0x03FFFFFF 271 (Linux vsock >20 belong&0x03FFFFFF 272 (Nordic Semiconductor Bluetooth LE sniffer frames >20 belong&0x03FFFFFF 273 (Excentis XRA-31 DOCSIS 3.1 RF sniffer frames >20 belong&0x03FFFFFF 274 (802.3br mPackets >20 belong&0x03FFFFFF 275 (DisplayPort AUX channel monitoring data >20 belong&0x03FFFFFF 276 (Linux cooked v2 >20 belong&0x03FFFFFF 278 (OpenVizsla USB >20 belong&0x03FFFFFF 279 (Elektrobit High Speed Capture and Replay (EBHSCR) >20 belong&0x03FFFFFF 281 (Broadcom tag >20 belong&0x03FFFFFF 282 (Broadcom tag (prepended) >20 belong&0x03FFFFFF 283 (802.15.4 with TAP >20 belong&0x03FFFFFF 284 (Marvell DSA >20 belong&0x03FFFFFF 285 (Marvell EDSA >20 belong&0x03FFFFFF 286 (ELEE lawful intercept >20 belong&0x03FFFFFF 287 (Z-Wave serial >20 belong&0x03FFFFFF 288 (USB 2.0 >20 belong&0x03FFFFFF 289 (ATSC ALP >20 belong&0x03FFFFFF 290 (Event Tracing for Windows >20 belong&0x03FFFFFF 291 (Hilscher netANALYZER NG pseudo-footer >20 belong&0x03FFFFFF 292 (ZBOSS NCP protocol with pseudo-header >20 belong&0x03FFFFFF 293 (Low-Speed USB 2.0/1.1/1.0 >20 belong&0x03FFFFFF 294 (Full-Speed USB 2.0/1.1/1.0 >20 belong&0x03FFFFFF 295 (High-Speed USB 2.0 # print default match >20 default x >>20 belong x (linktype#%u >16 belong x \b, capture length %u) # packets time stamps in seconds and microseconds. 0 ubelong 0xa1b2c3d4 pcap capture file, microseconds ts (big-endian) !:mime application/vnd.tcpdump.pcap >0 use pcap-be 0 ulelong 0xa1b2c3d4 pcap capture file, microsecond ts (little-endian) !:mime application/vnd.tcpdump.pcap >0 use \^pcap-be # packets time stamps in seconds and nanoseconds. 0 ubelong 0xa1b23c4d pcap capture file, nanosecond ts (big-endian) !:mime application/vnd.tcpdump.pcap >0 use pcap-be 0 ulelong 0xa1b23c4d pcap capture file, nanosecond ts (little-endian) !:mime application/vnd.tcpdump.pcap >0 use \^pcap-be # # "libpcap"-with-Alexey-Kuznetsov's-patches capture files. # 0 ubelong 0xa1b2cd34 pcap capture file, microsecond ts, extensions (big-endian) >0 use pcap-be 0 ulelong 0xa1b2cd34 pcap capture file, microsecond ts, extensions (little-endian) >0 use \^pcap-be # # "pcapng" capture files. # https://github.com/pcapng/pcapng # Pcapng files can contain multiple sections. Printing the endianness, # snaplen, or other information from the first SHB may be misleading. # 0 ubelong 0x0a0d0d0a >8 ubelong 0x1a2b3c4d pcapng capture file >>12 beshort x - version %d >>14 beshort x \b.%d 0 ulelong 0x0a0d0d0a >8 ulelong 0x1a2b3c4d pcapng capture file >>12 leshort x - version %d >>14 leshort x \b.%d # # AIX "iptrace" capture files. # 0 string iptrace\0401.0 AIX iptrace capture file 0 string iptrace\0402.0 AIX iptrace capture file # # Novell LANalyzer capture files. # URL: http://www.blacksheepnetworks.com/security/info/nw/lan/trace.txt # Reference: https://github.com/wireshark/wireshark/blob/master/wiretap/lanalyzer.c # Update: Joerg Jenderek # # regular trace header record (RT_HeaderRegular) 0 leshort 0x1001 # GRR: line above is too generic because it matches Commodore Plus/4 BASIC V3.5 # and VIC-20 BASIC V2 program # skip many Commodore Basic program (Microzodiac.prg Minefield.prg Vic-tac-toe.prg breakvic_joy.prg) # with invalid second record type 0 instead of "Trace receive channel name record" >(2.s+4) leshort =0x1006h >>0 use novell-lanalyzer # cyclic trace header record (RT_HeaderCyclic) 0 leshort 0x1007 >0 use novell-lanalyzer 0 name novell-lanalyzer >0 leshort x Novell LANalyzer capture file # https://reposcope.com/mimetype/application/x-lanalyzer !:mime application/x-lanalyzer # maybe also TR2 .. TR9 TRA .. TRZ !:ext tr1 # version like: 1.5 >4 ubyte x \b, version %u # minor version; one byte identifying the trace file minor version number >5 ubyte x \b.%u # Trace header record type like: 1001~regular or 1007~cyclic >0 leshort !0x1001 \b, record type %4.4x # record_length[2] is the length of the data part of 1st reorcd (without "type" and "length" fields) like: 4Ch >2 leshort x \b, record length %#x # second record type like: 1006h~Trace receive channel name record >(2.s+4) leshort !0x1006h \b, 2nd record type %#4.4x >(2.s+6) leshort x \b, 2nd record length %#x # each channel name is a null-terminated, eight-byte ASCII string like: Channel1 >(2.s+8) string x \b, names %.9s # 2nd channel name like: Channel2 >(2.s+17) string x %.9s ... # # HP-UX "nettl" capture files. # URL: https://nixdoc.net/man-pages/HP-UX/man1m/nettl.1m.html # Reference: https://github.com/wireshark/wireshark/blob/master/wiretap/nettl.c # Update: Joerg Jenderek # Note: Wireshark fills "meta information header fields" with "dummy" values # nettl_magic_hpux9[12]; for HP-UX 9.x not tested 0 string \x00\x00\x00\x01\x00\x00\x00\x00\x00\x07\xD0\x00 HP/UX 9.x nettl capture file !:mime application/x-nettl !:ext trc0/trc1 # nettl_magic_hpux10[12]; for HP-UX 10.x and 11.x 0 string \x54\x52\x00\x64\x00 HP/UX nettl capture file # https://reposcope.com/mimetype/application/x-nettl !:mime application/x-nettl # maybe also TRC000 TRC001 TRC002 ... !:ext trc0/trc1 # file_name[56]; maybe also like /tmp/raw.tr.TRC000 >12 string !/tmp/wireshark.TRC000 >>12 string x "%-.56s" # tz[20]; like UTC >68 string !UTC \b, tz >>68 string x %-.20s # host_name[9]; >88 string >\0 \b, host %-.9s # os_vers[9]; like B.11.11 >97 string !B.11.11 \b, os >>97 string x %-.9s # os_v; like 55h >>106 ubyte x (%#x) # xxa[8]; like 0 >107 ubequad !0 \b, xxa=%#16.16llx # model[11] like: 9000/800 >115 string !9000/800 \b, model >>115 string x %-.11s # unknown; probably just padding to 128 bytes like: 0406h >126 ubeshort !0x0406h \b, at 126 %#4.4x # # RADCOM WAN/LAN Analyzer capture files. # 0 string \x42\xd2\x00\x34\x12\x66\x22\x88 RADCOM WAN/LAN Analyzer capture file # # NetStumbler log files. Not really packets, per se, but about as # close as you can get. These are log files from NetStumbler, a # Windows program, that scans for 802.11b networks. # 0 string NetS NetStumbler log file >8 lelong x \b, %d stations found # # *Peek tagged capture files. # 0 string \177ver EtherPeek/AiroPeek/OmniPeek capture file # # Visual Networks traffic capture files. # 0 string \x05VNF Visual Networks traffic capture file # # Network Instruments Observer capture files. # 0 string ObserverPktBuffe Network Instruments Observer capture file # # Files from Accellent Group's 5View products. # # URL: http://www.infovista.com # Reference: http://mark0.net/download/triddefs_xml.7z # defs/0/5vw.trid.xml # https://2.na.dl.wireshark.org/src/wireshark-3.6.2.tar.xz # wireshark-3.6.2/wiretap/5views.c # Update: Joerg Jenderek # Note: called "5View capture" by TrID and # "Wireshark capture file" on Windows or # "Packet Capture (Accellent/InfoVista 5view)" by shared MIME-info database # verified/falsified by `wireshark *.5vw` 0 string \xaa\xaa\xaa\xaa # skip misidentified boot/x86_64/loader/kroete.dat on Suse LEAP DVD # by check for valid record version >8 ulelong =0x00010000 >>0 use 5view-le 0 name 5view-le # t_5VW_Info_Header.Signature = CST_5VW_INFO_HEADER_KEY = 0xAAAAAAAAU >0 ulelong x 5View capture file # https://reposcope.com/mimetype/application/x-5view !:mime application/x-5view !:ext 5vw # size of header in bytes (included signature and reserved fields); probably always 20h >4 ulelong !0x00000020 \b, header size %#x # version of header record; apparently always CST_5VW_INFO_RECORD_VERSION=0x00010000U >8 ulelong !0x00010000 \b, record version %#x # DataSize; total size of data without header like: 18h >12 ulelong x \b, record size %#x # filetype; type of the capture file like: 18001000h >16 ulelong x \b, file type %#8.8x # Reserved[3]; reserved for future use; apparently zero >20 quad !0 \b, Reserved %#llx # look for record header key CST_5VW_RECORDS_HEADER_KEY of structure t_5VW_TimeStamped_Header >0x20 search/0xB8/b \xEE\xEE\x33\x33 \b; record # HeaderSize; actual size of this header in bytes like: 32 24h >>&0 uleshort x size %#x # HeaderType; exact type of this header; probably always 0x4000 >>&2 uleshort !0x4000 \b, header type %#x # RecType; type of record like: 80000000h >>&4 ulelong x \b, record type %#x # RecSubType; subtype of record like: 0 >>&8 ulelong !0 \b, subtype %#x # RecSize; Size of one record like: 5Ch >>&12 ulelong x \b, RecSize %#x # RecNb; Number of records like: 1 >>&16 ulelong >1 \b, %#x records # Timestamp Utc #>>&20 ulelong x \b, RAW TIME %#8.8x >>&20 date x \b, Time-stamp %s