Going Beyond Port Knocking; Single Packet Access
michaelrash writes "I have just released a new version of fwknop that implements a single-packet authorization scheme using libpcap (similar to what Simple Nomad has proposed for the upcoming BlackHat Briefings). Fwknop has made Slashdot once before as the first tool that combines port knocking and passive OS fingerprinting. However, this new single-packet method has many advantages over port knocking, including non-replayable messages, much more data can be sent (including complete commands), an attacker cannot break sequences simply by connecting to spurious ports on the target, and more. By using Netfilter to intercept packets within the kernel, anyone scanning for a service protected by this method cannot even talk directly to the IP stack without being authorized; that makes even 0-day exploits largely toothless."
By using Netfilter to intercept packets within the kernel, anyone scanning for a service protected by this method cannot even talk directly to the IP stack without being authorized; that makes even 0-day exploits largely toothless."
Yes, because we all know netfilter is invulnerable to 0days? No.
Make it foolproof, you getter a smarter fool.
make it spoofproof, they'll make a better spoof.
The client must know the combination to communicate at all. If the client is specialized, and trusted enough with the combination, why the heavy security? If we're dealing with public clients, they wont know how to port knock, at least the combination.
In general if the TCPIP stack is clean and basic, along with a good packet filter ruleset (dont allow telnet), things will be pretty tough for a hacker. Why add overhead that makes the box secure only in theory (if that even).
"Give orange me give eat orange me eat orange give me eat orange give me you." -Nim Chimpsky
Can someone please explain WHF this is about? What do OS identification, attacks and replaying messages have in common? I though I'm TCP/IP literate, but I don't understand a word in the post description (well, to be preceise I do understand single words, but not sequences of two or more of them :)).
Haven't there been security bugs with libpcap?
If one rather not rely on libpcap being secure, one could whip up a perl/python server listening on some port, that'll handle the opening and closing of access to sshd and other stuff. That way you can use simple firewall rules which are less likely to have issues. Whatever it is you have to rely on the firewall code and kernel IP stack being secure.
Sure it's an active server that's listening, but it's a lot easier to secure a perl/python program from buffer overflows and other exploits... You could still DoS it, but it's trivial to DoS the target's internet connection anyway.
Does anyone take port knocking seriously?
Basically, you'd have better security if you set up a daemon listening on a known port that waited for you to send a password, with no overloading of the port concept in TCP. If you're worried about replay attacks, use the same encryption/whatever on your password as you would on the port numbers.
What benefits does port knocking give over a simple password on a known port?
This might be a step beyond, but it's still a huge leap backwards. IMHO the reason for port knocking is to isolate services that are potentially vulnerable to explotation.
The primary focus of the port knocker should be security and NOT functionallity. It only has to do one thing, but it has to do it pretty damn well.
Otherwise, this is just as effective as logging in remotely via telnet just to open the SSH port!
Another problems with many implementations is they are sniffing the network, using software. As previously stated, DON'T trust software! Not even libpcap/winpcap or whatever. There WILL be vulnerabilities, there ALWAYS is.
If the implementation is truly a PORT-knocking port-knocker, I see no problem in gathering data from the firewall and not the network.
Regards, Stian Ovrevage