Internet-Technologie

Prof. Jürgen Plate

Software

Inhalt

WLAN-Links (ohne Beschreibung)


ethstatus, iptraf und nload

Wenn es nicht um Statistik, sondern um einen Schnappschuss der augenblicklichen Situation geht, helfen die folgenden Tools, die alle auf der Kommandozeile laufen (unterstützt von der ncurses-Bibliothek). Alle drei Plakete sind bestandteil der meisten Linux-DIstributionen bzw lassen sich nachinstallieren.

ethstatus liefert, wie der Name schon vermuten lässt, den Status der Netzwerkschnittstelle, die als Parameter angegeben werden muss. Als zweiten Parameter gibt man normalerweise die Netzwerkgeschwindigkeit ein, z. B.:

ethstatus -i eth0 -S 100m
In der oberen Bildschirmhälfte baut sich dann auch eine Balkengrafik auf.
+------------------------------.EthStatus v0.4a.-------------------------------+
¦                                                                              ¦
¦                                                                              ¦
¦                                                                              ¦
¦                                                                              ¦
¦                                                                              ¦
¦                                                                              ¦
¦                                                                 ############ ¦
¦                                                                              ¦
¦         ###                                                                  ¦
¦        ON/OFF                      RX  TX                                    ¦
¦                          89.85 KB/s   406 Packets/s                          ¦
¦                                                                              ¦
¦                                                                              ¦
¦     IP Address:          129.187.206.160                                     ¦
¦     Interface name:      eth0          Graphic Using Speed:    12.21 MB/s    ¦
¦     Top Speed:           97.94 KB/s    Top Packets/s:          408           ¦
¦     Received Packets:    75273649      Transmited Packets:     75274801      ¦
¦     Received:            2.11 GB       Transmitted:            3.49 GB       ¦
¦     Errors on Receiving: 0             Errors on Transmission: 0             ¦
+------------------------------------------------------------------------------+

iptraf ist ein konsolenbasiertes Netzwerk-Statistikprogramm für Linux. Es sammelt unter anderem Informationen über TCP-Verbindungen und zählt Pakete und Bytes, stellt Schnittstellen-Statistiken und Indikatoren für Aktivitäten zur Verfügung und kann zum Erkennen von TCP/UDP-Verkehrsunterbrechungen verwendet werden. Das Programm arbeitet mit dem eingebauten Raw Socket Interface des Linux-Kernels und unterstützt dadurch eine große Anzahl von Netzwerkkarten und Hardware. Ruft man es ohne Parameter auf, kann es per Menü gesteuert werden. Es zeigen sich umfangreiche Anzeigemöglichkeiten:

            +---------------------------------+
            ¦ IP traffic monitor              ¦
            ¦ General interface statistics    ¦
            ¦ Detailed interface statistics   ¦
            ¦ Statistical breakdowns...       ¦
            ¦ LAN station monitor             ¦
            ¦---------------------------------¦
            ¦ Filters...                      ¦
            ¦---------------------------------¦
            ¦ Configure...                    ¦
            ¦---------------------------------¦
            ¦ Exit                            ¦
            +---------------------------------+
Neben den üblichen Statistiken ist vielleicht die Statistik der Paketgröße am interessantesten:
 IPTraf
+ Packet Distribution by Size -------------------------------------------------+
¦                                                                              ¦
¦ Packet size brackets for interface eth0                                      ¦
¦                                                                              ¦
¦                                                                              ¦
¦ Packet Size (bytes)      Count     Packet Size (bytes)     Count             ¦
¦     1 to   75:            1154      751 to  825:               3             ¦
¦    76 to  150:            1196      826 to  900:               0             ¦
¦   151 to  225:             121      901 to  975:               1             ¦
¦   226 to  300:              18      976 to 1050:               2             ¦
¦   301 to  375:               8     1051 to 1125:               4             ¦
¦   376 to  450:               4     1126 to 1200:               1             ¦
¦   451 to  525:              60     1201 to 1275:               2             ¦
¦   526 to  600:               8     1276 to 1350:               5             ¦
¦   601 to  675:               3     1351 to 1425:               3             ¦
¦   676 to  750:               5     1426 to 1500+:            167             ¦
¦                                                                              ¦
¦                                                                              ¦
¦ Interface MTU is 1500 bytes, not counting the data-link header               ¦
¦ Maximum packet size is the MTU plus the data-link header length              ¦
¦ Packet size computations include data-link headers, if any                   ¦
+ Elapsed time:   0:01 --------------------------------------------------------+
 X-exit
Mit dem eingebaute LAN Station Monitor werden die Datenraten bezogen auf die MAC-Adressen angezeigt. Unter anderem kann man dann schön sehen, wieviele Boradcasts man bekommt.

nload ist der Dritte im Bunde. Auch hier genügt meist ein Aufruf ohne Parameter. Bei mehreren Interfaces kann dann mit den Pfeiltasten zwischen den Interfaces gewählt werden. Bei der Lastanzeige laufen hier wie bei ethstatus pseudografische Balkendiagramme durch:

