ARPwatch – Netzwerk Anomalien schnell und einfach erkennen
Um fremde Rechner oder ARP-Spoofing Angriffe im eigenen Netzwerk rechtzeitig zu erkennen bietet sich ARPwatch an.
Das Tool wertet den gesammten Broadcast-Verkehr aus und schreibt alle MAC und die dazu gehörigen IP-Adressen
in eine Textdatei. Wenn ein neues System oder eine neue MAC-IP Paarung entdeckt wird, löst ARPwatch einen
Alarm aus und protokolliert die Änderung im Syslog. Angreifer können über eine manipulierte MAC Adresse einen Man-in-the-middle-Angriff inszenieren und z.B. den gesammten HTTP Traffic abhören und manipulieren.
I. Installation
Arpwatch 2.1a13-2.1 kann bei Debian einfach über den Paketmanager installiert werden.
libpcap0.8 wird automatisch mitinstalliert.
II. Pfade und Dateien
/etc/arpwatch.conf -> erlaubt unter Debian eine individuelle Konfiguration für verschiedene Netzwerk-Interfaces
/var/default/arpwatch -> setzt "default" Einstellungen für alle Netzwerk-Interfaces
/var/lib/arpwatch/arp.dat -> MAC- / IP-Datenbank
/usr/share/arpwatch/ethercodes.dat -> Liste mit Herstellerkennungen
III. Report Arten
-new acitvity: MAC-IP Konstellation zum ersten Mal seit 6 Monaten benutzt
-new station: MAC-Adresse zum ersten Mal aufgetaucht
-flip flop: MAC-Adresse hat sich zu einer bereits vorher verwendeten MAC geändert: ARP-SPOOFING
-changed ethernet address: Host hat neue MAC-Adresse
IV. Syslog Meldungen
ethernet broadcast: MAC-Adresse ist eine Broadcast-Adresse oder die IP- o. MAC-Adresse besteht nur aus 1er oder 0er
ip broadcast: IP-Adresse von einem Host ist eine Broadcast-Adresse
bogon: Host-IP ist nicht im lokalen Subnet
ethernet mismatch: Die Quell MAC- / IP-Adresse passt nicht zur Adresse im ARP-Paket
reused old ethernet address: gleich selbe wie "flip flop", siehe oben
suppressed DECnet flip flop: FlipFlop-Nachricht wurde zurückgehalten weil IP oder MAC eine DECnet-Adresse ist
V. Parameter
arpwatch kann mit folgenden Parametern aufgerufen werden:
-a = bogons werden aus allen IP-Netzen reported sonst nur aus dem Netz, in dem das Listening-Interface ist
-d = debugging Modus, kein Eintrag in arp.dat und kein E-Mail Versand, Events gehen an stderr
-f = Outputfile definieren (Standard: /var/lib/arpwatch/arp.dat)
-i = Listening-Netzwerk Interface definieren (Standard: eth0)
-m = definiert die E-Mail Adresse für die Benachrichtigungen (Standard: root auf lokaler Maschine)
-n = Netzwerk definieren (Standard: Netmask von Listening-Interface)
-N = keine Bogons werden reported
-p = Deaktiviert den promiscuous mode für das entsprechende LAN-Interface
-Q = keine Reports per mail
-r = Inputfile definieren, Netzwerk wird von arpwatch nicht mehr aktiv gescannt (z.B. von Tcpdump)
-R = wenn das LAN-Interface down ist, startet arpwatch nach x Sekunden neu
-s = Pfad zum sendmail Programm, hier kann auch ein eigenes Script gestartet werden z.B. passiver Nagios-Check
-u = definiert den User, unter dem arpwatch läuft, muss Schreibrechte auf das .dat Verzeichnis haben
-z = Ignoriert bestimmten IP-Adressen-Bereich z.B. DHCP, Gäste-Netz
VI. Auswertung
Manchmal ist eine Benachrichtigung aus den verschiedensten Gründen nicht möglich, dann kann man die Logfileauswertung z.B. mit dem Plugin check_logfiles in eine Nagios Monitoring Umgebung einbauen.
VII. Praktische Beispiele:
Beim ersten Start macht es Sinn ARPwatch je nach Netzwerkgröße einige Zeit im debugging Modus laufen zu lassen.
Hierbei kann man live am Bildschirm mitverfolgen, was ARPwatch gerade macht und wird nicht mit zahlreichen E-Mails zugeschütet.
Nur ein bestimmtes Netz überwachen:
VIII. Beispiel Mail:
To: root@r-o-f
Subject: new station eth0
Message-Id: <E1N3taN-0000ar-02@r-o-f>
Date: Fri, 30 Oct 2009 16:40:19 +0100
hostname: <unknown>
ip address: 192.168.0.119
interface: eth0
ethernet address: 8:0:27:d6:48:33
ethernet vendor: Cadmus Computer Systems [PCS Computer Systems GmbH]
timestamp: Friday, October 30, 2009 16:40:18 +0100
Hakin9 – Ausgabe 04/2009 kostenlos downloaden
Hakin9 bietet die Juli/August Ausgabe 04/2009 zum kostenlosen Download an.
Themen:
- Biometrie-Update 2009 – Verfahren, Trends, Chancen und Risiken
- OSSTMM 3.0
- Print your Shell
- Web Application Security Authentifizierung und Session Handling
- Security Awareness – steht der Mensch wirklich im Mittelpunkt?
- Abfangen von Informationen in lokalen Netzwerken – Teil 3
- HTTP Tunnel
- Datenschutzpraxis: Transparenz für mehr Privatsphäre (Teil 3)
Homepage: Hakin9
Forum: Hakin9 :: Forum
NMAP 5.00 – Installation
Hier wird beschrieben, wie man Nmap 5.00 aus den Quellen installiert.
Im aktuellen Debian Lenny stable Repository gibt es nur die Version 4.62-1.
Folgende Pakete müssen auf einem frisch installierten Debian Lenny noch über aptitude nachinstalliert werden:
- bzip2
- g++
- make
1. Nmap Projekt Key importieren:
r-o-f:~# gpg --import nmap_gpgkeys.txt
gpg: Schlüssel 6B9355D0: Öffentlicher Schlüssel "Nmap Project Signing Key (http://www.insecure.org/)" importiert
gpg: Schlüssel 33599B5F: Öffentlicher Schlüssel "Fyodor <fyodor@insecure.org>" importiert
gpg: Anzahl insgesamt bearbeiteter Schlüssel: 2
gpg: importiert: 2
gpg: keine uneingeschränkt vertrauenswürdige Schlüssel gefunden
2. Files downloaden und validieren:
wget http://nmap.org/dist/sigs/nmap-5.00.tar.bz2.asc
....
r-o-f:~# gpg --verify nmap-5.00.tar.bz2.asc nmap-5.00.tar.bz2
gpg: Unterschrift vom Do 16 Jul 2009 09:28:03 CEST mittels DSA-Schlüssel ID 6B9355D0
gpg: Korrekte Unterschrift von "Nmap Project Signing Key (http://www.insecure.org/)"
Haupt-Fingerabdruck = 436D 66AB 9A79 8425 FDA0 E3F8 01AF 9F03 6B93 55D0
Man kann sich auch die nmap-5.00.tar.bz2.digest.txt runterladen und die Hash Werte vergleichen.
3. entpacken - configure - make - install
r-o-f:~# cd ./nmap-5.00
r-o-f:~/nmap-5.00# ./configure
r-o-f:~/nmap-5.00# make
r-o-f:~/nmap-5.00# make install
....
NMAP SUCCESSFULLY INSTALLED
4. Nmap ausführen:
Nmap version 5.00 ( http://nmap.org )
Nmap Homepage: nmap.org / insecure.org
Nmap Signaturen: http://nmap.org/dist/sigs/?C=M&O=D
PGP Signaturen, SHA1- und MD5-Hash Codes überprüfen
Um herutnergeladene Pakete zu überprüfen, greife ich immerwieder auf GnuPG zurück.
GnuPG bzw. PGP ist standartmäßig in dein meisten Linux Distributionen enhalten.
Ein kleiner Handgriff kann stundenlanges Fehlersuchen vermeiden, wenn ein Download
beschädigt ist.
In meinem Beispiel, habe ich vom debian Spiegelserver folgende Images mit wget kopiert:
- debian-503-i386-businesscard.iso
- debian-503-i386-netinst.iso
anschließend noch die MD5SUMS & SHA1SUMS Dateien.
MD5 Hash anzeigen lassen:
54d091a5491d1f36554cca8362af8a27 debian-503-i386-businesscard.iso
In der MD5SUMS Datei stehen alle Hashes der verfügbaren Images.
Deshalb einfach mit egrep die entsprechenden Zeilen kopieren:
r-o-f:~# egrep debian-503-i386-netinst.iso MD5SUMS >> customMD5
Anschließend können die Hashes validiert werden:
debian-503-i386-businesscard.iso: OK
debian-503-i386-netinst.iso: OK
Sollte etwas nicht passen, sieht das dann z.B. so aus:
debian-503-i386-netinst.iso: OK
md5sum: Warnung: 1 von 2 berechneten Prüfsumme passten NICHT
Mit den SHA1 Hash Codes funktioniert es genauso:
debian-503-i386-netinst.iso: OK
Weitere Informationen zum Thema:
http://de.wikipedia.org/wiki/Pretty_Good_Privacy
http://de.wikipedia.org/wiki/Md5
http://de.wikipedia.org/wiki/SHA1
http://www.gnupg.org/
