MySQL Queries on "Nmap Results"



Ähnliche Dokumente
MySQL 101 Wie man einen MySQL-Server am besten absichert

Artikel Schnittstelle über CSV

MySQL Installation. AnPr

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

iphone-kontakte zu Exchange übertragen

P&P Software - Adressexport an Outlook 05/29/16 14:44:26

Mehrere PDF-Dokumente zu einem zusammenfügen

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

Funktionsbeschreibung Datenlogger DL28W

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

Erstellen einer PostScript-Datei unter Windows XP

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

SEMINAR Modifikation für die Nutzung des Community Builders

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Information zum SQL Server: Installieren und deinstallieren. (Stand: September 2012)

Arbeiten mit dem Outlook Add-In

Simple SMS SMS Gateway

Um sich zu registrieren, öffnen Sie die Internetseite und wählen Sie dort rechts oben

Kurzanleitung. Toolbox. T_xls_Import

Ein Hinweis vorab: Mailkonfiguration am Beispiel von Thunderbird

OP-LOG

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Erstellen von x-y-diagrammen in OpenOffice.calc

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Anleitung für den Zugriff auf Mitgliederdateien der AG-KiM

Erste Schritte. Lavid-F.I.S. Faktura. Erste Schritte

How to install freesshd

SSH Authentifizierung über Public Key

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Dazu stellen Sie den Cursor in die Zeile, aus der eine Überschrift werden soll, und klicken auf die gewünschte Überschrift.

Tutorial -

Die Textvorlagen in Microsoft WORD und LibreOffice Writer

25 Import der Beispiele

FreePDF XP. Dokumentation

Leitfaden zum Umgang mit Mautaufstellung und Einzelfahrtennachweis

Kapitel 3 Frames Seite 1

Administrator-Anleitung

Informatik 12 Datenbanken SQL-Einführung

snap Adressen selektieren und Etiketten oder Serienbriefe in Word erstellen

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Anleitung zum erstellen einer PDF-Datei aus Microsoft Word

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Rechnung Angebot Zeiterfassung

Whitepaper. Produkt: combit address manager STAMPIT der Deutschen Post nutzen. combit GmbH Untere Laube Konstanz

Datenmigration K1Max (Exchange)

Lehrveranstaltung Grundlagen von Datenbanken

Bestandsführung. Libri.Pro. Partner für Ihren Erfolg. Dezember

Agentur für Werbung & Internet. Schritt für Schritt: Newsletter mit WebEdition versenden

GeoPilot (Android) die App

Erzherzog Johann Jahr 2009

Urlaubsregel in David

Adressen selektieren und Etiketten oder Serienbriefe erstellen

Benutzername: Passwort: Nun befindest du dich in einem Bereich, von wo aus du Berichte über Ereignisse schreiben kannst und Fotos dazugeben kannst.

YouTube: Video-Untertitel übersetzen

Monatstreff für Menschen ab 50 WORD 2007 / 2010

Seite 1. Datum einfügen

Installation Zebra Drucker

Der Kalender im ipad

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

Kurzanleitung zur Erweiterung der htdig

Handbuch für Redakteure

Benutzung der Avid Liquid Edition Schnittplätze an der Universität Innsbruck

Einrichten eines POP-Mailkontos unter Thunderbird Mail DE:

Erste Schritte. Lavid-F.I.S. Agentur. Erste Schritte

Datenbanken SQL Einführung Datenbank in MySQL einrichten mit PhpMyAdmin

Kursangebot gesammelt einlesen

Arbeiten mit UMLed und Delphi

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

Programm GArtenlisten. Computerhinweise

Installationsanleitung für CashPro im Mehrbenutzerzugriff/Netzwerkbetrieb

Durchführung der Datenübernahme nach Reisekosten 2011

Import von SEPA-Lastschriften in der VR-NetWorld-Software über Excel

Meldewesen Plus. TIPP: Nach Möglichkeit sollten Sie vor dem Erstellen von Etiketten die Vorlagen dupliziert haben!

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Internet online Update (Internet Explorer)

LEITFADEN -ZUSTELLUNG

versand mit Microsoft Outlook bzw. Mozilla Thunderbird

Schritt 1: Starten Sie Hidemyass, wählen Sie "IP: Port Proxies"

Erstellen der Barcode-Etiketten:

Dossier: Rechnungen und Lieferscheine in Word

INDEX. Öffentliche Ordner erstellen Seite 2. Offline verfügbar einrichten Seite 3. Berechtigungen setzen Seite 7. Öffentliche Ordner Offline