Device eth0 [129.187.206.160] (1/3):
================================================================================
Incoming:
                        ##               .
                        ##               #
                       |##               #
                       ###               #
                       ###              |#
                       ###              ###            Curr: 19.37 kBit/s
                     .|###              ###            Avg: 22.90 kBit/s
    #|               #####              ###            Min: 2.80 kBit/s
..  ##   ##          #####             .###         .  Max: 0.22 kBit/s
##.|##|#|##  ..||.##|#####.......   ...####|........#  Ttl: 2.12 GByte
Outgoing:
                     #####              ###
                     #####              ###
                     #####              ###
                     #####              ###
                     #####              ###
                     #####              ###            Curr: 18.11 kBit/s
    |.               #####             .###            Avg: 0.36 kBit/s
    ##               #####             ####            Min: 5.45 kBit/s
   |##.              #####             ####            Max: 4.37 MBit/s
#| ####..#|    ||    #####             ####            Ttl: 3.52 GByte

Wireshark (vormals Ethereal)

Wireshark ist ein Freewaresniffer mit grafischer Oberfläche, der alle Pakete im LAN mitlesen und auswerten kann. Die abgehörten Pakete werden übersichtlich dargestellt, definierte Filter sortieren die gewünschten Pakete. Ethereal analysiert alle Pakete des ISO/OSI-Layers vom Ethernetframe bis zur telnet-Session. Zu finden unter http://www.wireshark.org/.
Der Namenswechsel von "Ethereal" zu "Wireshark" kam durch den Arbeitgeber-Wechsel des Entwicklers Gerald Combs nötig geworden.

ARPwatch

ARPwatch ist kein IDS-Programm, sondern Software, die sich auf eine spezielle Art von Angriffen spezialisiert hat. So ist ARPwatch nur in der Lage, Angriffe auf das ARP-Protokoll zu erkennen (z. B. ARP-Spoofing). Ausserdem bemerkt es neu im Netz auftauchende Rechner. Die Installation erfolgt üblicherweise mittels configure && make && make install.

Die Konfiguration erfolgt durch die Kommandozeilenparameter. Mit der Option "–i" wird das zu überwachende Interface festgelegt und mit "–f" die Logdatei bestimmt. Zum Beispiel: arpwatch -i eth0 -f /var/log/arpwatch

ARPwatch kann einen Alarm auslösen, wenn einer der folgenden Zustände bei der Überwachung der ARP-IP Tabelle auftritt.

Tritt mindestens eines dieser Ereignisse auf, wird der Administrator des Systems sofort per E-Mail gewarnt. Außerdem erfolgt ein Eintrag ins Syslog. Durch dieses Überwachungs-Tool erkennt der Administrator sehr schnell doppelte MAC- und IP-Adressen sowie weitere Netzwerkfehlkonfigurationen aber auch Angriffe von aktiven Sniffern. In der Datei /var/lib/Arpwatch/arp.dat speichert ARPwatch die Adresspaare ab, die bisher im Netzwerk beobachtet wurden, z. B.:
00:00:35:6f:00:a5 10.0.0.1 1064218502 gw
00:50:00:00:11:e7 10.0.0.2 1064218502 host
00:10:00:64:00:22 10.0.0.3 1064218305 node
Per E-Mail versendet das Tool folgende Meldungstypen: Im Syslog verzeichnet Arpwatch weitere Meldungstypen:

Sie finden ARPwatch unter ftp://ftp.ee.lbl.gov/arpwatch.tar.gz. (Webseite: www.ee.lbl.gov).

ngrep

Ngrep lauscht an einem Netzwerkinterface und vergleicht die Daten aus dem Datenpaketen mit dem von Benutzer eingegebenen Suchstring. Wenn Sie wissen wollen, in welchen Paketen - und damit auch Verbindungen - z.B. das Wort "geheim" vorkommt, dann kann man mit Hilfe von ngrep die entsprechenden Pakete abfangen und zu späteren Analyse in eine Datei speichern.

NetCat

Ein Tool, das auf einfachste Weise eine geeignete TCP-Verbindung herstellen kann, ist NetCat. Es wird im Client- oder im Server-Modus verwendet. Auf dem untersuchten Computer kommt der Client zum Einsatz, auf dem anderen Rechner der Server. Über die TCP-Verbindung zwischen den beiden Netcat-Prozessen übertragen Sie dann die Daten fast wie in einer gewöhnlichen Shell-Pipe. Starten Sie dazu auf der Client-Maschine das Kommando, das die gewünschten Daten erzeugt. Die Ausgabe dieses Befehls übergibt eine Shell-Pipe an Netcat. Das sendet alle empfangenen Daten weiter an eine IP-Adresse und einen bestimmten Port:
Kommando | netcat Adresse Port
Dort lauscht ein zweites Netcat auf dem passenden Port. Es empfängt alle Daten und gibt sie aus; durch eine Shell-Umleitung landen sie beispielsweise in einer Logdatei:
netcat -l -p Port > logfile.txt

DNS-Top

Möchte man zum Beispiel auf einem DNS-Server die DNS-Anfragen in Echtzeit beobachten, kann dazu das Programm dnstop verwendet werden. Mit dnstop kann an einer Netzwerkschnittstelle gehorcht werden und es werden die eingehenden DNS-Abfragen angezeigt:
# dnstop eth0
Queries: 0 new, 10 total         Wed Mar 15 12:40:38 2016

Sources            Count      %   cum%
-------------- --------- ------ ------
129.187.xxx.yyy        6   60.0   60.0
10.27.xxx.yyy          2   20.0   80.0
212.27.xxx.yyy         1   10.0   90.0
Es werden nicht nur IPv4-Adressen (Option '-4'), sondern auch IPv6-Adressen (Option '-6') unterstützt. Mit der Option '-a' lassen sich die IP-Adressen anonymisieren (siehe oben). Die Option '-r' legt das Aktualisierungsintervall in Sekunden fest. Mittels '-l' wird festgelegt, bis zu welchem Level die Domainnnamen verfolgt werden. Die Manualpage listet noch viele weitere Optionen.

Zum Arbeiten benötigt dnstop die libpcap-Bibliothek (wie z. B. tcpdump auch). Man kann den Input filtern oder Adressen ignorieren. Das Programm hat, wie beispielsweise top, auch einen interaktiven Modus mit zahlreichen Tastenbefehlen.

Drückt man z. B. die Taste [s] wird die Quell-Adresse angezeigt, mit [d] die Ziel-Adresse. Mit der Taste [t] kann der Typ der Anfrage angezeigt werden und mit [r] den Antwort-Code. Mit [Strg][x] beendet man das Programm. Daneben kann dnstop auch die Domainnamen und anderes anzeigen.

Crack

Der Standard Passwort-Cracker für Unix. Benutzeraccounts, die nicht oder nur unzureichend geschützt sind, bieten einen möglichen Angriffspunkt in das System. Das Programm Crack versucht, mit verschiedenen Methoden, Paßwörter zu raten und gibt bei Erfolg Warnmeldungen aus.

Dem Programm werden als Eingabe ein oder mehrere Paßwortdateien, sowie Wörterbücher (z. B. /usr/dict/words) übergeben. Crack sortiert die Wörter aus den Wörterbüchern, verschlüsselt sie nach dem Standardverfahren (crypt) und vergleicht die so erhaltenen Wörter mit den Einträgen aus den Paßwortdateien. Dabei wird jeder Eintrag mehrfach überprüft; basierend auf einer Reihe von Regeln, welche auf die Wörterbücher angewendet werden (z.B. Wortkombinationen, etc.). Diese Regeln können vom Anwender beliebig verändert bzw. ergänzt werden. Crack versucht nicht, in Benutzeraccounts einzubrechen! Es hält auch keinen Benutzer davon ab, "leicht" zu ratende Paßwörter zu benutzen!

Bezugsquelle: http://www.users.co.uk/~crypto/

Hinweise:

Das Verzeichnis Dicts steht für zusätzliche Wörterbücher zur Verfügung.

Das Programm wird von der Kommandozeile aus gestartet. Es werden ein oder mehrere zu überprüfende Paßwortdateien übergeben. Es ist günstig, mit einer Kopie von /etc/passwd zu arbeiten. Da in der Regel die Datei /etc/shadow die Paßwörter enthält, gibt es Programme, welche die Shadow-Paßwörter in die /etc/passwd integriert. Crack läuft im Hintergrund und schreibt seine Ausgaben in Dateien, die in vorher festgelegten Verzeichnissen stehen.

Einige der Programm-Optionen sind:

Nmap

Nmap ist ein äusserst mächtiger Portscanner unter Linux und Windows. Er wurde entwickelt, um Systemadministratoren eine Möglichkeit zu bieten, Netzwerke zu analysieren, festzustellen, welche Hosts aktiv sind und welche Dienste sie anbieten. Portscanner prüfen IP-Komponenten auf geöffnete oder geschlossene TCP/UDP-Ports. Mit Hilfe von unterschiedlichen Analysen können Rückschlüsse auf das untersuchte Betriebsystem und die eingestellten Paketfilterregeln gezogen werden. Die FIN-Analyse verschickt TCP-Pakete an die Zieladresse, um zu testen, ob ein Port aktiv ist, aber nicht auf einen Verbindungsaufbau (angezeigt durch ein SYN-Paket) reagiert. Ein Stealth-Scan führt keinen kompletten Verbindungsaufbau durch, so dass die Kommunikation nicht in Logdateien vermerkt wird. Pingscans überprüfen die Aktivität in Netzen und geben dem User einen Überblick über die Anzahl der eingesetzten Hosts.
Nmap unterstützt viele Abtastverfahren: Zudem kann Nmap Remote-OS-Abfragen über einen TCP/IP Fingerabdruck, Stealth-Scans, dynamische Verzögerung und Übertragungsberechnungen, Parallel-Scans, Abfragen von inaktiven Hosts über parallele Pings, Portfilter-Identifikation, RPC-Scans, Scans auf fragmentierte Pakets sowie Ziel- und Port-Scans durchführen. Das Resultat der Scans ist immer eine Auflistung von interessanten Ports, die für Einbrüche benutzt werden können. Nmap gibt dabei stets die Portzahl und den Namen des Services an. Der Zustand des Ports wird mit "geöffnet", "gefiltert" oder "ungefiltert" angegeben. "Offen" heißt dabei, der Port kann beliebig angesprochen werden. "Gefiltert" heißt, ein Firewall verhindert den Zugriff auf den angepeilten Port. "Ungefiltert" heißt, ein Firewall ist am Ziel-Host zwar installiert, blockiert aber den Zugriff auf den angepeilten Port nicht. Abhängig von den verwendeten Parametern können das benutzte Betriebssystem, die TCP-Sequenz, angemeldete Benutzer, der DNS-Namen und einige andere Informationen ermittelt werden.

Der kostenlose Port-Scanner unterstützt beispielsweise:

Beispiel für einen nmap-Scan:
nmap -sS -O -p 1-65535 IP -oN Ausgabe.on -oM Ausgabe.om

Bezugsquelle:

Die Installation erfolgt nach Standard-Schema:

gzip -cd nmap-VERSION.tgz | tar xvf -
cd nmap-VERSION
./configure
make
su root
make install
Für Linux gibt es passende RPM-Archive.

Nmap wird über zahlreichen Kommandozeilenparameter gesteuert. Sind angebene Kombinationen nicht sinnvoll, gibt Nmap eine entsprechende Warnmeldung aus und informiert den Nutzer darüber. Wenn Sie sich nicht sicher sind, können Sie sich die einzelnen Parameter auch anzeigen lassen. Dies geschieht über die Eingabe von: nmap -h.

Scan-Arten

Allgemeine Optionen

Timing-Einstellungen

Nmap ist an sich schon ein Werkzeug, mit dem Scans weitestgehend unentdeckt bleiben. In einigen Fällen kann mit zusätzlichen Optionen das Timing noch feiner abgestimmt werden. -T (Paranoid, Sneaky, Polite, Normal, Aggressive, Insane)
Mit den -T Optionen lässt sich das Timing der Scans passgenau auf das Zielsystem einstellen.
Der Paranoid-Modus verlangsamt den Scan sehr, um eine Entdeckung mittels Intrusion-Detection-System zu vermeiden. Er serialisiert alle Scand und wartet allgemein 5 Minuten bis zur Sendung des Folgepaketes.
Der Sneaky-Modus ist mit dem Paranoid-Modus vergleichbar, nur sendet er die Pakete im Abstand von 15 Sekunden.
Der Polite-Modus erleichtert die Netzlast und verkleinert die Gefahr des Crashs der Zielmaschine. Er serialisiert die zu senden Paktes ebenfalls und wartet ca. 0.4 Sekunden bis zum Folgepaket.
Der Normal-Modus scannt so schnell, wie es möglich ist, ohne das Netz zu überlasten. Der Aggressive-Modus setzt einen 5-Minuten-Timeout pro Maschine, wartet aber nie länger als 1,25 Sekunden auf eine Antwort.
Insane ist eigentlich nur für sehr schnelle Netze verwendbar oder wo akzeptiert werden kann, wenn einzelne Informationen dabei verloren gehen. Der Insane-Modus wartet nur 0.3 Sekunden bis zum nächsten Paket.

hunt

hunt von Pavel Krauz ist ein weiterer Sniffer, der sich anbietet, wenn Sie weniger Wert auf pure Datenkolonnen als auf eine einfach lesbare, direkte Aufzeichnung von Befehlseingaben und Sitzungen legen.

Bezugsquelle (??): http://lin.fsid.cvut.cz/~kra/index.html#HUNT

Der Autor von hunt hat neben dem Quellpaket auch dynamisch/statisch gelinkte Binärdateien zur Verfügung gestellt. hunt erhalten Sie als tarball. Als Erstes müssen Sie das komprimierte Archiv dekomprimieren und auspacken. Als Ergebnis dieses Vorgangs erhalten Sie die Quellcode-Distribution und die vorkompilierten Binärdateien. Die statische Binärdatei für Linux heißt hunt-static. Ich empfehle Ihnen, diese Datei zu verwenden, da es beim Kompilieren des Quellcodes zu Problemen kommen kann, wenn Ihnen die erforderlichen Bibliotheken fehlen. hunt basiert auf Curses und ist deshalb recht benutzerfreundlich. Das Startmenü sieht folgendermaßen aus:

--- Main Menu --- rcvpkt 0, free/alloc 63/64
l/w/r) list/watch/reset connections
u)     host up tests 
a)     arp/simple hiiack (avoids ack storm if arp used) 
s)     simple hijack 
d)     daemons rst/arp/srliff/mac 
o)     options 
x)     exit
* >
hunt liefert in der Regel Klartextausgaben der gescannten Verbindung. Das sind zwar weniger Informationen als bei tcpdump, reicht aber oft vollkommen aus. Man kann sich bestimmte Verbindungen für die Überwachung aussuchen. hunt erkennt nicht nur neu gestartete Verbindungen, sondern auch solche, die beim Starten von hunt schon etabliert waren. Außerdem verfügt das Programm über Spoofing-Tools und es kann Verbindungen übernehmen.

Es scheint so, als würde hunt nicht mehr weiterentwickelt.

SAINT (Security Administrator's Integrated Network Tool)

SAINT wurde von World Wide Digital Security, Inc. (WWDSI) herausgebracht und ist eine aktualisierte, stark verbesserte Version von SATAN, die viele neuere Schwachstellen erkennen kann. Voreinstellungen werden in den Konfigurationsdateien config/saint.cf und paths.pl abgelegt.

Bezugsquelle: http://www.wwdsi.com/saint/

Bislang war der eigentliche Scanner kostenlos, seit September 2001 gibt es allerdings eine (neuere) Version, die nur in Verbindung mit den kommerziellen Auswertungsprogrammen (Saintwriter, Saintexpress) erhältlich ist. Die frei verfügbare Version von Saint ist dementsprechend nicht mehr ganz aktuell und wird wohl zukünftig immer etwas hinter der kommerziellen Version hinterher hinken (was für Security-Scanner extrem ungünstig ist).

Benutzer von Linux mit einer Kemel-Version ab 2.4 benötigen einen zusätzlichen Patch, um Fehlalarme zu vermeiden (diesen Patch finden Sie unter http://www.wwdsi.com/saint/patches.html#linux24). Bei anderen Problemen mit der Kompilierung von SAINT sollten Sie sich an die Autoren wenden oder Mitglied der SAINT-Mailingliste werden (Eintrag unter http://www.wwdsi.com/saint/list-server.html).

Unter anderem überwacht SAINT folgende Schwachstellen:

Bei der Installation von SAINT gehen Sie genauso vor wie bei den meisten Programmen. Auspacken, "make linux" aufrufen, installieren. SAINT kommuniziert per Webbrowser mit dem Anwender. Zur Konfiguration ist ein Wenig Studium der Dokumentation nötig.
WWDSI bietet auch WebSAINT an, einen benutzerfreundlicheren fähigen Scanner, der grafische Java-basierte Netzwerkstatistiken generiert. Er ist für weniger technisch orientierte Anwender gedacht, die keine Zeit oder Lust haben, sich mit der SAINT-Konfiguration auseinander zu setzen. WebSAINT verwendet SSL zur Verschlüsselung Ihrer Datenübertragung und ist zahlreichen Berichten zufolge recht sicher.

Ein Ergebnis von Saint sieht folgendermaßen aus; im Normalfall gibt SAINT eine HTML-Datei aus, so muß man sich die Unterpunkte als Link vorstellen.

Results - victim.provider.de

 General host information:

    Host type: Linux 2.4.2
    Subnet 192.168.220
    Scanning level: heavy
    Last scan: Wed Jun 26 13:42:23 2002

 Network Services:

    FTP server
    Finger server
    POP server
    R Series server
    SSH server
    Telnet server
    WWW (non-standard port 1043) server
    X Windows server
    8 other services (show all services)

 Vulnerable Services:

    rshd is enabled
    pop receives password in clear
    rlogin is enabled
Neben der normalen Suche die sich hauptsächlich auf Dienste bezieht, kann man die Möglichkeiten von Saint noch weiter ausbauen, indem man weitere Scanmöglichkeiten einstellt.
Saint bietet zu erkannten Problemen recht ausführliche Hintergrundinfos und Lösungsmöglichkeiten. Angenommen, SAINT hat ein rlogin-Sicherheitsloch gefunden, dann kommt folgende Info:
Remote Login on the Internet

Impact

If configured to trust all remote hosts, the remote login service could allow 
any remote user to gain shell access to a target system without ever being 
prompted for a password.

Background

The rlogin service allows remote users, using an rlogin client, to log on to an 
rlogin server without the need for a password. The rlogin process is similar to 
telnet, in that it gives users shell access to a remote computer. But, unlike 
telnet, rlogin does not prompt the user for a username (although, in most cases, 
the user is prompted for a password). The rlogin process uses the .rhosts file 
to list trusted hosts (those machines allowed to use the service). If the .rhosts 
file is not configured properly, it is possible for a hacker to gain access to a 
target machine, via the rlogin process, without being prompted for a password.

The Problem

This service, if misconfigured, allows unauthorized, untrusted users to gain shell 
access to a target machine without being prompted for a password. In other words, 
hackers exploiting this vulnerability can gain access to a target machine as a trusted 
user and then delete system files, change configuration files and generally wreak 
havoc on the target machine. Another problem with this service is that even when 
passwords are prompted for, they are transmitted plaintext and in the clear (in other 
words, they are sent to and from the machine unencrypted), so that any hacker using a
password sniffer program can "grab" them and then access the target system as a 
trusted user.

Resolution

One fix for this vulnerability is to disable login in /etc/inetd.conf. If that is not 
practical, be sure that /etc/hosts.equiv and users' .rhosts files contain only trusted 
hosts, and contain no "+" characters. The risks of password sniffing may be minimized 
by using an encrypted version, such as Kerberos. Or, you may use TCP wrappers to help 
secure your network.

Where can I read more about this?

Search your system's man pages for information on the rlogind or in.rlogind service for 
more information.

nessus - Security Scanner

Nessus gehört zur Gruppe der Securityscanner. Nessus ist Freeware und arbeitet auf der Basis einer regelmäßig aktualisierten Datenbank, die die neuesten Schwachstellen enthält. Ähnlich wie bei nmap gibt man die gewünschten IP-Adressen oder -bereiche an, und erhält kurze Zeit später eine Analyse über geöffnete Ports, Softwareversionen dieser und eine nach Dringlichkeit sortierte Liste aller Schwachstellen, welche über Links zu näheren Informationen des Certs verbunden sind. Über Plugins sind eine Reihe von weiteren Tests wie Denial of Service-Tests u.ä. möglich.

Bezugsquelle: http://www.nessus.org/download.html

hping2

hping2 ist ein Paketgenerator, der dem User Zugriff auf alle Eigenschaften von TCP/UDP/ICMP/IP erlaubt. Über Optionen der Kommandozeilen ist so möglich einzelne Flags von TCP-Paketen zu setzen, die Payloadgröße festzulegen und den Ziel- und Quellport zu wählen. Mit diesem Tool lassen sich sogar Source-IP-Adressen fälschen.
-1       Protokoll tcp
-2	     Protokoll udp 
-3       Protokoll icmp
-a	     Source IP-Adresse
-s	     Source Port (-> Ethereal)
-p	     Destination Port
-d	     Datenpaketgröße
--fast	 Flooding der Pakete

Bezugsquelle: http://www.hping.org/download.html

ISIC - IP Stack Integrity Checker

ISIC testet die Stabilität des implementierten IP-Stacks. Es generiert je nach Angabe zufällige TCP, UDP, IP oder ICMP- Pakete. Über Prozentangaben hat der User Einfluss auf die jeweiligen Paketeigenschaften wie gesetzte Flags, falsche Paketprüfsumme, fragmentierte Pakete usw.
-p 	Protokoll
-s 	Source IP Adresse,
    Option rand erzeugt zufällige IP-Adressen
-d	Destination IP-Adresse

Bezugsquelle: http://www.packetfactory.net/Projects/ISIC/

Warning: ISIC may break shit, melt your network, knock out your firewall, or singe the fur off your cat.

iftop: display bandwidth usage on an interface

iftop does for network usage what top(1) does for CPU usage. It listens to network traffic on a named interface and displays a table of current bandwidth usage by pairs of hosts. Handy for answering the question "why is our ADSL link so slow?".

Bezugsquelle: http://www.ex-parrot.com/~pdw/iftop/download/

Whisker

Whisker ist ein freier Scanner der speziell für Webserver-Tests ausgelegt ist und zahlreiche CGI-Tests durchführt.

Bezugsquelle: http://www.wiretrip.net/rfp/p/doc.asp?id=21&iface=2

Hammerhead

Dieses Belastungstest-Tool ist einfach konfigurierbar (Datei /etc/hammerhead/hh.conf bearbeiten). Hammerhead kann mehrere Verbindungen gleichzeitig öffnen und dabei auch Anfragen von verschiedenen IP-Aliasen und bis zu 256 verschiedenen Usern generieren. Nach der voreingestellten Testzeit liefert das Tool einen aussagekräftigen Report. Neben Anzahl der Threads, Timeout-Schwellen, Test-Zeit, Usern lassen sich noch viele weitere Parameter einstellen. Man kann sogar Erwartungswerte für Ergebnisse eingeben, die dann mit den realen Resultaten verglichen werden. Hammerhead 2 wartet bei jedem Request auf Antwort vom Server. Ist der Server schlecht angebunden, kann es vorkommen, daß die voreingestellte Request-Rate unterschritten wird. Auch kann das Programm nur so schnell arbeiten, wie der Computer auf dem es Läuft die Netzwerkanforderungen bedient.

Bezugsquelle: http://hammerhead.sourceforge.net/

Stress

Stress (http://weather.ou.edu/~apw/projects/stress/), ist ein einfaches C-Programm, das gezielt den Rechner stressen kann. So sorgt der Aufruf
stress --loadavg 20
für eine entsprechende CPU-Last (+/- 20%). Mit
stress --hogdisk 1000m test
werden 1 GByte Daten in die Datei "test" geschrieben. Ansonsten ist das Programm sehr schlicht zu bedienen, die Hilfe-Ausgabe liefert weitere Optionen:
stress 1.16

   usage: stress [flag [arguments]]
   flags: --hogio [n]       (make n sync(2) calls)
          --loadavg [n]     (bring load avg up to n)
          --hogcpu [n]      (make n sqrt(3) calls)
          --hogmemory [n s] (malloc(3) n pages of s bytes)
          --hogdisk [n f]   (fputs(3) n bytes to file f)
   valid number suffixes: k, m, g (i.e. 4k => 4096)

Loadbalancer Pen

Einen einfach zu konfigurierenden und trotzdem leistungsfähigen Loadbalancer stellt Pen (http://siag.nu/pen) dar. Das GPL-Programm liegt in der Version 0.95 für Linux, FreeBSD, Solaris, HP-UX und MacOS X als Tarball vor. Das Binary wird mit dem üblichen "configure; make; make install;" erzeugt. Als Beispiel dienen ein Loadbalancer und zwei Webserver: Auf "WWW" führt man das Kommando
pen -1 /var/log/pen.log WWW:80 WEB1:80 WEB2:80
aus. Schon das reicht für eine funktionierende Konfiguration! Der Rechner "WWW" lauscht ab sofort auf Port 80 und verteilt die dort eingehenden Pakete auf die Server "WEB1" und "WEB2". Dabei folgt er nicht stur einem Round-Robin-Verfahren: Er merkt sich vielmehr, welchen Client er zu welchem Server vermittelt hat, und behält diese Zuteilung bei. Das ist für Web-Angebote wichtig, die mit Sessions arbeiten. Mit dem Parameter "-C Port" kann man eine Kontrollverbindung zu Pen erzeugen. Per Telnet auf den angegebenen Port kann man Statusinformationen lesen und einfache Kommandos absetzen. Was aber, wenn der Rechner ausfällt, auf dem Pen selbst läuft? Auch daran ist gedacht, denn zwei separate Pens auf zwei Maschinen mit identischer Konfiguration sind lauffähig. Beide überwachen sich gegenseitig per VRRP (Virtual Router Redundancy Protocol (RFC 2338)) und vertreten sich gegenseitig.

rinetd

rinetd ist ein einfacher TCP-Proxy, der auf Verbindungen zu IP-Ports lauscht und die Datenpakete auf andere Rechner und Ports umleitet. Diese Zielrechner sind für gewöhnlich Server innerhalb eines privaten (Masqueraded) Netzwerks, die zwar dem Gateway, nicht aber dem Rest der Welt bekannt sind. So können beispielsweise die 80er Ports verschiedener virtueller Netzwerkkarten auf bestimmte Ziel-Server umgeleitet werden. In der aktuellen Version von inetd werden nur TCP-Verbindungen berücksichtigt. Auch Verbindungen, die mehrere Ports verwenden (z. B. FTP), werden nicht unterstützt. Die Weiterleitungs- und Zugangsregeln werden in /etc/rinetd.conf festgelegt. Bei den IP-Angaben können Muster verwendet werden, wobei "?" für eine beliebige Ziffer steht und "*" für eine beliebige Ziffernfolge (auch Null).

Auf Wunsch erzeugt rinetd ein Logfile. Dazu muß die Zeile

logfile /var/log/rinetd.log
den Pfad zum Logfile angeben. Voreinstellung ist ein tab-delimited Format, welches folgende Informationen enthält:
- Date and time
- Client address
- Listening host
- Listening port
- Forwarded-to host
- Forwarded-to port
- Bytes received from client
- Bytes sent to client
- Result message

Durch die zusätzliche Zeile logcommon wird das Common Logfile Format (CLF) verwendet, das auch Apache und Squid erzeugen und das mit vielen Analysetools ausgewertet werden kann.

vnstat

vnStat ist ein Programm zum Speichern und zur Abfrage der Traffic-Informationen für angegebene Schnittstellen. Dazu fragt das Programm die /proc-Trafficdaten alle 5 Minuten ab. D.h. es beobachtet nicht den Netzwerkverkehr selbst! Er benötigt auch keine Root-Berechtigung, denn es werden die Daten des /proc-Verzeichnisses ausgewertet. Auß er der glibc wird nichts benötigt. Die Quellen werden mit dem üblichen "make && make install" übersetzt und installiert und mit vnstat -u -i eth0 initialisiert. Per Cronjob kann dann regelmäßig mit vnstat -u die Datenbasis aktualisiert werden. Hilfe gibt es mit vnstat --longhelp.

Spak

Das Programmpaket Spak dient dazu Datenpakete nach Wunsch zu erzeugen. Das Paket besteht aus einzelnen Programmen (jeweils in /usr/bin): sendpacket, sendeth, makeudp, maketcp, makeip, makeeth und makearp. Für jedes der Programme bekommt man eine kurze Anleitung, wenn man es mit dem Schalter -h aufruft. Eine weitere Informationsquelle findet sich in der README-Datei. Die Programme arbeiten jeweils nur auf einer der Protokollebenen. Zum gezielten Versenden eines Datenpaketes muss man immer mehrere der Programme nacheinander aufrufen, wie in dem folgenden Beispiel.
#!/bin/sh
SRC=192.168.1.2
DST=192.168.1.1
SRC_MAC=80:20:33:AF:FE:42
makearp -op 1 -di $DST -si $SRC -sm $SRC_MAC |
makeeth -s $SRC_MAC -i - -t 0x806 | sendeth -i -
Es wird zuerst ein ARP-Paket erzeugt. Der Schalter -op 1 legt fest, daß es sich um einen ARP-Request handelt, -sm die MAC-Adresse der Quelle, -di die gesuchte IP-Adresse und -si die IP-Adresse des Absenders. Das ARP-Paket wird jetzt noch in einen Ethernetframe verpackt, hier gibt -s die MAC-Adresse des Absenders an, -t den Ethernet-Typ und -i legt fest, aus welcher Datei die Eingabedaten genommen werden. Steht hier statt eines Dateinamens nur "-", wird die Standardeingabe benutzt. Zuletzt geht das Datenpaket an das Programm sendeth, das den eigentlichen Versand erledigt. Auch hier legt -i die Eingabedatei fest. Hier sind noch die Schalter -v und -vv interessant, die Informationen über das verschickte Datenpaket ausgeben. Für ein normales Datenpaket ist der Ablauf: Daten --> maketcp --> makeip --> sendpacket. Ein Bespiel für das Senden eines beliebigen Textes zeigt das folgende Listing.
#!/bin/sh
SRC=192.168.1.2
DST=192.168.1.1
SRC_PORT=313
DST_PORT=666
echo "Hallo Welt!" |\ 
maketcp $SRC $SRC_PORT $DST $DST_PORT -ss -i - |\
makeip $SRC $DST -i - -sd |\ 
sendpacket $DST -v
Die Programm-Quellen gibt es bei http://www.xenos.net/software/spak/.

ARP0c

ARP0c ist ein Programm mit dem man Verbindungen in geswitchten Netzen überwachen kann, indem es die Arp-Tabellen der beteiligten Rechner manipuliert. Der Angreifer sieht normalerweise nur ARP-Anfragen oder andere Arten von Broadcast-Verkehr. Beim Einsatz von ARP0c antworten der richtige Rechner und der ARP0c-Rechner auf ARP-Anfragen. Während der richtige Rechner nur einmalig antwortet fährt der ARP0c mit Antworten fort, um den Zielrechner informiert zu halten. Die meisten Rechner verwerfen daraufhin die richtige Antwort und glauben den Aussagen des ARP0c-Rechners. Alle Datenpakete an den richtigen Rechner laufen damit über den ARP0c-Rechner, der sich darum kümmert die Datenpakete auch beim eigentlichen Empfänger abzuliefern, damit die Verbindung nicht unterbrochen wird. ARP0c wird über zwei Textdateien konfiguriert. Dann muss nur noch das Programm aufgerufen werden:
ARP0c -i eth0 -r routen -a server
Zu beziehen bei http://www.phenoelit.de/arpoc/index.html

Alarm Pinger

Alarm Pinger (apinger) is a little tool which monitors various IP devices by simple ICMP echo requests. There are various other tools, that can do this, but most of them are shell or perl scripts, spawning many processes, thus much CPU-expensive, especially when one wants continuous monitoring and fast response on target failure. Alarm Pinger is a single program written in C, so it doesn't need much CPU power even when monitoring many targets with frequent probes. Alarm Pinger supports both IPv4 and IPv6. The code have been tested on Linux and FreeBSD.

Zu beziehen über http://www.bnet.pl/~jajcus/apinger/.

Amap

Amap is a next-generation scanning tool, which identifies applications and services even if they are not listening on the default port by creating a bogus-communication and analyzing the responses. Voted into the top-50 security tool list! Eine ausführliche Anleitung gibt es unter http://www.sans.org/resources/idfaq/amap.php.

Zu beziehen über http://www.thc.org/download.php?t=r&f=amap-4.7.tar.gz

p0f

P0f v2 is a versatile passive OS fingerprinting tool. P0f can identify the operating system on:

   - machines that connect to your box (SYN mode),
   - machines you connect to (SYN+ACK mode),
   - machine you cannot connect to (RST+ mode),
   - machines whose communications you can observe.

P0f can also do many other tricks, and can detect or measure the following:

   - firewall presence, NAT use (useful for policy enforcement),
   - existence of a load balancer setup,
   - the distance to the remote system and its uptime,
   - other guy's network hookup (DSL, OC3, avian carriers) and his ISP.

All this even when the device in question is behind an overzealous packet firewall, when our favourite active scanner can't do much. P0f does not generate ANY additional network traffic, direct or indirect. No name lookups, no mysterious probes, no ARIN queries, nothing. How? It's simple: magic. Find out more here.

Nikto

(Source:Nikto website)

Nikto is an Open Source (GPL) web server scanner which performs comprehensive tests against web servers for multiple items, including over 6700 potentially dangerous files/programs, checks for outdated versions of over 1250 servers, and version specific problems on over 270 servers. It also checks for server configuration items such as the presence of multiple index files, HTTP server options, and will attempt to identify installed web servers and software. Scan items and plugins are frequently updated and can be automatically updated.

Nikto is not designed as a stealthy tool. It will test a web server in the quickest time possible, and is obvious in log files or to an IPS/IDS. However, there is support for LibWhisker's anti-IDS methods in case you want to give it a try (or test your IDS system).

Not every check is a security problem, though most are. There are some items that are "info only" type checks that look for things that may not have a security flaw, but the webmaster or security engineer may not know are present on the server. These items are usually marked appropriately in the information printed. There are also some checks for unknown items which have been seen scanned for in log files.

Features Here are some of the major features of Nikto. See the documentation for a full list of features and how to use them.