Ask any program to listen on port 0 and it will hand you a socket on port 47193…or 58037…or whatever the kernel felt like that day. Port 0 is not a port you can have. It is the number you pass when you want the operating system to pick one for you.
But a TCP header is just bytes. The destination port field is 16 bits wide, and
0x0000fits in 16 bits as well as anything else does. Nothing on the wire stops a packet from being addressed to port 0. Your tools will refuse it, your browser will block it, and your scanner’s default port list skips it, because everyone agrees it isn’t a real port.Which makes it a pretty good place to hide things, whether anyone meant to or not. So we did some TCP cowboy shit & port scanned the entire fucking internet for open ports on port 0, which uncovered some interesting unexpected findings.
↫ acidvegas
An awesome and entertaining read. Don’t skip this one.
