Hackerboard WikiHaboBlog

[HaBo]

 
(In)security allgemein Sicherheit, Anonymität im Netz. Schutz und Maßnahmen. Prävention und Konzepte. Sicherheitsarchitekturen allgemein und auf der Netzwerkebene.

Offene Ports/Wann ist ein Computer unsicher?

Diskussion: Offene Ports/Wann ist ein Computer unsicher? im Forum (In)security allgemein, in der Kategorie Security Area; Hallo Community, Ich interessiere mich für PC-Sicherheit und spiele z.Z. viel mit Portscannern rum. Ich verstehe allerdings nicht, inwiefern mir ...

Antwort
Alt 03.06.04, 16:41   #1 (permalink)
 
Registriert seit: 03.06.04
Semu Leistung: Facit NTK
Likes: 0
Standard Offene Ports/Wann ist ein Computer unsicher?


Hallo Community,
Ich interessiere mich für PC-Sicherheit und spiele z.Z. viel mit Portscannern rum.
Ich verstehe allerdings nicht, inwiefern mir das nützen kann, die tatsächliche Sicherheit eines Systems auszutesten.

Als Beispiel mal nehme ich mal folgenden Server, den ich gestern mit einem nmap -sF -O gescannt habe:

Zitat:
(The 1639 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
135/tcp open msrpc
136/tcp open profile
137/tcp open netbios-ns
138/tcp open netbios-dgm
139/tcp open netbios-ssn
443/tcp open https
445/tcp open microsoft-ds
563/tcp open snews
751/tcp open kerberos_master
993/tcp open imaps
995/tcp open pop3s
1022/tcp open unknown
1023/tcp open netvenuechat
1984/tcp open bigbrother
2601/tcp open zebra
2604/tcp open ospfd
Device type: general purpose
Running: FreeBSD 4.X
OS details: FreeBSD 4.7 - 4.8-RELEASE
Uptime 55.228 days (since Thu Apr 8 18:31:44 2004)
20 offene Ports. Ist dieser Server jetzt besonders unsicher, oder ist das völlig normal, weil er einfach so viele Dienste anbietet?
Ausserdem frage mich auch, wie zuverlässig das OS fingerprinting ist.
Ich meine, Microsoft Dienste auf einer FreeBSD-Maschine?!

Wäre für ein paar einführende Erklärungen dankbar.
Semu ist offline   Mit Zitat antworten
Alt 03.06.04, 17:44   #2 (permalink)
 
Registriert seit: 03.05.04
Drager Leistung: Facit NTK
Likes: 0
Standard

also die anzahl der offenen ports hat nicht unbedingt was mit dem sicherheitsgrad zu tun, klar um so mehr dienste du laufen lässt (weil ohne dienste kein port und andersrum..) desto wahrscheinlicher ist es das du einen dienst findest den du überlisten kannst...

aber solange du keinen fehler in einem dienst kennst, bzw. weisst wie du ihn bedienen bzw. überlisten kannst, bringen dir offene ports wenig...

wie du nun die sicherheit einschätzen kannst ist schwierig...

du kannst natürlich schauen welche dienste überhaupt laufen... und dann nachschauen ob dafür fehler bekannt sind... wenn du nirgends fehlerhinweise findest, kannst du vorerst davon ausgehen dass das system sicher scheint..
natürlich kann es auch sein dass bis jetzt keine gefunden worden bzw. nicht veröffentlicht...

desweiteren antworten vielleicht nicht alle dienste.. d.h. es gibt vielleicht noch mehr offene ports, aber diese warten auf bestimmte eingaben um aktiv zu werden..

also wie gesagt das ist nicht einfach abschätzbar...
Drager ist offline   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 03.06.04, 17:58   #3 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
also ob jetzt Ports offen sind oder nicht ist egal, denn dann beeinflusst nicht die Sicherheit.
Nur die dienste dahinter sind wichtig, ob die Fehleranfällig sind, und je mehr dienste, destomehr ports, destomehr fehler.
Aber wenn die Dienste keine Fehler haben, macht das nichts.

Aber der Port 445 ist offen, der wird für den Nachrichtendienst von Windoof benutzt, und wie Sasser gezeigt hat, ist dieser Dienst unsicher, also alle Server ohne Patch (+entsprechenes OS) die diesen Dienst laufen haben sind unsicher.

Ein Portscanner dient nicht direkt dazu um zu gucken wie unsicher ein Server/PC ist, sondern nur welche dienste Laufe. Erfahrene Angreifer wissen dann, bei welchem dienst sie Ansätzen müssen, um den Server zu knacken, bzw. sie wissen danach wonach sie suchen müssen, um in den Server zu kommen
Elderan ist gerade online   Mit Zitat antworten
Alt 03.06.04, 23:00   #4 (permalink)
 
Registriert seit: 16.04.04
Zirias Leistung: Facit NTK
Zirias eine Nachricht über ICQ schicken Zirias eine Nachricht über AIM schicken Zirias eine Nachricht über Yahoo! schicken
Likes: 0
Standard

Rein stochastisch steigt mit jedem erreichbaren Dienst auch das Risiko eines erfolgreichen Angriffs. Wie wir alle wissen kann und will die Statistik natürlich keine Aussagen über konkrete Situationen machen. Trotzdem ist es (eben aus statistischen Erwägungen heraus) üblich, die Hosts, die die Dienste übers Internet anbieten sollen, in eine DMZ zu packen. Jeder Rechner, der auf eingehende Pakete in irgendeiner Form reagiert, _KANN_ nunmal theoretisch angegriffen werden, birgt also ein potentielles Sicherheitsrisiko für das eigene LAN.

Greets, Ziri
Zirias ist offline   Mit Zitat antworten
Alt 05.06.04, 08:37   #5 (permalink)
 
Benutzerbild von BasicAvid
 
Registriert seit: 17.03.04
BasicAvid Leistung: Facit NTK
Likes: 1
Standard

Hallo,

wie zuverlässig OS-Fingerprinting ist kann man mit sicherheit nicht so genau sagen!
Da es von vielen Faktoren abhängt! Es könnte sich ja genau so gut ein Honeypot dahinter verstecken! Und um so zuverlässiger ein Scan sein soll um so mehr aufsehen erregt es am Server! Ich würde dir ein Buch empfehlen, da steht alles recht gut beschrieben drin z.B. Das Anti-Hacker-Buch oder Die HackerBibel!

Hier auch nochmal ein Tut!


1.1 - Was ist Fingerprinting?

Fingerprinting nennt man das erkennen des Betriebssystems
eines entfernten Rechners anhand TCP-Sequenzen.
In Absatz 2.0 - 3.2 werde ich etwas näher darauf eingehen.

================================================== ===========

1.2 - Was ist Footprinting?

Footprinting nennt man das auslesen des Betriebssystems
aus Welcome- und Infobannern von am Rechner laufenden
Daemonen oder anhand offener Ports.
Absatz 4.0 - 7.0 erklären das genauer..

================================================== ===========
2.0 - TTL Fingerprinting
================================================== ===========

Ihr kennt ja sicher den Network Mapper (besser bekannt unter NMAP),
das ist ein Portscanner für Linux welcher auch OS-Fingerprinting
und diverse andere Scan-Methoden unterstützt.
Mit NMAP kann man anhand des -O Parameters das Betriebssystem des
zielrechners mit ziehmlicher genauigkeit ermitteln.
einige von euch haben sich sicher schon gefragt wie NMAP das wohl macht?

Ganz einfach, jeder host der zB durch einen ping angesprochen wird
liefert ICMP Sequenzen zurück. Damit wird für gewöhnlich festgestellt
ob die von uns abgesandten Daten auch am Zielrechner ankommen.

Bei einem Ping werden auch die TTL-Werte angezeigt (Time-to-Live)
welche die Lebensdauer eines Datenpacketes in Stationsdurchläufen bis
zum Ziel zeigen. Der Standard-TTL-Wert sollte 64 sein, jedoch hielten
sich nicht alle Betriebssystem-Hersteller daran und man kann in vielen
Fällen anhand des TTL Wertes das Betriebssystem festellen.
Also ein einfacher Ping würde reichen!

Windows-Rechner haben meistens einen TTL-Wert von 128 (pong)
und Linux-Rechner liegen etwas darüber mit ca. 255.

Die Coder und Mitarbeiter beim Projekt 'nmap' haben viel aufwand in
diese Sache investiert und eine Menge Rechner gescannt um die Genauigkeit
von OS-Fingerprinting zu verfeinern und nmap zu dem präzisen Tool
zu machen das es heute ist.

Übersicht mit den verwendeten TTL-Werten:

OS: | TTL:
------------------------+-----
Cisco Router ISO 12.2.1 | 255
QNX Neutrino OS | 255
Linux | 255
Solaris 2.x | 255
Windows ME | 128
Windows NT 4.0 | 128
Windows 2000 | 128
Windows XP Professional | 128
VMS/Wollongong | 128
VMS/UCX | 128
NetGear FM114P | 64
OS/2 TCP/IP 3.0 | 64
HP/UX 10.01 | 64
Linux | 64
VMS/Multinet | 64
FreeBSD 2.1R | 64
AIX | 60
Irix 5.3 | 60
Irix 6.x | 60
MacOS/MacTCP 2.0.x | 60
OSF/1 V3.2A | 60
SunOS 4.1.3/4.1.4 | 60
Ultrix V4.1/V4.2A | 60
VMS/TCPware | 60
DEC Pathworks V5 | 30
HP/UX 9.0x | 30
Windows for Workgroups | 32
Windows 95 | 32
Windows 98 | 32
Windows 98 SE | 32
Windows NT 3.51 | 32

================================================== ===========
3.0 - IP Stack Fingerprinting
================================================== ===========

Bei dieser Art von Remote OS Detection werden verschiedene Pakete
an den Zielrechner gesendet und die replys dann mit
den Ergebnissen diverser Betriebssystemen verglichen.

TEST | DESCRIPTION
------+--------------------------------------------------------
TSeq: | Eine Reihe SYN-Pakete werden zum Zielrechner geschickt
| um zu sehen wie TCP-Sequenz-nummer abgeleitet wird.
------+--------------------------------------------------------
T1: | Ein SYN-Paket wird zu einem geöffneten TCP-Port geschickt.
------+--------------------------------------------------------
T2: | Ein NULL-Paket wird zu einem geöffneten TCP-Port geschickt.
------+--------------------------------------------------------
T3: | Ein SYN,FIN,PSH und URG-Paket wird zu einem geöffneten
| TCP-Port geschickt.
------+--------------------------------------------------------
T4: | Ein ACK-Paket wird zu einem geöffneten TCP-Port geschickt.
------+--------------------------------------------------------
T5: | Ein SYN-Paket wird zu einem geschlossenen TCP-Port geschickt.
------+--------------------------------------------------------
T6: | Ein ACK-Paket wird zu einem geschlossenen TCP-Port geschickt.
------+--------------------------------------------------------
T7: | Ein SYN,FIN,PSH und URG-Paket wird zu einem geschlossenen
| TCP-Port geschickt.
------+--------------------------------------------------------
PU: | Ein Paket wird zu einem geschlossenen UDP-Port geschickt.


Einige Beispiel-Outputs:

Fingerprint Windows 98 v2
TSeq(Class=TD%gcd=<6%SI=<F)
T1(DF=Y%W=2017%ACK=S++%Flags=AS%Ops=M)
T2(DF=N%W=0%ACK=S%Flags=AR%Ops
T3(DF=Y%W=2017%ACK=S++%Flags=AS%Ops=M)
T4(DF=N%W=0%ACK=O%Flags=R%Ops
T5(DF=N%W=0%ACK=S++%Flags=AR%Ops
T6(DF=N%W=0%ACK=O%Flags=R%Ops
T7(DF=N%W=0%ACK=S++%Flags=AR%Ops
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK =E%ULEN=134%DAT=E)

Fingerprint Windows 95 (ws2)
TSeq(Class=TD%gcd=<6%SI=<1F)
T1(DF=Y%W=2017%ACK=S++%Flags=AS%Ops=MNWNNT)
T2(DF=N%W=0%ACK=S%Flags=AR%Ops
T3(DF=Y%W=2017%ACK=S++%Flags=AS%Ops=MNWNNT)
T4(DF=N%W=0%ACK=S%Flags=R%Ops
T5(DF=N%W=0%ACK=S++%Flags=AR%Ops
T6(DF=N%W=0%ACK=S%Flags=R%Ops
T7(DF=N%W=0%ACK=S++%Flags=AR%Ops
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK =E%ULEN=134%DAT=E)

Fingerprint Windows NT4 sp6a
TSeq(Class=TD%gcd=1|2|3%SI=<5A)
T1(DF=Y%W=2017%ACK=S++%Flags=AS%Ops=M)
T2(DF=N%W=0%ACK=S%Flags=AR%Ops
T3(DF=Y%W=2017%ACK=S++%Flags=AS%Ops=M)
T4(DF=N%W=0%ACK=O%Flags=R%Ops
T5(DF=N%W=0%ACK=S++%Flags=AR%Ops
T6(DF=N%W=0%ACK=O%Flags=R%Ops
T7(DF=N%W=0%ACK=S++%Flags=AR%Ops
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK =E%ULEN=134%DAT=E)

Fingerprint Windows 2000
TSeq(Class=RI%gcd=1|2%SI=<5FFF&>FFF)
T1(DF=Y%W=402E%ACK=S++%Flags=AS%Ops=MNWNNT)
T2(DF=N%W=0%ACK=S%Flags=AR%Ops
T3(DF=Y%W=402E%ACK=S++%Flags=AS%Ops=MNWNNT)
T4(DF=N%W=0%ACK=O%Flags=R%Ops
T5(DF=N%W=0%ACK=S++%Flags=AR%Ops
T6(DF=N%W=0%ACK=O%Flags=R%Ops
T7(DF=N%W=0%ACK=S++%Flags=AR%Ops
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK =E%ULEN=134%DAT=E)

Fingerprint Linux 2.0.38
TSeq(Class=TR)
T1(DF=N%W=7FE0%ACK=S++%Flags=AS%Ops=ME)
T2(Resp=N)
T3(DF=N%W=7FE0%ACK=S++%Flags=ASF%Ops=ME)
T4(DF=N%W=0%ACK=O%Flags=R%Ops
T5(DF=N%W=0%ACK=S++%Flags=AR%Ops
T6(DF=N%W=0%ACK=O%Flags=R%Ops
T7(DF=N%W=0%ACK=S%Flags=AR%Ops
PU(DF=N%TOS=0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UC K=E%ULEN=134%DAT=E)

Fingerprint Linux 2.2.16
TSeq(Class=RI%gcd=<6%SI=>FFFF)
T1(DF=Y%W=7F53%ACK=S++%Flags=AS%Ops=MENNTNW)
T2(Resp=N)
T3(DF=Y%W=7F53%ACK=S++%Flags=AS%Ops=MENNTNW)
T4(DF=N%W=0%ACK=O%Flags=R%Ops
T5(DF=N%W=0%ACK=S++%Flags=AR%Ops
T6(DF=N%W=0%ACK=O%Flags=R%Ops
T7(DF=N%W=0%ACK=S%Flags=AR%Ops
PU(DF=N%TOS=0%IPLEN=164%RIPTL=148%RID=E%RIPCK=E%UC K=E%ULEN=134%DAT=E)


Die Auswertung:
-----+-----------------------------+---------------------------------------
Resp | Y = There was a response | Whether or not the host responded
| N = There was no response | to the test packet by sending a reply
-----+-----------------------------+---------------------------------------
DF | Y = DF was set | Whether or not the host responding
| N = DF was not set | to the test packet sent the
| | "Don?t Fragment" bit in response.
-----+-----------------------------+---------------------------------------
W | Can be a two-byte integer | Window advertisement size sent
| expressed in hexadecimal. | by the host responding to
| | the test packet.
-----+-----------------------------+---------------------------------------
ACK | 0 = ack zero | The acknowledgement sequence
| S = ack sequence number | number response type.
| S++ =ack sequence number +1 |
-----+-----------------------------+---------------------------------------
Flags| S = SYN F = FIN | Indicate what flags were
| A = ACK U = URG | set in the responding packet.
| R = RST P = PSH |
-----+-----------------------------+---------------------------------------
Ops | M = MSS | Options sent back by the host
| E = Echoed MSS | responding to the test packet.
| W = Window Scale | There can be any number of options
| T = Timestamp | set (including none) in any order.
| N = No Option |
-----+-----------------------------+------------(sans.org)-----------------


3.1 - Window Size

Hierbei wird auf die TCP Fenster-Grösse von Antwort-Paketen geachtet.
Bsp von oben: T1(DF=Y%W=402E%ACK=S++%Flags=AS%Ops=MNWNNT)
"W=402E" (= Standard für Windows)

================================================== ===========

3.2 - ICMP Error Message

Eine weitere Methode wäre es ICMP Pakete an einen geschlossenen
Port zu senden und auf die Zeit zu achten die das System braucht
um diese mit einer "Unreachable Port" Error-Message zu beantworten.
Die reply-time ist von OS zu OS unterschiedlich und man kann
so das Ziel-OS ausfindig machen.

...

Es gibt noch einige andere Fingerprinting Methoden
jedoch denke ich jetzt die wichtigsten beschrieben zu haben
und wende mich nun dem Footprinting zu

================================================== ===========
4.0 - Port Footprinting
================================================== ===========

Auch anhand offener Ports kann man ein Betriebssystem
erkennen, zB für windows typisch:

Port 135 - epmap
Port 139 - Micosoft Netzwerkumgebung (Netbios)
Port 445 - microsoft-ds
port 1025 - blackjack
...

================================================== ===========
5.0 - FTPD Footprinting
================================================== ===========

Ist am Zielrechner Port 21 geöffnet dann bedeutet dies meist
das dort ein ftp-daemon läuft, am einfachsten ist es sich
via Telnet als "anonymer user" (falls erlaubt)
darauf einzuloggen und die Begrüssungszeile abzuwarten.
Dort wird meist das OS und der ftpd-typ mitangezeigt.

Hier zwei Beispiele:

(Bsp-1
220 xxx.xxx.xxx.xxx Microsoft FTP Service (Version 5.0).

(Bsp-2
220 xxx.xxx.xxx.xxx FTP server [SunOS 5.8] ready.


Es gibt aber noch eine andere Methode
das OS ausfindig zu machen wenn ein FTP-Server aktiv ist.
Man loggt sich via DOS als Anonymer User ein und gibt
dann den Befehl "literal syst" ein.
Anschliessend sollte das OS ausgegeben werden:

(Bsp-1
215 Windows_NT

(Bsp-2
215 UNIX Type: L8 Version: BSD-198911

================================================== ===========
6.0 - HTTPD Footprinting
================================================== ===========

Falls Port 80 geöffnet ist läuft ein http-Server auf dem
Rechner und man kann mittels eines simplen Tricks
Typ, Version, OS und evtl. noch mehr feststellen...
Dazu öffnet man Telnet um sich mit dem server zu verbinden:

telnet xxx.xxx.xxx.xxx 80

und gibt danach folgendes ein:

options / http/1.1
host: xxx.xxx.xxx.xxx

(die IP/Domain habe ich durch xxx.xxx.xxx.xxx ersetzt)
Anschliessend zweimal auf Enter gedrückt und folgende Information
sollte zum Vorschein kommen:

HTTP/1.1 501 Method Not Implemented
Date: Tue, 21 Jan 2003 02:38:13 GTM
Server: Apache/1.3.6.3 (Unix)
Allow: GET, HEAD, OPTIONS, TRACE
Connection: close
Content-Type: text/html

Jedoch darf die "versions information"-Abfrage am Webserver
nicht deaktiviert sein, da sonst nichts angezeigt wird.
Bei den meisten Webservern ist das aber sowieso nicht der Fall,
da kaum jemand darauf achtet.

================================================== ===========
7.0 - E-MAIL Footprinting
================================================== ===========

Schreibe an die Person die am entfernten Zielrechner sitzt
eine E-Mail, warte auf die Antwort und lass dir von deinem E-Mail
clienten den vollständigen Header anzeigen.
Suche danach nach der Zeile "X-mailer=" und schon weisst
du welcher Client benutzt wird und kannst falls notwendig
bei Google nachschlagen für welches OS dieser zur Verfügung steht.

X-mailer=Microsoft Outlook = hier handelt es sich mit ziehmlicher
Sicherheit um ein MS WINDOWS ausser
jemand hat es unter linux emuliert ;p

================================================== ===========
8.0 - Finger- & Footprinting -Tools
================================================== ===========

Network Mapper - http://www.insecure.org/nmap
MingSweeper - http://www.hoobie.net/mingsweeper
LANguard - http://www.gfi.com/languard
Superscan - http://www.webattack.com/get/superscan.shtml
WinFingerprint - http://www.webattack.com/get/winfinger.shtml
_more_ - http://www.zone-h.org/en/download/category=14
__________________
Mfg Basic Avid
- Use it or be used! -
BasicAvid ist offline   Mit Zitat antworten
Antwort
   

Werbung ist gerade online    

[HaBo] » Security Area » (In)security allgemein » Offene Ports/Wann ist ein Computer unsicher?
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
1332 offene ports.. 3rdnuss Fun Section 14 19.08.05 12:44
Offene Ports sichten Johnson Virenschutz · Tools & Aggressive Software 3 29.01.05 20:21
Offene Ports BobaFett (In)security allgemein 13 27.04.03 00:02
Offene Ports SystemShock (In)security allgemein 9 28.12.02 18:42
Offene Ports MrSwissi (In)security allgemein 25 27.01.02 21:16


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61