Date: Mon, 12 Apr 1999 13:59:54 +0200
From: Joel Jacobson <joel@mobila.cx>
To: BUGTRAQ@netspace.org
Subject: ARP problem in Windows9X/NT

Hello all bugtraqers!

I've found a problem in Windows9X/NT's way of handeling ARP packets.

If you flood a computer at your LAN with the packet below, it's user
will be forced to click a messagebox's OK button x times, where x is the number
of packets you flooded with.

I advice Microsoft to develope a patch for this problem, that let you
choose to ignore all future messages of this type.

There is no way to trace the flooder since the MAC address in the
packet can be modified to anything. Bad configurated routers will
not drop this packet. When I tested this problem on my LAN I could
flood a computer on another C-net at my LAN without problems.

The program NetXRay was used to preform the flood.
The victims had to reboot their computer, or choose to click _very_
many OK buttons.

The ARP packet is build up like this:

Ethernet Version II:
 Address: XX-XX-XX-XX-XX-XX --->FF-FF-FF-FF-FF-FF
 Ehternet II Protocol Type: ARP
Address Resolution Protocol:
 Hardware Type: 1 (Ethernet)
 Protocol Type: 800
 Hardware Address: Length: 6
 Protocol Address: Length: 4
 Operations: ARP Request
 Source Hardware Address: XX-XX-XX-XX-XX-XX
 IP Source Address: <victim computer's IP>
 Destination Hardware Address: XX-XX-XX-XX-XX-XX
 IP Destination Address: <victim computer's IP>

And in HEX the packet look like this:
ff ff ff ff ff ff 00 00 00 00 00 00 08 06 08 00 06 04 00 01 00 00 00
00 00 00 XX XX XX XX 00 00 00 00 00 00 XX XX XX XX
(XX is what matters here)

Hope a patch for this problem will be developed fast, cause this is a
big problem for my school and probably also to others.

I'm not a C programmer, and don't know how to write an exploit for
this problem. So, if anyone else can develope an exploit, feel free to do so.

Joel Jacobson.

----------------------------------------------------------------------------------

Date: Tue, 13 Apr 1999 11:44:12 +0200
From: Joel Jacobson <joel@mobila.cx>
To: BUGTRAQ@netspace.org
Subject: Answer to some questions I got about the ARP "bug"

Hi.

In the message I sent to BugTraq, XX XX XX XX is the victim's IP
Address, in HEX.

Example:
If you want to flood IP 192.168.0.1 at your network you would enter
this hex value: C0 A8 00 01

(I tought this was obvious)

Regards, Joel.

----------------------------------------------------------------------------------

Date: Tue, 13 Apr 1999 11:55:01 +0200
From: Joel Jacobson <joel@mobila.cx>
To: BUGTRAQ@netspace.org
Subject: Re: ARP problem in Windows9X/NT
Parts/Attachments:
   1 Shown     20 lines  Text (charset: ISO-8859-1)
   2   OK     202 bytes  Application
----------------------------------------

    [ The following text is in the "ISO-8859-1" character set. ]
    [ Your display is set for the "US-ASCII" character set.  ]
    [ Some characters may be displayed incorrectly. ]

Hello Gandalf,

måndag, 12 april 1999, you wrote:

gpc> Perhaps I am doing it wrong, but sending out arp requests like this only
gpc> generates a single messagebox.  If you send one or a million requests in
gpc> the time it takes to click ok, no new messageboxes will appear.

gpc> This is on NT4 sp4.
Okey. Well, I tested this on a friend that run NT, don't know if he
has sp4 installed or not. But still, the problems exist in Windows98,
and if Microsoft has developed a fix for NT, why can't they release
one for Windows98 too?

gpc> The packet I am sending out seems a tad different from the one listed,
gpc> the hex dump above seems to be missing the hardware address type.
I've attached an example.
This packet will attack the computer 192.168.0.1 on your network.

Best regards,
 Joel                            mailto:joel@mobila.cx
    [ Part 2, Application/OCTET-STREAM (Name: "example.cap")  270bytes. ]
    [ Not Shown. Use the "V" command to view or save this part. ]

----------------------------------------------------------------------------------

Date: Tue, 13 Apr 1999 13:21:46 -0700
From: route@RESENTMENT.INFONEXUS.COM
To: BUGTRAQ@netspace.org
Subject: Re: ARP problem in Windows9X/NT

[gandalf@pobox.com wrote]
|
| Unfortunetly i don't have a 98 to test on, or an non sp4 NT machines.  For

    I do.  It works against Windows 98.

| BTW, this is all from linux 2.2.5.

    I've tried it from OpenBSD 2.4, FreeBSD 3.1 and Linux 2.2.x.

--
I live a world of paradox... My willingness to destroy is your chance for
improvement, my hate is your faith -- my failure is your victory, a victory
that won't last.

----------------------------------------------------------------------------------

Date: Tue, 13 Apr 1999 15:49:22 -0400
From: Alan DeKok <alan@CRYPTOCARD.COM>
To: BUGTRAQ@netspace.org
Subject: Re: ARP problem in Windows9X/NT

route@RESENTMENT.INFONEXUS.COM wrote:
>     Didn't test your code.  Rolled my from the same libnet example, and it
>     does work against NT and 95/98.

  I tested yours against a number of machines at work.  Summary:

  NT4 sp3 displays one requestor.  While it's on-screen, any
additional ARP packets are ignored.  Clicking 'OK', and then sending
more packets results in another requestor.

  95/98 displays one requestor per packet.

  Alan DeKok.

----------------------------------------------------------------------------------

Date: Tue, 13 Apr 1999 11:07:53 -0400
From: gandalf@POBOX.COM
To: BUGTRAQ@netspace.org
Subject: Re: ARP problem in Windows9X/NT

On Tue, 13 Apr 1999 route@RESENTMENT.INFONEXUS.COM wrote:
> [kay wrote]
> | I started writing that proggie with plain syscalls, but it would only run
> | on Linux, so I modified one of the examples in Route's Libnet 0.9 to do
> | the stuff. I haven't tested it yes since I don't have LAN at home...
>
>     Didn't test your code.  Rolled my from the same libnet example, and it
>     does work against NT and 95/98.

Your code, humerously enough, was almost exactly the same as mine, I was
even using libnet.  However neither your code nor mine causes more than
one messagebox to appear on my NT4 sp4 machine.

I actually tried this a month or two ago, and gave up since it seemed to
have no effect on NT, I swear at the time I tested 95 and 98 too.  Looking
at it again, both your code and mine _do_ have the multi-messagebox effect
on a 95B machine,

Unfortunetly i don't have a 98 to test on, or an non sp4 NT machines.  For
those who have gotten it to work on NT, what sp level was NT at?
BTW, this is all from linux 2.2.5.

-chris

_______________________________________________________
Christopher Rogers      Stevens Institute of Technology
gandalf@pobox.com       http://www.pobox.com/~gandalf

If at first you do succeed, try to hide your astonishment.
