PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : HACK:Jemand hat mein NAT umgangen



Seiten : [1] 2

Suffer
27.01.08, 04:55
Hallo,

folgende Situation: ich hab einen Server, der nur ein Netzwerkinterface (192.168.1.1) hat und hinter einem billig DSL-Netgear-Router hängt.
Damit ich per SSH auf den Server komme, hab ich ein Portforwarding auf Port 22 eingerichtet.

Gestern schau ich durch Zufall in /var/log/apache/access.log und sehe dort einige Angriffsversuche auf php-Skripte. An sich ja nichts ungewöhnliches, aber der apache sitzt hinter einem NAT-Router. WTF?

Ich hab nochmal extra nachgeschaut: es ist definitiv kein Portforwarding auf Port 80 eingetragen (ein telnet auf Port 80 auf die offizielle IP verläuft auch wie erwartet in einem Timeout). Fehlkonfiguration von meiner Seite kann ich definitiv ausschließen!

Ist es möglich, dass man von außen *trotz NAT* auf eine interne IP-Adresse zugreifen kann? Natürlich unter günstigen Bedingungen: interne IP bekannt (ist bei 192.168.1.1 nicht allzu schwer), buggy Firmware mit dreckigen NAT-Tabellen auf Router, usw.

Jemand hier, der da was zu sagen kann? Mich würde brennend interessieren, wie derjenige auf den Rechner gekommen ist.

gadget
27.01.08, 09:27
Damit ich per SSH auf den Server komme, hab ich ein Portforwarding auf Port 22 eingerichtet.

Ist es möglich, dass man von außen *trotz NAT* auf eine interne IP-Adresse zugreifen kann?Wieso sollte nicht auf deinen Rechner zugegriffen werden können, wenn du dies ausdrücklich erlaubst? NAT ist für deinen Rechner doch transparent.

poweradmin
27.01.08, 09:32
Wieso sollte nicht auf deinen Rechner zugegriffen werden können, wenn du dies ausdrücklich erlaubst? NAT ist für deinen Rechner doch transparent.

Genau, wieso suchst Du Dir nicht einen anderen unprivilegierten Port (stichwort /etc/services) für Dein vorhaben. Das kannst Du ja bequem beim ssh Server und Client in den Konfigurationsdateien angeben.

Gruß Pierre

Suffer
27.01.08, 14:51
Nochmal zur Verdeutlichung:

Der Netgear-Router macht ein SNAT für die internen Rechner, damit die ins Internet kommen. Als DNAT ist lediglich ein Portforwarding für SSH eingetragen.

Normalerweise müsste ich noch ein Portforwarding (DNAT) eintragen, damit ich von außen überhaupt auf den Webserver kommen kann. Allerdings hat das scheinbar jemand auch *ohne DNAT* geschafft, von außen eine interene IP-Adresse (Port 80) anzusprechen.

gadget
27.01.08, 15:18
Du sprichst von außen keine interne IP an und 80 ist ein Port und keine IP-Adresse. Und vielleicht ging die Verbindung ja von dir aus?

Stephanw
27.01.08, 15:27
Und vielleicht ging die Verbindung ja von dir aus?

Wie zum Teufel meinst du das?

Das einzige Szenario, wenn Port 80 von außen wirklich nicht erreichbar ist, kann ich mir so vorstellen: Der "Hacker" kam per ssh auf die Kiste und führte die Anfragen lokal durch. Welche IP siehst du im Access log des Apache? Gibt "last" vielleicht Aufschluss über einen möglichen Einbruch?

Gruß Stephan

gadget
27.01.08, 15:32
Wie zum Teufel meinst du das?Auch NAT hindert mich nicht daran, eine Verbindung ins Internet über Port 80 aufzubauen. Und die Antwort erreicht mich schließlich auch, oder?

Stephanw
27.01.08, 15:37
Auch NAT hindert mich nicht daran, eine Verbindung ins Internet über Port 80 aufzubauen.

Du meinst aber bitte nicht Port 80 als Quellport, oder?

Gruß Stephan

gadget
27.01.08, 16:02
Du meinst aber bitte nicht Port 80 als Quellport, oder?
Denkfehler auf meiner Seite :o
Aber wer weiß auf der anderen Seite, was in diesem Fall der laufende Apache so alles macht, oder?

framp
27.01.08, 16:11
Hast Du mal geprüft ob jemand per ssh bei Dir drin war? Wenn ja kann der per ssh tunneling auf alle Deine lokalen Ports zugreifen.

MannOhMann
27.01.08, 16:38
poste mal den Teil des log Files. Das würde mal einige Fragen ersparen.

Suffer
27.01.08, 17:45
Hier die relavanten Teile aus access.log

Die aufgerufenen Perl-Skripte exisitieren selbstverständlich nicht. Und die Anfragen kommen natürlich von einer offziellen IP-Adresse. Andernfalls hätte ich mich ja nicht gewundert...