IDA ICE - Konvertieren und Importieren von mit TRY_Effekte_aufpraegen.exe erzeugten Datensätzen

Sicherer Datenaustausch mit Sticky Password 8

Einbindung einer ACT!12-16 Datenbank als Datenquelle für den Bulkmailer 2012

TeamSpeak3 Einrichten

Windows Server 2012 R2 Essentials & Hyper-V

Bilder zum Upload verkleinern

Test mit lokaler XAMPP Oxid Installation

Import von Daten aus Word nach KlasseDozent

Daten am USB Stick mit TrueCrypt schützen

teischl.com Software Design & Services e.u. office@teischl.com

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Step by Step Webserver unter Windows Server von Christian Bartl

INSTALLATION OFFICE 2013

Anleitung über den Umgang mit Schildern

Dokumentation für das Web-basierte Abkürzungsverzeichnis (Oracle mod_plsql / Apache)

Anleitung zum Einfügen von Daten aus OpenOffice Calc in OpenOffice Base Beispiel anhand einer Adressen Calc-Tabelle

Transkript:

MySQL Queries on "Nmap Results" SQL Abfragen auf Nmap Ergebnisse Ivan Bütler 31. August 2009 Wer den Portscanner "NMAP" häufig benutzt weiss, dass die Auswertung von grossen Scans mit vielen C- oder sogar B- Netzen viel Zeit und etwas Geschick mit Regexp verlangt. Dieser Artikel beschreibt die Idee, die Daten von NMAP in eine MySQL Datenbank zu speichern und dort mit komfortablen SQL Queries anstatt der langen Regexp zu analysieren. In diesem kleinen Artikel lernen Sie mehr über dieses Unterfangen. Scanning mit NMAP Im ersten Schritt steht natürlich das Scanning mit nmap. Für diesen Bericht habe ich folgenden Scan durchgeführt. Es geht jetzt weniger um den Scan, sondern vielmehr um die Ergebnisverarbeitung. nmap -il hostlist -T3 -oa /opt/data/nmap/compass-security/compass-scan1 --reason -P0 -sv -sc -O Dieser Befehl mit der Option "-A" erzeugt folgende Files ibuetler@lagas compass $ ls -al compass-scan1.* -rw-r--r-- 1 ibuetler staff 6693 Aug 31 11:45 compass-scan1.gnmap -rw-r--r-- 1 ibuetler staff 65200 Aug 31 11:45 compass-scan1.nmap -rw-r--r-- 1 ibuetler staff 109660 Aug 31 11:45 compass-scan1.xml Konvertieren des XML Output in ein CSV Für den Import der NMAP Ergebnisse in die MySQL Datenbank habe ich das CSV Format gewählt. Komfortabler wäre möglicherweise eine Transformation via XSLT hier wäre ich dankbar für Feedback der Leserschaft. Für die Umwandlung von XML in CSV verwende ich Microsoft Excel 2007.

Die XML Daten des NMAP Scans habe ich mit Microsoft Office 2007 gelöst. Dazu muss man lediglich Excel starten und die XML Datei öffnen. Es erscheint daraufhin folgender Dialog: Hier sollte man den Default belassen und einfach OK drücken (Ohne die Wahl des NMAP.xsl) Beim nächsten Dialog ebenfalls "As an XML table" belassen. Nun erstellt Excel automatisch ein Schema anhand der XML Datei und das bedeutet einen Zeile pro Ereigniss.

Daraufhin öffnet Excel die XML Datei. Unten ein Screenshot der geöffneten Datei. Wer NMAP Ergebnisse als Excel wünscht, der ist jetzt fertig mit lesen. Für den Import in die MySQL Datenbank muss als nächstes die Excel Datei als CSV abgespeichert werden. Dazu wählt man "Save As" und wählt "Other Formats"

Man wähle das CSV und speichere die Datei als "compass-scan1.csv" ab. Bezeichnung der Spalten In der ersten Zeile des CSV stehen nun die Bezeichnungen der Spalten und diese gilt es als Spalten in MySQL zu erzeugen. Um an die Spaltennamen zu kommen verwende ich folgenden Befehl: ibuetler@lagas compass $ head -1 compass-scan1.csv scanner,args,start,startstr,version,xmloutputversion,type,protocol,numservices,services,level,level2,star ttime,endtime,state,reason,addr,addrtype,name,type3,state4,count,reason5,count6,protocol7,portid,st ate8,reason9,reason_ttl,name10,servicefp,method,conf,tunnel,product,extrainfo,devicetype,ostype,ver sion11,hostname,id,output,state12,proto,portid13,type14,vendor,osfamily,accuracy,osgen,name15,acc uracy16,line,srtt,rttvar,to,value,time,timestr,elapsed,up,down,total Damit sind die Spalten des CSV bekannt, welche für die Erstellung der MySQL Tabellen notwendig sind.

