2 Scanning
<< | < | = | > | >>
2.1 Einführung
Jetzt machen wir uns auf technischer Ebene daran das gegnerische Netz nach potentiellen Opfern und eventuellen Störenfrieden abzusuchen.

Anhand von Ping-Suchläufen erkennen wir erreichbare Hosts im Netzwerk und durch Portscans ermitteln wir die potentielle Angriffsfläche anhand der offenen Ports und des eingesetzten Betriebssystems.

2.2 Ping-Suchläufe
2.2.1 Was ist ICMP
Das Internet Control Message Protocol ist ein gängiges verbindungsloses Internetprotokoll der Netzwerkschicht (ISO/OSI-Layer 3), das Fehler- und Kontrollmeldungen liefert, die für die IP-Paketverarbeitung von Bedeutung sind. Somit ist ICMP für Administratoren ein wichtiges Werkzeug für die Diagnose von Netzwerkproblemen. Router oder Rechnersysteme werten ICMP-Nachrichten meist automatisch aus und veranlassen bestimmte Aktionen oder Umkonfigurationen, welche auch Gefahren in sich bergen können.

,------------------------.
| Typ | Code | Prüfsumme |
|------------------------|
|     Verschiedenes      |
|------------------------|
|   IP-Kopf + 8 Bytes    |
|------------------------|
|          ...           |
`------------------------'
Header eines ICMP-Pakets.

Das ICMP-Datenpaket enthält, wie eingehend schon kurz erwähnt, Fehler- und Diagnoseinformationen. Ein solches Paket wird intern vom IP (Internet Protocol) angestossen und verarbeitet. Obwohl die ICMP-Nachrichten ansich in ein IP-Datenpaket gekapselt werden, bilden sie kein höheres Protokoll, wie zum Beispiel TCP (Transmission Control Protocol) oder UDP (User Datagram Protocol), sondern ein direkter Bestandteil des IP-Protokolls. Das IP-Protokoll kann in der Praxis nicht ohne die Bestandteile von ICMP verwendet werden. ICMP-Nachrichten werden grundsätzlich nur von Systemen abgesetzt, die einen Fehler versendet oder ausgelöst hat, und direkt an den Ursprung der Reise der Datenpakete zurückgeschickt. Man unterscheidet zwischen verschiedenen Typen von ICMP-Nachrichten, welche durch Ziffern in ihrem Header im Feld "Typ" definiert werden und je nach Initialisierungs-Grund anders ausfallen.

2.2.2 Ping-Suchläufe durchführen und auswerten
Die mitunter bekannteste Anwendung innerhalb ICMP ist der Befehl "ping", welcher von Benutzern eingesetzt wird um die Empfangsbereitschaft eines Hosts in einem Netzwerk sicherzustellen. Die Arbeitsweise ist sehr einfach, und nachvollziehbar: Wenn ein Benutzer einen entfernten Rechner anpingt, so schickt er ihm eine gewisse Anzahl von Paketen. Jenachdem ob oder wie diese Pakete beantwortet werden, können Rückschlüsse auf den Netzwerkverkehr und den Host gezogen werden.
 
MS-DOS-Eingabeaufforderung
C:\WINDOWS>ping 192.168.0.10

PING wird ausgeführt für zion.ubs.ch [192.168.0.10] mit 32 Bytes Daten:

Antwort von 192.168.0.10: Bytes=32 Zeit=77ms TTL=249
Antwort von 192.168.0.10: Bytes=32 Zeit=59ms TTL=249
Antwort von 192.168.0.10: Bytes=32 Zeit=66ms TTL=249
Antwort von 192.168.0.10: Bytes=32 Zeit=122ms TTL=249

Ping-Statistik für 192.168.0.10:
    Pakete: Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
Ca. Zeitangaben in Millisek.:
    Minimum = 59ms, Maximum =  122ms, Mittelwert =  81ms

C:\WINDOWS>_

Ping-Suchlauf mittels ping unter Windows 98.

Die ICMP-Anforderung an den Host mit der IP-Adresse 192.168.0.10 ist in diesem Fall erfolgreich: Vier ICMP-Echo-Requests wurden ausgesannt und ebensoviele werden im Rahmen des Timeouts korrekt beantwortet. Die Zeitdauer der Wanderung (engl. Roundtrip) des Pakets kann am Ende der Zeile abglesen werden. Die Zeitwerte unterscheiden sich je nach den eingesetzten Komponenten und deren Auslastung.

Ein sehr efffizientes und beliebtes Programm für Ping-Suchläufe ist das ursprünglich für UNIX entwickelte nmap von Fyodor. Dieses Scanning-Tool bietet schier unendliche Funktionen, die in dieser Form auf allen Plattformen ihresgleichen suchen. Neben dem Erkennen von offenen Ports anhand der exotischsten Scan-Methoden können zum Beispiel auch TCP/IP-Fingerprints zur Ermittlung des Betriebssystems genutzt werden. Aufgrund dieser erweiterten Funktionalität werden wir nmap, das auch auf Windows NT portiert wurde, noch ein paarmal in dieser Dokumentation begegnen.
 
Name Ressourcen Plattform
nmap http://www.insecure.org/nmap UNIX und seine Derivate
nmap NT http://www.eeye.com/html/Databases/Software/nmapnt.html Windows NT/2000
IP Ultra Scan http://members.home.com/ultraj Windows 9x/NT/2000
Utilities zur effizienten Durchführung von Ping-Suchläufen.

Um nun zum Beispiel in einem Klasse C-Netzwerk den Bereich 192.168.0.1 bis 192.168.0.255 auf ansprechbare Rechner abzutasten, bedient man sich des folgenden Befehls:
 
Welcome to SuSE Linux 7.1 (i386) - Kernel 2.2.17

prometheus login: mruef
Password: 
Last login: Wed Jan 17 09:11:13 on tty1
Have a lot of phun...
mruef@prometheus:~ > nmap -sP 192.168.0.*

Starting nmap V. 2.54beta by fyodor@insecure.org ( www.insecure.org/nmap/ )
Host  (192.168.0.10) appears to be up.
Host  (192.168.0.11) appears to be up.
Host  (192.168.0.12) appears to be up.
Host  (192.168.0.20) appears to be up.
Host  (192.168.0.21) appears to be up.
Host  (192.168.0.32) appears to be up.
Host  (192.168.0.225) appears to be up.
Host  (192.168.0.228) appears to be up.
Host  (192.168.0.229) appears to be up.
Nmap run completed -- 256 IP addresses (9 hosts up) scanned in 212 seconds

mruef@prometheus:~ > _

Ping-Suchlauf mit nmap unter SuSE Linux 7.1.

Diese ICMP-Suchläufe ermittelten neun erreichbare Hosts im besagten Netzwerkabschnitt. Diese Information kann im späteren Verlauf eines Angriffs sehr wertvoll sein. Zum einen ist das Wissen um die Netzstruktur für jeden weiteren Schritt auf TCP/IP-Ebene relevant, zum anderen sind diese neun erreichbaren Maschinen weitere potentielle Angriffsziele.

Für die grafische Oberfläche von Windows lohnt sich im Besonderen auch das Nutzen des Programms IP Ultra Scan, welches durch Effizienz und Komfort überzeugen kann:

Ein Ping-Suchlauf mittels IP Ultra Scan auf Windows 98.
Ein Ping-Suchlauf mittels IP Ultra Scan auf Windows 98.

2.2.3 Ping-Suchläufe: Gegenmassnahmen
Laurent Demailly stellt ein spezielles UNIX-Utility mit dem Namen IcmpInfo, zur freien Verfügung. Dieses Programm spürt verdächtige ICMP-Aktivitäten auf, wie zum Beispiel Scans, Bomben oder Stürme. IcmpInfo kann ganz einfach mit dem Befehl "icmpinfo -vvv" gestartet werden, um Ping- und Traceroute-Traffic abzufangen. Es beobachtet sowohl den eingehenden, als auch ausgehenden Datenverkehr und lässt sich recht komfortabel Konfigurieren.

Diverse Firewall-Elemente bieten auch die Funktionalität, ICMP-Nachrichten abzublocken oder zu verwerfen. Ich persönlich halte das Unterdrücken der ECHO-Nachrichten für nicht sinnvoll, weil dadurch dem Netzwerkadministrator ein wichtiges Instrument zur Analyse von Netzwerkproblemen verloren geht. In Hochsicherheitsabschnitten eines Netzwerks sollte diese Massnahme jedoch mindestens temporär in Betracht gezogen werden.

Extrem störend empfindet es meine Person, wenn ISPs (Internet Service Provider) beginnen ICMP-Pakete zu blocken oder verwerfen. Das grenzt für mich schon an eine Zensur bzw. Kastration der TCP/IP-Protokollarchitektur.

2.3 Portscans
2.3.1 Was sind Ports
Sowohl TCP als auch UDP verwenden Port-Adressen, um die Daten an den betreffenden Dienst der Anwendungsschicht zu senden. Ein Port ist eine 16-Bit-Adresse, wobei ein Bereich von 0 bis 255 vordefinierten Ports für bekannte Dienste verfügbar sind; sogenannte well known ports.

            .-----------------------------.
Anwendungs- |TFTP|Sun |SNMP|FTP |Tel-|SMTP|
schicht     |    | RPC|    |    | net|    |    Vordefinierte Port-Adressen
            |-()---()---()-+-()---()---()-| <- für bekannte Dienste der
Transport-  | 69  111  161 | 21   23   25 |    Anwendungsschicht
schicht     |     UDP      |     TCP      |
            |-----------------------------|
            .                             .

Es sind also bestimmte Adressnummern für die verbreitetsten Dienste der Anwendungsschicht, wie zum Beispiel FTP, Telnet, SMTP und HTTP, reserviert. Bei der Entwicklung eines Programms, das mit TCP oder UDP arbeitet, muss daher der zu verwendende Port definiert werden. Um sicherzustellen, dass es nicht zu etwaigen Konflikten kommt, sollte eine Portnummer ausserhalb des Bereichs der well known ports genommen werden.

Anstelle einer festen Zuordnung kann jedoch auch eine dynamische Adresszuteilung der Portnummern eingesetzt werden, wie dies bei NFS als Funktion mit den Namen "Portmapper" genutzt wird.

2.3.2 Was ist ein Portscan
Im mir sehr gefallenden Schreiben "Das Anti-Hacker-Buch" wird in der Einführung zum Kapitel zu Scanning eine ziemlich passende Metapher verwendet: "Wenn man das Footprinting mit dem Ausspionieren eines Gebäudes auf der Suche nach Informationen vergleichen kann, ist das Scanning mit dem Abklopfen der Wände zum Auffinden der Türen und Fenster vergleichbar." Unter Scanning finden sich viele verschiedene Methoden, die auch jeweils verschiedene Ziele zur Folge haben.
 
Name Ressourcen Plattform
7th Sphere Portscanner Windows 9x/NT/2000
ascan http://www.kryptocrew.de UNIX und seine Derivate
nmap http://www.insecure.org/nmap UNIX und seine Derivate
nmapNT http://www.eeye.com/html/Databases/Software/nmapnt.html Windows NT/2000
PortScan Windows 9x/NT/2000
PtScan Windows 9x/NT/2000
Shadow Scanner Windows 9x/NT/2000
SuperScan Windows 9x/NT/2000
Einige empfehlenswerte Portscan-Utilities.
2.3.3 Verschiedene Portscan-Typen
Nmap bietet, ausser den bei den meisten Port-Scanning-Tools implementierten Funktionen, erweiterte TCP- und UDP-Funktionalitäten, die mit einer Portion Wissen das Leben eines Netzwerkadministrators oder Angreifers extrem erleichtern können:

TCP-Portscan

Der Parameter "-sT"  führt einen normalen TCP-Portscan durch, bei dem zwangsweise eine Verbindung zum Ziel-Port aufgebaut werden muss, wodurch die Prozedur des 3-Wege-Handshakes von TCP-Verbindungen komplett abgearbeitet wird. Um eine TCP-Verbindung herzustellen muss der Client als erstes mit der Übertragung eines SYN-Paketes an den Server beginnen. Jener Quittiert den Empfang mit einem SYN-/ACK-Paket und wartet dann auf den Erhalt einer weiteren Bestätigung durch ein ACK-Paket von Seiten des Clients ab.

[Client]       [Server]
    |             |
    |-----SYN---->|
    |             |
    |<--SYN/ACK---|
    |             |
    |-----ACK---->|

Diese Scanning-Technik ist sehr leicht zu erkennen, wird standartmässig von nmap ohne Scan-Technik-Parameter angewandt und kann von jedem User auf jedes beliebige System ausgeführt werden.

SYN-Portscan (half open scan)

Die Option "-sS" erlaubt es dem Administrator auf einem System mit nmap einen halboffenen Scan (engl. half open scan) durchzuführen. Diese Technik verdient daher den Namen, da keine vollständige TCP-Verbindung zustande kommt. Stattdessen wird ein SYN-Paket zum Ziel-Port übertragen. Wenn der Ziel-Port mit SYN/ACK antwortet, kann davon ausgegangen werden, dass der Port den Listening-Status besitzt. Wenn RST/ACK zurückgegeben wird, kann mit ziemlicher Wahrscheinlichkeit ein inaktiver Port dadurch angedeutet worden sein. Das Client-System überträgt nach dem Empfang des Paketes des Hosts ein RST/ACK-Paket, so dass keine vollständige Verbindung hergestellt wird.

[Client]       [Server]
    |             |
    |-----SYN---->|
    |             |
    |<--SYN/ACK---|
    |             |
    |-----RST---->|

Diese Technik hat den Vorteil, dass sie viel unauffälliger auf den Ziel-Host einwirkt und somit schwieriger zu erkennen ist, da die meisten Systeme nur vollständige Verbindungen protokollieren. Interessant ist die stark verfälschte Ausgabe eines SYN-Portcans, wenn er auf ein Windows 9x-System ausgerichtet ist.

Stealth-FIN-Portscan

Der Schalter "-sF" kann den Network Mapper als Root veranlassen einen Stealth-FIN-Scan durchzuführen, bei jener Technik ein FIN-Paket zum Ziel-Port übertragen wird. Nach der Empfehlung von RFC 793 (Transmission Control Protocol) müsste der Host danach RST für alle geschlossenen Ports zurückgeben.

[Client]       [Server]
    |             |
    |-----FIN---->|
    |             |
    |<----RST-----|

Dies ist eine weitere Scanning-Möglichkeit, die zur Nutzung den Status eines Administrators voraussetzt. Diese Technik funktioniert normalerweise nur bei UNIX-basierenden TCP-Stacks, was wiedereinmal die
inkorrekte Implementierung von Microsoft in ihr Windows 9x deutlich werden lässt.

XMas-Portscan

Der Parameter "-sX" ermöglicht eine Technik, bei der der Scanner ein FIN-, ein URG- und ein PUSH-Paket zum Ziel-Port schickt. Nach den Empfehlungen von RFC 792 (Internet Control Message Protocol) müsste der Host RST für alle geschlossenen Ports zurückgeben.

[Client]       [Server]
    |             |
    |-----FIN---->|
    |-----URG---->|
    |-----PUSH--->|
    |             |
    |<----RST-----|

Es sind administrative Rechte für das Durchführen eines solchen Scans von Nöten. Meistens funktioniert dieses Vorgehen nur bei Systemen mit UNIX-Protokollstapeln.

TCP-Null-Portscan

Mit der Option "-sN" führt nmap einen sogenannten TCP-Null-Scan durch, bei dem alle Flaggen ausgeschaltet werden. Nach den Empfehlungen von RFC 793 (Transmission Control Protocol) müsste das Ziel-System RST für alle geschlossenen Ports retournieren.

[Client]       [Server]
    |             |
    |-----...---->|
    |             |
    |<----RST-----|

Um einen TCP-Null-Scan durchzuführen ist der Besitz des adminstrativen Status nötig. Auch dieser Scan funktioniert meist nur bei Systemen mit UNIX-Stacks.

UDP-Portscan

Mit dem Schalter "-sU" führt nmap einen UDP-Portscan durch, bei dem lediglich ein UDP-Paket zum Ziel-Port übertragen wird. Wenn der Ziel-Port mit der Nachricht "ICMP Port unreachable" den Erhalt quittiert, ist der Port inaktiv und somit geschlossen. Falls diese ICMP-Nachricht nicht an den scannenden Clienten zurückgeschickt wird, kann davon ausgegangen werden, dass der Port horcht.

[Client]       [Server]
    |             |
    |-----UDP---->|
    |             |
    |<----ICMP----|

Als erstes muss erwähnt sein, dass auch diese Scanning-Technik Administator-Rechte benötigt. UDP ist als verbindungsloses Protokoll bekannt und bietet daher nicht so genaue Transaktionen wie TCP. Aus diesem Grunde hängt die Genauigkeit dieser Scan-Technik von vielen kleineren Faktoren, wie zum Beispiel der Auslastung des Netzwerks oder den Systemressourcen, ab. Desweiteren kann sich ein UDP-Scan extrem in die Länge ziehen, wenn im grossen Umfang Paketfilter eigesetzt werden sollten. UDP-Scans über das Internet sind eine sehr undankbare Aufgabe. Sehr interessant ist, dass der Scan einwandfreie Informationen über Microsoft Windows 9x offenbart, jedoch den User mit einer absolut korrupierten Ausgabe bei Scans, die auf BeOS 4.5 losgelassen werden, konfrontiert wird.

2.3.2 Portscanning: Gegenmassnahmen
Ein Portscan kann nur Durchgeführt werden, wenn eine direkte Verbindung zum Zielhost hergestellt werden kann. Sauber konfigurierte Firewall-Systeme können Wunder wirken, wenn es um das Verhindern von Portscans geht.
2.4 Das Betriebssystem erkennen
Das Wissen um das eingesetzte Betriebssystem auf einem Ziel-Host ist von unbeschreibbarer Wichtigkeit für den Durchführer einer Attacke. Betriebssysteme weisen besondere Eigenschaften auf, die für das Eindringen individuell genutzt werden müssen. Ohne zu wissen was man angreift, rennt man blindlings gegen eine Wand. Die folgenden Techniken sollen Licht ins Dunkle bringen, um Attacken nicht verpuffen zu lassen.

2.4.1 Anhand der offenen Ports

Jeder Host wird bei seiner Auslieferung mit einer für ihn typischen Konfiguration ausgehändigt. Diese Skalierung weitet sich natürlich auch auf die ansprechbaren Dienste und damit verbundenen offenen Ports aus. Daher kann man anhand der offenen Ports unter Umständen das Zielsystem erkennen. Diese Technik der spezifischen Informationsbeschaffung wird auch Fingerprinting genannt.

Windows 9x wird bei der Auslieferung mit dem offenen Port 139 ausgeliefert, der für die Datei- und Drucker-Freigabe über NetBIOS genutzt wird. Ein typischer Portscan auf ein Windows 9x sieht daher folgendermassen aus:
 
Welcome to SuSE Linux 7.1 (i386) - Kernel 2.2.17

prometheus login: mruef
Password: 
Last login: Wed Jan 17 09:11:13 on tty1
Have a lot of phun...
mruef@prometheus:~ > nmap 192.168.0.225

Starting nmap V. 2.54beta by fyodor@insecure.org ( www.insecure.org/nmap/ )
Interesting ports on  (192.168.0.225):
(The 1522 ports scanned but not shown below are in state: closed)
Port       State       Service
139/tcp    open        netbios-ssn

Nmap run completed -- 1 IP address (1 host up) scanned in 3 seconds

mruef@prometheus:~ > _

Normaler TCP-Portscan mit nmap auf SuSE Linux 7.1 gegen ein Windows 98.

Windows NT hat normalerweise bei der Auslieferung den Zustand, dass die beiden Ports 135 und 139 als offen angezeigt werden. Windows 2000 wartet da schon mit einer ganzen Liste an offenen Ports auf:
 
Port-Nummer Dienst
TCP-Port 88 Kerberos
TCP-Port 389 LDAP
TCP-Port 445 Microsoft-DS
TCP-Port 464 Secure LDAP
TCP-Port 593 Secure LDAP
TCP-Port 636 Secure LDAP
TCP-Port 3268 Globaler Katalog
TCP-Port 3269 Globaler Katalog
TCP-Port 3372 Globaler Katalog
TCP-Port 6586 Globaler Katalog
Offene Ports bei einer Standartinstallation von Windows 2000.

Bei UNIX und seinen Derivaten ist es da schon viel schwieriger, da sehr individuell Dienste angeboten werden können.

2.4.2 Anhand der offenen Ports: Gegenmassnahmen
Deaktivieren Sie stets alle unbenötigten Dienste, was nicht nur im Umfang des Informationsschnüffels Positives zur Systemsicherheit beiträgt.

Ist dies nicht möglich, so empfiehlt sich das Nutzen von Firewall-Systemen: Vor allem machen Desktop-Firewalls für Windows in dieser Hinsicht Sinn, da relativ schnell und komfortabel die meist ungenutzten Standartports unansprechbar gemacht werden können.

2.4.3 Anhand der Banner
Das Abfangen von Bannern ist sehr beliebt und gleichermassen effizient. Dabei wird lediglich eine Verbindung mit einem Dienst auf der Maschine des Opfers hergestellt, und die dadurch erreichbaren Informationen ausgewertet.

Diese Art der Informationsbeschaffung ist nur in Umgebungen relevant, in der auch Dienste angeboten werden (Vorzugsweise Windows NT/2000- und UNIX-Maschinen). Sprich, solange nur eine Standartinstallation von Windows 9x im Netz hängt, kann anhand der Banner keine relevanten Informationen abgegriffen werden.

Ein gutes Beispiel ist ein Verbindungsaufbau mit der Terminal-Emulation Telnet zu einem SMTP-Relay über TCP-Port 25, obwohl auch praktisch jeder andere Dienst solch wertvolle Informationen liefern kann:
 
Welcome to SuSE Linux 7.1 (i386) - Kernel 2.2.17

prometheus login: mruef
Password: 
Last login: Wed Jan 17 09:11:13 on tty1
Have a lot of phun...
mruef@prometheus:~ > telnet mail.ubs.ch 25

Trying 193.134.254.222...
Connected to mail.ubs.ch.
Escape character is '^]'.
220 mail.ubs.ch ESMTP Sendmail 8.11.1/8.11.0; Sat, 20 Jan 2001 13:22:33 +0100 (MET)

mruef@prometheus:~ > _

Eine aktive Telnet-Verbindung auf SuSE Linux 7.0 zu einem SMTP-Relay der UBS.

Anhand dieses Banners bringen wir folgende essentiell für einen Angreifer wichtigen Informationen in unseren Besitz:

  1. Der Host mail.ubs.ch besitzt die IP-Adresse 193.134.254.222.
  2. Auf dem besagten SMTP-Relay wird die Mail-Software ESMTP Sendmail 8.11.1/8.11.0 genutzt, was uns zusätzlich ein UNIX-System vermuten lässt.
  3. Es werden die Erweiterungen von SMTP unterstützt, was vom E im Akronym ESMTP abgeleitet werden kann.
Ist man im Besitz des Namens einer eingesetzten Software, findet man auch relativ schnell heraus, um welches Betriebssystem es sich handeln könnte. In diesem Beispiel haben wir es mit einer Linux-Maschine zu tun, da die besagte SMTP-Software für keine andere Architektur zur Verfügung steht.
2.4.4 Anhand der Banner: Gegenmassnahmen
Falls die Möglichkeit besteht, empfiehlt sich ein administrativer manipulativer Eingriff in die Banner-Ausgabe. Sehr schön können so Systeme und Dienste vorgetäuscht werden. Es ist zudem ziemlich amüsant und interessant zuzusehen, wie ein Angreifer einen angeblich ihm bekannten Dienst attackiert...

Ausserdem sollte bestensfalls die unerlaubte Einsicht solcher Informationen durch Firewall-Systeme verhindert werden. Diese Lösung ist leider nicht immer realisierbar und bedarf einiges an technischem und finanziellem Aufwand.

Letztendlich ist die beste Lösung, nicht benötigte Dienste zu deaktivieren oder gar zu deinstallieren; denn wo nichts ist, kann auch nichts erfahren werden.

2.4.5 Anhand der TCP-Sequenzen (Fingerprinting)
Mit dem Parameter "-O" wird bei nmap ein sogenannter Fingerprint des gescannten Hosts angefertigt, wodurch das verwendete Betriebssystem mit hoher Wahrscheinlichkeit korrekt ermittelt werden kann. Neben einer ziemlich genauen Bestimmung des Betriebssystems wird auch eine Einschätzung bezüglich der Stabilität der Sicherheitsarchitektur publiziert. Das Resultat beruht auf einer Analyse der Charakteristika der TCP-Sequenzen. Diese Option erwartet verständlicherweise Root-Privilegien, da mit dem Nutzen dieser Funktion einem Angreifer der erste Schritt für das Eindringen in ein System im Netzwerk ermöglicht wird. Es kommt nahezu nie vor, dass ein falsches Betriebssystem prognostiziert wird, solange die Protokollstapel beim Host nicht manipuliert wurden. Es kann höchstens vorkommen dass nmap dem Fingerabdruck des Computers kein Betriebssystem zuordnen kann. Sollte es einem Endanwender von nmap möglich sein das Betriebssystem zu identifizieren, kann er per CGI-Script auf http://www.insecure.org/cgi-bin/nmap-submit.cgi aktiv zur Perfektionierung von nmap beitragen.

Folgend nun die Ausgabe eines Scans gegen Windows NT 4.0 mit installiertem Service Pack 6:
 
root@prometheus:~ > nmap -O 192.168.0.10

Starting nmap V. 2.54beta by fyodor@insecure.org ( www.insecure.org/nmap/ )
Interesting ports on  (192.168.0.10):
(The 1517 ports scanned but not shown below are in state: closed)
Port       State       Service
42/tcp     open        nameserver 
135/tcp    open        loc-srv 
139/tcp    open        netbios-ssn 
1031/tcp   open        iad2 
6667/tcp   open        irc 
6668/tcp   open        irc 

TCP Sequence Prediction: Class=trivial time dependency
                         Difficulty=2 (Trivial joke)
Remote operating system guess: Windows NT4 / Win95 / Win98

Nmap run completed -- 1 IP address (1 host up) scanned in 1 second

root@prometheus:~ > _

Ein normaler TCP-Portscan mit TCP-Fingerprinting mittels nmap auf SuSE Linux 7.1 gegen ein Windows NT 4.0 mit installierten Service Pack 6.

Ein Fingerprint inklusive der Angaben zu ident sieht gegen ein SuSE Linux 7.1 da schon ein bisschen anders aus:
 
root@prometheus:~ > nmap -O 192.168.0.11

Starting nmap V. 2.54beta by fyodor@insecure.org ( www.insecure.org/nmap/ )
Interesting ports on localhost (192.168.0.11):
(The 1520 ports scanned but not shown below are in state: closed)
Port       State       Service                 Owner
22/tcp     open        ssh                     root
23/tcp     open        telnet                  root
25/tcp     open        smtpd                   root
80/tcp     open        http                    nobody
6000/tcp   open        X11                     root

TCP Sequence Prediction: Class=random positive increments
                         Difficulty=180490 (Good luck!)
Remote operating system guess: Linux 2.1.122 - 2.2.16

Nmap run completed -- 1 IP address (1 host up) scanned in 1 second

root@prometheus:~ > _

Ein normaler TCP-Portscan mit TCP-Fingerprinting und ident-Analyse mittels nmap auf SuSE Linux 7.1 gegen ein SuSE Linux 7.1.

Bei der Durchsicht dieses Ergebnisses wird einem geübten Angreifer sofort der Besitzer des SMTPD (Mail-Daemon) ins Auge fallen: Der Besitzer Root ist dafür zuständig. Kann das System über diesen Dienst erfolgreich kompromittiert werden, erlangt ein Angreifer in jedem Falle volle administrative Rechte. Mehr Informationen zum Identifikations-Protokoll findet sich im offiziellen RFC1413 (Identification Protocol), von dem auch eine deutsche Übersetzung von mir existiert.

Als kleiner Tip sei hier angebracht, dass die Analyse von TCP-Sequenzen am besten nicht auf alle Ports gleichermassen durchgeführt wird; erfahrungsgemäss können dabei die Resultate stark verfälscht werden. Im Idealfall sucht man sich einen populären Dienst aus, auf dem man die Analyse ansetzen möchte. Ich persönlich bevorzuge Scans gegen etablierte HTTP- (TCP-Port 80) und FTP-Daemonen (TCP-Port 21).

2.4.6 Anhand der TCP-Sequenzen: Gegenmassnahmen
Mit Eingriffen in die Handhabung des Betriebssystems bei Verbindungs-Anforderungen und direkt beim Protokollstapel könnte ein anderes Betriebssystem vorgetäuscht werden. Diese Aktion ist jedoch mit dem bitteren Beigeschmack eines möglichen Performance- und Stabilitäts-Verlusts des Betriebssystems in Angriff zu nehmen.
2.5 Security-Scanner
Das Auffinden von potentiellen Sicherheitslücken kann mit sogenannten Security-Scannern automatisiert werden. Ein solches Programm tastet ein System auf Schwachstellen ab, um deren Existenz in einem Bericht zu verdeutlichen, um möglichst effizient Gegenmassnahmen deren Missbrauchs einleiten zu können.
 
Name Ressource Plattform: Angreifer Plattform: Opfer
BASS (Bulk Auditing Security Scanner) http://www.securityfocus.com/data/tools/
network/bass-1.0.7.tar.gz
UNIX/Linux alle
Cheops http://www.marko.net/cheops UNIX/Linux mit GTK+ alle
Cops http://www.fish.com/cops UNIX/Linux UNIX/Linux
ISS (Internet Security Scanner) http://www.iss.net Windows NT/2000, UNIX/Linux alle
Nessus http://www.nessus.org Windows 9x/NT/2000, UNIX/Linux alle
NSS (Network Security Scanner) http://www.giga.or.at/pub/hacker/unix/nss.tar.gz UNIX/Linux UNIX/Linux
Pandora http://www.nmrc.org/pandora/index.html DOS, Windows 9x/NT, UNIX/Linux Novell Netware
SAINT (Security Administrators Intergrated Network Tool) http://www.wwdsi.com/saint UNIX/Linux Windows 9x/NT/2000, UNIX/Linux
SATAN (Security Administrators Tool for Analyzing Networks) http://www.fish.com/satan UNIX/Linux Windows 9x/NT/2000, UNIX/Linux
STC (Simple Tool Collection) http://www.kryptocrew.de/snakebyte Windows 9x/NT/2000 alle
Tiger http://www.giga.or.at/pub/hacker/unix/tiger-2.2.3.tar.gz UNIX/Linux UNIX/Linux
Eine Liste der besten Security-Scanner zum automatisierten Auffinden von potentiellen Schwachstellen.

Das Tool mit dem Namen SATAN (Security Administrators Tool for Analyzing Networks) gilt als die erste ernstzunehmen Entwicklung auf diesem Sektor und sorgte bei seiner Veröffentlichung für Aufsehen. Das für die UNIX-Plattform geschriebene Programm kombiniert verschiedene Scanning- und Auswertungs-Techniken, um dem Administrator einen Bericht über den Sicherheitszustand des Systems vorweisen zu können. Die Weiterentwicklung von SATAN nennt sich SAINT (Security Administrators Intergrated Network Tool):

SAINT (Security Administrators Intergrated Network Tool)
SAINT (Security Administrators Intergrated Network Tool) in Aktion auf SuSE Linux 7.1 auf Netscape unter KDE.

Nicht nur Cracker-Anfänger nutzen die Möglichkeiten von Security-Scannern. Besonders im professionellen Einsatz sind solche Programme unerlässlich, um effizient und komfortabel Schwachstellen entdecken und nachträglich beseitigen zu können. Hier können Sie eine typische HTML-Ausgabe von Nessus auf einem SuSE Linux begutachten.

2.6 Zusammenfassung
In diesem Kapitel haben wir die verschiedenen Scan-Methoden besprochen, die zur Analyse eines Netzwerks und der darin befindlichen Systeme genutzt werden können.

In der ersten Phase werden Ping-Suchläufe genutzt, um über die Erkennung von nutzbaren Diensten zur Entdeckung des Betriebssystem weitergehen zu können. Unter gewissen Umständen können Security-Scanner das komplette Prozedere abkürzen und beschleunigen: Vor allem im professionellen Einsatz sind solche Tools unerlässlich.

Das Scannen ist sehr wichtig, da man sich dadurch erst im Klaren werden kann, was man angreift: Ohne zu wissen, was man attackiert, wird man buchstäblich ziemlich lange im Dunkeln stehen.

 
<< | < | = | > | >>