Sie sind hier : Homepage →  2008 - Die Buffalo NAS Box→  Das LS System (III) =Sicherheit

00 - Die Link Station live im Ur-Zustand (Juli 2008) genügt unseren Sicherheits-Anforderungen überhaupt nicht.

Wenn Sie die Link Station bekommen, können Sie per Windows Programm bzw. Webinterface einer LS eine IP Nummer zuordnen oder auch die voreingestellte automatische DHCP Konfiguration erst mal so belassen. Doch für einen Server selbst im lokalen "Kleinstnetz" sollte (meiner Meinung nach) eine feste IP her, immer.

Die LS muss nicht unbedingt eine Gateway-Adresse nach draußen eingetragen bekommen, vor allem, wenn sie nur als Backupmedium dient. Wollen Sie aber die Uhr einmal täglich automatisch !! stellen lassen, ist für den "Zeitserver" ein Gateway und evtl. auch ein DNS Server erforderlich.

Weiterhin kann man per voreingestelltem Hersteller- Benutzer "admin" mit Kennwort "password" sofort auf den Server drauf und wild drauf los konfigurieren.

Das alles kann natürlich so nicht bleiben.

05 - Der Benutzer "admin" kann recht viel.

Das Webinterface verlangt den Benutzer "admin", also nicht den "root". Und mit dem Webinterface kann man viel machen. Darum bekommt dieser Benutzer zuerst mal ein neues Kennwort. Dann werden mindestens ein weiterer Benutzer angelegt, der als eigene stille Reserve dient, man weiß ja nie.

 

Als Nächstes wird der Zugang zur Linux Ebene auf dem Server vorbereitet. Dazu kann man sich erst mal divese Anleitungen über die LS im Internet durchlesen. Die Links dazu stehen auf unserer LS Link-Seite.

 

Dort steht auch, daß es einen "Hintereingang" gibt, mit dem man den sogenannten Telnet Konsolen-Zugang aktivieren kann und das (bislang unbekannte) root Kennwort einfach weg löscht.

10 - Der Telnet Zugang und die Backdoor als "root".

(Die Backdoor ist unsere Hintertür.) Wichtig zu wissen ist: Die Telnet Kommunikation zwischen Server und Arbeitsstation ist unverschlüsselt und damit extrem !! unsicher. Angestrebt wird also eine sogenannte "ssh" Verbindung über das Programm "putty", also ein sicherer (Telnet ähnlicher) Consolen-Client auf Windows Stationen.

 

Mit ein wenig Googeln (oder unserer Link-Seite) findet man schnell das Java Programm ACP_Commander.jar und kann es sich auf die lokale Station laden. Einen Java Interpreter braucht man auch noch und dann kann man in der DOS-Box (bzw. der MS-DOS Eingabeaufforderung) folgende Zeile aufrufen:

 java -jar acp_commander.jar -t xxx.yyy.zzz.vvv -o

 

So sieht das Ergebnis in der Windows/DOS Console aus:

====================================================
F:\>java -jar acp_commander.jar -t 193.218.xxx.yyy -o
ACP_commander out of the nas-central.org (linkstationwiki.net) project.
Used to send ACP-commands to Buffalo linkstation(R) LS-PRO.

WARNING: This is experimental software that might brick your linkstation!

Using random connID value = 64DB9809D8DD
Using target:   193.218.xxx.yyy/193.218.xxx.yyy
Starting authentication procedure...
Sending Discover packet...
Found:  LS500-252 (/193.218.xxx.yyy)     HS-DHGL(JINMU) (ID=00010)       mac: 00:16:01:C5:AD:30
Firmware=  2.100        Key=04508F99
Trying to authenticate EnOneCmd...      ACP_STATE_OK
start telnetd...        OK (ACP_STATE_OK)
Reset root pwd...       Password changed.

You can now telnet to your box as user 'root' providing no / an empty password.

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

Und, "o Schreck lass nach", das Root-Kennwort ist jetzt wirklich weg und der Telnet Dämon auf dem Server ist tatsächlich gestartet.

