The problem is that you can inject a packet with an invalid sequence
number, invalid Window size announcement (let's say 62K), with the
Urgent, FIN, RST, and a few other elements of the packet set just right,
and guess what happends.......... the server will cease to accept data.
Only the FIN, and ACK FIN make it; only if the next packet doesn't contain
the right window size. If the next packet contains an invalid window size
that is greater than the previous, then you can recreate the problem.
So, for those who have routers who think that by closing access to port 139
is safe, think again. This works very well over port 80, or any port for
that matter. I also tried this on several firewalls (without mentioning
names), and it worked. Several UNIX firewalls however, denied that packet,
but the NT firewalls that I tried all accepted it.
Several other M$ TCP/IP implemention problems have surfaced, but I am
looking into those now to validate them.
As soon as I formalize my findings, guess you will be seeing another HotFix
from M$.
Kelly Gibbs, kgibbs@best.com
Internet Security Instructor
Protocol Interface, Inc.