88.219.188.250 - - [21/Jan/2008:13:29:14 +0100] "POST /cgi-bin/h.pl?s=900265338A HTTP/1.1" 404 344 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
88.219.188.250 - - [21/Jan/2008:13:29:16 +0100] "POST /cgi-bin/h.pl?s=1853839133 HTTP/1.1" 404 344 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
88.219.188.250 - - [21/Jan/2008:13:29:17 +0100] "GET /cgi-bin/JNGOa.pl?999=K5EVQpCAAAQ4y1AAgAwNxU2aw42dF9WQsRGd2 gFW1IkbJtka3JnQpFTSpgDRJBAAC. HTTP/1.1" 404 348 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
91.155.160.175 - - [22/Jan/2008:10:22:32 +0100] "POST /cgi-bin/h.pl?s=2079936289A HTTP/1.1" 404 344 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
91.155.160.175 - - [22/Jan/2008:10:22:33 +0100] "POST /cgi-bin/h.pl?s=846243815 HTTP/1.1" 404 344 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"
91.155.160.175 - - [22/Jan/2008:10:22:34 +0100] "GET /cgi-bin/JNGOa.pl?999=K5EVQpCAAAQG6RAAgAgeolmR3MUTHliZrVXMk liUrZ1bNJWVzk3MuhFNx4kThBAAC. HTTP/1.1" 404 348 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"


Die IP-Adressen kommen laut whois aus Frankreich und Finnland und gehören IMO zusammen: es sind die einzigen Einträge in der access.log und greifen die gleichen Perl-skripte (h.pl; JNGOa.pl) an. Aber das ist eigentlich gar nicht relevant. Mir geht es nur darum, dass diese Einträge in der access.log gar nicht auftauchen dürfen, weil der Rechner keine offizielle IP hat und kein Portforwarding eingetragen ist.

Und der Rechner ist natürlich nicht gehackt und im lastlog taucht nichts interessantes auf. Per SSH hat sich auch niemand angemeldet und ich kann auch nichts sonstiges feststellen.

eule
27.01.08, 17:46
Ist es möglich, dass man von außen *trotz NAT* auf eine interne IP-Adresse zugreifen kann?

NAT ist keine Sicherheitstechnik.
http://www.iks-jena.de/mitarb/lutz/usenet/Firewall.html#NAT
Ein Beispiel:
http://bedatec.dyndns.org/ftpnat/

Suffer
27.01.08, 18:02
Für den Fall, dass es jemanden noch nicht klar ist:

Wenn ich mit iptables ein SNAT mache, wird jede Verbindung aus dem internen Netz nach draußen in einer NAT-Tabelle festgehalten. Greife ich z.B. auf einen Webserver im Internet zu, wird festgehalten, von welcher internen IP und von welchem Sourceport ich komme:
192.168.1.5:30000 -> www.heise.de:80

Die interne IP-Adresse wird umgeschrieben (SNAT), da ja die internen Netze (192.168.0.0/16, 10.0.0.0/8, usw.) eigentlich nicht vom ISP geroutet werden dürften. Statt der 192.168.1.5 steht also nach dem SNAT die offizielle IP im Header:
1.1.1.1:30000 -> www.heise.de:80
Kommt nun das Antwortpaket:
www.heise.de:80 -> 1.1.1.1:30000
kann ich in der NAT-Tabelle nachschauen, ob das Paket zu einer vorhandenen NAT-Verbindung gehört. Falls ja, schreibe ich die Ziel-IP wieder auf die lokale IP um
www.heise.de:80 -> 192.168.1.5.30000
und alles ist OK.


Nun versetze ich mich mal in die Lage eines Crackers mit der IP 2.2.2.2:
ich vermute, dass eine offizielle IP-Adresse 1.1.1.1 SNAT macht. Wenn ich es schaffen würde, in die NAT-Tabelle des Routers die Information
192.168.1.1:80 -> 2.2.2.2:31337
reinzubringen, kann ich von außen eine Verbindung auf die 192.168.1.1:80 aufbauen (genauer: von der 2.2.2.2 und SourcePort 31337).


So, und nun nochmal zurück zu ursprünglichen Frage:
jemand hier, der weiß wie ich die NAT-Tabelle eines billig-Routers manipulieren/hacken kann?

Suffer
27.01.08, 18:12
NAT ist keine Sicherheitstechnik.


Naja, es sollte bei richtiger Implementierung zumindest verhindern, dass ich von außen auf einen internen Rechner komme.


Ein Beispiel:
http://bedatec.dyndns.org/ftpnat/


Ja, es gibt solche kranken Firewalladmins, die alles von SourcePort 20 zulassen, um aktive FTP-Verbindungen zu ermöglichen und dabei ein riesiges Loch in die Firewall reißen. Aber bezogen auf meinen Fall wird das nur die Verbindungen betreffen, die auf den Router selbst gehen. Nehmen wir an, die Weboberfläche des Routers wäre damit "geschützt", so könnte ich darauf zugreifen, wenn ich die Pakete von Port 20 kommen lassen.
Aber das würde mir es nicht ermöglichen, auf eine interne IP zuzugreifen. Zumindest wüsste ich nie wie...

eule
27.01.08, 18:54
Hast du die Links auch gelesen?
Hast du den Test auf bedatec gemacht?

