[19685] in bugtraq

home help back first fref pref prev next nref lref last post

Re: Not so random TCP initial sequence numbers

daemon@ATHENA.MIT.EDU (Florian Weimer)
Fri Mar 16 15:20:08 2001

MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Message-ID:  <tgwv9pn25u.fsf@mercury.rus.uni-stuttgart.de>
Date:         Fri, 16 Mar 2001 16:50:37 +0100
Reply-To: Florian Weimer <Florian.Weimer@RUS.UNI-STUTTGART.DE>
From: Florian Weimer <Florian.Weimer@RUS.UNI-STUTTGART.DE>
X-To:         aleph1@SECURITYFOCUS.COM
To: BUGTRAQ@SECURITYFOCUS.COM
In-Reply-To:  <20010314143106.B13574@securityfocus.com>

Elias Levy <aleph1@SECURITYFOCUS.COM> writes:

> It seems the vulnerability lies in the implementation of some TCP/IP
> stacks that attempt to randomize TCP's initial sequence numbers - ironically
> for the purpose of not generating predictable ISNs to stop blind IP spoofing
> of TCP connections. While the ISNs generated by these implementations appear
> random they apparently are statistically predictable.

I think this is the cause.  For example, Solaris 2.6 uses a PRNG when
the "tcp_strong_iss" sysctl has the value 1.  The PRNG output (and the
ISN derived from it) appears pretty random to the casual observer
(e.g. nmap), but with a more sophisticated approach, it should be
possible to recover the internal state of the PRNG.

If "tcp_strong_iss" is set to 2, the RFC 1948 approach is implemented,
which is probably secure.

For an example how to set "tcp_strong_iss" properly, see 'Example G'

http://www.enteract.com/~lspitz/example.html

--
Florian Weimer 	                  Florian.Weimer@RUS.Uni-Stuttgart.DE
University of Stuttgart           http://cert.uni-stuttgart.de/
RUS-CERT                          +49-711-685-5973/fax +49-711-685-5898

home help back first fref pref prev next nref lref last post