Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
cookbook:logs [2014/09/24 18:27] shadowcat [Links] |
cookbook:logs [2014/09/24 00:00] (aktuell) |
||
---|---|---|---|
Zeile 69: | Zeile 69: | ||
"c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "select statuscode,remotehostname FROM d:\xampp\apache\logs\access.log WHERE user-agent is null order by statuscode asc" -i:NCSA -o:datagrid | "c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "select statuscode,remotehostname FROM d:\xampp\apache\logs\access.log WHERE user-agent is null order by statuscode asc" -i:NCSA -o:datagrid | ||
+ | |||
+ | ==== Ausgabe als HTML ==== | ||
+ | |||
+ | Im Gegensatz zu den meisten anderen Formaten ist die Ausgabe als HTML etwas komplizierter. LogParser benötigt hierzu ein Template, in das es seine ermittelten Daten einfüllen kann. Wer aber BC-Templates kennt, kann auch hiermit umgehen. :) | ||
+ | |||
+ | Nehmen wir als Beispiel unsere Suche nach dem potentiell "bösen" Querystring mit "SELECT". Diesen möchten wir als HTML-Tabelle ausgeben und diese auch ein wenig 'hübsch machen'. | ||
+ | |||
+ | Also bauen wir uns zunächst mal unsere Vorlage: | ||
+ | |||
+ | <sxh html> | ||
+ | <lpheader> | ||
+ | <html> | ||
+ | <head> | ||
+ | <title>Potentiell böse Querystrings</title> | ||
+ | <style type="text/css"> | ||
+ | body{background-color:#fff;} | ||
+ | table{border-collapse:collapse;} | ||
+ | th,td{border:1px solid #000;} | ||
+ | th{background-color:#ccc;} | ||
+ | </style> | ||
+ | </head> | ||
+ | <body> | ||
+ | <table> | ||
+ | <thead> | ||
+ | <tr> | ||
+ | <th>Anzahl</th> | ||
+ | <th>Remote Host</th> | ||
+ | <th>Query</th> | ||
+ | </tr> | ||
+ | </thead> | ||
+ | <tbody> | ||
+ | </lpheader> | ||
+ | <lpbody> | ||
+ | <tr> | ||
+ | <td>%Anzahl%</td> | ||
+ | <td>%remotehostname%</td> | ||
+ | <td>%request%</td> | ||
+ | </tr> | ||
+ | </lpbody> | ||
+ | <lpfooter> | ||
+ | </tbody> | ||
+ | </table> | ||
+ | </body> | ||
+ | </html> | ||
+ | </lpfooter> | ||
+ | </sxh> | ||
+ | |||
+ | Die Markups <LPHEADER>, <LPBODY> und <LPFOOTER> dienen dem LogParser dazu, die einzelnen Bereiche des Templates zu erkennen. <LPBODY> wird für jede Zeile der Ausgabe wiederholt, beinhaltet daher also auch die Platzhalter für die Werte. Die Platzhalter entsprechen hierbei den "Spaltennamen". | ||
+ | |||
+ | Speichern wir nun diese Datei als ''querystrings.tpl''. Der Aufruf für den LogParser muß nun um zwei Werte erweitert werden: | ||
+ | |||
+ | * Den Namen der HTML-Datei (sonst wird alles auf der Kommandozeile ausgegeben) | ||
+ | * Den Namen des Templates | ||
+ | |||
+ | Außerdem ändern wir das Ausgabeformat in ''-o:TPL'' | ||
+ | |||
+ | |||
+ | "c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "select count(*) as Anzahl, remotehostname, request FROM d:\xampp\apache\logs\access.log TO output.html WHERE request LIKE '%select%' GROUP BY remotehostname,request ORDER BY Anzahl DESC" -i:NCSA -o:TPL -tpl:querystrings.tpl | ||
+ | |||
+ | Ergebnis ist nun eine Datei ''output.html'' mit einer Tabelle, die nach Remote Host und Querystring gruppiert und nach Anzahl sortiert die potentiellen Angriffe auflistet. | ||
+ | |||
+ | Natürlich ist hier noch etwas Feintuning am Template und ggfs. auch an der Abfrage denkbar. ;) | ||
===== Links ===== | ===== Links ===== | ||
- | http://technet.microsoft.com/en-us/library/ee692937.aspx | + | http://technet.microsoft.com/en-us/library/ee692937.aspx\\ |
http://mlichtenberg.wordpress.com/2011/02/03/log-parser-rocks-more-than-50-examples/ | http://mlichtenberg.wordpress.com/2011/02/03/log-parser-rocks-more-than-50-examples/ |