IT-Low
27.01.08, 19:00
Und der Rechner ist natürlich nicht gehackt und im lastlog taucht nichts interessantes auf. Per SSH hat sich auch niemand angemeldet und ich kann auch nichts sonstiges feststellen.

Wäre es vielleicht möglich, dass diese Anfragen von einen deiner Clients (Spyware, Trojaner, ...) aus dem LAN kommen (IP Spoofing)? Die Antworten schickt der HTTP-Server dann zu den gespooften Adressen.

Suffer
27.01.08, 19:12
Hast du die Links auch gelesen?
Hast du den Test auf bedatec gemacht?

Den bedatec-Test kann ich nicht machen, da ich auf die Clients momentan keinen Zugriff habe. Werd das wohl morgen mal nachholen müssen.


Wäre es vielleicht möglich, dass diese Anfragen von einen deiner Clients (Spyware, Trojaner, ...) aus dem LAN kommen (IP Spoofing)? Die Antworten schickt der HTTP-Server dann zu den gespooften Adressen.


Jo! Da hab ich noch gar nicht dran gedacht. Und das erscheint mir jetzt als wahrscheinlichste Möglichkeit! Denn an den internen Clients sitzen nur ... äh ... unbedarfte Benutzer. Die Wahrscheinlichkeit, dass die sich irgendwas einfangen ist IMO bedeutend höher, als dass jemand von außen die NAT-Tabelle manipuliert.

Hmm. Das müsste ich doch herausfinden können, wenn ich die ARP-Tabelle überwache, oder? Denn eigentlich sollten da keine Einträge aus einem anderen Netz als 192.168.1.0/24 auftauchen...

IT-Low
27.01.08, 19:16
Hmm. Das müsste ich doch herausfinden können, wenn ich die ARP-Tabelle überwache, oder?

Jepp, arpwatch könnte helfen...

Suffer
27.01.08, 19:23
Jepp, arpwatch könnte helfen...

Prima! Vielen Dank!

Wenn ich vom Laptop ein nmap -S 1.1.1.1 laufen lassen, taucht auf meinem Router


Jan 27 20:19:29 hoco arpwatch: new station 1.1.1.1 0:1:6c:cc:4:27 eth0
auf. Das sieht schon mal sehr gut aus!.

drcux
27.01.08, 20:11
Ist vielleicht auch noch UPnP auf dem Router frei geschaltet?

Suffer
27.01.08, 22:32
Ist vielleicht auch noch UPnP auf dem Router frei geschaltet?

Da bin ich gerade eben ebenfalls drauf gestoßen. Erstaunlich, wozu uPnP so alles gut ist... ;-)

Aber nein: uPNP ist deaktiviert.

sam600
01.02.08, 08:30
Ein Beispiel:
http://bedatec.dyndns.org/ftpnat/


hallo

laut dieser liste sind alle "billig" router anfaellig.

kennt jemand einen "billig" router der dieses sicherheitsloch nicht hat?
bzw. gibt es weitere seiten, wo man seinen router testen kann auf diverese /bekannte sicherheitsprobleme?



Ja, es gibt solche kranken Firewalladmins, die alles von SourcePort 20 zulassen, um aktive FTP-Verbindungen zu ermöglichen und dabei ein riesiges Loch in die Firewall reißen.


aber wie ist dann aktives ftp moeglich?
z.b.: nur ueber einen proxy?

danke und noch a schoena fasnet...

bla!zilla
01.02.08, 09:09
aber wie ist dann aktives ftp moeglich?
z.b.: nur ueber einen proxy?

Wozu? Passives FTP funktioniert doch.

sam600
01.02.08, 09:12
Wozu? Passives FTP funktioniert doch.

ja, aber wenn der ftp-server nur aktives ftp unterstuetzt?

-> gibt es einen "billig" router der die sicherheitsluecke nicht hat.

...linux pc ist keine alternative - zu hohe stromkosten...

danke

bla!zilla
01.02.08, 09:34
ja, aber wenn der ftp-server nur aktives ftp unterstuetzt?

Die supporten auch alle passives FTP.

sam600
01.02.08, 09:41
Die supporten auch alle passives FTP.

danke bla!zilla, wieder was dazu gelernt!

eine frage ist noch offen:
welcher "billig" hat die sicherheitsluecke nicht!

danke

bla!zilla
01.02.08, 10:01
So aus dem Bauch heraus: Linksys WRT54GL mit DD-WRT oder OpenWRT. Bin mir aber nicht sicher.

sam600
01.02.08, 10:26
So aus dem Bauch heraus: Linksys WRT54GL mit DD-WRT oder OpenWRT. Bin mir aber nicht sicher.

danke.
das heisst ( soweit ich mich eingelesen habe ) ein "fertigen" router gibt es nicht.

-> man muss auf einem "billig" router ein eigenes system installieren.
schade!!! oder habe ich was falsch verstanden?

wenn jemand doch noch eine andere moeglichkeit kennt, kann sich gerne melden!

gruss

wranger2
08.02.08, 13:28
Jepp, arpwatch könnte helfen...

Wohl kaum ....

Du wirst da werder ARP-Pakete noch Broadcasts aus anderen Netzen bekommen ...