Feature request: grep hex strings with -e
Dave Edelman
dedelman at iname.com
Sun Oct 14 13:35:09 EDT 2012
I've just sent the files to Carter so the list is the place to discuss the
details.
--Dave
> -----Original Message-----
> From: Dave Edelman [mailto:dedelman at iname.com]
> Sent: Sunday, October 14, 2012 12:30 PM
> To: 'argus-info at lists.andrew.cmu.edu'
> Subject: RE: [ARGUS] Feature request: grep hex strings with -e
>
> Looking at the things that I would want to do with regular expression
> matching, I came up with this list:
>
> 1 - The ability to create multiple search patterns each of which has its
own
> scope and case-sensitivity attributes
> 2 - The ability to select a flow instance based on the "or" of the
searches (any
> one is sufficient) or based on the 'and' of the searches (all are
required)
> 3 - A set of search scopes beyond source, destination, or both
>
> I have a working implementation that allows up to 32 search patterns. For
my
> testing, I hijacked the -v option; if it is set, then a match on any
string in the
> set is sufficient, otherwise they all need to match. I would need
something
> other than -v in a real version and I am open to suggestions.
>
> For scope and case sensitivity I expanded the current set to:
> e: either source or destination or both E: makes it case insensitive (e:
is the
> default)
> d: only in the destination buffer D: makes it case insensitive
> s: only in the source buffer S: makes it case insensitive
> n: not in either source or destination buffer N: makes it case insensitive
> b: in both source and destination buffer B: makes it case insensitive
> x: in either source or destination buffer but not both X: makes it case
> insensitive
>
> An example might be to look for HTTP GET requests that did not return a
200
> OK response.
> % ra -r * -s +suser:50 +duser:50 -e 's:^GET .*HTTP/1.[0|1].*Host: ' -e
> 'D:^http/1.[0|1] (?!200)' - port 80
>
> Sat 2012-10-13 22:23:16.440989 e tcp Mws
> 10.1.1.31.zabbix-trapper -> 143.127.2.49.http
10
> 1519 FIN
> s[50]=GET /update4?r=updates_file&ln=DU619XD0GTM1W1ZEPUK
> d[50]=HTTP/1.1 503 Service Temporarily Unavailable..Date
>
> Or looking for a DNS request / response interaction where "google" shows
up
> in either the source or the destination buffer, but not both.
> % ra -M printer='hex' -r * -s +suser:100 +duser:100 -e 'x:google' - port
53
>
> Sat 2012-10-13 23:51:16.689215 eU udp
> 10.1.1.31.49485 <-> 10.1.1.68.domain
2 283
> CON
>
> 0x0000 0cd9 0100 0001 0000 0000 0000 0370 6f70
.............pop
> 0x0010 0567 6d61 696c 0363 6f6d 0000 0100 01
.gmail.com.....
>
> 0x0000 0cd9 8180 0001 0003 0004 0000 0370 6f70
.............pop
> 0x0010 0567 6d61 696c 0363 6f6d 0000 0100 01c0
.gmail.com......
> 0x0020 0c00 0500 0100 0000 0900 1509 676d 6169
............gmai
> 0x0030 6c2d 706f 7001 6c06 676f 6f67 6c65 c016
l-pop.l.google..
> 0x0040 c02b 0001 0001 0000 012c 0004 adc2 4c6c
.+.......,....Ll
> 0x0050 c02b 0001 0001 0000 012c 0004 adc2 4c6d
.+.......,....Lm
> 0x0060 c037 0002 .7..
>
> Is this useful? Are there additional scopes that you would need?
>
> --Dave
>
>
More information about the argus
mailing list