Ethical Hacking

Learn to find vulnerabilities before the bad guys do! Gain real world hands on hacking experience in our state of the art hacking lab. Course designed and taught by expert instructors with years of penetration testing experience. 12 student maximum in every class. Certification attempt included in every package.
Computer Forensics Training at InfoSec Institute

Gain the in-demand skills of a certified computer examiner, learn to recover trace data left behind by fraud, theft, and cybercrime perpetrators. Discover the source of computer crime and abuse at your organization so that it never happens again. All of our class sizes are guaranteed to be 12 students or less to facilitate one-on-one interaction with one of our expert instructors.




Network Security FullDisclosure
[Top] [All Lists]

[Full-Disclosure] Re: Bypassing "smart" IDSes with misdirected frames? (

Subject: [Full-Disclosure] Re: Bypassing "smart" IDSes with misdirected frames? (long and boring)
Date: Fri, 28 May 2004 14:07:20 -0400
On Friday 28 May 2004 13:08, Oliver Friedrichs wrote:
I don't see how a broacast MAC address would help the attacker. 
The target would still recieve it.

I think you're missing his point, which is that IDSs that do not
track MAC level state (and only track IP / TCP level state) are
vulnerable to an insertion attack.  It doesn't matter what the MAC
address is, as long as it isn't the target hosts MAC address.  The
real host will throw out the packet due to a mismatched MAC address,
while the IDS may process it as valid.  This seems completely
plausible, and is just another form of an insertion attack (just like
invalid checksum insertion, etc). 

And I believe you have missed my point.  The target host _will_ recieve 
the packet if the MAC destination address in the broadcast address.  
Now some stacks may be configured to drop such packets, but certainly 
not all.  Also if the interface happens to be in promiscuous mode, the 
MAC address could be most anything.

                                    To accomplish this however,
someone needs to have physical access to the target network in order
to forge valid IP packets destined to another MAC address, at which
point I would argue you have worse problems.  Granted they may be on
the oustide of the bridging device, trying to get inside..

agreed.

The IDS will see not see a valid response to the "DATA" command
(that is

never received) so it will know it is still in SMTP command mode. 
Even if your not-so-smart IDS let this slip by, there is still the
issue of "DEBUG" not being in a valid format for a header.

I think that this is going to be IDS implementation specific.  It
depends on too many factors that I dont think it can be answered
unless someone tests each product.  For example, a given IDS may be
vulnerable to the following:

Take an IDS that is checking for valid responses before changing
application protocol level state. After you have forged your DATA
command, send a legitimate command to the SMTP server (one that
doesn't cause an application level state change in the IDS).  This
legitimate command would have the same TCP sequence number as your
previous forged request. Assuming that the IDS will drop it as
redundant, and that the server will receive (since in this case it is
to its valid MAC address) it this time. The server responds with some
200 code.  Is that enough?  I would argue for some IDSs it probably
will be enough to change state, since the arguments to 200 codes vary
so much, they are probably just looking for anything that is modulus
200.  So then the state engine would be in DATA mode, not detecting
the DEBUG command.

It is quite possible the IDS will favor the latter "retransmission" over 
the original and see the attack.  That of course is IDS specific.  It 
might even detect the difference in the two packets.

A successful reply to a DATA command is not 200 something.  I get 354.
Because DATA and DEBUG have different success responses, is why this 
won't (or shouldn't) work.

If you really want to make this interesting, start forging server 
replies. to the packets it never receives.



<Prev in Thread] Current Thread [Next in Thread>