Ruft man jetzt das "putty" Programm auf (gibt's auch ganz leicht im Internet), dann kann man dort (anstelle von ssh) Telnet als Protokoll anklicken und die IP Nummer der LS eingeben und als Benutzer "root" ist man sofort drinnen.

Eigentlich ist das genial, aber dennoch absolut fatal, denn es geht über die Ethernet- Schnittstelle schnell, lautlos und unsichtbar.

Deshalb rufen wir sofort den Befehl "passwd" auf und vergeben sofort dem "root" Benutzer wieder ein Kennwort unserer Wahl. (Übrigens; der ssh daemon auf dem Server will bei ssh immer ein Passwort haben, sonst kommen sie da nie wieder rein.)

30 - Telnet abschalten und SSH einschalten

Eigentlich wäre es ja ganz einfach, wenn man nur genau aufpaßt. Also zuerst mal SSH einschalten, ganz wichtig. "/usr/local/sbin/sshd" und sofort ein root- Passwort vergeben, sonst geht ssh nicht.

In einem Posting steht es dann genau, in "/etc/inittab" wird "/etc/init.d/rcS" aufgerufen und da drinnen kann man "/usr/local/sbin/sshd " einfügen, direkt unter dem auskommentierten telnetd. Und man kann es vorher schon mal ausprobieren. Doch mit dem sofortigen Einbauen macht man nichts falsch.

Toll, denn man sieht auch, wo dieses blöde "telnetd" wohnt, das wir ja killen müssen. Doch telnetd ist (auch) nur ein symbolischer Link auf "../../bin/busybox" und die busybox können wir nicht killen, die brauchen wir. Also müssten wir den symbolischen Link umbiegen auf irgend welchen ls -l Befehl. Doch ein wirklicher Experte (für embedded Systeme und deren Backdoors) weiß natürlich, daß er dann die busybox immer noch per Option direkt aufrufen könnte.


Also stellen wir das mal hinten an.

32 - Was Sie nicht dürfen :

Ich habe dann testweise "telnetd" umbenannt in "telnet.tot", ssh in den boot-Script eingebunden, dort selbst das bereits auskommentierte "telnetd" gänzlich raus gelöscht und die LS neu gestartet. Der root User hatte ja bereits ein neues Passwort bekommen.

Und mit putty (jetzt über SSH, vorher war es das Telnet Protokoll) über ssh komme ich so als root ganz locker wieder rein. Es funktioniert. !!
Und jetzt wollte ich noch wissen, ob man mit dem originalen Java Script immer noch von hinten reinkommt.

 

Also ganz locker wieder die DOS Box mit

java -jar acp_commander.jar -t xxx.yyy.zzz.vvv -o

gefüttert und der Bildschirm meldet Vollzug ohne jeden Fehler. Dann putty aufgerufen und uuups, der root Zugang geht nicht mehr. Aha, das weiß man, ssh will immer (auf jedem Linux Server) ein Kennwort haben.

Na gut, dann neben nicht und mit Telnet probiert. Aha, das geht natürlich auch nicht mehr, hatte ich ja selbst gekillt.

Immer noch kein Problem, dachte ich, mit putty den "admin" Benutzer aufgerufen, Kennwort eingegeben und drinnen war ich. Nur, ich war natürlich kein "root" und die bash Shell ging nur marginal, der /etc/ profile Script verlangt root rechte.

Auch kein Problem, dacht ich, bei Suse tippt man einfach nur "su -" und wieder ist man "root". Denkste, hatte ich nämlich vorher nie probiert, diese Shell kennt kein "su".

Auch kein Problem, dacht ich, mit dem "mc" über F9 ="Dateien finden" nach "su" suchen lassen und dort (in /etc/pam.d/ ) eben "su" oder "sudo" aufrufen. Doch was bei Suse und Debian und Fedora geht, hier geht es nicht.

Ui, ui, ui, selbst ausgetrickst, diese Kiste ist dicht, was nun ?

34 - Lange gesucht und dann die Backdoor gefunden

Irgendwo gab es mal den Spruch : "Durch Nachdenken vorn."
Wenn man mit der Zeile "java -jar acp_commander.jar -t xxx.yyy.zzz.vvv -o" das Passwort löschen kann, müsste man es auch setzen können, denn das war das Problem. Und zum Löschen brauchte man genauso "root-" Rechte wie zum Setzen. Eigentlich logisch, doch wo ist die Option ?

Es ist wieder mal ganz fatal einfach, es gibt nämlich eine Menge Optionen bei dem ACP_Commander. Mit der Option "-s" zum Beispiel bekommt man eine ganz normale "root-" Konsole in der Windows Dos-Box ganz ohne Passwort !!!, einfach unglaublich.

Und dort tippt man nur "passwd" und dann zwei mal das Kennwort seiner Wahl und es ist drinnen. So einfach war das. Auf so etwas Blödes und Einfaches bin ich einfach nicht gekommen. Dann tippt man "exit" und das wars.

Jetzt funktioniert "putty" wie gewünscht als "root" und ich habe die Gewißheit, wer das Java Scipt (ist auch als Source verfügbar) leicht modifiziert, kann auch wieder Telnet über die Option in der BusyBox wieder ohne Passwort aktivieren.

35 - Das Gefühl im Bauch ist jetzt richtig mies.

Diese LS Büchse ist extrem löchrig programmiert oder dillettantisch zusammen geklopft.

Ich glaube, jetzt fängt die eigentliche Arbeit erst noch an.


40 - Es muß also noch Einiges getan werden, sonnst kann man die LS nicht ohne NAT betreiben !!

Und schon gar nicht mit einer öffentlichen IP Nummer irgendwo im Netz.

Dez 2008 - Es gibt schon einige Ansätze, doch die habe ich noch nicht alle durchprobiert.


Startseite -- © 2001/2022 - Copyright by Dipl.-Ing. Gert Redlich / Germany - D-65191 Wiesbaden - Telefon-Nummer - Impressum