ROOT ON FIRE Linux, Windows, Tools, Open Source, WWW, Hardware, Security, Monitoring, Networking

16Mrz/100

MAC-Adresse ändern

Die MAC-Adresse (Media Access Control Adresse) dient zur eindeutigen Identifizierung eines Gerätes im Netzwerk. Die ersten 24 Bits dienen dabei zur Herstellerkennung (Organizationally Unique Identifier), die anderen 24 Bit werden individuell durch den Hersteller vergeben.
Unter Linux kann man die MAC-Adresse mittels ifconfig ändern:

Ausganssituation:

r-o-f:~# ifconfig eth0 | grep "Hardware Adresse"
eth0      Link encap:Ethernet  Hardware Adresse 05:13:47:ef:25:16

I. Netzwerkinterface ausschalten / deaktivieren

r-o-f:~# ifconfig eth0 down

II. MAC-Adresse definieren

r-o-f:~# ifconfig eth0 hw ether 00:11:22:aa:bb:cc

III. Netzwerkinterface einschalten / aktivieren

r-o-f:~# ifconfig eth0 up

Ergebnis überprüfen:

r-o-f:~# ifconfig eth0 | grep "Hardware Adresse"
eth0      Link encap:Ethernet  Hardware Adresse 00:11:22:aa:bb:cc
22Nov/090

phpSysInfo – Serverinformationen im Überblick

Mit phpSysInfo kann man sich verschiedene Informationen über den eigenen Server anzeigen lassen.
Bei Debian kann phpSysInfo über den Paketmanager installiert werden:

r-o-f:~# aptitude install phpsysinfo

Nach der Installation ist die Übersicht standardmäßig über: http://<Server IP>/phpsysinfo erreichbar.
Konfigurationsdatei: /etc/phpsysinfo/config.php
Programmpfad: /var/www/phpsysinfo

Bei google findet man einige Beispiele für öffentlich zugängliche phpSysInfo Seiten. Gerade öffentliche Server sollten mittels .htaccess etc. diese Informationen schützen. Je mehr ein Angreifer über den Server weiß, desto leichter wird es einen passenden Exploit zu finden.

phpSysInfo Sample

phpSysInfo Sample

phpSysInfo Homepage: http://phpsysinfo.sourceforge.net/

9Nov/090

Öffentliche IP-Adresse auf der Konsole herausfinden

Wer seine öffentliche IP-Adresse auf der Konsole herausfinden will, kann das ganz einfach mit lynx machen.
Wenn man lynx mit -dump aufruft, gibt er nur die erste Zeile der besuchten Webseite aus.
Ich habe dazu ein kleines PHP Script auf ip.root-on-fire.com hinterlegt.

r-o-f:~# lynx -dump ip.root-on-fire.com
   91.128.xxx.xxx - powered by ROOT-ON-FIRE.COM

Alternativ kann man auch checkip.dyndns.org verwenden.




31Okt/090

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.

r-o-f:~# aptitude install arpwatch

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.

r-o-f:~# arpwatch -d -R 1

Nur ein bestimmtes Netz überwachen:

r-o-f:~# arpwatch -n 192.168.0.0/16

VIII. Beispiel Mail:

From: arpwatch@r-o-f (Arpwatch r-o-f)
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




27Okt/090

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:~# wget http://nmap.org/data/nmap_gpgkeys.txt
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/nmap-5.00.tar.bz2
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:~# bzip2 -cd nmap-5.00.tar.bz2 | tar xvf -
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
NMap Installation

4. Nmap ausführen:

r-o-f:~# nmap --version

Nmap version 5.00 ( http://nmap.org )

Nmap Homepage: nmap.org / insecure.org
Nmap Signaturen: http://nmap.org/dist/sigs/?C=M&O=D

Seite 1 von 212