sniffglue(1)
π sniffglue(1) β the secure multithreaded packet sniffer, bestie edition π
okay so real talk, this is sniffglue(1) from the General Commands Manual, and it's about to be your new fave. sit down, grab a strawberry drink π, and let me tell you everything.
β¨ NAME β¨
sniffglue β a secure multithreaded packet sniffer. that's the whole vibe. no cap.
π¦ SYNOPSIS π¦
sniffglue [-vrpVh] [-n <threads>] device
that's it. that's the whole incantation. the way that one line does so much?? iconic.
πΈ DESCRIPTION πΈ
okay so sniffglue is a network sniffer written in rust (yes, that rust, the one everybody won't shut up about, and honestly? deserved). network packets get parsed concurrently using a thread pool so it can utilize all cpu cores β like a group chat where literally everyone is typing at once and somehow it still works. π
the project goals are, and I quote the energy of them:
- you can run
sniffgluesecurely on untrusted networks β sketchy cafΓ© wifi, who? never heard of her π - it must not crash when processing packets. main character stability. it does not do drama. π₯
- the output should be as useful as possible by default β no configuration archaeology required, it just serves. periodt.
π OPTIONS π
bestie, here's the whole menu, nothing skipped:
-v,--verboseβ turns up the filter sensitivity so you see more packets (some of which are, lowkey, less useful π). the default only shows few packets, and you can specify this flag multiple times. maximum: 4 β yes, there is a limit, this is not an infinite vibe buffet.-h,--helpβ prints help information. the classic. π«Ά-p,--promiscβ sets the device to promiscuous mode. she's seeing everything. π-r,--readβ opens device as a pcap file. so instead of sniffing live you're reading a dump. cozy.-n,--threadsthreads β specify the number of threads. you're the thread pool manager now, congrats. π-V,--versionβ prints version information. buuut if-rwas specified, it opens as a pcap file instead. plot twist, iykyk. π
π§ EXAMPLES π§
these are copy-paste ready, do not touch the spelling, it matters:
sniff with default filters (dhcp, dns, tls, http) from enp0s25:
sniffglue enp0s25
increase the filter sensitivity (arp):
sniffglue -v enp0s25
increase the filter sensitivity (cjdns, ssdp, dropbox, packets with valid utf8):
sniffglue -vv enp0s25
almost everything:
sniffglue -vvv enp0s25
everything:
sniffglue -vvvv enp0s25
read a dump from sniff.pcap, with increased filter sensitivity and decode packets with 1 thread:
sniffglue -vvrn1 sniff.pcap
see that -vvrn1?? all crammed together, a little chaotic, absolutely slaying. π
β PROTOCOLS β
the full roster she parses, in the original order:
- ethernet
- ipv4
- ipv6
- arp
- tcp
- udp
- http
- tls
- dns
- dhcp
- cjdns eth beacons
- ssdp
- dropbox beacons
a whole ensemble cast, honestly. π
π SECURITY π
to report a security issue please contact kpcyrd on ircs://irc.hackint.org. that's the channel, that's the person, go there. π
π‘οΈ SECCOMP π‘οΈ
so the whole point: to ensure a compromised process doesn't compromise the system, sniffglue uses seccomp to restrict the syscalls that can be used after the process started. it's giving seatbelt but for syscalls.
this happens in two stages:
- first at the very beginning β directly after
env_loggerinitialized β¨ - once after the sniffer has been setup, but before packets are read from the network π¦
two stages, not one. don't skip stage one, it's literally the first thing that happens.
πΈ HARDENING πΈ
during that second stage, there's also some general hardening applied β and this happens before all unneeded syscalls are finally disabled.
those hardening steps are system specific, so a configuration file is read from /etc/sniffglue.conf.
that config file specifies:
- an empty directory for
chrootπ - an unprivileged account in
userthat is used to drop root privileges π
so she starts powerful and then gives up the crown. humble. π«Ά
π§ͺ FUZZING π§ͺ
the packet processing of sniffglue can be fuzzed using cargo-fuzz.
everything you should need is provided in the fuzz/ directory that is distributed along with its source code.
β οΈ please note: this program links to libpcap, which is not included in the current fuzzing configuration. so like, heads up, fr fr.
π SEE ALSO π
go read these too, they're the supporting cast:
pcap(3PCAP)seccomp(2)
π AUTHORS π
this program was originally written and is currently maintained by kpcyrd. bug reports and patches are welcome on github:
https://github.com/kpcyrd/sniffglue
go say hi, open a PR, be a little legend. π
and that's the whole page, bestie β documented on 2026-04-20, and the manual you just read is sniffglue(1) itself, so yeah, you've officially been briefed. mwah. ππ¦π
π¦ where this page comes from
- arch rolling: sniffglue 0.16.2-1 Β· GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms