 |
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.
- Bei MAC-IP Zuordnung tritt eine neue MAC Adresse auf.
- Zur der MAC-IP Zuordnungstabelle kommt ein neuer MAC-IP Eintrag hinzu.
- Bei einem MAC-IP Eintrag hat sich die MAC Adresse mehrmals geändert.
- Ein Eintrag der seit einem längeren Zeitraum nicht aktiv war (default: sechs Monate).
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:
- "New Activity": Das Adresspaar wird nach sechs Monaten oder
mehr wieder benutzt.
- "New Station": Diese MAC-Adresse wurde zum ersten Mal beobachtet.
- "Flip Flop": Die MAC-Adresse hat sich zu einer schon einmal
verwendeten MAC-Adresse geändert.
"
- Changed MAC Address": Die MAC-Adresse hat sich geändert.
Im Syslog verzeichnet Arpwatch weitere Meldungstypen:
- "MAC broadcast": Die MAC-Adresse des Rechners ist die
Broadcast-Adresse oder besteht nur aus Nullen.
- "ip broadcast": Die IP-Adresse des Hosts ist eine Broadcast-Adresse.
- "Bogon": Die IP-Adresse des Hosts gehört nicht in dieses Subnetz.
- "MAC mismatch": Die Quell-MAC-Adresse entspricht nicht
der MAC-Adresse innerhalb des ARP-Pakets.
- "reused old MAC address": Die MAC-Adresse hat sich auf eine
MAC-Adresse geändert, die entweder der drittletzten oder einer
noch älteren MAC-Adresse entspricht.
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:
- -f
Crack läuft nicht im Hintergrund. Diese Option ist nur bei sehr kleinen
Paßwortdateien sinnvoll.
- -m
Falls das Paßwort eines Benutzers geraten wurde, wird diesem eine Nachricht
gesendet. Der Text dieser Nachricht ist in der Datei
Scripts/nastygram
individuell veränderbar.
- -v
Stellt den "verbose"-Modus ein. Es werden sehr(!) viel mehr Ausgaben erzeugt.
- -network
Läßt das Programm im Netzwerk-Modus laufen. Die zu untersuchende
Paßwortdatei wird gesplittet und Crack wird auf mehreren im Netzwerk
angeschlossenen Hosts gestartet. Dies erfordert eine Anpassung der Datei
Scripts/network.conf.
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:
- UDP- und TCP Connects
- TCP SYN-Scans
- FTP-Proxy (Bounce-Attacks)
- Reverse-Ident
- ICMP-Scans (Ping-Schleife)
- FIN-Scans
- ACK Schleifen (Antwortpakete)
- Weihnachtsbaum
- SYN-Schleifen
- Null-Scan
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:
- -sT TCP connect port scan (default)
- -sS TCP SYN stealth port scan
- -sU UDP port scan
- -sP Ping Scan
- -sF, -sX, -sN Stealth FIN, XMAS, Null scan
- -O use TCP/IP fingerprint to guess remote os
- -p ports to scan
- -P0 don't ping hosts
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
- -sT
Der TCP-Connect-Scan ist der grundlegendste Scan und er wird dazu
benutzt, um einen Port zu öffnen. Ein großer Vorteil
hierbei ist, dass der Nutzer keine besonderen Privilegien für
die Ausführung benötigt, da der TCP-Connect-Scan auf den
meisten Unix-Maschinen privileglos ausgeführt werden kann.
- -sS
Der TCP-SYN-Scan ist ein halb offener Scan, weil keine vollständige
TCP-Verbindung aufgebaut wird. Es wird lediglich ein SYN-Paket (SYN=Synchronisation)
geliefert, dass eine Antwort erwartet, um dann eine Verbindung zu
öffnen. Ein SYN/ACK (ACK=Empfangsbestätigung) setzt den
Port auf "listening", also horchend. Wird ein SYN/ACK
empfangen, wird von dort sofort ein RST (zurücksetzen) der
Verbindung signalisiert. Auf die Weise erhält der Angreifer
eine Bestätigung, dass dieser Port ansprechbar ist. Der Nachteil
hierbei ist, dass viele Firewalls diesen Kunstgriff nicht bemerken
und entsprechend nicht loggen.
- -sF -sX -sN
Stealth FIN (beenden), Xmas tree (weil einige Hardware-Firewalls
dabei wie ein Weihnachtsbaum aufleuchten) oder ungültige Null-Scans
werden eingesetzt, wenn Firewalls oder Paketfilter explizit auf
SYNs achten, die auf überwachte Ports oder Programme treffen.
Die Idee dabei ist, dass ein geschlossener Port in jedem Fall mit
einem RST (zurücksetzen der Verbindung) reagiert, während
ein offener Port das Paket ignorieren muss (RFC 793 pp 64). Der
Vorteil liegt hier eindeutig bei NT-Maschinen, da Microsoft diesen
Standard völlig ignoriert.
- -sP
Die Ping-Abtastung ermöglicht es zu ermitteln, welche Hosts
in einem Netzwerk ansprechbar sind. Nmap sendet dazu einfach ein
ICMP-Echo und wartet auf eine Antwort. Erfolgt die Antwort als Block-Echo-Paket,
so kann alternativ auch ein TCP-ACK (Empfangsbestätigung) gesendet
werden. Erfolgt ein RST (zurücksetzen), ist der angepingte
Host ansprechbar.
- -sU
Der UDP Scan ist eine gute Methode, um zu ermitteln, welche UDP-Ports
an der betroffenen Maschine offen sind (User Datagram Protocol,
RFC 768). Gesendet wird dabei ein 0 Byte UDP-Paket. Erfolgt eine
ICMP-Meldung (Port unreachable), ist der Port geschlossen.
Anderenfalls ist davon auszugehen, der Port ist geöffnet. Einige
Leute sind übrigens der Ansicht, Scans von UDP-Ports sind sinnlos,
weil sie keine Gefahr darstellen. Solaris zum Beispiel besitzt jedoch
ein bekanntes Sicherheitsloch, bei dem rcpbind über einen undokumentierten
UDP-Port oberhalb von 32770 entdeckt und genutzt werden. So macht
es nichts, wenn Port 111 vom Firewall blockiert wird, der Angreifer
kann trotzdem über den UDP-Port darauf zugreifen.
Nach einem Vorschlag in RFC 1812 (Abschnitt 4,3,2,8) wurde die Anzeigerate
der "Destination unreachable" zwar verlangsamt (z.B. im
Linux-Kernel bei 80 pro Sekunde und bei Solaris sogar nur bei 2
pro Sekunde), allerdings ist nmap dann in der Lage, die Rate zu
ermitteln und bremst den Scan dann entsprechend ab, statt das Netz
mit ungültigen Pakets zu überschwemmen, die durch die
Zielmaschine ignoriert werden. So zeigt sich allerdings an der Zielmaschine
ein scheinbar normaler Datenverkehr, der von unachtsamen Administratoren
falsch interpretiert werden könnte.
Microsoft übrigens hat, wie so oft, die Empfehlung ignoriert
und entsprechend keine Begrenzung der Rate im System von Windows
integriert. Es können also in schnellst möglicher Geschwindigkeit
sämtliche Ports gescannt werden.
- -sA
Der ACK-Scan (ACK=Emfpangsbestätigung) ist eine gute Methode
zum Test von Rulesets (Filterregeln) am eingesetzten Firewall. Auf
die Weise lässt sich ermitteln, ob ein Firewall sicher ist
oder ob es nur ein einfacher Paketfilter ist, der ankommende SYN-Pakets
blockiert. Es wird hierzu von nmap ein ACK-Paket mit einer zufälligen
Sequenzzahl abgeschickt, um zu ermitteln, ob und wie die Ports spezifiziert
sind. Erfolgt als Antwort ein RST (zurücksetzen), ist der Port
ungefiltert. Erfolgt keine Antwort oder ein ICMP "Destination
unreachable", ist der Port gefiltert.
- -sW
Der Fenster-Scan ist ein erweiterter Scan, der dem ACK-Scan sehr
ähnlich ist, aber im Gegensatz zum ACK-Scan auch offene Ports
ermitteln kann. Der Scan nutzt dazu eine Sicherheitslücke in
diversen Systemen wie AIX, Amiga, BeOS, BSDI, Cray, Tru64 Unix,
DG7ux, OpenVMS, Digital Unix, FreeBSD, OpenStep, QNX, Rhapsody,
SunOS 4.x, Ultrix, VAX und VxWorks.
- -sR
Der RPC-Scan arbeitet mit verschiedenen Portscan-Methoden von nmap.
Er ermittelt alle offenen Ports und überschwemmt sie mit SunRPC-NULL-Befehlen,
um zu ermitteln, ob es RPC-Ports sind und welches System mit welcher
Versionsnummer sich dahinter verbirgt.
- -b
Die FTP-Bounce-Attacke nutzt eine Eigenschaft des FTP-Protokolls,
dass Unterstützung auch für Proxy-FTP-Ports besitzt. Mit
anderen Worten heißt das, wenn es gelingt, von evil.com auf
den FTP-Server von target.com zuzugreifen, können von dort
aus Daten überall hin ins Netz verschickt werden. Als das RFC
1985 geschrieben wurde, dachte noch niemand an diese Möglichkeit.
Im heutigen Internet kann dieser Protokollfehler aber dazu genutzt
werden, eine bestehende FTP-Verbindung zu "hijacken" und
von dort aus Daten überall ins Internet zu versenden.
Allgemeine Optionen
- -PT
Mit einem TCP Ping können erreichbare Maschinen ermittelt werden,
auch wenn ein Firewall ICMP Pings oder Echos blockiert werden. Hierzu
verwendet diese Scan-Methode ein TCP-Paket mit ACK (Empfangsbestätigung).
Ist die Zielmaschine ansprechbar, antwortet sie mit einem RST (zurücksetzen).
In der Regel wird hierzu der Port 80 benutzt, da er nur sehr selten
von Firewalls gefiltert wird.
- -PS
Diese Option sendet SYN-Pakets, also eine Aufforderung zum Verbindungsaufbau,
statt eines Pakets mit ACK (Empfangsbestätigung). Hier antwortet
der Zielrechner mit einem RST (zurücksetzen) und es wird klar,
der Rechner ist vorhanden und ansprechbar.
- -PI
Die PI-Option sendet einfach nur Pings und hofft auf Server, die
ansprechbar sind und im eigenen Netz auch nach Broadcast-Adressen
suchen. Dies sind IP-Adressen, die von außen erreichbar sind
und Broadcasts (es wird kein festes Ziel definiert sondern an alle
im Netz befindlichen Rechner gesendet) bei ankommenden IP-Paketen
absenden. Sollte dies der Fall sein, sollte das Loch schnell beseitigt
werden, denn der PI-Scan kann eine erste Vorbereitung zu einer Denial
of Service Attacke sein. Genauer gesagt, zu einem Smurf-Angriff.
- -PB
Diese Option stellt den Default-Ping dar. Er verwendet sowohl ACK-
wie auch ICMP Pakets parallel. Auf diese Weise können Firewalls
überwunden werden, die nur eins von beiden filtern.
- -O
Diese Option aktiviert die Identifikation des Zielrechners über
einen TCP/IP-Fingerabdruck. Sie benutzt dazu eine Reihe von Techniken,
die die notwendigen Informationen aus dem Netzwerk-Stack des Zielrechners
ziehen und diese Informationen dann mit denen in einer Datenbank
mit bekannten OS-Fingerabdrücken vergleichen.
- -I
Mit der Option I lässt sich die TCP-Rückkennungs-Abtastung
aktivieren. Aufgrund eines Bugs im Kennzeichnungsprotokoll (RFC
1413) erfolgt über das Protokoll die Freigabe des Usernamens,
der jedem Prozess angefügt ist, der eine TCP-Verbindung aufgemacht
hat.
- -f
Die Option f verursacht die benötigten SYN- FIN oder NULL Pakets
zur Nutzung von fragmentierten IP-Pakets. Die Idee hierbei ist,
die TCP-Header auf mehrere kleine Pakete zu verteilen, um sie schwerer
sichtbar zu machen. Einige Firewalls haben und Intrusion-Detection-Systeme
haben in der Tat Probleme mit der Erkennung fragmentierter Pakets.
- -oN
Mit der Option -oN können die Scan-Ergebnisse in eine Datei
geschrieben werden.
- -p
Mit der Option -p lassen sich Folgen von zu scannenden Ports oder
einen Bereich von zu scannenden Ports angeben.
- -D
Die Option -D ist besonders gerissen, denn mit Hilfe dieser Option
können weitere Maschinen als Lockvögel eingesetzt werden,
die alle den gleichen Zielrechner scannen. Auch wenn an der Zielmaschine
die Abtastversuche registriert werden, kann in der Regel keine Zuordnung
erfolgen, von wo aus der Scanversuch startete.
- -S
Mit der Option -S können gesendete Pakets gespooft, also mit
einer falschen Absender IP-Adresse versehen werden. Auch wenn die
Schutzsysteme des Zielrechners Scans registrieren, können Sie
ihn nicht zum Ursprung zurückverfolgen.
- -g
Die Option -g setzt einen Quellport in die verschickten Pakets.
Viele naive Firewalls und Paketfilter bilden eine Ausnahme in ihren
Filterregeln, erlauben DNS (53) und FTP-Data ( 20) Pakets und akzeptieren
eine Verbindung. Dieser Umstand führt die Sicherheit ad absurdum,
denn Angreifer markieren den Zugriff als DNS oder FTP und verändern
darunter ihren Quellport.
- -r
Diese Option gibt nmap die Anweisung, bis zu 2048 zufällige
Maschinen für einen Scan zu benutzen, um die Sicherungssystem
der eigentlichen Zielmaschine zu verwirren. Besonders dann, wenn
diese Option mit anderen Optionen zum Verlangsamen des Timings der
Scans kombiniert wird.
- -m
Mit der Option -m (max sockets) lässt sich die Höchstzahl
der Sockets einstellen, die parallel benutzt werden. Diese Option
wird gerne dazu benutzt, um die Scans langsamer zu machen und zu
verhindern, dass die Zielrechner abstürzen.
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:
- CGI-basierter Web-Angriffe
- Denial-of-Service-Angriffe
- POP-Serverangriffe
- SSH-Schwachstellen
- Remote-Pufferüberläufe
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:
- Der Hostname des Loadbalancers ist "WWW",
- der eine Webserver heißt "WEB1" und
- der andere Webserver heißt "WEB2".
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.
- Weiterleitungsregeln
Diese Regeln bestimmen Verbindungen von einem Adress/Port-Paar zu einem anderen.
Das Format ist
bindaddress bindport connectaddress connectport
Um zum Beispiel den Webserver mit der Adresse 10.1.1.1 auf jenen mit der Adresse
10.1.1.2 umzuleiten, genügt die Regel:
10.1.1.1 80 10.1.1.2 80
Statt der IP-Adresse sind auch Domainnamen erlaubt. Sollen mehrere Adressen auf ein Ziel
geleitet werden, muß nicht für jeden Rechner eine eigene Weiterleitungsregel geschrieben
werden. So wird durch
0.0.0.0 80 10.1.1.2 80
alles was von außen an Port 80 geht auf 10.1.1.2 umgeleitet. So kann man auch temporär
schnell mal Dienste umleiten.
- Zugangregeln
Weitere Regeln dienen zur Zugangskontrolle. Wenn die Adresse einer neuen Verbindung mit
einer "Deny"-Regel übereinstimmt oder nicht in einer der "Allow"-Regeln zu finden ist,
wird die Verbindung verweigert. Sollen die Zugangsregeln global gelten, müssen sie
am Anfang der Konfigurationsdatei stehen. Stehen Sie hinter einer bestimmten Weiterleitungsregel,
gelten sie nur für diese spezielle Weiterleitung. Zum Beispiel wird mit:
allow 10.1.1.*
10.1.1.1 80 10.1.1.2 80
so werden nur noch die Anfragen aus dem Netz 10.1.1.0 weitergeleitet. Im folgenden
Beispiel gilt diese Einschränkung nur für die erste Regel, nicht für die weiteren:
10.1.1.1 80 10.1.1.2 80
allow 10.1.1.*
10.1.1.3 80 10.1.1.2 80
10.1.1.4 80 10.1.1.2 80
In diesen Regeln sind nur IP-Nummern und keine Hostnamen erlaubt.
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.
- Die erste Datei (z.B. "routen") beschreibt das Netzwerk. Hier steht jeweils
in einer Zeile durch TABs getrennt Netzwerkadresse Netzwerkmaske Gateway.
- Die zweite Datei (z.B. "server") beschreibt die Verbindung(en), die umgeleitet
werden soll(en). In jeder Zeile steht host1 host2.
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.
- SSL Support (Unix with OpenSSL or maybe Windows with ActiveState's
- Perl/NetSSL)
- Full HTTP proxy support
- Checks for outdated server components
- Save reports in plain text, XML, HTML, NBE or CSV
- Template engine to easily customize reports
- Scan multiple ports on a server, or multiple servers via input file (including nmap output)
- LibWhisker's IDS encoding techniques
- Easily updated via command line
- Identifies installed software via headers, favicons and files
- Host authentication with Basic and NTLM
- Subdomain guessing
- Apache and cgiwrap username enumeration
- Mutation techniques to "fish" for content on web servers
- Scan tuning to include or exclude entire classes of vulnerability
- checks
- Guess credentials for authorization realms (including many default id/pw combos)
- Authorization guessing handles any directory, not just the root
- directory
- Enhanced false positive reduction via multiple methods: headers,
- page content, and content hashing
- Reports "unusual" headers seen
- Interactive status, pause and changes to verbosity settings
- Save full request/response for positive tests
- Replay saved positive requests
- Maximum execution time per target
- Auto-pause at a specified time
- Checks for common "parking" sites
- Logging to Metasploit
- Thorough documentation