Inhaltsangabe:
1.) Information Gathering – Was ist das und wofür braucht man es ?
2.) Geschwindigkeit, Status und Entfernung des Ziels
3.) Informationen über Betriebssystem und Dienste sammeln
4.) Was für einen Provider benutzt das Ziel ?
5.) Was für ein Webserver und was für Module laufen dort ?
6.) Weitere Möglichkeiten für "Information Gathering"
7.) Weiterführendes
1.) Information Gathering – Was ist das und wofür braucht man es ?
Unter "Information Gathering" versteht man eigentlich nichts
anderes als die Sammlung von Informationen über ein Zielsystem. Ob es sich um
technische Informationen (Was für Dienste laufen? Was für ein Betriebssystem ?),
um Informationen über das Umfeld (Welcher Provider ?) oder Firmen- oder
Personengebundene Informationen (E-Mail Adressen ? Wer ist root ?) handelt, ist
zunächst einmal egal.
Brauchbar ist es – nur um mal ein Beispiel aus dem
legalen Bereich zu nennen – um Personen zu identifizieren.
Einer Bekannten
von mir wurden Beleidigungen ins Gästebuch eingetragen. Ich habe mich dafür
interessiert und mich daran gesetzt: Dank der IP-Adresse konnte ich Provider,
Betriebssystem und diverse andere Dinge herausfinden, die ihr helfen könnten,
diese Person ausfindig zu machen (Sie hat die Adresse nur an wenige
weitergegeben, lange gibt’s diese Seite auch noch nicht, keine Indizierung in
Suchmaschinen => mit Hilfe von Indizien ließe sich zurückverfolgen, wer es
gewesen sein könnte).
2.) Geschwindigkeit, Status und Entfernung des Ziels
Fangen wir einfach mal mit den Dingen an, die wir in fast jedem
Betriebssystem vorfinden. Die Befehle "ping" und "tracert" beziehungsweise
"traceroute" dürften eigentlich fast jedem ein Begriff sein.
Der Befehl
"ping" sendet ein kleines ICMP-Datenpaket ("Ping Request"), das (wenn es nicht
durch eine Firewall geblockt wird) automatisch von dem "angepingten" Rechner
beantwortet wird. Dabei wird auch die Zeit gemessen, die seit dem losschicken
des Pakets bis zum zurückkehren vergangen ist.
Probieren wir das doch
einfach mal:
--------------------- Beispiel Ping
--------------
C:\>ping a1as18-p163.mch.tli.de
Ping a1as18-p163.mch.tli.de
[195.252.169.163] mit 32 Bytes Daten:
Antwort von 195.252.169.163: Bytes=32 Zeit=181ms
TTL=57
Antwort von 195.252.169.163: Bytes=32 Zeit=180ms TTL=57
Antwort von
195.252.169.163: Bytes=32 Zeit=170ms TTL=57
Antwort von 195.252.169.163:
Bytes=32 Zeit=170ms TTL=57
Ping-Statistik für 195.252.169.163:
Pakete:
Gesendet = 4, Empfangen = 4, Verloren = 0 (0% Verlust),
Ca. Zeitangaben in
Millisek.:
Minimum = 170ms, Maximum = 181ms, Mittelwert =
175ms
C:\>
-------------------Ende Beispiel---------------------
Ich
habe hier für das Beispiel eine dynamische IP-Adresse gewählt. Wenn ihr das auch
ausprobieren wollt, solltet ihr vielleicht eher ein "ping www.seitz-pc.de" oder ähnliches ausprobieren, also einen Rechnernamen, der sicher
dauernd online ist.
Aber was hat uns das Spielchen jetzt gebracht
?
Nun, wir haben den Hostname angepingt (ein eindeutiger Name im Internet,
muss genauso eindeutig sein wie die IP-Adresse). Wir haben eine Antwort bekommen
von 195.252.169.163, d.h. dass die IP-Adresse von
" a1as18-p163.mch.tli.de" 195.252.169.163 ist. Da die Zeit die das Paket hin und
zurück gebraucht hat nicht sonderlich hoch ist (zwischen 170 und 181 ms), können
wir eigentlich davon ausgehen, dass das Zielsystem nicht so weit weg ist (z.B.
wahrscheinlich nicht in Amerika) beziehungsweise dass eine einigermaßen schnelle
Leitung dorthin besteht. Gehen wir davon aus, dass das System selbst "nur" mit
ISDN online ist, sehen wir, dass der Rechner im Moment nicht voll ausgelastet
ist (wäre dies der Fall wären die Zeiten höher oder ein paar der Pings wären
"verloren gegangen", d.h. nicht beantwortet worden).
Klingt nicht
schlecht, aber wollen wir nicht wissen wie unser Paket eigentlich dorthin
gelangt ? Über welche Städte ? Dafür kommt nun das Tool "tracert" ins
Spiel:
------------------------- Beispiel tracert
---------------------------
C:\>tracert a1as18-p163.mch.tli.de
Routenverfolgung zu a1as18-p163.mch.tli.de
[195.252.169.163] über maximal 30 Ab
schnitte:
1 110 ms 110 ms 100 ms 193.158.131.185
2 111
ms 110 ms 110 ms 193.158.131.186
3 100 ms 100 ms 110 ms
M-EB1.M.DE.net.dtag.de [62.154.10.151]
4 120 ms 120 ms 120 ms
HH-gw2.HH.NET.DTAG.DE [212.185.9.193]
5 120 ms 130 ms 110 ms
S6-1-1.hhrt1.tli.de [195.252.129.137]
6 140 ms 141 ms 140 ms
S5-0-0.frart01.tli.de [195.252.129.134]
7 150 ms 151 ms 160 ms
S6-1-0.mchrt01.tli.de [195.252.129.54]
8 141 ms 150 ms 140 ms
a1as18-f0.mch.tli.de [195.252.160.146]
9 300 ms 300 ms 411 ms
a1as18-p163.mch.tli.de [195.252.169.163]
Ablaufverfolgung beendet.
C:\>
--------------------------- Ende
Beispiel------------------
Nun, zuerst geht unser Signal über zwei sog.
"Nodes" ohne "Hostname", d.h. sie besitzen nur IP-Adressen. Danach befinden wir
uns immer noch im Netz der DTAG, der Deutschen Telekom AG, und zwar anscheinend
in München (M-EB1.M.DE.net.dtag.de). Danach geht das Signal anscheinend nach
Hamburg (HH-gw2.HH.NET.DTAG.DE), wo anscheinend eine Schnittstelle zwischen der
Telekom und dem Provider "TLI" (bis jetzt wissen wir noch nicht, was das ist !
Dazu kommen wir noch) besteht. Von dort geht es vielleicht nach Frankfurt
(S5-0-0.frart01.tli.de) und wieder zurück nach München.
Ihr seht hier in
diesem kurzen Textabschnitt eine Menge "Vielleicht" und
"Anscheinend":
Oftmals kann man aus den Namen der "Nodes" nur erraten WO sie
stehen. Ich hatte jetzt auch keine sonderlich große Lust, das genau
herauszufinden, wenn das jemand machen will werde ich das hier gerne dann noch
einsetzen.
Das ganze ist etwas unkomfortabel, es gibt das ganze aber auch
noch graphisch. Die Software "Neotrace" veranschaulicht zum Beispiel auf einer
Landkarte, wo die Datenpakete entlangwandern.
Da TCP/IP die Routen von selbst
wählt kann man sagen, dass das was man mit "tracert" macht nur eine
Momentaufnahme ist. Solange das die schnellste Verbindung ist wird sie wohl auch
weiter gewählt werden, ist eine andere Verbindung schneller wechselt sich die
Route automatisch.
3.) Informationen über Betriebssystem und Dienste
sammeln
So, wir haben jetzt das Umfeld des Ziels
ein bißchen erkundet und gehen nun etwas mehr ins Detail. Zunächst wollen wir
einmal wissen, was für ein Betriebssystem das Ziel benutzt. Es gibt mehrere
Programme die das für uns machen, aber "nmap" dürfte wohl eines der populärsten
sein.
"nmap" versucht durch ungewöhnliche TCP-Pakete und die Antworten darauf
vom Ziel das Betriebssystem zu bestimmen.:
--------------------- Beginn
Beispiel nmap ------------------------
C:\>nmap -O 195.252.169.163
Starting nmap V. 2.54BETA30 ( www.insecure.org/nmap/ )
Interesting ports on a1as18-p163.mch.tli.de (195.252.169.163):
(The 1547 ports scanned but not shown below are
in state: closed)
Port State Service
139/tcp open netbios-ssn
Remote operating system guess: Windows 2000
Professional, Build 2128
Nmap run completed -- 1 IP address (1 host up)
scanned in 85 seconds
C:\>
--------------------------------- Ende
Beispiel -----------------------
Gut, dieses Beispiel ist wunderbar für
den "TCP OS Fingerprint", da es uns ein ziemlich genaues Ergebnis liefert:
"Windows 2000 Professional, Build 2128". Allerdings ist nmap primär ein
Portscanner mit diversen "Stealth"-Möglichkeiten, mit denen man versuchen kann
seine Portscans zu verdecken.
Mit Portscannern ist es möglich zu
überprüfen, was für Dienste ein Server anbietet, z.B. ob er einen Webserver am
laufen hat, einen HTTP-Server oder diverse andere Dinge.
Ich verwende für
mein hiesiges Beispiel jedoch nicht "nmap" sondern einen Scanner namens
"Superscan". Außerdem habe ich mir dafür ein anderes Ziel
ausgesucht:
_---------------------- Beginn Beispiel Portscan
-------------------------
* + ***.***.***.***
|___ 21 ftp
|___ 220 10004.***.de FTP server (Version wu-2.6.1(1) Tue Oct 3 14:29:19 CEST 2000) ready...
|___ 22 ssh
|___ SSH-1.99-OpenSSH_2.2.0p1.
|___ 23 telnet
|___ ..... ..#..'
|___ 25 smtp
|___ 220 10004.***.de ESMTP Sendmail 8.11.4/8.11.0; Fri, 26 Oct 2001 19:36:16 +0200..
|___ 79 finger
|___ f
|___ 80 http
|___ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">..<html>.<head>..<title>***.org</title>.</head>.<style type="
|___ 110 pop3
|___ +OK POP3 10004.***.de v7.64 server ready..
|___ 443 https
|___ 587
|___ 220 10004.***.de ESMTP Sendmail 8.11.4/8.11.0; Fri, 26 Oct 2001 19:36:32 +0200..
|___ 901
|___ 3306
|___ 1....3.23.23-beta-log.....D&/ZW'Zn.,
.................
_----------------------- Ende Beispiel
---------------------
Das hier ist die Protokolldatei, die mir Superscan
ausgeben hat. Wie wir sehen existieren auf diesem Server ein FTP-, HTTP-, SMTP-,
POP3-, und HTTPS-Server. Des weiteren laufen dort noch "finger", ein Dienst der
Informationen über Benutzer bietet sowie SSH und telnet, zwei Dienste zum
"einloggen via Netzwerk", um dann an einer normalen "Shell" zu
arbeiten.
Dieses System kann man auch ungefähr klassifizieren, ohne einen
OS Fingerprint durchführen zu müssen: Sendmail, telnet und OpenSSH sind
normalerweise Linux/Unix-tyisch, d.h. mit sehr hoher Wahrscheinlichkeit haben
wir hier KEIN Mircosoft-Betriebssystem vor uns.
4.) Was für einen Provider benutzt das Ziel
?
Jetzt interessiert uns noch, was für ein Provider dieses ominöse
"TLI" eigentlich ist. Also gehen wir mal zu der netten Seite "
http://www.uwhois.com ", eine WHOIS-Datenbank die die anderen WHOIS-Server
gleich mitabfragt. Sehr praktisch. Also geben wir oben einfach mal in das Feld
hinter "Search" die IP-Adresse von oben ein: "195.252.169.163" und drücken
Enter.
Nach ein paar Sekunden haben wir das
Ergebnis:
--------------- Beispiel UWHOIS
-----------------
% This is the RIPE
Whois server.
% The objects are in RPSL format.
% Please visit
http://www.ripe.net/rpsl for more
information.
% Rights restricted by copyright.
% See http://www.ripe.net/ripencc/pub-services/db/copyright.html
inetnum:
195.252.160.0 - 195.252.171.255
netname: POPSITE-MUENCHEN
descr: Talkline GmbH & Co.
KG
country: DE
admin-c: NT714-RIPE
tech-c: TLIP1-RIPE
rev-srv:
ns.tli.de
rev-srv: ns2.tli.de
status: ASSIGNED PA
notify: ripe-notify@tli.de
mnt-by:
TALKLINE-MNT
mnt-lower: TALKLINE-MNT
changed: willert@tli.de 19980911
changed:
willert@tli.de 19981029
changed:
bobby@tli.de 19981103
changed:
admin-c@tli.de 20000216
changed:
mike@tli.de 20001004
changed:
micha@tli.de 20010118
changed:
micha@tli.de 20010123
source:
RIPE
route: 195.252.128.0/17
descr: Talkline GmbH & Co. KG
origin: AS8650
mnt-by:
TALKLINE-MNT
changed: willert@tli.de 19980817
changed:
micha@tli.de 20010123
source:
RIPE
role: Talkine IP-oper
address: Talkline GmbH & Co.
KG
address: GB Internet
address: Suederstrasse 73
address: D-20097
Hamburg
address: Germany
e-mail: admin-c@tli.de
trouble:
***********************************************************
trouble: * ABUSE
CONTACT: abuse@tli.de IN CASE OF HACK ATTACKS,
*
trouble: * ILLEGAL ACTIVITY, VIOLATION, SCANS, PROBES, SPAM, ETC.
*
trouble:
***********************************************************
admin-c:
NT714-RIPE
tech-c: NT714-RIPE
nic-hdl: TLIP1-RIPE
notify: ip-oper@tli.de
mnt-by:
TALKLINE-MNT
changed: admin-c@tli.de 20000216
changed:
micha@tli.de 20000321
changed:
micha@tli.de 20001123
changed:
micha@tli.de 20010115
changed:
micha@tli.de 20010118
source:
RIPE
person: Network Team
address: Talkline GmbH & Co.
KG
address: Suederstrasse 73
address: D-20097 Hamburg
address:
Germany
phone: +49 4121 41-5610
fax-no: +49 4121 41-5664
e-mail:
admin-c@tli.de
nic-hdl:
NT714-RIPE
remarks:
***********************************************************
remarks: * ABUSE
CONTACT: abuse@tli.de IN CASE OF HACK ATTACKS,
*
remarks: * ILLEGAL ACTIVITY, VIOLATION, SCANS, PROBES, SPAM, ETC.
*
remarks:
***********************************************************
mnt-by:
TALKLINE-MNT
changed: net@tli.de 20000212
changed:
net@tli.de 20000216
changed:
micha@tli.de 20001123
changed:
micha@tli.de 20010115
changed:
micha@tli.de 20010118
source:
RIPE
----------------------------- Ende Beispiel
------------------
Ahh, TLI steht für Talkline.... Ging doch ganz
einfach, oder ? ;)
5.) Was für ein Webserver und was für Module laufen dort ?
Kehren wir noch mal zu dem System zurück, bei dem wir den
Portscan durchgeführt haben. Wir wollen jetzt wissen, was für ein HTTP-Server
dort installiert ist und was er für Module benutzt. Dies erledigt ein nettes
PERL-Skript namens "nikto.pl" für mich.... netterweise fängt es auch gleich an
den Webserver auf Sicherheitslücken zu untersuchen. Da mir das zu lange dauert
hab ich das aber gleich abgebrochen....
---------------- Beispiel
nikto.pl --------------------
H:\attack>nikto.pl -host www.*****.de
-------------------------------------------------------------------------------
- Nikto v1.018
-------------------------------------------------------------------------------
+ Target IP: ***.***.***.***
+ Target Hostname: www.*****.de
+ Target Port: 80
- Date: Thu Mar 7 18:51:13 2002
- Scan is dependent on "Server:" string which can be faked, use -g to override
-------------------------------------------------------------------------------
+ Server: Apache/1.3.17 (Unix) (SuSE/Linux) PHP/4.0.4pl1
+ Apache/1.3.17 appears to be outdated (current is at least Apache/1.3.22)
+ PHP/4.0.4pl1 appears to be outdated (current is at least PHP/4.0.6)
^C
H:\attack>
---------------- Ende Beispiel
----------------
Wir sehen also, dass hier ein Apache 1.3.17 auf SuSE
Linux läuft, bei dem PHP/4.0.4p11 aktiviert ist.
Freundlicherweise weißt uns
nikto.pl auch gleich darauf hin, dass die Dienste wohl ein bißchen veraltet
sind....
6.) Weitere Möglichkeiten für "Information Gathering"
Ich gebe hier nur ein paar Anhaltspunkte, herausfinden oder
nachfragen WIE das genau funktioniert müßt ihr selbst. Informationen findet man
fast überall. Ob man nun bei Internic.net eine WHOIS-Anfrage macht (und damit an
die Daten der Firma / Person der eine Domain gehört kommt), mit "finger"
Informationen sammelt, oder mit dem SMTP "vrfy"-Kommando ist eigentlich
egal.
Viele Dienste unterstützen Möglichkeiten, Informationen zu sammeln.
Es geht aber auch sehr einfach: Wenn auf dem Rechner ein Webserver läuft....
warum schaut ihr nicht einfach mal auf die Webseite drauf, die dort liegt ? ;)
Viele Infos werden dort bereits genannt.
7.) Weiterführendes
Für weitere Infos darüber und anderes empfehle ich folgende Seiten:
http://www.it-checkpoint.net/
BlueScreen's Home
http://www.hackeinsteiger-board.de/
Falls ihr mir Anregungen oder Kritik o.ä. hinterlassen wollt, dann tut das bitte auf
www.Hackeinsteiger-Board.de
(Copyright by Florian
Hobelsberger / BlueScreen)