MySQL Datenbank Erzeugung Nun geht es darum, die neue Datenbank und NMAP Tabelle in MySQL zu erfassen. Das folgende Script übernimmt die Hauptarbeit (aber nicht alles) und nimmt als Grundlage die vorher generierte Datei compass-scan1.csv. ibuetler@lagas compass $ cat do_create_final.sh rm compass-scan1-header.txt rm create_compass.sql rm final.sql head -1 compass-scan1.csv > compass-scan1-header.txt perl -p -i -e 's/,/\n/g' compass-scan1-header.txt cat compass-scan1-header.txt awk '{print "csnc"$1 " varchar(100), \\"}' >> create_compass.sql echo "create database compass;" > final.sql echo "use compass;" >> final.sql echo "create table compass (\\" >> final.sql cat create_compass.sql >> final.sql echo ");" >> final.sql Nun hat das final.sql noch einen Fehler auf der zweitletzten Zeile. Diese Zeile muss man noch manuell korrigieren indem man das "^M" und ",\" am Schluss korrigiert entfernt. FALSCH: csnctotal^m varchar(100), \ RICHTIG: csnctotal varchar(100) Nun steht eigentlich der Erzeugung der DB nichts mehr im Wege unter Anwendung des neu generierten final.sql ibuetler@lagas compass $ mysql -u root -p < final.sql Enter password: ibuetler@lagas compass $ Import CSV in MySQL Nachdem die Datenbank und Tabelle "compass" erzeugt wurde, können nun die Daten aus dem CSV in die MySQL geladen werden. Bevor wir die CSV jedoch laden, sollte man die erste Zeile des CSV entfernen (Titel der Spalten). Danach das CSV mit folgenden Befehlen importiert werden. ibuetler@lagas compass $ cat do_import.sh

zeilen=`wc -l compass-scan1.csv awk '{print $1}'` tail -$((zeilen-1)) compass-scan1.csv > compass-scan1.1.csv mysql -u root -p compass -e "load data local infile '/Users/ibuetler/compass/compass-scan1.1.csv' into table compass fields terminated by ',' lines terminated by '\r\n';"; Erste Tests mit den NMAP Ergebnisse Um den korrekten Import zu prüfen, empfiehlt sich folgender Befehl mysql> use compass Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> select distinct csncscanner from compass; +-------------+ csncscanner +-------------+ nmap +-------------+ 1 row in set (0.00 sec) mysql> Wenn es "nur" eine Zeile gibt, dann scheint auf den ersten Blick alles ok zu sein.

Suche nach Apache Servern mysql> select csncaddr,csnchostname,csncportid,csncproduct from compass where csncstate8="open" and csncproduct like '%apache%' order by csncproduct; +-----------------+--------------+------------+--------------+ csncaddr csnchostname csncportid csncproduct +-----------------+--------------+------------+--------------+ 212.254.178.XXX 80 Apache httpd 212.254.178.XXX 443 Apache httpd +-----------------+--------------+------------+--------------+ 2 rows in set (0.04 sec) Suche nach Open SSH Ports mysql> select csncaddr,csnchostname,csncportid,csncproduct from compass where csncstate8="open" and csncproduct like '%ssh%' order by csncproduct; +-----------------+--------------+------------+-------------+ csncaddr csnchostname csncportid csncproduct +-----------------+--------------+------------+-------------+ 212.254.178.XXX 22 OpenSSH 212.254.178.XXX 22 OpenSSH 212.254.178.XXX 22 OpenSSH +-----------------+--------------+------------+-------------+ More SQL Queries Nun sind die Daten in der MySQL Datenbank und man kann diese selbstverständlich auch noch mit Fremd-Daten wie GeoIP korrellieren. Dies aber ein anderes mal...

Tipp im Nachtrag Nur noch für diejenigen, die am liebsten einen HTML Output von NMAP haben würden. Dies ist mit den Standard-Funktionen von NMAP bereits sehr einfach realisierbar mit xsltproc. http://nmap.org/book/output-formats-output-to-html.html xsltproc compass-scan1.xml -o /tmp/compass-scan1.html Thank You Vielen Dank für Ihr Interesse. Feedback as always is welcomed. 31. August 2009 by Ivan Bütler, alias e1