Kapitel 3 Hacker und Cracker

Werbung
Kapitel 3
Hacker und Cracker
In diesem Kapitel möchte ich Ihnen erläutern, welche Ansätze und Vorgehensweisen Hacker und Cracker verfolgen, um ein Netzwerk zu attackieren. Ferner
finden Sie hier auch einen Überblick über die Hitliste der zwanzig gefährlichsten Sicherheitslücken, die von der Gruppe SANS (SysAdmin, Auditing, Network, Security; Systemadministration, Netzwerke und Sicherheit; http://
www.sans.org) aufgestellt wurde.
3.1 Hacker und Cracker – wo ist der Unterschied?
Damit man die Vorgehensweise eines Hackers oder Crackers versteht, muss
man begreifen, was ein Hacker oder ein Cracker ist. Der Unterschied zwischen
Hackern und Crackern war jahrelang Gegenstand hitziger Debatten im Web;
meinen Beitrag dazu finden Sie hier.
Wenn man mich also fragen würde, wo ich die Grenze zwischen Hackern und
Crackern ziehen würde, dann wären meine Definitionen die folgenden:
■
■
Ein Hacker ist ein Individuum, das sich in hohem Maße für die geheimnisvollen und verborgenen Arbeitsabläufe von Computerbetriebssystemen interessiert. Hacker sind oft Programmierer und verfügen insofern über
fortgeschrittenes Wissen über Betriebssysteme und Programmiersprachen.
Hin und wieder entdecken sie Löcher in diesen Systemen und oft auch die
Ursachen dieser Löcher. Hacker gieren nach Wissen, teilen ihre Erkenntnisse freimütig mit anderen und werden niemals – niemals! – mit Absicht
Daten beschädigen oder gar ganze Rechner lahm legen.
Im Vergleich hierzu handelt es sich beim Cracker um eine Person, die in
böswilliger Absicht in Rechnersysteme eindringt oder deren Integrität
anderweitig beschädigt. Nachdem sie sich unberechtigten Zugriff verschafft
haben, zerstören Cracker oft wichtige Daten, enthalten befugten Benutzern
Dienste vor oder verursachen ganz einfach Probleme auf dem Zielsystem.
Diese Cracker sind leicht an ihrer heimtückischen Handlungsweise zu
erkennen. Manchmal verhalten sie sich auch so unauffällig wie möglich und
richten sich versteckt auf dem Rechner ein, um ihn dann unbemerkt für
Angriffe auf weitere Rechner zu benutzen.
Ferner ist festzuhalten, dass zwei unterschiedliche Arten von Crackern zu
unterscheiden sind. Auf den ersten Typ trifft man glücklicherweise nur selten:
Es handelt sich um Cracking-Experten, die neue Sicherheitslücken entdecken
und oft Programme entwickeln, um diese Lücken auszunutzen. Die zweite
>>> NEW TECH
79
Kapitel 3 • Hacker und Cracker
Sorte von Crackern sind die Script-Kids; sie wissen lediglich, wo solche Programme zu bekommen sind und wie man sie ausführt. Die Script-Kids sind
zwar zahlreicher, aber auch leichter zu enttarnen und zu stoppen.
Soviel zu dieser grundlegenden Unterscheidung und dem Selbstverständnis dieses Buches.
3.2 Der Werkzeugkasten
Es gibt verschiedene Werkzeuge, mit denen ein Cracker oder Hacker in Ihr
Netzwerk eindringen kann. Dabei handelt es sich teils um Programme, teils um
Methoden.
3.2.1
Reconnaissance
»Reconnaissance« bezeichnet im Englischen den Begriff des Auskundschaftens,
wie man ihn aus Indianer- oder Spionageromanen kennt. Warum benutzen Cracker diese Methode? Nun, das Auskundschaften ist ja nichts anderes als der
Prozess des Sammelns von Informationen über ein oder mehrere Zielobjekte.
Ein gewiefter Einbrecher wird sein Zielobjekt – das Haus, das er ausrauben will
– vor der Tat auskundschaften: Er wird beispielsweise feststellen, wann die
Besitzer zu Hause sind, wie belebt die Straße ist und ob vielleicht sogar mal ein
Streifenpolizist zu sehen ist. Dadurch erhält der Ganove einen guten Eindruck
davon, welche Tageszeit für seine Missetat am geeignetsten ist.
Ein Cracker, der einen Angriff auf ein Netzwerk oder eine Website plant, wird
die gleiche Vorgehensweise wählen. Es gibt für die Reconnaissance eine Menge
von Arbeitsmitteln, von denen wir uns im Folgenden ein paar ansehen wollen.
Social Engineering
Der erste (und wahrscheinlich am häufigsten unterbewertete) Ansatz ist das so
genannte Social Engineering. Darunter versteht man eine Vorgehensweise, bei
der Leute derart getäuscht, gelenkt oder manipuliert werden, dass sie Informationen preisgeben, die für sie oder Dritte, eine Firma oder eine Organisation
schädlich sind. Solche Informationen können dann bei der Planung, Organisation oder Durchführung eines Angriffs verwendet werden.
HINWEIS
Ira Winkler hat ein hervorragendes Buch namens »Corporate Espionage« verfasst, in dem das Social Engineering und viele andere taktische Ansätze zur
Informationssammlung beschrieben werden. Ferner wird hier auch beschrieben, wie Sie sich vor solchen Angriffen schützen können. Mehr Informationen
zu Ira Winkler finden Sie unter http://www.annonline.com/interviews/
970512/. Ein weiteres empfehlenswertes Buch ist »The Art of Deception«,
verfasst von dem berühmten Cracker Kevin Mitnick.
80
>>> NEW TECH
Der Werkzeugkasten
Wie funktioniert Social Engineering? Nehmen wir einmal an, Cracker A
möchte das Softwareunternehmen ABC123 GmbH attackieren, um ein paar
Benutzernamen und Kennwörter in Erfahrung zu bringen und vielleicht auch
herauszufinden, welche Sicherheitsmaßnahmen ABC123 implementiert hat. Er
ruft also bei der offiziellen Telefonnummer von ABC123 an und erklärt der
freundlichen Dame am anderen Ende der Leitung, dass er neu bei der Firma sei
und zudem auswärts tätig wäre; nun bräuchte er die Durchwahl zum Support,
um sein Mailkonto und sein Kennwort konfigurieren zu können. Daraufhin
erhält er die Nummer. Dann ruft er beim Support an, erläutert die Situation
und bittet um ein Kennwort und Angaben dazu, wie er das Netzwerk von
außen erreichen kann. Der Supportmitarbeiter gibt bereitwillig Auskunft und
stellt die Anforderung nicht einmal in Frage. Warum auch? Die meisten Supportmitarbeiter wagen es nicht, es auf eine Konfrontation ankommen zu lassen,
etwa nach dem Motto »Niemals einen Kunden verärgern«.
Dieses einfache Szenario gibt dem Angreifer bereits genug Daten an die Hand,
um einen Angriff ungesehen durchführen zu können. Die nachfolgend aufgeführten Methoden funktionieren ähnlich wie das Social Engineering:
■
■
Abfall durchwühlen. Hierbei macht sich der Angreifer über den Mülleimer
oder den Papierkorb des Opfers her und sucht dort nach Abfall, der Informationen enthält – etwa IP-Adressen, abgelaufene Kennwörter und vielleicht sogar einen Netzwerkplan. Hierbei handelt es sich im wahrsten Sinne
des Wortes um ein »schmutziges« Geschäft, das aber sehr effektiv sein
kann.
Hochstapelei. Ein Cracker gibt vor, eine wichtige Person zu sein, und nutzt
die daraus entstehende Autorität, um an die gewünschten Informationen zu
gelangen.
Diese Ansätze führen meist zu sehr guten Ergebnissen, und es gibt noch viel
mehr Methoden, die zu beschreiben aber den Rahmen dieses Buches sprengen
würde. Denken Sie immer daran, dass es Leute gibt, die solche Praktiken
anwenden und damit Ihre Sicherheit oder die Sicherheit Ihrer Firma bedrohen.
Portscanner
Dieser Abschnitt gibt einen technischen Überblick über Portscanner und Sniffer. Portscanner sind Programme, die den TCP/IP-Stapel eines Computers nach
Ports (Anschlüssen) absuchen, die den Status LISTEN aufweisen. TCP/IP
umfasst eine ganze Reihe von Protokollen, die die Kommunikation über das
Internet ermöglichen. Einige Protokolle aus der TCP/IP-Familie (TCP, UDP)
kennen jeweils 65.535 Ports. Die Ports 1 bis 1023 gelten dabei als »WellKnown-Ports« (»gängige Ports«), und auf vielen Systemen können nur Benutzer mit Administratorprivilegien Prozesse starten, die diese Ports abfragen. Die
Ports 1024 bis 49151 sind registrierte Ports, die verbleibenden Ports 49152 bis
65535 werden als dynamische und/oder private Ports bezeichnet.
>>> NEW TECH
81
Kapitel 3 • Hacker und Cracker
TIPP
Eine Liste mit den Port-Nummern finden Sie online unter http://
www.iana.org/assignments/port-numbers.
Das TCP-Protokoll wird in RFC 793 behandelt, wo viele Ports festgeschrieben
sind, die Socketprogrammierer beachten müssen. Ferner ist hier definiert, wie
TCP auf die verschiedenen Pakete (mit den Statusbits FIN, ACK, RST, PSH,
URG und SYN) reagiert:
Wenn der Status der Verbindung auf einem Port CLOSED ist (ein fiktiver Status, denn dies bedeutet einfach, dass der TCP-Block – und damit eine Verbindung – nicht vorhanden ist), dann werden alle Daten des empfangenen Pakets
verworfen. Ein empfangenes Paket, das eine RESET-Meldung (RST) enthält,
wird verworfen. Ein empfangenes Paket, das keine RST-Meldung enthält,
verursacht das Senden einer RST-Meldung als Reaktion auf den Empfang.
Die Werte des Bestätigungs- und Sequenzfeldes werden selektiert, damit der
TCP-Sender, der das irreguläre Paket übermittelt hat, die RST-Meldung
akzeptiert.
Ist der Status hingegen LISTEN (das Programm hinter dem Port wartet auf
eine eingehende Verbindung), dann prüfen Sie zunächst auf Vorhandensein
einer RST-Meldung; eine eingehende RST-Meldung sollte ignoriert werden.
Als Nächstes prüfen Sie auf Vorhandensein einer ACK-Meldung; Bestätigungen, die über Verbindungen mit LISTEN-Status erhalten werden, sind generell als negativ zu betrachten. Für jedes empfangene ACK-Paket sollte ein
adäquates RST-Paket erstellt werden. Die dritte Überprüfung bezieht sich auf
eine SYN-Meldung (Sequenznummernsynchronisierung); ist das SYN-Bit
gesetzt, dann überprüfen Sie die Sicherheitsparameter des eingehenden Paketes. Wenn diese Sicherheitsparameter nicht exakt mit denen des TCB (Transmission Control Block, Übertragungskontrollblock) übereinstimmen, dann
senden Sie eine RST-Meldung und beginnen von vorn.
Dieser Auszug aus RFC 793 sagt uns, wie Ports mit dem Status CLOSED bzw.
LISTEN auf bestimmte TCP-Flags reagieren. Mit diesem Wissen können Entwickler Programme schreiben, die sowohl offene als auch geschlossene Ports
erkennen. Dies sind die Programme, die man dann als »Portscanner« bezeichnet.
Sehen wir uns einmal ein paar populäre Portscanner an und überprüfen wir,
was diese können (und was sie nicht können).
TIPP
Informationen über TCP/IP finden Sie im Web unter http://www.ietf.org/
rfc/rfc0793.txt und http://www.ietf.org/rfc/rfc0791.txt.
Weitere Informationen über das Verhalten von TCP/IP können Sie unter
http://www.insecure.org/nmap/nmap-fingerprinting-article.html nachlesen.
82
>>> NEW TECH
Der Werkzeugkasten
Nmap
Nmap ist der derzeit wahrscheinlich meistverbreitete und -genutzte Portscanner
überhaupt. Er ist eine Entwicklung von Fyodor (mehr zu ihm unter www.insecure.org) und wurde dank des offen gelegten Quellcodes von Mitgliedern der
gesamten Internetgemeinde immer weiterentwickelt. Nmap erlaubt dem Benutzer die Einstellung zahlreicher Optionen für den Scanprozess. Listing 3.1 zeigt
die Ergebnisse des Befehls nmap -h. Dies ist ein hervorragender Ausgangspunkt
für Nmap. Weitere Informationen zu Nmap finden Sie unter http://www.insecure.org/nmap/data/nmap_manpage.html.
Listing 3.1: Ergebnisse von nmap -h
Nmap V. 3.00 Usage: nmap [Scan Type(s)] [Options] <host or net list>
Some Common Scan Types ('*' options require root privileges)
* -sS TCP SYN stealth port scan (default if privileged (root))
-sT TCP connect() port scan (default for unprivileged users)
* -sU UDP port scan
-sP ping scan (Find any reachable machines)
* -sF,-sX,-sN Stealth FIN, Xmas, or Null scan (experts only)
-sR/-I RPC/Identd scan (use with other scan types)
Some Common Options (none are required, most can be combined):
* -O Use TCP/IP fingerprinting to guess remote operating system
-p <range> ports to scan. Example range: '1-1024,1080,6666,31337'
-F Only scans ports listed in nmap-services
-v Verbose. Its use is recommended. Use twice for greater effect.
-P0 Don't ping hosts (needed to scan www.microsoft.com and others)
* -Ddecoy_host1,decoy2[,...] Hide scan using many decoys
-T <Paranoid|Sneaky|Polite|Normal|Aggressive|Insane> General timing policy
-n/-R Never do DNS resolution/Always resolve [default: sometimes resolve]
-oN/-oX/-oG <logfile> Output normal/XML/grepable scan logs to <logfile>
-iL <inputfile> Get targets from file; Use '-' for stdin
* -S <your_IP>/-e <devicename> Specify source address or network interface
--interactive Go into interactive mode (then press h for help)
Example: nmap -v -sS -O www.my.com 192.168.0.0/16 '192.88-90.*.*'
SEE THE MAN PAGE FOR MANY MORE OPTIONS, DESCRIPTIONS, AND EXAMPLES
Listing 3.1 beweist, wie einfach Nmap zu konfigurieren ist und welche
Optionen vorhanden sind. Ich möchte einfach ein paar Schalter herausgreifen,
ihre Funktionsweise beschreiben und erläutern, wie sie zur Reconnaissance verwendet werden können.
Der Schalter -sT (»scan TCP«) ist wahrscheinlich der auffälligste Schalter (weil
er sich längst nicht so gut tarnt wie die anderen). Er weist Nmap an, eine vollständige Verbindung mit dem Zielcomputer herzustellen. Diese Form des Portscanning ist sehr leicht aufzudecken (ein Verbindungsaufbau wird von den
meisten Betriebssystemen mitprotokolliert), und ein Angreifer, der es ernst
meint, wird sie wahrscheinlich nicht verwenden.
>>> NEW TECH
83
Kapitel 3 • Hacker und Cracker
HINWEIS
Im Sommer 2000 haben ein paar Analytiker, die der SANS-Gruppe angehören, ein Buch über die Erkennung von Signaturen zusammengestellt, die Eindringlinge hinterlassen. Das Buch heißt »Intrusion Signatures and Analysis«
(Analyse von Einbruchsignaturen) und ist eine hervorragende Referenz für
jeden, der sich in die Themen »Erkennen von Eindringlingen« und »Einbruchsignaturen« einarbeiten möchte.
Der Schalter -sF sendet FIN-Pakete an den Zielcomputer. Wie funktioniert das?
Wenn ein Computer ein FIN-Paket empfängt, dann stehen ihm mehrere Möglichkeiten offen, darauf zu reagieren:
■
■
■
Wenn der Port den Status LISTEN hat, dann antwortet der Computer nicht.
Wenn der Port den Status CLOSED hat, dann antwortet der Computer mit
einem RESET.
Wenn eine Verbindung vorhanden ist, dann beginnt der Computer mit dem
Abbau dieser Verbindung (sofern das FIN-Paket zu der bestehenden Verbindung »passt«, darum interessiert uns diese Möglichkeit momentan nicht).
Die Reaktion des Rechners auf den Schalter -sF sagt Nmap, welche Ports geöffnet sind. Listing 3.2 zeigt uns die Ergebnisse eines Scans mit diesem Schalter,
wie sie sich dem Benutzer darstellen. Dieser Scan wurde an einem Linux-Computer vorgenommen, auf dem das t0rn-Rootkit ausgeführt wurde (Port 47017
ist ein falscher Fünfziger). Hier die Ergebnisse:
Starting nmap V. 3.00 ( www.insecure.org/nmap/ )
Interesting ports on (192.168.1.3):
HINWEIS
Die 4000 gescannten Ports, die hier nicht angezeigt werden, haben den Status CLOSED.
Port
State
Service
47017/tcp
open
unknown
TCP Sequence Prediction: Class=random positive increments
Difficulty=3980866 (Good luck!)
Remote operating system guess: Linux 2.1.122 - 2.2.16
Nmap run completed -- 1 IP address (1 host up) scanned in 5 seconds
Bei Verwendung eines Sniffers (zum Beispiel tcpdump) würde man diese Ausgabe zu sehen bekommen:
Listing 3.2: Ergebnisse von nmap -sF
20:00:48.813047 > 192.168.1.5.47257 > 192.168.1.1.473: F 0:0(0) win 1024 (ttl
48, id 31728)
4500 0028 7bf0 0000 3006 8b89 c0a8 0105
84
>>> NEW TECH
Der Werkzeugkasten
c0a8 0101 b899 01d9 0000
5001 0400 6e1a 0000
20:00:48.813153 > 192.168.1.5.47257 >
48, id 56669)
4500 0028 dd5d 0000 3006
c0a8 0101 b899 0297 0000
5001 0400 6d5c 0000
20:00:48.813188 > 192.168.1.5.47257 >
48, id 23854)
4500 0028 5d2e 0000 3006
c0a8 0101 b899 05b2 0000
5001 0400 6a41 0000
0000 0000 0000
192.168.1.1.663: F 0:0(0) win 1024 (ttl
2a1c c0a8 0105
0000 0000 0000
192.168.1.1.1458: F 0:0(0) win 1024 (ttl
aa4b c0a8 0105
0000 0000 0000
Was man hier nicht sieht, sind die RESET-Meldungen, die von den überprüften
Ports zurückgeschickt werden. Dieser Ansatz wird von vielen Crackern
benutzt, um ein Zielobjekt auszukundschaften, insbesondere weil er wesentlich
schwerer zu erkennen ist als der Schalter -sT.
Der Schalter -sS sendet SYN-Pakete, um festzustellen, ob ein Port (oder eine
Gruppe von Ports) geöffnet ist. Dieser Scan wird normalerweise als »HalfopenScan« bezeichnet. Der Name ergibt sich aus der Vorgehensweise: Nmap schickt
ein SYN-Paket an einen Port. Wenn der Port offen ist, dann antwortet er mit
einem SYN/ACK-Paket. Wenn dieses Paket wiederum von Nmap empfangen
wird, dann schickt Nmap einen RESET. Aus diesem Grund ist, wenn man
»halb offene« Pakete verschickt, die Chance, entdeckt zu werden (theoretisch)
geringer. Viele Cracker verwenden diesen Ansatz, um offene Ports aufzufinden,
obwohl manchmal derlei Aktivitäten protokolliert werden (tatsächlich sollten
die meisten Firewalls und Erkennungssysteme heutzutage solche Versuche aufzeichnen).
Der letzte Schalter, den ich hier besprechen möchte, ist -sX. Bei diesem Paket
setzt Nmap u.a. die Flags FIN, URG und PSH. Unter normalen Umständen ist
dies keine gewöhnliche Flagkombination; eine Zusammensetzung wie etwa
FIN, URG und ACK wäre normal, nicht aber FIN, URG und PSH. Der Grund
für eine solche Kombination ist dennoch offensichtlich: Hiermit lassen sich
einige ältere Firewalls und Schutzsysteme umgehen.
Was das mit Reconnaissance zu tun hat? Nmap ist einfach ein tolles Tool dafür.
Dank all seiner Schalter und Optionen erschwert es einem Firewall-Administrator oder einem Schutzsystem die korrekte Erkennung aller möglichen Scans
erheblich.
TIPP
Sie haben Blut geleckt? Mehr zu Nmap finden Sie unter www.insecure.org.
hping2
Ein anderer exzellenter Portscanner zum Auskundschaften ahnungsloser Opfer
ist hping2. Hierbei handelt es sich wahrscheinlich um eines der besten Tools,
>>> NEW TECH
85
Kapitel 3 • Hacker und Cracker
denn es ist sehr weit reichend zu konfigurieren. Tabelle 3.1 ist die Ausgabe der
Onlinehilfe von hping2 und zeigt viele der Optionen, die für das Tool verfügbar
sind.
TIPP
Mehr Informationen zu hping2 finden Sie unter
http://www.kyuzz.org/antirez/hping2.html.
Parameter
hping2-Host
Optionen
-h
-v
-c
-i
-n
-q
-I
-V
-D
-z
-Z
Modi
Default
-0
-1
-2
-9
IP
-a
-t
-N
-W
-r
-f
-x
-y
-g
-m
-o
-G
--help
Show this help
Show version
Packet count
Wait (uX for X microseconds, for example, -i u1000)
Numeric output
Quiet
Interface name (otherwise, default routing interface)
Verbose mode
Debugging info
Bind Ctrl+Z to ttl (default to dst port)
Unbind Ctrl+Z
-H
--ipproto
--version
--count
--interval
--numeric
--quiet
--interface
--verbose
--debug
--bind
--unbind
default mode
--rawip
--icmp
--udp
--listen
--spoof
--ttl
--id
--winid
--rel
--frag
--morefrag
--dontfrag
--fragoff
--mtu
--tos
--rroute
TCP
RAW IP mode
ICMP mode
UDP mode
Listen mode
Spoof source address
ttl (default 64)
id (default random)
Use win* id byte ordering
Relativize id field (to estimate host traffic)
Split packets in more frag. (can pass weak acl)
Set more fragments flag
Set dont fragment flag
Set the fragment offset
Set virtual mtu; implies --frag if packet size > mtu
Type of service (default 0x00); try --tos help
Includes RECORD_ROUTE option and display the
route buffer
Set the IP protocol field, only in RAW IP mode
Tabelle 3.1: Liste der Optionen von hping2
86
>>> NEW TECH
Der Werkzeugkasten
Parameter
hping2-Host
Optionen
ICMP
-C
-K
--icmptype
ICMP type (default echo request), try --icmptype help
ICMP code (default 0)
Display help for other ICMP options
--icmpcode
--icmp-help
UDP/TCP
-s
-p
-k
-w
-O
-Q
-b
-M
-L
-F
-S
-R
-P
-A
-U
-X
-Y
--baseport
--destport
--keep
--win
--tcpoff
--seqnum
--badcksum
--setseq
--setack
--fin
--syn
--rst
--push
--ack
--urg
--xmas
--ymas
--tcpexitcode
TS
-d
-E
-e
-j
-J
-B
-u
-T
--data
--file
--sign
--dump
--print
--safe
--end
--traceroute
Base source port (default random)
[+][+]<port> destination port(default 0) Ctrl+Z inc/dec
Keep still source port
winsize (default 64)
Set fake TCP data offset (instead of tcphdrlen / 4)
Show only TCP sequence number
Send packets with a bad IP checksum
Set TCP sequence number
Set TCP ack
Set FIN flag
Set SYN flag
Set RST flag
Set PUSH flag
Set ACK flag
Set URG flag
Set X unused flag (0x40)
Set Y unused flag (0x80)
Sse last tcp->th_flags as exit code
Data size (default is 0)
Data from file
Add 'signature'
Dump packets in hex
Dump printable characters
Enable "safe" protocol
Tell you when --file reached EOF and prevent rewind
(Implies --bind) traceroute mode
Tabelle 3.1: Liste der Optionen von hping2 (Forts.)
Bereits aus dieser Hilfedatei ist ersichtlich, wie weit reichend hping2 zu konfigurieren ist. Ein Cracker kann praktisch jedes einzelne Bit im TCP/IP-Header
modifizieren und damit bei den Scantechniken wirklich kreativ werden. Auch
erlaubt das Tool dem Cracker, Daten in das Paket zu integrieren, die er selbst
gebastelt hat. Das heißt, er kann beliebigen Code auch heimtückischster Art
einfügen – etwa um Pufferspeicher zum Überlauf zu bringen oder Systeme mit
Trojanern zu infizieren – und die Pakete dann auf das Netzwerk loslassen.
Wenn Sie hping2 nicht haben, sollten Sie es unbedingt herunterladen und ausgiebig testen. Übrigens: Die nächste Generation, hping3, wird scriptfähig sein
und über verbesserte Ausgabeoptionen verfügen.
>>> NEW TECH
87
Kapitel 3 • Hacker und Cracker
Es gibt eine Menge weiterer Portscanner in freier Wildbahn, die wir hier nicht
alle behandeln können. Portscanner sind für Cracker nicht nur ein Tool, das an
die Türen von Computernetzwerken klopft, sondern sie erleichtern die Ermittlung der im Zielnetzwerk verwendeten Betriebssysteme und Dienste. Mit solcherlei Informationen ausgestattet, kann der Cracker dann mit seinen bevorzugten Utilities in das Netzwerk eindringen. Computerfachleute können und müssen
solche Programme benutzen, um die Sicherheit von Systemen einschätzen zu
können: Der Systemadministrator sollte die Chance haben, Sicherheitslücken zu
entdecken, bevor dies ein potenzieller Angreifer tut.
Passive Betriebssystemidentifikation
Der folgende Abschnitt enthält Anmerkungen zur Kunst der passiven Betriebssystemidentifikation. Die passive Betriebssystemidentifikation ist eine Methode,
die sowohl unter Crackern als auch unter Sicherheitsfachleuten zunehmend
populärer wird. Sie gestattet die Identifikation des Betriebssystems durch die
Analyse des TCP/IP-Stapels. Ein Cracker kann sich nicht besser tarnen als mit
dieser Vorgehensweise, denn er benötigt lediglich einen Paket-Sniffer und etwas
Zeit und muss keine seltsamen Datenpakete an das Zielobjekt senden, um herauszufinden, mit welchem Betriebssystem er es zu tun hat.
Fast alle Betriebssysteme haben Standardeinstellungen, und darunter natürlich
auch TCP/IP-Standardeinstellungen. Nehmen wir mal Linux (Kernel 2.2):
Wenn Sie einen Blick auf den Inhalt des in Listing 3.3 abgebildeten Verzeichnisses /proc/sys/net/ipv4 werfen, werden Sie eine Vielzahl von Parametern entdecken, die Standardeinstellungen enthalten, die das System für seine tägliche
Arbeit benötigt. Das Listing zeigt die TCP/IP-Parameter von Linux.
Listing 3.3: Das Verzeichnis /proc/sys/net/ipv4
Conf
icmp_destunreach_rate
icmp_echo_ignore_all
icmp_echo_ignore_broadcasts
icmp_echoreply_rate
icmp_ignore_bogus_error_responses
icmp_paramprob_rate
icmp_timeexceed_rate
igmp_max_memberships
ip_always_defrag
ip_autoconfig
ip_default_ttl
ip_dynaddr
ip_forward
ip_local_port_range
ip_masq_debug
ip_no_pmtu_disc
88
>>> NEW TECH
Der Werkzeugkasten
ipfrag_high_thresh
ipfrag_low_thresh
ipfrag_time
neigh
route
tcp_fin_timeout
tcp_keepalive_probes
tcp_keepalive_time
tcp_max_ka_probes
tcp_max_syn_backlog
tcp_retrans_collapse
tcp_retries1
tcp_retries2
tcp_rfc1337
tcp_sack
tcp_stdurg
tcp_syn_retries
tcp_syncookies
tcp_timestamps
tcp_window_scaling
Schauen wir uns ein paar dieser Parameter einmal näher an, um zu sehen, was
diese bewirken und wie sie sich auf das Betriebssystem auswirken:
ip_default-ttl: Dieser Parameter setzt den TTL-Standardwert auf 64. Er
kann auf einem Linux-Rechner durch Eingabe von echo 128 >> /proc/sys/
net/ipv4/ip_default_ttl geändert werden.
■ ip_forward: Zwar ermöglicht dieser Parameter nicht direkt die passive
■
■
■
■
■
Erkennung des Betriebssystems, aber er hat trotzdem starke Auswirkungen
auf die Betriebssystemsicherheit. Standardmäßig hat ip_forward den Wert
»0«, d. h., die IP-Weiterleitung ist deaktiviert; wenn Sie jedoch den Wert
»1« zuweisen, wird die Weiterleitung aktiviert, und der Computer darf
sogar Pakete von einer Schnittstelle zu einer anderen weiterleiten, was wieder sicherheitsrelevante Fragen aufwerfen kann.
ip_local_port_range: Dieser Parameter bezeichnet den Ausgangsportbereich,
der von Linux verwendet wird. Standardmäßig ist hier der Bereich zwischen
1024 und 4999 eingetragen. Das ist gut zu wissen, wenn Sie feststellen wollen, ob ein Paket regulär ist oder nicht.
tcp_sack: Dieser Parameter teilt dem Betriebssystem mit, ob es den Selective
Acknowledgement-Standard nach RFC 2883 unterstützt. Da Linux diesen
Standard tatsächlich unterstützt, hat der Parameter den Wert »1«.
tcp_timestamps: Dieser Parameter teilt dem Betriebssystem mit, ob es Zeitstempel unterstützt. Auch hier hat der Parameter den Wert »1«, weil Linux
Zeitstempel standardmäßig unterstützt.
tcp_window_scaling: Dieser Parameter teilt dem Betriebssystem mit, ob es die
Skalierungsfunktion für Sende- und Empfangspuffer (Fenster) des TCP/IPStapels unterstützt. Der Wert bei Linux ist »1«.
>>> NEW TECH
89
Kapitel 3 • Hacker und Cracker
TIPP
Neben den oben angesprochenen Punkten lässt sich auch über ICMP (Internet Control Message Protocol) eine Menge über einen Computer oder ein
Netzwerk herausfinden. Beinahe jeder Rechner in einem Netzwerk
beherrscht dieses Protokoll (zumindest teilweise), um auf Fehlermeldungen
und Netzwerkprobleme reagieren zu können. Zum Beispiel werden hier Meldungen erzeugt, wenn ein Rechner nicht erreichbar ist oder wenn die Daten
langsamer an einen Rechner geschickt werden sollen, weil er sie nicht
schnell genug annehmen bzw. verarbeiten kann. ICMP hat allerdings auch
eine hohe sicherheitstechnische Relevanz. Mehr dazu erfahren Sie unter
http://www.sys-security.com. Auf dieser Site finden Sie auch ein ICMPbasiertes Fingerprinting-Programm für Betriebssysteme.
Listing 3.3 zeigt einige Parameter an, die mit der passiven Betriebssystemidentifizierung in Zusammenhang stehen können. Auch wenn wir hier nur über
Linux gesprochen haben, so haben doch alle Betriebssysteme ihren jeweiligen
Satz mit Standardeinstellungen. Ein gutes Beispiel ist hier etwa Windows: Windows 98, NT und 2000 verwenden alle einen TTL-Wert von 128.
Sehen wir uns kurz ein paar andere Betriebssysteme und ihre TCP/IP-Einstellungen an:
■
■
■
Microsoft (Windows 98, NT)
Paketgröße (nur Header): 44 Bytes (Standard)
SYN- oder SYN|ACK-Pakete: setzen automatisch das Don't Fragment- und
das MSS-Flag (Maximum Segment Size)
TTL: 128
Microsoft (Windows 2000)
Paketgröße (nur Header): 48 Bytes (Standard)
SYN- oder SYN|ACK-Pakete: setzen automatisch die Flags Don't Fragment,
Maximum Segment Size, Selective Acknowledgment sowie zwei NOPs
TTL: 128
Linux (Red Hat 6.2)
Paketgröße (nur Header): 60 Bytes (Standard)
SYN- oder SYN|ACK-Pakete: setzen automatisch die Flags Don't Fragment,
Maximum Segment Size, Selective Acknowledgment, NOPs, Timestamp und
Window Scaling (gilt für das erste SYN- oder SYN|ACK-Paket; Linux reagiert dann je nach Typ des Computers, der die erste SYN-Anfrage stellte)
TTL: 128 (TTL: 255 bei RESET-Paketen)
Mit diesem Wissen können Sie Betriebssysteme ganz einfach identifizieren, indem
Sie den Netzwerkverkehr überwachen. Sie müssen allerdings bedenken, dass Ihre
Analyse nutzlos ist, wenn der Systemadministrator oder ein Cracker einen oder
mehrere dieser Parameter geändert hat. Aus diesem Grund ist die passive Betriebssystemidentifizierung nicht hundertprozentig zuverlässig – aber wenn man das so
sieht, was ist dann schon hundertprozentig zuverlässig? Listing 3.4 zeigt zwei
Pakete, mit deren Hilfe wir das Betriebssystem schnell ermitteln können.
90
>>> NEW TECH
Exploits und die SANS-Hitliste
Listing 3.4: Betriebssysteme identifizieren
15:59:52.533502 > my_isp.net.1100 > 134.11.235.232.www: S 325233392:325233392(0)
win 32120 <mss 1460,sackOK,timestamp 88950 0,nop,wscale 0> (DF) (ttl 64, id
505)
4500 003c 01f9 4000 4006 0522 xxxx xxxx
860b ebe8 044c 0050 1362 aaf0 0000 0000
a002 7d78 7887 0000 0204 05b4 0402 080a
0001 5b76 0000 0000 0103 0300
16:00:14.188756 >my_isp.net.1105 > 134.11.235.232.www: R 346737591:346737591(0)
win 0 (ttl 255, id 544)
4500 0028 0220 0000 ff06 860e xxxx xxxx
860b ebe8 0451 0050 14aa cbb7 0000 0000
5004 0000 973c 0000
In Listing 3.4 sind zwei Pakete abgebildet, ein SYN- und ein RST-Paket. Bei
näherer Betrachtung des SYN-Pakets fallen folgende Aspekte auf:
Der TTL-Wert beträgt 64.
Die Parameter mss, sackOK, nop und wscale sind ebenso gesetzt wie das dfFlag. Achten Sie auch auf die Headergröße (3C, also 60 Bytes).
■ Schauen Sie sich jetzt den Ausgangsport an. Der Port 1100 befindet sich im
Standard-Portbereich zwischen 1024 und 4999.
All diese Anzeichen lassen nur einen Schluss zu: Wir haben es hier mit Linux zu
tun. Sehen wir uns noch kurz das RST-Paket an. Der TTL-Wert beträgt 255.
Wenn Red Hat Linux ein RST-Paket sendet, dann weist es standardmäßig einen
TTL-Wert von 255 zu, während beim Aufbau einer Verbindung der TTL-Wert
64 verwendet wird. Ein anderes Kennzeichen von RST-Paketen von Linux ist
ihre Größe; normalerweise ist ein Red Hat-Paket 60 Bytes groß; wenn hingegen
das RST-Flag gesetzt ist, dann beträgt die Paketgröße lediglich 40 Bytes.
Und was hat das alles mit Reconnaissance zu tun? Nun, wenn ein Cracker
irgendeine der aufgeführten Methoden verwendet, kann er sehr wertvolle
Informationen über ein Computernetzwerk erhalten. Hierzu gehören die
Zuweisungen in diesem Netzwerk, IP-Adressen, der Grad der Sicherheitsimplementierungen und die Feststellung verschiedener Betriebssysteme.
■
■
3.3 Exploits und die SANS-Hitliste
In diesem Abschnitt geht es um Exploits – das sind Programme, die von Crackern ausgeführt werden und Schwachstellen in der Systemsicherheit ausnutzen. Außerdem werden wir einen Blick auf die Hitliste mit den zwanzig
schwerwiegendsten Sicherheitslücken im Internet werfen, die die SANS-Gruppe
aufgestellt hat.
3.3.1
Exploits
Wenn Sie herausfinden wollen, welche Tore geöffnet und welche geschlossen sind,
dann ist die Reconnaissance von größter Wichtigkeit. Der nächste Schritt des Crackers besteht aber nun darin, tatsächlich in das Computernetzwerk einzudringen.
Dies tut er, indem er Schwachstellen in Betriebssystemdiensten ausnutzt.
>>> NEW TECH
91
Kapitel 3 • Hacker und Cracker
Den richtigen Exploit zu finden, kann einem ganz schön Kopfzerbrechen bereiten – es gibt so unglaublich viele davon. Exploits sind nicht alle gleich, sondern
in der Regel von einem bestimmten Betriebssystem abhängig. Nur weil es einen
Drucker-Exploit für Linux gibt, heißt das noch lange nicht, dass dieser unter
Solaris läuft; umgekehrt gilt das gleiche.
TIPP
Wenn Sie immer über die neuesten Exploits und Sicherheitslücken informiert
sein wollen, dann schreiben Sie sich in die BUGTRAQ-Mailingliste ein
(http://online.securityfocus.com/cgi-bin/sfonline/subscribe.pl) oder
werfen Sie einen Blick in die Archive (http://online.securityfocus.com/
archive/).
Damit ich Ihnen besser erklären kann, was genau ein Exploit eigentlich ist und
wie er aussieht, führe ich an dieser Stelle das Ausgabelisting eines Exploits
sowie einige Pakete auf, die damit in Zusammenhang stehen. Dieser Exploit
bezieht sich auf den Line Printer Daemon von Red Hat Linux (in der aktuellen
Version von RedHat wurde die entsprechende Sicherheitslücke jedoch geschlossen). Hier also die Listings, versehen mit ein paar Anmerkungen:
+++ www.netcat.it remote exploit for LPRng/lpd
+++
+++
+++
+++
+++
+++
+++
+++
Exploit information
Victim: 192.168.1.25
Type: 0 - RedHat 7.0 - Guinesss
Eip address: 0xbffff3ec
Shellcode address: 0xbffff7f2
Position: 300
Alignment: 2
Offset 0
+++ Attacking 192.168.1.25 with our format string
+++ Brute force man, relax and enjoy the ride ;>
Aus der Zeichenkette Type 0 - RedHat7.0 - Guiness können wir ersehen, dass
der Exploit den Line Printer Daemon unter Red Hat 7.0 attackiert. Wollen Sie
mal sehen, wie dieser Angriff für tcpdump aussieht?
18:34:19.991789 > 192.168.1.5.2894 > 192.168.1.25.printer: S
4221747912:4221747912(0) win 32120 <mss 1460,sackOK,timestamp 4058996
0,nop,wscale 0> (DF) (ttl 64, id 11263)
4500 003c 2bff 4000 4006 8b4e c0a8 0105
c0a8 0119 0b4e 0203 fba2 c2c8 0000 0000
a002 7d78 8bb1 0000 0204 05b4 0402 080a
003d ef74 0000 0000 0103 0300
18:34:19.993434 < 192.168.1.25.printer > 192.168.1.5.2894: S
397480959:397480959(0) ack 4221747913 win 32120 <mss 1460,sackOK,timestamp
393475 4058996,nop,wscale 0> (DF) (ttl 64, id 3278)
4500 003c 0cce 4000 4006 aa7f c0a8 0119
c0a8 0105 0203 0b4e 17b1 13ff fba2 c2c9
92
>>> NEW TECH
Exploits und die SANS-Hitliste
a012 7d78 5ee7 0000 0204 05b4 0402 080a
0006 0103 003d ef74 0103 0300
18:34:19.993514 > 192.168.1.5.2894 > 192.168.1.25.printer: . 1:1(0) ack 1 win
32120 <nop,nop,timestamp 4058996 393475> (DF) (ttl 64, id 11264)
4500 0034 2c00 4000 4006 8b55 c0a8 0105
c0a8 0119 0b4e 0203 fba2 c2c9 17b1 1400
8010 7d78 8dac 0000 0101 080a 003d ef74
0006 0103
18:34:19.999662 < 192.168.1.25.printer > 192.168.1.5.2894: P 1:31(30) ack 1 win
32120 <nop,nop,timestamp 393476 4058996> (DF) (ttl 64, id 3279)
4500 0052 0ccf 4000 4006 aa68 c0a8 0119
c0a8 0105 0203 0b4e 17b1 1400 fba2 c2c9
8018 7d78 3e5b 0000 0101 080a 0006 0104
003d ef74 6c70 643a 203a 204d 616c 666f
726d 6564 2066 726f 6d20 6164 6472 6573
730a
18:34:19.999686 > 192.168.1.5.2894 > 192.168.1.25.printer: . 1:1(0) ack 31 win
32120 <nop,nop,timestamp 4058997 393476> (DF) (ttl 64, id 11265)
4500 0034 2c01 4000 4006 8b54 c0a8 0105
c0a8 0119 0b4e 0203 fba2 c2c9 17b1 141e
8010 7d78 8d8c 0000 0101 080a 003d ef75
0006 0104
18:34:20.000863 < 192.168.1.25.printer > 192.168.1.5.2894: F 31:31(0) ack 1 win
32120 <nop,nop,timestamp 393476 4058997> (DF) (ttl 64, id 3280)
4500 0034 0cd0 4000 4006 aa85 c0a8 0119
c0a8 0105 0203 0b4e 17b1 141e fba2 c2c9
8011 7d78 8d8b 0000 0101 080a 0006 0104
003d ef75
18:34:20.000878 > 192.168.1.5.2894 > 192.168.1.25.printer: . 1:1(0) ack 32 win
32120 <nop,nop,timestamp 4058997 393476> (DF) (ttl 64, id 11266)
4500 0034 2c02 4000 4006 8b53 c0a8 0105
c0a8 0119 0b4e 0203 fba2 c2c9 17b1 141f
8010 7d78 8d8b 0000 0101 080a 003d ef75
0006 0104
18:34:20.049095 > 192.168.1.5.2894 > 192.168.1.25.printer: P 1:424(423) ack 32
win 32120 <nop,nop,timestamp 4059002 393476> (DF) (ttl 64, id 11267)
4500 01db 2c03 4000 4006 89ab c0a8 0105
c0a8 0119 0b4e 0203 fba2 c2c9 17b1 141f
8018 7d78 54c5 0000 0101 080a 003d ef7a
0006 0104 4242 f0ff ffbf f1ff ffbf f2ff
ffbf f3ff ffbf 5858 5858 5858 5858 5858
5858 5858 5858 5858 252e 3137 3675 2533
3030 246e 252e 3133 7525 3330 3124 6e25
2e32 3533 7525 3330 3224 6e25 2e31 3932
Schauen wir doch mal, was hier passiert. Wir sehen zunächst, dass die Hosts
192.168.1.5 und 192.168.1.25 eine Verbindung herzustellen versuchen – ganz
nach dem typischen Muster mit Threeway Handshake. In der nächsten Sequenz
stellen wir dann fest, dass 192.168.1.5 versucht, den Exploit gegen
192.168.1.25 einzusetzen. Zum guten Ende verschiebt dann 192.168.1.5
>>> NEW TECH
93
Kapitel 3 • Hacker und Cracker
423 Datenbytes auf 192.168.1.25. Der Exploit macht eine Weile so weiter, bis
er schließlich in der Lage ist, eine Brute-Force-Attacke zu reiten.
Nach Abarbeitung des Exploits erhielt ich von 192.168.1.25 eine Shell als Root
und konnte von nun an tun und lassen, was ich wollte.
Exploits sind die Eintrittskarte, mit der Cracker in ein System gelangen. Um
sich gegen sie zu schützen, müssen Sie Ihre Betriebssysteme mit den entsprechenden Patches aktualisieren – das gilt für alle Systeme!
3.3.2
Die Top 20 von SANS
Die von der SANS-Gruppe herausgegebene Top 20 der schwerwiegendsten
Sicherheitslücken im Internet ist eine Liste mit denjenigen Exploits, die am häufigsten in Computernetzwerken aufzufinden sind. Was diese Liste so wertvoll
macht, ist die Tatsache, dass die SANS-Gruppe hierzu auch eine Aufzählung
der zugehörigen CVE-Einträge (Common Vulnerabilities and Exposures, häufig
auftretende Sicherheitslücken und Schwachstellen) herausgibt, sodass Betroffene sich bei Bedarf besser informieren können. Diese Liste wurde von der
SANS-Gruppe mithilfe zahlreicher Sicherheitsfachleute und der Sicherheitsgemeinde im Internet zusammengestellt.
TIPP
Die CVE-Datenbank finden Sie unter http://www.cve.mitre.org/. Weitere
Informationen zur Top 20 der SANS-Gruppe können Sie über http://
www.sans.org/topten.htm abrufen.
Die erste Bedrohung stellt die Standardinstallation von Betriebssystemen dar,
die eine Menge Probleme verursachen kann. Im System können beispielsweise
Default-Kennwörter implementiert sein; wahrscheinlich sind die neuesten
Sicherheits-Patches noch nicht vorhanden, und es ist stark anzunehmen, dass
nicht benötigte Dienste ausgeführt werden, die aus Sicherheitsgründen eigentlich abgeschaltet werden sollten.
Der zweite Exploit ist die Verwendung schwacher Kennwörter. Muss ich dazu
noch etwas sagen? Bei jeder von mir durchgeführten Risikoanalyse treffe ich
auf diese Schwachstellen. Wenn Sie ein Kennwort wählen, beachten Sie die folgenden einfachen Vorgaben:
■
■
■
Achten Sie darauf, dass das Kennwort mindestens acht Zeichen lang ist.
Stellen Sie sicher, dass es sich um eine Kombination aus Ziffern, Sonderzeichen und Buchstaben handelt.
Wählen Sie ein Kennwort aus, das nicht im Wörterbuch steht.
Es bietet sich häufig an, über das Betriebssystem oder eine Drittanbieterlösung
Kennwortrichtlinien zu implementieren. Geeignet hierzu ist z.B. das Programm
Password Bouncer (http://www.passwordbouncer.com). Weitere Informationen zu
diesem Thema finden Sie in Kapitel 14, »Kennwortsicherheit«.
94
>>> NEW TECH
Exploits und die SANS-Hitliste
TIPP
Anmerkungen zur Stärke von Kennwörtern finden Sie zudem unter http://
www.cert.org/tech_tips/passwd_file_protection.html.
Das nächste Problem stellt sich, weil immer wieder versäumt wird, rechtzeitig
vollständige Sicherungen durchzuführen. Die Backups müssen zudem regelmäßig auf Funktionsfähigkeit überprüft werden – eine Empfehlung, die nur die
wenigsten Unternehmen beherzigen.
Ein weiterer Pferdefuß ist eine große Anzahl offener Ports. Betrachten Sie jeden
Port als potenzielle Einbruchsmöglichkeit in Ihr System. Aus diesem Grund
sollten nur solche Ports geöffnet sein, die auch wirklich benötigt werden.
Die nächste Sicherheitslücke sind falsch konfigurierte Firewall-Regeln. Hierzu
finden Sie umfassende Informationen in den Kapiteln 10, »Firewalls«, und 23,
»Router, Switches und Hubs«.
Die SANS betont ferner, dass eine schlechte Protokollführung (»Logging«) ein
Problem darstellen kann. Sie sollten Ihr System überprüfen und sicherstellen,
dass Sie alles protokollieren, was Sie beim Auftreten eines sicherheitsrelevanten
Vorfalls wissen müssen. Außerdem ist zu beachten, dass Ihre Protokolle so
gespeichert werden, dass Cracker sie nicht löschen oder verändern können.
Auf Platz 7 in der SANS-Rangliste stehen »anfällige« CGI-Programme. Diese
werden schon seit Jahren verwendet und sind die Hauptursache für das Eindringen in »prominente« Websites (d.h. Sites großer Firmen und bedeutender
Institutionen), was immer wieder für viel Aufsehen sorgt. Diese Art von Sicherheitslücke will und will nicht verschwinden; sogar im Jahr 2002, wo das Problem schon jahrelang bekannt ist, findet man im Programm Bugzilla noch immer
ein solches »offenes Tor«. Viele CGI-Programme lassen nach der Installation
nämlich anfällige Beispielprogramme zurück und ermöglichen es heimtückischen Benutzern, an Administratorrechte zu kommen. Mit diesen Privilegien
kann der Angreifer dann tun und lassen, was er will (z.B. die Website verändern). Ich habe nachfolgend ein paar Links aufgeführt, über die Sie an weitere
Informationen zu CGI-Angriffen gelangen können. Diese Liste ist nicht vollständig; falls Sie befürchten, dass Sie ein potenzielles Opfer sein könnten,
suchen Sie bitte auch selbstständig nach weiteren Informationen.
TIPP
Sie finden Hinweise zu CGI-Angriffen unter http://www.cert.org/advisories/
CA-1997-24.html, http://www.cert.org/advisories/CA-1996-11.html, und
http://www.cert.org/advisories/CA-1997-07.html.
Exploits unter Windows
Die SANS listet auch eine Reihe Windows-spezifischer Probleme auf. Hier
wären zunächst einmal die Unicode-Sicherheitslücken zu nennen. Unicode ist
quasi eine erweiterte Form des ASCII-Zeichensatzes, mit dem Sie Texte in fast
>>> NEW TECH
95
Kapitel 3 • Hacker und Cracker
allen Sprachen dieser Welt schreiben können (im Gegensatz dazu ist ASCII auf
einige wenige europäische Sprachen beschränkt). Mithilfe des Unicode-Zeichensatzes und ein paar Tricks kann ein Cracker Ihren IIS-Server knacken. Die
Lösung dieses Problems ist vergleichsweise einfach, denn Sie müssen lediglich
die aktuellen Patches für den IIS aufspielen.
Weiterhin zu nennen ist ein Pufferüberlauf durch ISAPI-Erweiterung. Pufferüberläufe werden in Kapitel 26, »Sprachen, Erweiterungen und die Entwicklung sicherer Anwendungen« ausführlich beschrieben. Dieser Bug ist bei
verschiedenen Microsoft-Produkten zu finden; auch hier ist es am besten, die
neuesten Sicherheits-Patches zu installieren.
Der dritte Microsoft-spezifische Exploit auf der Liste sind RDS-Sicherheitslücken (Remote Data Service) im IIS. Auch hier müssen Sie lediglich aktuelle
Patches aufspielen.
TIPP
Weitere Informationen zu den RDS-Sicherheitslücken finden Sie unter http://
www.wiretrip.net/rfp/p/doc.asp?id=29&iface=2.
Der nächste Exploit ist die globale Dateifreigabe über die NetBIOS-Ports 135
bis 139 – das wahrscheinlich größte Sicherheitsproblem, das ein Benutzer
haben kann, der über ein Kabelmodem oder eine DSL-Leitung mit dem Internet
verbunden ist. Die meisten Benutzer verstehen das Konzept der Dateifreigabe
nicht und lassen sie infolgedessen aktiviert. Auch Napster ist eine heikle Angelegenheit. Zwar ist Napster auf der SANS-Site nicht aufgeführt, aber die Idee
dahinter bedingt eine Freigabe von Verzeichnissen, und am Ende haben Sie
möglicherweise mehr von Ihrer Festplatte freigegeben, als Ihnen lieb ist. Auf
der SANS-Site finden Sie einschlägige Lösungen für diese Probleme; generell sei
aber empfohlen, die Anzahl der Freigaben zu minimieren, Kennwörter zu verwenden und den Zugriff zu beschränken.
Sie sollten außerdem den Registrierungsschlüssel RestrictAnonymous auf Hosts
implementieren, die mit dem Internet verbunden sind und in eigenständigen
oder nicht vertrauenswürdigen Domänenumgebungen stehen.
Das fünfte Windows-spezifische Problem sind anonyme Anmeldungen. Cracker
können sich an Systemen anmelden und Informationen über diese Systeme
abrufen, ohne sich anmelden zu müssen. Dieses Problem lässt sich minimieren,
indem man einige bestimmte Registrierungsschlüssel editiert (Hinweise hierzu
finden Sie auf der SANS-Site); wenn Domänencontroller vorhanden sind, lässt
es sich jedoch nicht vollständig eliminieren.
Das nächste Problem ist die von Windows aus Gründen der Abwärtskompatibilität standardmäßig verwendete schwache Verschlüsselung, die zudem von
den meisten Benutzern noch nicht einmal benötigt wird. Leider ist die Lösung
dieses Problems sehr komplex; möglicherweise müssen Sie sich hierzu von allen
Windows 9x-Clients verabschieden.
96
>>> NEW TECH
Exploits und die SANS-Hitliste
HINWEIS
Die NSA hat eine Reihe empfehlenswerter Schriften zur Absicherung von
Windows 2000 veröffentlicht. Diese finden Sie unter http://nsa2.www.
conxion.com/win2k/download.htm.
Exploits unter Unix
Der erste Unix-spezifische Exploit betrifft die Verwendung anfälliger RPCs
(Remote Procedure Calls, Fernprozessaufrufe). Mithilfe von RPCs können CProgramme Prozeduren, die auf anderen Rechnern liegen, über das Netzwerk
aufrufen. Die meisten Hersteller bieten inzwischen Patches an, um die RPCs auf
das Nötigste zu beschränken. Nichtsdestoweniger gebe ich Ihnen an dieser
Stelle den Ratschlag: Wenn Sie sie nicht brauchen, dann schießen Sie sie ab.
Führen Sie zu diesem Zweck den Befehl ps-ef|grep rpc aus, suchen Sie die Prozesskennung (PID), und starten Sie dann kill –9 PID. Bei den meisten Unix-Systemen können Sie die RPC-Dienste auch gleich beim Systemstart deaktivieren,
indem Sie nämlich die Startdatei (in /etc/rc.d/) von S (Startdatei) auf K (Kill) setzen. Mit dem Befehl rpcinfo –p finden Sie heraus, welche RPC-Programme ausgeführt werden.
TIPP
Weitere Informationen über RPC-Angriffe finden Sie unter http://www.cert.
org/incident_notes/IN-99-04.html.
Auf dem nächsten Platz stehen sendmail- und MIME-Angriffe. Diese Sicherheitslücken basieren auf dem Überlauf von Pufferspeichern und auf Weiterleitungsstrategien, die den sofortigen Zugriff auf das Stammverzeichnis
ermöglichen. Es gibt mehrere Möglichkeiten, diese Problembereiche abzusichern. Zunächst einmal müssen Sie natürlich die korrekten Patches für Ihre
sendmail/mail-Server aufspielen. Wenn bei Ihnen keiner dieser Dienste benötigt
wird, können Sie sie auch deaktivieren (das passiert analog zu der oben für die
RPCs beschriebenen Vorgehensweise).
TIPP
Mehr Informationen zu sendmail-Sicherheitslöchern finden Sie unter http://
www.cve.mitre.org/cgi-bin/cvekey.cgi?keyword=sendmail; die neueste Version von sendmail kann bei http://www.sendmail.org heruntergeladen werden.
Das nächste in der Liste aufgeführte Problem betrifft BIND. BIND ist ein von
DNS-Servern zur Adressauflösung verwendetes Programm, das im gesamten
Internet eingesetzt wird. In den letzten paar Jahren wurde eine ganze Reihe von
Sicherheitslöchern in den verschiedenen BIND-Versionen aufgedeckt. Jeder, der
mit BIND arbeitet, muss sicherstellen, dass er immer die aktuellste Version
samt aller Patches verwendet, um möglichst alle bekannten Sicherheitslöcher zu
>>> NEW TECH
97
Kapitel 3 • Hacker und Cracker
schließen. Wenn Sie die entsprechenden Datenbanken überprüfen, werden Sie
feststellen, dass im Zusammenhang mit BIND alle paar Monate eine neue
Sicherheitslücke entdeckt wird.
Das vierte auf der Site von SANS beschriebene Unix-Problem betrifft die rBefehle. Diese Befehle umgehen die normalen Authentifizierungsmethoden und
sollten deaktiviert werden. Weitere Informationen hierzu finden Sie in Kapitel
21, »Unix«.
SANS listet auch den Line Printer Daemon als Bedrohung auf. Durch Übertragung einer großen Anzahl von Druckaufträgen ist es möglich, entweder einen
DoS herbeizuführen oder aber in das System einzubrechen. Auch hier gilt: Spielen Sie immer die neuesten Patches auf.
Der sechste Unix-Exploit bezieht sich auf Anfälligkeiten von sadmind und
mountd und betrifft eine Vielzahl unterschiedlicher Unix-Versionen.
TIPP
Mehr Informationen zu sadmind- und mountd-Sicherheitslöchern finden
Sie unter http://www.cert.org/advisories/CA-99-16-sadmind.html oder
http:// www.cert.org/advisories/CA-1998-12.html.
Der letzte Unix-Exploit der SANS-Hitliste schließlich sind Default-SNMPCommunity-Strings, die die Werte »public« oder »private« haben. In Verbindung mit schwachen Kennwörtern lassen sich solche Sicherheitslücken bereits
durch einfachste Administrationsmaßnahmen steuern.
TIPP
Weitere Informationen zu SNMP und den Community-Strings finden Sie
unter http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/snmp.
htm#xtocid210315.
Denken Sie immer daran, dass dies nicht die einzigen Sicherheitslücken im
Internet sind. Ein Cracker kann zu jeder Zeit irgendeinen (neuen) Exploit aus
dem Ärmel schütteln.
3.4 Fazit
In diesem Kapitel haben wir eine Menge Themen abgedeckt, darunter die passive Betriebssystemidentifikation, Social Engineering, diverse Tools und die
SANS-Hitliste. Das Ziel des Kapitels war es, Ihnen ein Verständnis für die
Denk- und Vorgehensweise eines Crackers zu vermitteln, der es auf ein Netzwerk abgesehen hat. Die Cyberkriminalität ist auf dem Vormarsch, weswegen
der Schutz Ihrer Privatsphäre und Ihrer Daten eine zunehmend größere Herausforderung darstellt. Das Wissen darum, wie ein Hacker oder Cracker arbeitet,
98
>>> NEW TECH
Fazit
kann bei der Abwehr solcher Leute eine große Hilfe sein. Oder, wie es der
Sicherheitsexperte Bruce Schneier einmal formuliert hat: »Sicherheit ist kein
Produkt, sondern ein dauerhafter Vorgang«. Mit welchen Produkten auch
immer Sie arbeiten, vergessen Sie niemals, die aktuellsten Patches aufzuspielen
und alle Dienste zu deaktivieren, die Sie nicht benötigen.
>>> NEW TECH
99
Herunterladen