A typical night in the internetz

via powtac

Versucht ihr auch manchmal einen Gedankengang zurückzuverfolgen um zum Ausgangspunkt zurückzukehren? Gestern fand ich mich auf einmal auf einer Seite, die mich mit einem Eingabeformular begrüßte: USER-ID und PASSWORD stand dort in fetten Buchstaben. Wie ich dahinkam? Das kommt zum Ende der Geschichte.

Das ist die original Eingabemaske - ihr wisst jetzt, was ich mit Web 1.0 meine, oder?

Jeder halbwegs normale Mensch wird wohl aus reiner Neugier mal was eingeben (nicht? Okay, dann halt jeder Geek) und sehen was passiert. Statt einer Fehlermeldung, dass das Passwort falsch sei, bekam ich eine weiße Seite mit HTML Quelltext angezeigt. Okay, jetzt war meine Neugier geweckt. Ich schaute mir den Quelltext des Loginformulars erstmal an. Es fanden sich CSS Angaben, die mehr an Prä-CSS oder Web 1.0 Zeiten erinnerten: Attributsnamen komplett in Großbuchstaben, Nutzung des bgcolor-Attributs im body-Tag und intensiver Gebrauch von Tabellen zur Gestaltung. Aber kein Hinweis, dass das Passwort vielleicht per Javascript geprüft wurde, wie es die Aufmachung der Seite vielleicht erwarten lies (in den späten 90er Jahren war es durchaus möglich, dass das Passwort direkt im Quelltext stand – unverschlüsselt). Hier war also nix zu holen. Also weiter zur Ausgabe, die erschien, wenn ich beliebige Nutzerdaten eingab. Auch hier fand ich nix verwertbares.

Glücklicherweise hatte die Seite ein title-Tag und so konnte ich nach kurzer Beratung mit Google feststellen, dass es sich um ein Loginformular für das Webinterface einer Videoüberwachungsanlage handelte. Jetzt war ich schon etwas gespannter, denn die Tatsache, dass es sich bei der Adresse lediglich um eine IP handelte, lies die Vermutung zu, dass es sich um etwas privates handelte. Also weiter überlegt: Aus Erfahrung wusste ich, dass es oftmals Default-Passwörter gibt und nach etwas weiterer Beratung mit Freund Google fand ich die Default-User-ID und das dazugehörige Passwort auf der Herstellerseite – im passenden Manual.

Wunderbar dachte ich mir und freute mich wie ein kleiner Junge – wer schaut nicht anderen Leuten gerne heimlich zu? Doch so einfach sollte es mir nicht gemacht werden: Ich gab die Daten ein und drückte Enter und – landete wieder auf der weißen Seite mit dem Quelltext. Ich wollte schon aufgeben und das ganze als Internetleiche abstempeln, als mir eine kleine Änderung im Quelltext auffiel: Der Code lies darauf schließen, dass die Seite einen Frame anzeigte, der eine .asp Seite im src-Tag enthielt. .asp = Active Server Pages = serverseitige Skriptsprache von Microsoft. Hier machte es Klick: Es ist dynamisch, kommt von Microsoft und soll Video anzeigen – ich brauche den Internet Explorer und dubiose ActiveX Steuerelemente.

Ein Versuch war es wert: Also Parallels gestartet, XP gebootet und den IE gestartet. Seite aufgerufen. Daten eingegeben und: BAZINGA. Er fragt  mich, ob ich ein ActiveX Steuerelement installieren möchte. Gespannt wie ein Flitzebogen wartete ich und fragte mich, was ich gleich sehen würde: Werde ich Zeuge eines Attentats und muss flüchten und mich von Jessica Alba retten  lassen oder kann ich Menschen beim Sex beobachten?

Doch nix da. Die vier Kamerabilder die vor mir auftauchten zeigten ein dunkles Zimmer, eine Garage, eine Haustür und den Garten. Toll. Tschüss. Gute Nacht.

Doch halt: Google bietet doch das intitle Suchargument mit dem man Webseiten nach Titel durchsuchen kann. Also fix den entsprechenden Titel eingefügt und gesucht. Und Zack: 10 weitere Suchergebnisse. Ich fand noch eine Büroetage mit 16 Kameras, einen Privathaushalt mit 16 Kameras (seriously, wer brauch sowas?) und eine Baustelle mit 4 Kameras und anderen uninteressanten Krams. Und was lernen wir daraus? Entweder du änderst die Standardpasswört oder die verhinderst, dass man von außerhalb auf dein System zugreifen kann.

