Ungültige Tcp Sequenzen

06/06/2009 - 10:03 von Enrico Labedzki | Report spam
Hallo NG,

ich habe diesen Beitrag gefunden:

http://www.linuxhelp.net/guides/iptables/

und hab ne Frage zu den ungültigen Handshakes hier:

# Drop those nasty packets! These are all TCP flag
# combinations that should never, ever occur in the
# wild. All of these are illegal combinations that
# are used to attack a box in various ways, so we
# just drop them and log them here.
$IPT -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j badflags
$IPT -A INPUT -p tcp --tcp-flags ALL ALL -j badflags
$IPT -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j badflags
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j badflags
$IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j badflags
$IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j badflags


Wenn ich das Richtig verstanden hab dann sind die Oben angegebenen
Sequenzen ungültig! Gibt´s da nich noch mehr?

Mfg Enrico
 

Lesen sie die antworten

#1 Juergen P. Meier
06/06/2009 - 10:05 | Warnen spam
Enrico Labedzki :
und hab ne Frage zu den ungültigen Handshakes hier:

# Drop those nasty packets! These are all TCP flag
# combinations that should never, ever occur in the



Soweit so richtig.

# wild. All of these are illegal combinations that
# are used to attack a box in various ways, so we



Bullshit, FUD. Es gibt keine Schwachstelle in aktuellen TCP/IP
Implementierungen, die man vor sowas schuetzen koennte.

Solche Flag-Kombos werden einzig von Netzwerkscannern wie nmap
verwendet, um aufgrund von Heuristiken ueber das Verhalten des
entfernten Hosts Schluesse ueber den verwendeten TCP/IP Stack ziehen
zu koennen (Stichwort "Host/OS Fingerprinting"). Das ist selbst keine
Attacke.

# just drop them and log them here.



Schadet zumindest nicht.

$IPT -A INPUT -p tcp --tcp-flags ALL FIN,URG,PSH -j badflags
$IPT -A INPUT -p tcp --tcp-flags ALL ALL -j badflags
$IPT -A INPUT -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j badflags
$IPT -A INPUT -p tcp --tcp-flags ALL NONE -j badflags
$IPT -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j badflags
$IPT -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j badflags



Das enumiert lediglich die Scan-Varianten von "nmap".

Wenn ich das Richtig verstanden hab dann sind die Oben angegebenen
Sequenzen ungültig! Gibt?s da nich noch mehr?



Ja.

Sinnvoller ist es jedoch auf der anderen Seite anzusetzen:
Vollstaendige Enumeration gueltiger Kombinationen: (inkl. ECN)

SYN
SYN ACK
(RFC 3168 zusaetzlich: SYN ECE CWR, SYN ACK CWR)
ACK
ACK PSH
ACK URG
ACK URG PSH (Strenggenommen nicht verboten, auch wenn sinnfrei)
(RFC 3168 zusaetzlich: ECE bzw. CWR zu jeder obigen ACK-kombo.)
FIN
FIN ACK
RST
RST ACK (mind. ein dysfunktoinaler TCP-Stack erzeugt das, in der
Praxis wiederholt gesehen aber nie rausbekommen, was fuer ein kaputtes
Produkt das auf der anderen Seite ist.)

Wenn du eine der obigen Kombinationen droppst, wirst du wahrscheinlich
TCP-Verbindungsprobleme haben. Insbesondere wenn du ECE+SYN blockierst
(durch drop statt reject!) wirst du mit Sicherheit Probleme haben. Es
gibt halt schon den ein oder anderen Host, der versucht ECN zu
sprechen, und wenn auf ein SYN+ECN kein ICMP Protocol Error o.ae.
zurueck kommt, wirst du mit diesem Host erst nach langen Timeouts TCP
reden koennen, wenn er die Empfehlung von RFC 3168 ueberhaupt einhaelt.

Die Liste aller ungueltigen Kombinationen ist deutlich laenger.
Die Flags sind ein 8-bit Feld. Es gibt also 256 moegliche
Kombinationen. Und selbst wenn du nur die Standardflags betrachtest
sind es noch 64 Kombinationen.

Juergen
Juergen P. Meier - "This World is about to be Destroyed!"
end
If you think technology can solve your problems you don't understand
technology and you don't understand your problems. (Bruce Schneier)

Ähnliche fragen