| (In)security allgemein Sicherheit, Anonymität im Netz. Schutz und Maßnahmen. Prävention und Konzepte. Sicherheitsarchitekturen allgemein und auf der Netzwerkebene. |
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 ...
![]() |
| | #1 (permalink) | |
| Registriert seit: 03.06.04 ![]() Likes: 0 | 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:
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. | |
| | |
| | #2 (permalink) |
| Registriert seit: 03.05.04 ![]() Likes: 0 | 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... |
| | |
| HaBOT | |
| |
| | #3 (permalink) |
| Moderator ![]() Registriert seit: 30.03.04 ![]() Likes: 14 | 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 |
| | |
| | #4 (permalink) |
| 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 | |
| | |
| | #5 (permalink) |
| Registriert seit: 17.03.04 ![]() Likes: 1 | 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! - |
| | |
![]() |
| | |
| |
| Themen-Optionen | |
| Ansicht | |
| |
Ä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 |