packetsnitch 1.5.604 → 1.5.605
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/FUNDING.yml +15 -0
- package/.webpack/main/index.js +1697 -0
- package/.webpack/main/index.js.map +1 -0
- package/.webpack/renderer/main_window/index.html +1036 -0
- package/.webpack/renderer/main_window/index.js +4736 -0
- package/.webpack/renderer/main_window/preload.js +1418 -0
- package/docs/Backend.md +278 -0
- package/docs/Filters.md +735 -0
- package/docs/Frontend.md +494 -0
- package/docs/README.md +43 -0
- package/docs/bitcoin-qr.png +0 -0
- package/docs/paypal-qr.png +0 -0
- package/docs/screenshots/PacketSnitch_ss10.png +0 -0
- package/docs/screenshots/PacketSnitch_ss9-2.jpg +0 -0
- package/docs/screenshots/comparison-operator-packetsnitch-ss21.png +0 -0
- package/docs/screenshots/packetSnitch_ss13.png +0 -0
- package/docs/screenshots/packetSnitch_ss20.png +0 -0
- package/docs/screenshots/packetsnitch-ss16.png +0 -0
- package/docs/screenshots/packetsnitch_32.png +0 -0
- package/docs/screenshots/packetsnitch_ss11.png +0 -0
- package/docs/screenshots/packetsnitch_ss12.png +0 -0
- package/docs/screenshots/packetsnitch_ss19.png +0 -0
- package/docs/screenshots/packetsnitch_ss23.png +0 -0
- package/docs/screenshots/packetsnitch_ss24.png +0 -0
- package/docs/screenshots/packetsnitch_ss25.png +0 -0
- package/docs/screenshots/packetsnitch_win_ss14.png +0 -0
- package/docs/screenshots/packetsntich_ss26.png +0 -0
- package/docs/screenshots/ps-views.gif +0 -0
- package/docs/screenshots/screenshot_7.png +0 -0
- package/docs/venmo-qr.png +0 -0
- package/forge.config.js +21 -33
- package/ideas/Dark-mode UI mockup for packetsnitch.png +0 -0
- package/ideas/Dark-packetsnitch-UI-mockup-5.png +0 -0
- package/ideas/PacketSnitch-timeline-landscape-mockup.png +0 -0
- package/ideas/Screenshot 2026-03-05 at 22-09-09 Packet Decoder Frontend /342/200/223 Figma Make.png +0 -0
- package/ideas/Screenshot 2026-03-07 at 12-31-05 Grok _ X.png +0 -0
- package/ideas/ideas.txt +340 -0
- package/logo/LidakzOne_PERSONAL_USE_ONLY.otf +0 -0
- package/logo/byline-packetsnitch.xcf +0 -0
- package/logo/logo-packetsnitch-2.png +0 -0
- package/logo/logo-packetsnitch-3.png +0 -0
- package/logo/logo-packetsnitch-4.png +0 -0
- package/logo/logo-packetsnitch-5.png +0 -0
- package/logo/logo-packetsnitch.png +0 -0
- package/logo/logo-packetsnitch.webp +0 -0
- package/logo/logo-packetsnitch.xcf +0 -0
- package/logo/packet-snitch-tag-transp-whitetext.png +0 -0
- package/logo/packet-snitch-tag-transp.png +0 -0
- package/logo/ps-icon.ico +0 -0
- package/logo/ps-installer-icon.ico +0 -0
- package/logo/qr-code(1).png +0 -0
- package/logo/qr-code.png +0 -0
- package/logo/rat-standing.png +0 -0
- package/package.json +1 -2
- package/samples/hosts.json +15112 -0
- package/samples/hustoj_capture.pcapng +0 -0
- package/.eslintrc.json +0 -28
- package/.webpack/x64/main/index.js +0 -2
- package/.webpack/x64/main/index.js.map +0 -1
- package/.webpack/x64/renderer/main_window/index.html +0 -3
- package/.webpack/x64/renderer/main_window/index.js +0 -3
- package/.webpack/x64/renderer/main_window/index.js.LICENSE.txt +0 -36
- package/.webpack/x64/renderer/main_window/index.js.map +0 -1
- package/.webpack/x64/renderer/main_window/preload.js +0 -2
- package/.webpack/x64/renderer/main_window/preload.js.map +0 -1
- /package/.webpack/{x64/renderer → renderer}/assets/css/rubikglitch.woff2 +0 -0
- /package/.webpack/{x64/renderer → renderer}/assets/css/style.css +0 -0
- /package/.webpack/{x64/renderer → renderer}/assets/images/loading.gif +0 -0
- /package/.webpack/{x64/renderer → renderer}/assets/images/logo.webp +0 -0
- /package/.webpack/{x64/renderer → renderer}/assets/images/packet-snitch-tag.webp +0 -0
package/docs/Filters.md
ADDED
|
@@ -0,0 +1,735 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
# Filter Reference
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
PacketSnitch's filter bar lets you search and narrow down the packets displayed in the frontend. Filters are evaluated over the full loaded dataset (all hosts), not just the currently selected host. Results update immediately after pressing **Enter** in the filter bar, and the **Filtered Packets** counter in the left sidebar updates to reflect the number of matching packets.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Syntax
|
|
12
|
+
|
|
13
|
+
### Basic equality
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
key:value
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Matches packets where `key` equals `value`. String comparisons are **case-insensitive**.
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
ip.src.addr:192.168.1.1
|
|
23
|
+
tcp.dst.port:443
|
|
24
|
+
payload.mime:text/html
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Comparison operators
|
|
28
|
+
|
|
29
|
+
Prefix the value with a comparison operator to perform numeric or lexicographic comparisons.
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
key:==value (explicit equality — same as key:value)
|
|
33
|
+
key:!=value (not equal)
|
|
34
|
+
key:>value (greater than)
|
|
35
|
+
key:>=value (greater than or equal)
|
|
36
|
+
key:<value (less than)
|
|
37
|
+
key:<=value (less than or equal)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
payload.entropy:>=7.0
|
|
42
|
+
ip.len:>100
|
|
43
|
+
tcp.dst.port:!=80
|
|
44
|
+
payload.len:<64
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Boolean combinators
|
|
48
|
+
|
|
49
|
+
Use `&&` (AND) and `||` (OR) to combine multiple conditions. AND has higher precedence than OR.
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
ip.src.addr:10.0.0.1 && tcp.dst.port:443
|
|
53
|
+
tcp.dst.port:80 || tcp.dst.port:443
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Grouping with parentheses
|
|
57
|
+
|
|
58
|
+
Use parentheses to override precedence and group sub-expressions.
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
(tcp.dst.port:80 || tcp.dst.port:443) && payload.entropy:>=6.0
|
|
62
|
+
(payload.mime:text/html || payload.mime:application/json) && ip.dst.addr:10.0.0.1
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
The context menu also supports explicit parenthesis editing via **Add to filter... → Parentheses...**, including **Append (**, **Append )**, and **Wrap current query with (...)**.
|
|
66
|
+
|
|
67
|
+
### Inversion with `!`
|
|
68
|
+
|
|
69
|
+
Use `!` to invert either a single expression or a grouped expression.
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
!tcp.dst.port:443
|
|
73
|
+
!(tcp.dst.port:80 || tcp.dst.port:443)
|
|
74
|
+
ip.src.addr:10.0.0.1 && !(mime.type:text/html || mime.type:application/json)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Clearing the filter
|
|
78
|
+
|
|
79
|
+
Delete all text from the filter bar and press **Enter** to show all packets again.
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## How Keys Work
|
|
84
|
+
|
|
85
|
+
Filter keys correspond directly to the dot-notation leaf-node names embedded in each packet's JSON. The filter engine normalizes keys to **lowercase** with **spaces replaced by hyphens**, so both the machine-readable dot-notation form (`wire.len`) and the normalized human-readable form (`wire-length`) are accepted interchangeably. This document uses the canonical dot-notation names throughout.
|
|
86
|
+
|
|
87
|
+
Additional shorthand aliases are also supported: `wire.proto`, `eth.src.vendor`, and `mime.type`. Text queries for `eth.src.vendor`, `mime.type`, and `dns.qname` are matched case-insensitively using substring matching.
|
|
88
|
+
|
|
89
|
+
Protocol-specific keys (e.g., `dns.*`, `http.*`) are only present in packets where that protocol was detected, so filtering on them automatically scopes results to the relevant protocol traffic.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Filter Key Reference
|
|
94
|
+
|
|
95
|
+
### Core Packet Fields
|
|
96
|
+
|
|
97
|
+
| Filter Key | Type | Description |
|
|
98
|
+
| ------------------ | ------- | ------------------------------------------------------------ |
|
|
99
|
+
| `packet.timestamp` | string | Capture timestamp (`YYYY-MM-DD HH:MM:SS.ffffff`) |
|
|
100
|
+
| `packet.proto` | string | Transport protocol (`tcp`, `udp`, `icmp`) |
|
|
101
|
+
| `packet.hex` | string | Full raw packet as a hex string |
|
|
102
|
+
|
|
103
|
+
### Ethernet Fields
|
|
104
|
+
|
|
105
|
+
> Only populated when both source and destination IPs are on the local network.
|
|
106
|
+
|
|
107
|
+
| Filter Key | Type | Description |
|
|
108
|
+
| ---------------------- | ------ | ------------------------------------------- |
|
|
109
|
+
| `ether.src.mac.addr` | string | Source MAC address |
|
|
110
|
+
| `ether.dst.mac.addr` | string | Destination MAC address |
|
|
111
|
+
| `ether.src.mac.vendor` | string | Hardware vendor of the source MAC |
|
|
112
|
+
| `ether.dst.mac.vendor` | string | Hardware vendor of the destination MAC |
|
|
113
|
+
|
|
114
|
+
### IP Fields
|
|
115
|
+
|
|
116
|
+
| Filter Key | Type | Description |
|
|
117
|
+
| -------------- | ------- | ----------------------------------------------------------------- |
|
|
118
|
+
| `ip.src.addr` | string | Source IP address |
|
|
119
|
+
| `ip.dst.addr` | string | Destination IP address |
|
|
120
|
+
| `ip.chksum` | string | IP header checksum (hex, e.g. `0xd1ae`) |
|
|
121
|
+
| `ip.len` | integer | IP layer length in bytes |
|
|
122
|
+
| `ip.src.class` | string | Network class of the source IP (`Localnet`, `A`, `B`, `C`) |
|
|
123
|
+
| `ip.dst.class` | string | Network class of the destination IP (`Localnet`, `A`, `B`, `C`) |
|
|
124
|
+
|
|
125
|
+
### TCP Fields
|
|
126
|
+
|
|
127
|
+
| Filter Key | Type | Description |
|
|
128
|
+
| -------------- | ------- | -------------------------------------------------------- |
|
|
129
|
+
| `tcp.src.port` | integer | TCP source port |
|
|
130
|
+
| `tcp.dst.port` | integer | TCP destination port |
|
|
131
|
+
| `tcp.chksum` | string | TCP checksum (hex) |
|
|
132
|
+
| `tcp.urgptr` | boolean | Whether the urgent pointer is set (`true` / `false`) |
|
|
133
|
+
| `tcp.flags` | string | Active TCP flags (e.g. `SYN`, `ACK\|PSH`, `SYN\|ACK`) |
|
|
134
|
+
| `tcp.len` | integer | TCP header length in bytes |
|
|
135
|
+
| `tcp.proto` | string | IANA service name for the destination port (e.g. `https`) |
|
|
136
|
+
| `tcp.desc` | string | ICANN port description for the destination port |
|
|
137
|
+
|
|
138
|
+
### UDP Fields
|
|
139
|
+
|
|
140
|
+
| Filter Key | Type | Description |
|
|
141
|
+
| -------------- | ------- | ----------------------------- |
|
|
142
|
+
| `udp.src.port` | integer | UDP source port |
|
|
143
|
+
| `udp.dst.port` | integer | UDP destination port |
|
|
144
|
+
| `udp.chksum` | string | UDP checksum (hex) |
|
|
145
|
+
| `udp.len` | integer | UDP datagram length in bytes |
|
|
146
|
+
|
|
147
|
+
### ICMP Fields
|
|
148
|
+
|
|
149
|
+
| Filter Key | Type | Description |
|
|
150
|
+
| ------------- | ------- | ------------------------------------------------------------------ |
|
|
151
|
+
| `icmp.type` | string | ICMP message type (e.g. `Echo Request`, `Destination Unreachable`) |
|
|
152
|
+
| `icmp.code` | integer | ICMP code value |
|
|
153
|
+
| `icmp.id` | integer | ICMP identifier field |
|
|
154
|
+
| `icmp.seq` | integer | ICMP sequence number |
|
|
155
|
+
| `icmp.chksum` | string | ICMP checksum (hex) |
|
|
156
|
+
|
|
157
|
+
### Wire / Payload Fields
|
|
158
|
+
|
|
159
|
+
| Filter Key | Type | Description |
|
|
160
|
+
| ---------------------------- | ------- | ------------------------------------------------------------------------------ |
|
|
161
|
+
| `wire.len` | integer | Total wire length of the segment in bytes |
|
|
162
|
+
| `payload.hex` | string | Raw payload as a hex string |
|
|
163
|
+
| `payload.ascii` | string | Raw payload decoded as ASCII |
|
|
164
|
+
| `payload.len` | integer | Payload length in bytes |
|
|
165
|
+
| `payload.mime` | string | MIME type (e.g. `text/html`, `application/octet-stream`) |
|
|
166
|
+
| `payload.entropy` | float | Shannon entropy of the payload (bits per byte, 0.0 – 8.0) |
|
|
167
|
+
| `payload.charset` | string | `ascii` if all bytes are printable ASCII, otherwise `binary` |
|
|
168
|
+
| `payload.encoding` | string | Detected character encoding (e.g. `utf-8`, `iso-8859-1`) |
|
|
169
|
+
| `payload.chars.used` | integer | Number of distinct byte values present in the payload |
|
|
170
|
+
| `payload.decompressed.hex` | string | Decompressed payload as a hex string (only present if payload was compressed) |
|
|
171
|
+
| `payload.decompressed.ascii` | string | Decompressed payload as ASCII (only present if payload was compressed) |
|
|
172
|
+
|
|
173
|
+
### GeoIP / Location Fields
|
|
174
|
+
|
|
175
|
+
> Only populated for routable (non-private) IP addresses.
|
|
176
|
+
|
|
177
|
+
| Filter Key | Type | Description |
|
|
178
|
+
| ------------------ | ------ | -------------------------------------------- |
|
|
179
|
+
| `loc.src.country` | string | Country of the source IP |
|
|
180
|
+
| `loc.src.city` | string | City of the source IP |
|
|
181
|
+
| `loc.src.postal` | string | Postal code of the source IP |
|
|
182
|
+
| `loc.src.tz` | string | Time zone of the source IP (short alias) |
|
|
183
|
+
| `loc.src.timezone` | string | Time zone of the source IP (full name) |
|
|
184
|
+
| `loc.dst.country` | string | Country of the destination IP |
|
|
185
|
+
| `loc.dst.city` | string | City of the destination IP |
|
|
186
|
+
| `loc.dst.postal` | string | Postal code of the destination IP |
|
|
187
|
+
| `loc.dst.tz` | string | Time zone of the destination IP (short alias) |
|
|
188
|
+
| `loc.dst.timezone` | string | Time zone of the destination IP (full name) |
|
|
189
|
+
|
|
190
|
+
### Active Recon Fields
|
|
191
|
+
|
|
192
|
+
> Only populated when the backend was run with `-a` (active recon).
|
|
193
|
+
|
|
194
|
+
| Filter Key | Type | Description |
|
|
195
|
+
| ------------- | ------ | ------------------------------------ |
|
|
196
|
+
| `host.banner` | string | Server banner retrieved via active recon |
|
|
197
|
+
|
|
198
|
+
### DNS Fields
|
|
199
|
+
|
|
200
|
+
> Only present on packets captured on UDP/TCP port 53.
|
|
201
|
+
|
|
202
|
+
| Filter Key | Type | Description |
|
|
203
|
+
| ---------------- | ------- | ------------------------------------------------ |
|
|
204
|
+
| `dns.id` | integer | DNS transaction ID |
|
|
205
|
+
| `dns.qr` | boolean | `true` = response, `false` = query |
|
|
206
|
+
| `dns.qname` | string | First queried domain name |
|
|
207
|
+
| `dns.qnames` | array | All queried domain names in the message |
|
|
208
|
+
| `dns.aname` | string | First answer name |
|
|
209
|
+
| `dns.anames` | array | All answer names in the message |
|
|
210
|
+
| `dns.aip` | string | First resolved IP address from the response |
|
|
211
|
+
| `dns.aips` | array | All resolved IP addresses from the response |
|
|
212
|
+
| `dns.qdcount` | integer | Number of questions in the message |
|
|
213
|
+
| `dns.ancount` | integer | Number of answer records in the message |
|
|
214
|
+
| `dns.hostnames` | array | Hostnames resolved via active recon (requires `-a`) |
|
|
215
|
+
|
|
216
|
+
### HTTP Fields
|
|
217
|
+
|
|
218
|
+
> Only present on packets captured on TCP port 80, 443, 8080, or 8443.
|
|
219
|
+
|
|
220
|
+
| Filter Key | Type | Description |
|
|
221
|
+
| ------------------------ | ------ | -------------------------------------------------------- |
|
|
222
|
+
| `http.type` | string | `Request` or `Response` |
|
|
223
|
+
| `http.method` | string | HTTP method (`GET`, `POST`, `PUT`, etc.) — requests only |
|
|
224
|
+
| `http.url` | string | Request URL path — requests only |
|
|
225
|
+
| `http.version` | string | HTTP version (e.g. `HTTP/1.1`) |
|
|
226
|
+
| `http.host` | string | `Host` header — requests only |
|
|
227
|
+
| `http.user_agent` | string | `User-Agent` header — requests only |
|
|
228
|
+
| `http.content_type` | string | `Content-Type` header |
|
|
229
|
+
| `http.content_length` | string | `Content-Length` header |
|
|
230
|
+
| `http.referer` | string | `Referer` header — requests only |
|
|
231
|
+
| `http.accept` | string | `Accept` header — requests only |
|
|
232
|
+
| `http.accept_encoding` | string | `Accept-Encoding` header — requests only |
|
|
233
|
+
| `http.connection` | string | `Connection` header |
|
|
234
|
+
| `http.status_code` | string | HTTP status code (e.g. `200`) — responses only |
|
|
235
|
+
| `http.status_msg` | string | HTTP status message (e.g. `OK`) — responses only |
|
|
236
|
+
| `http.server` | string | `Server` header — responses only |
|
|
237
|
+
| `http.content_encoding` | string | `Content-Encoding` header — responses only |
|
|
238
|
+
| `http.transfer_encoding` | string | `Transfer-Encoding` header — responses only |
|
|
239
|
+
| `http.location` | string | `Location` redirect header — responses only |
|
|
240
|
+
|
|
241
|
+
### SNMP Fields
|
|
242
|
+
|
|
243
|
+
> Only present on packets captured on UDP/TCP port 161 or 162.
|
|
244
|
+
|
|
245
|
+
| Filter Key | Type | Description |
|
|
246
|
+
| ---------------- | ------ | --------------------------------------------------------- |
|
|
247
|
+
| `snmp.version` | string | SNMP version (`v1`, `v2c`, `v3`) |
|
|
248
|
+
| `snmp.community` | string | SNMP community string |
|
|
249
|
+
| `snmp.pdu_type` | string | PDU type (`GetRequest`, `GetResponse`, `Trap`, etc.) |
|
|
250
|
+
|
|
251
|
+
### DHCP Fields
|
|
252
|
+
|
|
253
|
+
> Only present on packets captured on UDP port 67 or 68.
|
|
254
|
+
|
|
255
|
+
| Filter Key | Type | Description |
|
|
256
|
+
| --------------- | ------ | -------------------------------------------------------------- |
|
|
257
|
+
| `dhcp.msg_type` | string | DHCP message type (`Discover`, `Offer`, `Request`, `Decline`, `ACK`, `NAK`, `Release`, `Inform`) |
|
|
258
|
+
| `dhcp.xid` | string | Transaction ID (hex) |
|
|
259
|
+
| `dhcp.ciaddr` | string | Client IP address |
|
|
260
|
+
| `dhcp.yiaddr` | string | Offered IP address |
|
|
261
|
+
| `dhcp.siaddr` | string | Server IP address |
|
|
262
|
+
|
|
263
|
+
### NTP Fields
|
|
264
|
+
|
|
265
|
+
> Only present on packets captured on UDP port 123.
|
|
266
|
+
|
|
267
|
+
| Filter Key | Type | Description |
|
|
268
|
+
| ------------- | ------- | ------------------------------------------------------------------ |
|
|
269
|
+
| `ntp.leap` | string | Leap indicator (`no warning`, `last minute has 61s`, etc.) |
|
|
270
|
+
| `ntp.version` | integer | NTP version number |
|
|
271
|
+
| `ntp.mode` | string | NTP mode (`client`, `server`, `broadcast`, etc.) |
|
|
272
|
+
| `ntp.stratum` | integer | Stratum level (0 = unspecified, 1 = primary, 2+ = secondary) |
|
|
273
|
+
| `ntp.ref_id` | string | Reference ID (IP address or 4-character ASCII string) |
|
|
274
|
+
|
|
275
|
+
### SIP Fields
|
|
276
|
+
|
|
277
|
+
> Only present on packets captured on UDP/TCP port 5060 or 5061.
|
|
278
|
+
|
|
279
|
+
| Filter Key | Type | Description |
|
|
280
|
+
| ----------------- | ------ | ------------------------------------------------------------- |
|
|
281
|
+
| `sip.type` | string | `Request` or `Response` |
|
|
282
|
+
| `sip.method` | string | SIP method (`INVITE`, `REGISTER`, `BYE`, etc.) — requests only |
|
|
283
|
+
| `sip.uri` | string | Request URI — requests only |
|
|
284
|
+
| `sip.from` | string | `From` header |
|
|
285
|
+
| `sip.to` | string | `To` header |
|
|
286
|
+
| `sip.call_id` | string | `Call-ID` header |
|
|
287
|
+
| `sip.status_code` | string | SIP status code (e.g. `200`) — responses only |
|
|
288
|
+
| `sip.status_msg` | string | SIP status message (e.g. `OK`) — responses only |
|
|
289
|
+
|
|
290
|
+
### FTP Fields
|
|
291
|
+
|
|
292
|
+
> Only present on packets captured on TCP port 20 or 21.
|
|
293
|
+
|
|
294
|
+
| Filter Key | Type | Description |
|
|
295
|
+
| ---------------- | ------ | ------------------------------------------------------------ |
|
|
296
|
+
| `ftp.type` | string | `Command` or `Response` |
|
|
297
|
+
| `ftp.command` | string | FTP command (e.g. `USER`, `RETR`, `LIST`) — commands only |
|
|
298
|
+
| `ftp.argument` | string | Argument passed to the command — commands only |
|
|
299
|
+
| `ftp.status_code`| string | FTP status code (e.g. `220`, `230`) — responses only |
|
|
300
|
+
| `ftp.message` | string | Status message text — responses only |
|
|
301
|
+
|
|
302
|
+
### SMTP Fields
|
|
303
|
+
|
|
304
|
+
> Only present on packets captured on TCP port 25, 587, or 465.
|
|
305
|
+
|
|
306
|
+
| Filter Key | Type | Description |
|
|
307
|
+
| ----------------- | ------ | -------------------------------------------------------------- |
|
|
308
|
+
| `smtp.type` | string | `Command` or `Response` |
|
|
309
|
+
| `smtp.command` | string | SMTP command (e.g. `EHLO`, `MAIL`, `RCPT`) — commands only |
|
|
310
|
+
| `smtp.argument` | string | Argument passed to the command — commands only |
|
|
311
|
+
| `smtp.status_code`| string | SMTP status code (e.g. `250`, `354`) — responses only |
|
|
312
|
+
| `smtp.message` | string | Status message text — responses only |
|
|
313
|
+
|
|
314
|
+
### POP3 Fields
|
|
315
|
+
|
|
316
|
+
> Only present on packets captured on TCP port 110 or 995.
|
|
317
|
+
|
|
318
|
+
| Filter Key | Type | Description |
|
|
319
|
+
| ---------------- | ------ | -------------------------------------------------------------- |
|
|
320
|
+
| `pop3.type` | string | `Command` or `Response` |
|
|
321
|
+
| `pop3.command` | string | POP3 command (e.g. `USER`, `RETR`, `LIST`) — commands only |
|
|
322
|
+
| `pop3.argument` | string | Argument passed to the command — commands only |
|
|
323
|
+
| `pop3.status` | string | Response status indicator (`+OK` or `-ERR`) — responses only |
|
|
324
|
+
| `pop3.message` | string | Response message text — responses only |
|
|
325
|
+
|
|
326
|
+
### IMAP Fields
|
|
327
|
+
|
|
328
|
+
> Only present on packets captured on TCP port 143 or 993.
|
|
329
|
+
|
|
330
|
+
| Filter Key | Type | Description |
|
|
331
|
+
| --------------- | ------ | --------------------------------------------------------------------------- |
|
|
332
|
+
| `imap.type` | string | `Command`, `Response`, or `Untagged` |
|
|
333
|
+
| `imap.tag` | string | IMAP tag (e.g. `A001`) — commands and responses only |
|
|
334
|
+
| `imap.command` | string | IMAP command (e.g. `LOGIN`, `SELECT`, `FETCH`) — commands only |
|
|
335
|
+
| `imap.argument` | string | Command argument — commands only |
|
|
336
|
+
| `imap.status` | string | Status keyword (`OK`, `NO`, `BAD`, or untagged keyword) — responses/untagged|
|
|
337
|
+
| `imap.info` | string | Additional info text — untagged responses only |
|
|
338
|
+
| `imap.message` | string | Response message text — tagged responses only |
|
|
339
|
+
|
|
340
|
+
### Telnet Fields
|
|
341
|
+
|
|
342
|
+
> Only present on packets captured on TCP port 23.
|
|
343
|
+
|
|
344
|
+
| Filter Key | Type | Description |
|
|
345
|
+
| -------------------- | ------ | --------------------------------------------------------- |
|
|
346
|
+
| `telnet.negotiations`| array | List of Telnet IAC negotiation option names |
|
|
347
|
+
| `telnet.text` | string | Printable ASCII text extracted from the payload (≤ 200 chars) |
|
|
348
|
+
|
|
349
|
+
### IRC Fields
|
|
350
|
+
|
|
351
|
+
> Only present on packets captured on TCP port 6667, 6668, or 6669.
|
|
352
|
+
|
|
353
|
+
| Filter Key | Type | Description |
|
|
354
|
+
| --------------- | ------- | -------------------------------------------------------- |
|
|
355
|
+
| `irc.command` | string | IRC command from the first parsed message (e.g. `PRIVMSG`) |
|
|
356
|
+
| `irc.prefix` | string | Message prefix (nick/server) from the first parsed message |
|
|
357
|
+
| `irc.params` | string | Command parameters from the first parsed message |
|
|
358
|
+
| `irc.msg_count` | integer | Total number of IRC messages parsed in the payload |
|
|
359
|
+
|
|
360
|
+
### MTP / MMS Fields
|
|
361
|
+
|
|
362
|
+
> Only present on packets captured on TCP port 1755.
|
|
363
|
+
|
|
364
|
+
| Filter Key | Type | Description |
|
|
365
|
+
| ------------- | ------- | -------------------------------------------------------- |
|
|
366
|
+
| `mtp.protocol`| string | Always `MMS/MTP` |
|
|
367
|
+
| `mtp.cmd_id` | string | Command ID as a hex string (e.g. `0x00040001`) |
|
|
368
|
+
| `mtp.command` | string | Human-readable command name |
|
|
369
|
+
| `mtp.length` | integer | Declared message length in bytes |
|
|
370
|
+
|
|
371
|
+
### LDAP Fields
|
|
372
|
+
|
|
373
|
+
> Only present on packets captured on TCP or UDP port 389 or 636.
|
|
374
|
+
|
|
375
|
+
| Filter Key | Type | Description |
|
|
376
|
+
| --------------- | ------- | ------------------------------------ |
|
|
377
|
+
| `ldap.msg_id` | integer | LDAP message ID |
|
|
378
|
+
| `ldap.operation`| string | LDAP operation name (e.g. `BindRequest`, `SearchRequest`) |
|
|
379
|
+
|
|
380
|
+
### MySQL Fields
|
|
381
|
+
|
|
382
|
+
> Only present on packets captured on TCP port 3306.
|
|
383
|
+
|
|
384
|
+
| Filter Key | Type | Description |
|
|
385
|
+
| --------------------- | ------- | ---------------------------------------------------------------- |
|
|
386
|
+
| `mysql.type` | string | Packet type: `Server Greeting`, `OK`, `Error`, or `Command` |
|
|
387
|
+
| `mysql.seq` | integer | MySQL sequence number |
|
|
388
|
+
| `mysql.proto_version` | integer | Protocol version (always `10`) — Server Greeting only |
|
|
389
|
+
| `mysql.server_version`| string | MySQL server version string — Server Greeting only |
|
|
390
|
+
| `mysql.error_code` | integer | MySQL error code — Error only |
|
|
391
|
+
| `mysql.error_msg` | string | MySQL error message — Error only |
|
|
392
|
+
| `mysql.command` | string | Command type name (e.g. `Query`, `Quit`) — Command only |
|
|
393
|
+
| `mysql.query` | string | SQL query text — Command only |
|
|
394
|
+
|
|
395
|
+
### PostgreSQL Fields
|
|
396
|
+
|
|
397
|
+
> Only present on packets captured on TCP port 5432.
|
|
398
|
+
|
|
399
|
+
| Filter Key | Type | Description |
|
|
400
|
+
| ------------------- | ------- | ---------------------------------------------------------------- |
|
|
401
|
+
| `pg.type` | string | Message type (e.g. `Query`, `ReadyForQuery`, `StartupMessage`) |
|
|
402
|
+
| `pg.direction` | string | `Backend` (server→client) or `Frontend` (client→server) |
|
|
403
|
+
| `pg.msg_length` | integer | Declared message length in bytes |
|
|
404
|
+
| `pg.proto_version` | string | Protocol version (e.g. `3.0`) — StartupMessage only |
|
|
405
|
+
| `pg.body` | string | Decoded body text — Frontend messages only |
|
|
406
|
+
|
|
407
|
+
### XMPP Fields
|
|
408
|
+
|
|
409
|
+
> Only present on packets captured on TCP port 5222 or 5223.
|
|
410
|
+
|
|
411
|
+
| Filter Key | Type | Description |
|
|
412
|
+
| ------------- | ------ | --------------------------------------------- |
|
|
413
|
+
| `xmpp.stanza` | string | Stanza type (e.g. `message`, `presence`, `iq`) |
|
|
414
|
+
| `xmpp.to` | string | `to` attribute of the stanza |
|
|
415
|
+
| `xmpp.from` | string | `from` attribute of the stanza |
|
|
416
|
+
|
|
417
|
+
### SMB Fields
|
|
418
|
+
|
|
419
|
+
> Only present on packets captured on TCP port 139 or 445.
|
|
420
|
+
|
|
421
|
+
| Filter Key | Type | Description |
|
|
422
|
+
| --------------- | ------- | --------------------------------------------------------- |
|
|
423
|
+
| `smb.version` | string | `SMBv1` or `SMBv2/v3` |
|
|
424
|
+
| `smb.command` | string | SMB command name (e.g. `SMB_COM_NEGOTIATE`, `Create`) |
|
|
425
|
+
| `smb.status` | string | NT status code as a hex string (e.g. `0x00000000`) |
|
|
426
|
+
| `smb.is_response`| boolean| `true` if this is a server response, `false` if a request |
|
|
427
|
+
|
|
428
|
+
### MQTT Fields
|
|
429
|
+
|
|
430
|
+
> Only present on packets captured on TCP or UDP port 1883 or 8883.
|
|
431
|
+
|
|
432
|
+
| Filter Key | Type | Description |
|
|
433
|
+
| --------------- | ------- | ---------------------------------------------------------------- |
|
|
434
|
+
| `mqtt.msg_type` | string | MQTT message type (e.g. `CONNECT`, `PUBLISH`, `SUBSCRIBE`) |
|
|
435
|
+
| `mqtt.qos` | integer | Quality of Service level (0, 1, or 2) |
|
|
436
|
+
| `mqtt.dup` | boolean | Whether the DUP flag is set |
|
|
437
|
+
| `mqtt.retain` | boolean | Whether the RETAIN flag is set |
|
|
438
|
+
| `mqtt.topic` | string | Topic string — PUBLISH messages only |
|
|
439
|
+
|
|
440
|
+
### RTSP Fields
|
|
441
|
+
|
|
442
|
+
> Only present on packets captured on TCP port 554.
|
|
443
|
+
|
|
444
|
+
| Filter Key | Type | Description |
|
|
445
|
+
| --------------------- | ------ | ----------------------------------------------------------------- |
|
|
446
|
+
| `rtsp.type` | string | `Request` or `Response` |
|
|
447
|
+
| `rtsp.version` | string | RTSP version (e.g. `RTSP/1.0`) |
|
|
448
|
+
| `rtsp.method` | string | RTSP method (e.g. `DESCRIBE`, `SETUP`, `PLAY`) — requests only |
|
|
449
|
+
| `rtsp.url` | string | Request URL — requests only |
|
|
450
|
+
| `rtsp.cseq` | string | `CSeq` header value |
|
|
451
|
+
| `rtsp.session` | string | `Session` header value |
|
|
452
|
+
| `rtsp.transport` | string | `Transport` header value — requests only |
|
|
453
|
+
| `rtsp.status_code` | string | RTSP status code (e.g. `200`) — responses only |
|
|
454
|
+
| `rtsp.status_msg` | string | RTSP status message (e.g. `OK`) — responses only |
|
|
455
|
+
| `rtsp.content_type` | string | `Content-Type` header — responses only |
|
|
456
|
+
| `rtsp.content_length` | string | `Content-Length` header — responses only |
|
|
457
|
+
|
|
458
|
+
### TFTP Fields
|
|
459
|
+
|
|
460
|
+
> Only present on packets captured on UDP port 69.
|
|
461
|
+
|
|
462
|
+
| Filter Key | Type | Description |
|
|
463
|
+
| ----------------- | ------- | ------------------------------------------------------------------ |
|
|
464
|
+
| `tftp.opcode` | string | TFTP opcode (`Read Request`, `Write Request`, `Data`, `Acknowledgment`, `Error`) |
|
|
465
|
+
| `tftp.filename` | string | File name — Read/Write Request only |
|
|
466
|
+
| `tftp.mode` | string | Transfer mode (e.g. `octet`, `netascii`) — Read/Write Request only |
|
|
467
|
+
| `tftp.block` | integer | Block number — Data and Acknowledgment only |
|
|
468
|
+
| `tftp.data_len` | integer | Length of the data payload in bytes — Data only |
|
|
469
|
+
| `tftp.error_code` | integer | TFTP error code — Error only |
|
|
470
|
+
| `tftp.error_desc` | string | Standard error description — Error only |
|
|
471
|
+
| `tftp.error_msg` | string | Custom error message — Error only |
|
|
472
|
+
|
|
473
|
+
### BGP Fields
|
|
474
|
+
|
|
475
|
+
> Only present on packets captured on TCP port 179.
|
|
476
|
+
|
|
477
|
+
| Filter Key | Type | Description |
|
|
478
|
+
| ------------------- | ------- | -------------------------------------------------------------------- |
|
|
479
|
+
| `bgp.type` | string | BGP message type (`OPEN`, `UPDATE`, `NOTIFICATION`, `KEEPALIVE`, `ROUTE-REFRESH`) |
|
|
480
|
+
| `bgp.length` | integer | Total message length in bytes |
|
|
481
|
+
| `bgp.version` | integer | BGP version number — OPEN only |
|
|
482
|
+
| `bgp.asn` | integer | Sender's Autonomous System Number — OPEN only |
|
|
483
|
+
| `bgp.hold_time` | integer | Negotiated hold time in seconds — OPEN only |
|
|
484
|
+
| `bgp.router_id` | string | BGP router ID (dotted-decimal IP) — OPEN only |
|
|
485
|
+
| `bgp.error_code` | integer | Error code — NOTIFICATION only |
|
|
486
|
+
| `bgp.error_name` | string | Human-readable error name — NOTIFICATION only |
|
|
487
|
+
| `bgp.error_subcode` | integer | Error subcode — NOTIFICATION only |
|
|
488
|
+
|
|
489
|
+
### HTTP/2 Fields
|
|
490
|
+
|
|
491
|
+
> Detected on any TCP port when a binary HTTP/2 frame or connection preface is found.
|
|
492
|
+
|
|
493
|
+
| Filter Key | Type | Description |
|
|
494
|
+
| -------------------- | ------- | ---------------------------------------------------------------- |
|
|
495
|
+
| `http2.preface` | boolean | `true` if the HTTP/2 connection preface (`PRI * HTTP/2.0…`) was detected |
|
|
496
|
+
| `http2.frame_type` | string | Frame type (e.g. `DATA`, `HEADERS`, `SETTINGS`, `PING`, `GOAWAY`) |
|
|
497
|
+
| `http2.frame_length` | integer | Frame payload length in bytes |
|
|
498
|
+
| `http2.frame_flags` | string | Frame flags as a hex string (e.g. `0x04`) |
|
|
499
|
+
| `http2.stream_id` | integer | Stream identifier |
|
|
500
|
+
|
|
501
|
+
### NNTP Fields
|
|
502
|
+
|
|
503
|
+
> Only present on packets captured on TCP port 119.
|
|
504
|
+
|
|
505
|
+
| Filter Key | Type | Description |
|
|
506
|
+
| ------------------ | ------ | ---------------------------------------------------------- |
|
|
507
|
+
| `nntp.type` | string | `Command` or `Response` |
|
|
508
|
+
| `nntp.command` | string | NNTP command (e.g. `GROUP`, `ARTICLE`, `POST`) — commands only |
|
|
509
|
+
| `nntp.argument` | string | Command argument — commands only |
|
|
510
|
+
| `nntp.status_code` | string | NNTP status code (e.g. `211`, `420`) — responses only |
|
|
511
|
+
| `nntp.message` | string | Response message text — responses only |
|
|
512
|
+
|
|
513
|
+
### RADIUS Fields
|
|
514
|
+
|
|
515
|
+
> Only present on packets captured on TCP or UDP port 1812, 1813, 1645, or 1646.
|
|
516
|
+
|
|
517
|
+
| Filter Key | Type | Description |
|
|
518
|
+
| -------------- | ------- | -------------------------------------------------------------------- |
|
|
519
|
+
| `radius.code` | string | RADIUS packet code (e.g. `Access-Request`, `Access-Accept`, `Accounting-Request`) |
|
|
520
|
+
| `radius.id` | integer | Packet identifier |
|
|
521
|
+
| `radius.length`| integer | Total packet length in bytes |
|
|
522
|
+
| `radius.attrs` | array | List of decoded RADIUS attributes (`{Type, Value}` objects) |
|
|
523
|
+
|
|
524
|
+
---
|
|
525
|
+
|
|
526
|
+
## Examples
|
|
527
|
+
|
|
528
|
+
### IP and Port Filtering
|
|
529
|
+
|
|
530
|
+
```
|
|
531
|
+
# Packets from a specific source IP
|
|
532
|
+
ip.src.addr:192.168.1.10
|
|
533
|
+
|
|
534
|
+
# Packets going to a specific destination IP
|
|
535
|
+
ip.dst.addr:10.0.0.1
|
|
536
|
+
|
|
537
|
+
# Traffic on destination port 443
|
|
538
|
+
tcp.dst.port:443
|
|
539
|
+
|
|
540
|
+
# Traffic from a source port range (above 1024 — high ephemeral ports)
|
|
541
|
+
tcp.src.port:>1024
|
|
542
|
+
|
|
543
|
+
# Traffic between two specific hosts
|
|
544
|
+
ip.src.addr:10.0.0.5 && ip.dst.addr:10.0.0.1
|
|
545
|
+
|
|
546
|
+
# All HTTP and HTTPS traffic
|
|
547
|
+
tcp.dst.port:80 || tcp.dst.port:443
|
|
548
|
+
|
|
549
|
+
# Large IP packets
|
|
550
|
+
ip.len:>1000
|
|
551
|
+
```
|
|
552
|
+
|
|
553
|
+
### Payload and Entropy Filtering
|
|
554
|
+
|
|
555
|
+
```
|
|
556
|
+
# Payloads likely encrypted or compressed (high entropy)
|
|
557
|
+
payload.entropy:>=7.0
|
|
558
|
+
|
|
559
|
+
# Small payloads
|
|
560
|
+
payload.len:<64
|
|
561
|
+
|
|
562
|
+
# HTML responses
|
|
563
|
+
payload.mime:text/html
|
|
564
|
+
|
|
565
|
+
# JSON payloads
|
|
566
|
+
payload.mime:application/json
|
|
567
|
+
|
|
568
|
+
# Plain-text (ASCII) payloads only
|
|
569
|
+
payload.charset:ascii
|
|
570
|
+
|
|
571
|
+
# Payloads encoded as UTF-8
|
|
572
|
+
payload.encoding:utf-8
|
|
573
|
+
|
|
574
|
+
# Packets that contained a compressed payload
|
|
575
|
+
payload.decompressed.ascii:!=
|
|
576
|
+
|
|
577
|
+
# High-entropy HTML traffic — likely HTTPS with cleartext body
|
|
578
|
+
(tcp.dst.port:80 || tcp.dst.port:443) && payload.entropy:>=6.0
|
|
579
|
+
|
|
580
|
+
# JSON payloads from a specific host
|
|
581
|
+
payload.mime:application/json && ip.src.addr:10.0.0.5
|
|
582
|
+
```
|
|
583
|
+
|
|
584
|
+
### GeoIP / Location Filtering
|
|
585
|
+
|
|
586
|
+
```
|
|
587
|
+
# Packets originating from China (GeoIP)
|
|
588
|
+
loc.src.country:China
|
|
589
|
+
|
|
590
|
+
# Packets destined for Germany
|
|
591
|
+
loc.dst.country:Germany
|
|
592
|
+
|
|
593
|
+
# Packets from a specific city
|
|
594
|
+
loc.src.city:Hangzhou
|
|
595
|
+
|
|
596
|
+
# Traffic from China going to local network
|
|
597
|
+
loc.src.country:China && ip.dst.class:Localnet
|
|
598
|
+
|
|
599
|
+
# Outbound traffic to a foreign country
|
|
600
|
+
ip.src.class:Localnet && loc.dst.country:Russia
|
|
601
|
+
```
|
|
602
|
+
|
|
603
|
+
### Protocol-Specific Filtering
|
|
604
|
+
|
|
605
|
+
```
|
|
606
|
+
# DNS queries only (not responses)
|
|
607
|
+
dns.qr:false
|
|
608
|
+
|
|
609
|
+
# DNS queries for a specific domain
|
|
610
|
+
dns.qname:example.com
|
|
611
|
+
|
|
612
|
+
# All DNS responses
|
|
613
|
+
dns.qr:true
|
|
614
|
+
|
|
615
|
+
# HTTP POST requests
|
|
616
|
+
http.method:POST
|
|
617
|
+
|
|
618
|
+
# HTTP responses with a 404 status
|
|
619
|
+
http.status_code:404
|
|
620
|
+
|
|
621
|
+
# HTTP responses from a specific server
|
|
622
|
+
http.server:nginx
|
|
623
|
+
|
|
624
|
+
# HTTP requests to a specific host header
|
|
625
|
+
http.host:api.example.com
|
|
626
|
+
|
|
627
|
+
# HTTPS responses (port 443) with error status
|
|
628
|
+
tcp.dst.port:443 && http.status_code:>=400
|
|
629
|
+
|
|
630
|
+
# SNMP packets using the "public" community string
|
|
631
|
+
snmp.community:public
|
|
632
|
+
|
|
633
|
+
# SNMP traps
|
|
634
|
+
snmp.pdu_type:Trap
|
|
635
|
+
|
|
636
|
+
# DHCP DISCOVER messages
|
|
637
|
+
dhcp.msg_type:Discover
|
|
638
|
+
|
|
639
|
+
# NTP client requests
|
|
640
|
+
ntp.mode:client
|
|
641
|
+
|
|
642
|
+
# NTP with a non-primary stratum
|
|
643
|
+
ntp.stratum:>1
|
|
644
|
+
|
|
645
|
+
# SIP INVITE requests
|
|
646
|
+
sip.method:INVITE
|
|
647
|
+
|
|
648
|
+
# SIP calls from a specific URI
|
|
649
|
+
sip.from:sip:alice@example.com
|
|
650
|
+
```
|
|
651
|
+
|
|
652
|
+
### TCP Flags
|
|
653
|
+
|
|
654
|
+
```
|
|
655
|
+
# SYN packets (connection initiation)
|
|
656
|
+
tcp.flags:SYN
|
|
657
|
+
|
|
658
|
+
# RST packets (connection reset)
|
|
659
|
+
tcp.flags:RST
|
|
660
|
+
|
|
661
|
+
# FIN packets (connection teardown)
|
|
662
|
+
tcp.flags:FIN
|
|
663
|
+
|
|
664
|
+
# Packets with both ACK and PSH set
|
|
665
|
+
tcp.flags:ACK|PSH
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
### Ethernet / MAC Filtering
|
|
669
|
+
|
|
670
|
+
```
|
|
671
|
+
# Packets from a specific MAC address
|
|
672
|
+
ether.src.mac.addr:08:9d:f4:84:e9:28
|
|
673
|
+
|
|
674
|
+
# Packets from a specific vendor
|
|
675
|
+
ether.src.mac.vendor:Intel
|
|
676
|
+
|
|
677
|
+
# Local traffic between two known MAC addresses
|
|
678
|
+
ether.src.mac.addr:08:9d:f4:84:e9:28 && ether.dst.mac.addr:b8:3a:08:bc:4e:70
|
|
679
|
+
```
|
|
680
|
+
|
|
681
|
+
### Active Recon
|
|
682
|
+
|
|
683
|
+
```
|
|
684
|
+
# Hosts running Apache
|
|
685
|
+
host.banner:Apache
|
|
686
|
+
|
|
687
|
+
# Hosts running nginx
|
|
688
|
+
host.banner:nginx
|
|
689
|
+
|
|
690
|
+
# Any host where a banner was retrieved
|
|
691
|
+
host.banner:!=Active recon not performed
|
|
692
|
+
```
|
|
693
|
+
|
|
694
|
+
### Complex Multi-Condition Queries
|
|
695
|
+
|
|
696
|
+
```
|
|
697
|
+
# High-entropy traffic from China to local network on common web ports
|
|
698
|
+
(tcp.dst.port:80 || tcp.dst.port:443) && loc.src.country:China && payload.entropy:>=6.0
|
|
699
|
+
|
|
700
|
+
# DNS queries from internal hosts
|
|
701
|
+
dns.qr:false && ip.src.class:Localnet
|
|
702
|
+
|
|
703
|
+
# All SNMP and DHCP management traffic
|
|
704
|
+
(snmp.community:public || snmp.pdu_type:Trap) || (dhcp.msg_type:DISCOVER || dhcp.msg_type:OFFER)
|
|
705
|
+
|
|
706
|
+
# Large encrypted TCP packets from external sources
|
|
707
|
+
tcp.dst.port:443 && payload.len:>500 && payload.entropy:>=7.0 && ip.src.class:!=Localnet
|
|
708
|
+
|
|
709
|
+
# HTTP POST requests carrying JSON payloads
|
|
710
|
+
http.method:POST && payload.mime:application/json
|
|
711
|
+
|
|
712
|
+
# SIP calls destined for a specific domain
|
|
713
|
+
sip.method:INVITE && sip.to:example.com
|
|
714
|
+
```
|
|
715
|
+
|
|
716
|
+
---
|
|
717
|
+
|
|
718
|
+
## Tips
|
|
719
|
+
|
|
720
|
+
- **Press Enter** to apply the filter after typing in the filter bar. The filter is not applied as you type.
|
|
721
|
+
- **String matching is case-insensitive.** `loc.dst.country:china` matches the same packets as `loc.dst.country:China`.
|
|
722
|
+
- **Protocol-specific keys only exist when that protocol was detected.** Filtering on `http.method:GET` will return only HTTP packets where the method field was parsed.
|
|
723
|
+
- **GeoIP keys are absent for private/local IPs.** Use `ip.src.class:Localnet` to identify local traffic instead of relying on `loc.src.*` fields.
|
|
724
|
+
- **Active recon keys require the `-a` flag** when running the backend. Without it, `host.banner` will contain `Active recon not performed` for all packets.
|
|
725
|
+
- **An empty filter bar shows all packets.** Clear the filter and press Enter to reset the view.
|
|
726
|
+
|
|
727
|
+
---
|
|
728
|
+
|
|
729
|
+
## License
|
|
730
|
+
|
|
731
|
+
GPL v3
|
|
732
|
+
|
|
733
|
+
## Author
|
|
734
|
+
|
|
735
|
+
Marshall Whittaker
|