Okay, und wie kam ich jetzt dorthin? Ein ziemlich verrückter Gedankengang. Ich habe in irgendeinem Blog etwas über ein neues Start-Up gelesen, allerdings dessen Namen vergessen, lediglich die TLD .ca blieb mir im Gedächtnis. Und da ich Domainspielchen immer nett finde, hab ich mal ausprobiert, was noch so geht (z.B. http://obama.ca/n oder http://yeswe.ca/n http://oh.ca/ptain etc.) – ihr wisst schon. Und bei einer dieser vielen Spielchen tauchte das besagt Loginformular auf und so nahm es seinen Lauf.

Und ja, ich habe dem Hersteller eine Email geschickt und ihn darauf hingewiesen, dass es unklug ist, Standardpasswörter einzurichten, die auf jedem Gerät identisch sind.

Router Hacking

Die letzten beiden Tage habe ich mich damit beschäftigt, einen Sinus W500V Router mit alternativer Firmware auszustatten. Konkret geht es um das Freetz Projekt, welches auf dem Speedport2Fritz (Anleitung) Projekt aufbaut. Letzteres erlaubt es AVM Fritzbox Firmware auf bestimmte Speedport und Sinus Router zu packen, während das Freetz Projekt die AVM Firmware verändert bzw. um sogenannte Packeges erweitert. So ist es dann z.B. möglich einen Webserver oder FTP Server laufen zu lassen.

Bei mir laufen der lighttpd (HTTP Server), bftpd (FTP Server), knockd (Knock Daemon) und dropbear (SSH Daemon). Für Ruby und PHP hat der begrenzte Speicher des Sinus W500V leider nicht gereicht. Aber bis dahin war es ein langer Weg. Vorneweg: Vergesst es gleich, den Krams mit dem Mac machen zu wollen. Ich habe da mehrere Stunden dran gesessen und nacheinander Fehlermeldungen abgearbeitet, aber hatte irgendwann keine Lust mehr. Zum Glück gibts in der oben verlinkten Anleitung ein fertiges Ubuntu Image, welches man in einer VirtualBox oder im VMWare Player laufen lassen kann und wo bereits alles vorbereitet ist. Im Prinzip läuft das ganze so ab, dass man zuerst ein speed2fritz Image erstellt, also Fritzbox Firmware für den Router. Danach mit start-freetz ein Image, dass die entsprechenden Packages enthält (das Erstellen kann schonmal längere Zeit dauern, da alles erst aus dem Netz geladen werden wird und ggf. auch noch kompiliert werden muss) und danach nochmal mit speed2fritz aus den vorher erstellten Images ein Finales erstellt. Das einfach über das Web Interface als neue Firmware installieren, die Warnmeldungen ignorieren, ein bisschen warten und den Router neu starten. Und schon hat man ein neues Spielzeug. Nach dem Neustart gibts im Fritzbox Webinterface nen neuen Menüpunkt, der das Freetz Webinterface aufruft, von dem man alles wichtige Verwalten kann. Dienste starten und beenden oder Einstellungen verändern. Ich hab das ganze nicht auf unserer Fritzbox gemacht, die wir für den Internetzugang nutzen, das war mir dann doch zu riskant, wollte dann doch erstma einfach nur rumspielen. Da jetzt auf dem Sinus Teil ne Fritzbox läuft, lässt sich dieser vielleicht sogar mit unserer original Fritzbox verbinden (als Repeater oder so, mal sehn) und dann damit auch Internetzugang bekommen. Ein always-on Jabber Client wär schon cool – mcabber gibts ja als Package…

Problematisch bzw. aufwendig ist es leider nur, dass man immer wieder das Image komplett erstellen und installieren muss, wenn man ein neues Package hinzufügen möchte. Aber naja, was solls. Vielleicht werde ich dann die nä. Version noch mit PHP oder Ruby als Package erstellen, um dann z.B. dynamische Statusseiten zu erstellen, die von außerhalb erreichbar sind. Geschützt durch den Port Knocking Daemon. Port Knocking funktioniert grob gesagt wie folgt: Der Client “klopft” nacheinander eine bestimmte Sequenz von Ports auf dem Zielrechner an. Der Daemon erkennt die Sequenz und führt eine vorher definierte Aktion durch. Bei mir ist es das (de)aktivieren von SSH. Ebenso ließe sich der lighttpd starten und beenden. Liefert einen gewissen Schutz, da durch Port Scannings keine offenen Ports entdeckt werden, solang die richtige Sequenz nicht gesendet wurde.

Inwiefern die Telefonfunktion noch geht, kann ich leider keine Auskunft geben, das Sinus W500V hat zwar ne Telefonfunktion, die wir aber nicht nutzen. Aber ich vermute, dass es auf jeden Fall mit der Fritzbox Firmware läuft, ob die Freetz Firmware daran etwas ändert, weiß ich nicht, müsste man vielleicht ausprobieren.

Für jeden der Spaß am rumhacken hat und vielleicht noch nen Sinus oder Speedport Router nutzlos rumstehen hat, kann so vielleicht noch mal ein bisschen Späße treiben. Hab irgendwo was von LED Lauflicht mit den Statuslämpchen gesehn, das werd ich nochmal ausprobieren, sieht bestimmt lustig aus :D