I'm not an expert, but try this: <decoder name="web-accesslog-iis7"> <parent>windows-date-format</parent> <prematch offset="after_parent">^\d+.\d+.\d+.\d+ \S+ </prematch> <type>web-log</type> <regex offset="after_parent">^\d+.\d+.\d+.\d+ (\S+) (/\S+) \S+ (\d+) \S+ (\d+.\d+.\d+.\d+) \S+ (\d+)</regex> <order>action,url, dstport, srcip, id</order> </decoder>
On Mon, Aug 8, 2011 at 10:15 AM, Hermes <[email protected]> wrote: > Hmm... > Here are my first results: > > <!-- IIS7 WWW W3C log format. > - Examples: > - 2011-08-08 11:49:54 172.16.1.69 GET /+union+select+'+where - 80 - > 172.16.1.21 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:5.0)+Gecko/ > 20100101+Firefox/5.0 404 0 2 187 > --> > > <decoder name="web-accesslog-iis7"> > <parent>windows-date-format</parent> > <type>web-log</type> > <use_own_name>true</use_own_name> > <prematch offset="after_parent">^\d+.\d+.\d+.\d+ \S+ </prematch> > <regex offset="after_prematch">^(\S+ \S+) \S+ \d+ \S+ (\d+.\d+.\d+.\d > +) </regex> > <regex>\S+ \S+ \S+ \S+ (\d+) </regex> > <order>url, srcip, id</order> > </decoder> > > When I start the logtest, I get: > > **Phase 1: Completed pre-decoding. > full event: '2011-08-08 11:49:54 172.16.1.69 GET /+union+select > +'+where - 80 - 172.16.1.21 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv: > 5.0)+Gecko/20100101+Firefox/5.0 404 0 2 187' > hostname: 'ubuntu' > program_name: '(null)' > log: '2011-08-08 11:49:54 172.16.1.69 GET /+union+select > +'+where - 80 - 172.16.1.21 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv: > 5.0)+Gecko/20100101+Firefox/5.0 404 0 2 187' > > **Phase 2: Completed decoding. > decoder: 'windows-date-format' > > **Phase 3: Completed filtering (rules). > Rule id: '31100' > Level: '0' > Description: 'Access log messages grouped.' > > > What I get, when logtest without my new decoder: > **Phase 1: Completed pre-decoding. > full event: '2011-08-08 11:49:54 172.16.1.69 GET /+union+select > +'+where - 80 - 172.16.1.21 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv: > 5.0)+Gecko/20100101+Firefox/5.0 404 0 2 187' > hostname: 'ubuntu' > program_name: '(null)' > log: '2011-08-08 11:49:54 172.16.1.69 GET /+union+select > +'+where - 80 - 172.16.1.21 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv: > 5.0)+Gecko/20100101+Firefox/5.0 404 0 2 187' > > **Phase 2: Completed decoding. > decoder: 'windows-date-format' > > **Phase 3: Completed filtering (rules). > Rule id: '1012' > Level: '11' > Description: 'SQL Injection attempt' > **Alert to be generated. > > *sigh* > > At least the malicous URL was detected with the old decoder. Some kind > of regex expert out there?^^ > > On 8 Aug., 14:59, Hermes <[email protected]> wrote: >> Thanks :) >> >> On 8 Aug., 14:48, "dan (ddp)" <[email protected]> wrote: >> >> >> >> >> >> >> >> > Remember to add your decoder to local_decoder.xml so it won't be >> > overwritten >> > on upgrade. >> >> > On Monday, August 8, 2011, Hermes <[email protected]> wrote: >> > > Yes. I am already writing the new decoder^^ >> > > But something that really helped (and THANKS for that): >> > > For every log decoder, there is an example directly above, so I can >> > > instantly compare differences, without installing IIS5 and IIS6. >> >> > > On 8 Aug., 14:39, "dan (ddp)" <[email protected]> wrote: >> > >> Run the log message through ossec-logtest. Decoders.xml has examples, >> > >> and >> > >> they don't appear to be in the same format as the log you posted. >> >> > >> On Monday, August 8, 2011, Hermes <[email protected]> wrote: >> > >> > _Sorry_ for the double post!! >> >> > >> > The more I appreciate the answers! >> > >> > Is there something weird with the log file? Because, shouldn't it >> > >> > already be in IIS style, ready for decode? >> >> > >> > On 8 Aug., 14:28, "dan (ddp)" <[email protected]> wrote: >> > >> >> On Mon, Aug 8, 2011 at 8:08 AM, Hermes <[email protected]> >> > >> >> wrote: >> > >> >> > Hello again! >> >> > >> >> > After successfully troubleshooted another problem, here is a new >> > one. >> >> > >> >> > First I will provide all necessary logs (etc), then I will post my >> > >> >> > problem: >> >> > >> >> > Ossec WUI output on the manager (ubuntu): >> > >> >> > 2011 Aug 08 04:49:52 Rule Id: 1012 level: 11 >> > >> >> > Location: (agent1) 192.168.0.69->\inetpub\logs\LogFiles >> > >> >> > \W3SVC1\ex110808.log >> > >> >> > Src IP: 08 11:49:54 192.168.0.69 GET /+union+select+'+where - 80 - >> > >> >> > 192.168.0.21 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:5.0)+Gecko/ >> > >> >> > 20100101+Firefox/5.0 404 0 2 187 >> > >> >> > hacking attempt >> > >> >> > ** Alert 1312804227.157360: - apache, >> > >> >> > 2011 Aug 08 04:50:27 ubuntu->/var/log/apache2/error.log >> > >> >> > Rule: 31410 (level 3) -> 'PHP Warning message.' >> > >> >> > Src IP: 172.16.1.21 >> > >> >> > [Mon Aug 08 04:50:27 2011] [error] [client 192.168.0.21] PHP >> > Warning: >> > >> >> > fseek() expects parameter 3 to be long, string given in >> > /var/www/ossec- >> > >> >> > wui-0.3/lib/os_lib_alerts.php on line 842, referer: >> > >> >> >http://192.168.0.124/ossec-wui-0.3/index.php?f=s >> >> > >> >> Yes, the WUI code is broken. One day the people that want to use it >> > >> >> will get together and share the fixes they've had to put in place so >> > >> >> we don't have to keep seeing the same posts about it. The above seems >> > >> >> unrelated to anything else in this message though... >> >> > >> >> > The referring "rule 1012": >> > >> >> > <rule id="1012" level="11"> >> > >> >> > <match>$sqli_xss</match> >> > >> >> > <options>alert_by_email</options> >> > >> >> > <description>hacking attempt</description> >> > >> >> > <group>attack,sql_injection,</group> >> > >> >> > </rule> >> >> > >> >> > To the agent conf: >> > >> >> > <localfile> >> > >> >> > <location>%WinDir%\\inetpub\\logs\\LogFiles\\W3SVC1\\ex%y%m%d.log</ >> > >> >> > location> >> > >> >> > <log_format>iis</log_format> >> > >> >> > </localfile> >> >> > >> >> > Last but not least, the output of the ex110808.log at the windows >> > >> >> > server: >> > >> >> > 2011-08-08 11:49:54 192.168.0.69 GET /+union+select+'+where - 80 - >> > >> >> > 192.168.0.21 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:5.0)+Gecko/ >> > >> >> > 20100101+Firefox/5.0 404 0 2 218 >> > >> >> > 2011-08-08 11:49:54 192.168.0.69 GET /+union+select+'+where - 80 - >> > >> >> > 192.168.0.21 Mozilla/5.0+(Windows+NT+6.1;+WOW64;+rv:5.0)+Gecko/ >> > >> >> > 20100101+Firefox/5.0 404 0 2 203 >> >> > >> >> This doesn't appear to be any IIS log format we have support for at >> > the >> > >> moment. >> >> > >> >> > Maybe you already know the problem...somehow the IP is not properly >> > >> >> > extracted. So, the attack is logged, but the host isn't denied. >> > >> >> > When I directly attack the manager (ubuntu), everything is logged >> > too >> > >> >> > (of course with another rule) and the attacker is "denied": >> > >> >> > 2011 Aug 08 00:49:13 Rule Id: 31103 level: 6 >> > >> >> > Location: ubuntu->/var/log/apache2/access.log >> > >> >> > Src IP: 192.168.0.21 >> >> > >> >> > Thanks for any help! >> > >> >> > SQL injection attempt. >> >> > >> >> Write a decoder to grab the IP. I don't think it should be too >> >> > difficul
