Ich habe ein Gerät bekommen, bei dem der License Key und die Config auf SD Card gespeichert ist. Die Karte ist hinter einer Gehäuseplatte, die man anschrauben muss, also für Benutzer eigentlich nicht zugänglich. Neugierig wie ich war, hab ich die Karte mal in den PC Kartenleser eingelegt. Auf dem PC sieht man nur eine readme.txt, die auslesbar ist. Dann noch 2 Dateien, key.dat und config.dat. Die key.dat und config.dat können nicht geöffnet werden, gibt eine Fehlermeldung, dass die Datei beschädigt sei. In der readme steht drin, man soll zum auslesen und schreiben der Daten nur die Software nutzen (Name der Software steht nicht dabei), und man soll an der Karte keine direkten Änderungen vornehmen und keine Dateien drauf kopieren. Das FAT16 ist übrigens nur 32 Mbyte groß obwohl die Karte 512 Mbyte hat. Der Rest der Karte ist ungenutzt. zumindest aus PC Sicht, per SPI Mode könnte man evtl an weitere Daten rankommen Ich frage mich jetzt, wie die das gemacht haben, dass man die 2 Dateien mit dem PC nicht direkt öffnen kann. Und ich frage mich, wie ich an die Daten ran komme. Dachte an einen dump erstellen unter Linux und dann das Dumpfile mit Hex Editor öffnen. Könnte klappen, oder?
Eine der ekligeren Funktionen von SD-Karten ist im Namen versteckt: secure digital. Das ist eine (natürlich nicht frei zugänglich dokumentierte) Technik, Daten nicht kopier- und nicht auslesbar auf einer Karte zu speichern, um eben Software an eine Speicherkarte binden zu können o.ä. Solange nicht jemand die Verschlüsselungstechnik der SD-Spezifikation knackt, hast Du da keine Chance.
So hab mal was über die Kiste in erfahrung gebracht, und die Spec des Original-Herstellers der Hardware gesucht. Scheinbar läuft auf der Kiste ein Linux mit Kernel 2.6 Technische Daten laut Herstellerseite http://www.axotec.de/produkte/facility-management/rs485rs422-gsmgprs.html Angepasst wurde die darauf laufende Software durch ein lokales Ingenieurbüro. Vielleicht kann ich ja direkt die auf der Kiste gespeicherte Software mal unter die Lupe nehmen.
So grad mal versucht, per Ethernet in das System einzudringen. Telnet läuft nicht, die SSH Zugangsdaten habe ich leider nicht. Irgendwer ne Idee, wie ich in die Kiste zwecks Softwareanalyse eindringen könnte?
Wo ist das Image gespeichert? EDIT: Grade gesehen, interner Flash. Kommst du an den dran zum Auslesen?
wie booted denn das system? Kann man dem Bootloader parameter übergeben?
Das Image ist in der Kiste selber gespeichert. Sie bootet auch ohne die SD Karte, stellt dann aber keine GPRS Verbindung her. Die Ethernet IP ist dann fest auf 192.168.1.100. Auf dem Webinterface, an das man dann per Ethernet rankommt, erschent dann ne Fehlermeldung und die Kiste arbeitet nicht.
Grade nochmal nachgedacht, ich glaube nicht dass das DRM der SD benutzt wird, wäre einfach zu exotisch. Glaube eher an eine Frikellösung des lokalen Ing. Büros, sowas hat Tradition. Würde einfach mal vermuten das die Daten im nicht partitionierten Bereich liegen. Also einfach mal ein Dump der ganzen Karte, nicht nur der Partition... Du kannst dann ja mal testweise den Dump auf eine 2. Karte schreiben und sehen obs damit läuft, wenn ja ist DRM definitiv raus. Kann allerdings sein das noch der Kartenhersteller und/oder die Seriennummer abgefragt wird.
DRM wird meiner Meinung nach auch nicht benutzt. Ich denke ehr, dass die Dateien einfach "ungültig" geschrieben werden, dass man sie mit nem normalen Texteditor nicht aufmachen kann. Hab die Karte nochmal gecheckt, da scheint noch ne zweite Partition mit einem Dateisystem drauf zu sein, was Windows nicht lesen kann. Entweder kann mein Kartenleser die zweite Partition nicht verarbeiten oder es ist einfach ein Linux-Filesystem. Muss echt mal unter Linux gucken. Zu brutal darf ich aber auch nicht an die Sache rangehen, sonst funktioniert die Kiste nachher nicht mehr. Und bevor ich sie für Bastelprojekte nutze wollte ich wenigstens mal gucken, was der Ing da veranstaltet hat. So rein aus Interesse. mfg
Ok, die Kiste nochmal normal hochgefahren, und mal die Weboberfläche versucht. Das Passwort hab ich ja, weils auf dem Aufkleber drauf steht. Auf der Weboberfläche gibts ne Funktion mit der man Shellbefehle absenden kann, und die Ausgabe kommt dann als HTML Seite. Man hat aber keine Rootrechte, sondern man ist nur als "admin" drin. Ich kann aber die ganzen Dateien mit Cat auslesen. cat /etc/passwd gibt mir folgendes für root: root:$1$iLZPUcOt$qXifHZxKKW03n53gxjJsF1:0:0:Root User,,,:/tmp/root:/bin/sh Könnte man damit vielleicht das Root Passwort rausfinden? mfg
Eine Möglichkeit wäre, den Ethernet-Anschluss auf laufende Dienste abzuklopfen. Vielleicht wurde ein für Dich nützlicher Dienst vergessen, abzuschalten oder läuft auf einem ungewöhnlichen Port.
1 | nmap -v -p1-65535 -A --version-all 192.168.1.100 |
Bootet der Rechner auch von SD-Karte/USB-Stick? Dann könntest Du ein Winz-Linux wie z.B. http://www.minimalinux.org/ttylinux/ (auch für ARM) benutzen.
Ja, ich weiß, aber evtl gibts ja Programme, die so lange Passwörter durchprobieren bis der hash passt. Naja, hab eben den Ingenieur angerufen und gefragt ob er kurz Zeit für mich hat. Hatte er. Naja, hab ihm dann erklärt wie ich an das Gerät dran gekommen bin und dass ich es als Bastler für private Zwecke verwenden will. Naja, das Root Passwort wollte er mir nicht geben. Er meinte er hätte aber ein Herz für Bastler und ich soll vorbeikommen. Er bot mir an, mir die Kiste für nen sechser Bier mit einem Grundimage neu zu flashen und mir auch die Quellcodes auf CD dazu zu geben. Das Grundimage ist allerdings nur ein nacktes Linux, ohne die von ihm erstellten Scripts, Config-Files und ohne Webinterface. Also ohne das von ihm in das System eingebrachte Know-How. Am liebsten wollte er mich heute Abend nach Feierabend noch einladen. Der hat wohl Angst, ich könnte das System hacken und sein KnowHow klauen. Heute jetzt nicht, aber Ende der Woche werde ich mich mit Ihm treffen.
moe schrieb: > Eine Möglichkeit wäre, den Ethernet-Anschluss auf laufende Dienste > abzuklopfen. Vielleicht wurde ein für Dich nützlicher Dienst vergessen, > abzuschalten oder läuft auf einem ungewöhnlichen Port. > nmap -v -p1-65535 -A --version-all 192.168.1.100 > > Bootet der Rechner auch von SD-Karte/USB-Stick? Dann könntest Du ein > Winz-Linux wie z.B. http://www.minimalinux.org/ttylinux/ (auch für ARM) > benutzen. Das mit der SD Karte/USB werde ich mal testen. Das mit NMAP auch. Ich werde auch mal gucken, ob an der RS232 während des Bootvorgangs vielleicht was machbar ist oder irgendwelche Ausgaben kommen. Hab ja noch ein paar Tage Zeit, bevor der Ing mir die Kiste mit dem Grundimage platt macht.
Ich hab aus Interesse mal ein paar Minuten Rechenzeit spendiert, und siehe da: John (http://www.openwall.com/john/) hat das Root-Passwort in 25 Minuten (!) rausgefunden. Denke mal, da jeder das mit dem Programm selber nachvollziehen kann, ist es ok, wenn ich es hier poste:
1 | Loaded 1 password hash (FreeBSD MD5 [32/64 X2]) |
2 | t3kn (root) |
3 | guesses: 1 time: 0:00:24:47 (3) c/s: 8611 trying: t3kn - t3k7 |
Über die Qualität des Passwortes sage ich jetzt mal nichts.
Ok, ich habe das System geknackt. Die große Schwachstelle liegt im Webinterface selbst und den Dateirechten. Man kann ja im Debug-Fenster Shell Befehle absenden. An der SD Karte hat er schön rumgeknobelt, selbst USB ist dicht, aber im System selbst ist vieles zumindest auslesbar. Da kann man sich schön im System umsehen und auch die ganze Arbeit des Ingenieurs mit CAT begutachten und über den Browser Datei für Datei abspeichern. Das Geheimnis der SD Karte habe ich übrigens auch gelüftet. Die SD Karte ist auf der FAT Partition nur Read Only gemountet, im Ordner MMC. Man kann also keine Daten aus dem System klauen. Außerdem werden die Dateien die drauf sind gehasht und der Hash wird gespeichert. Wenn der Hash nicht stimmt, oder andere/mehr als die zulässigen Dateien da sind, wird die Karte beim Systemstart direkt wieder umonted, damit keine Dateien ins System eingeschleust werden, und das System fährt hoch, wie wenn gar keine Karte ingelegt ist. Die 2 .DAT Dateien werden an der Checksumme manipuliert, damit Windows sie als defekt ansieht. Der Inhalt der Dateien ist relativ simpel. Die config.dat ist ein tar.gz Archiv, mit GPG verschlüsselt. Sie enthält 1:1 Linux Config Files.Beim Systemstart werden die entpackt und in die Ramdisk geschrieben. Die ganzen die ganzen Config Files in /etc sind symlinks auf die Ramdisk. Sollte die Karte oder die Datei abgewiesen werden, so werden einfach Standard-Dummyfiles mit "light-Config" in die Ramdisk kopiert. Außerdem werden einige Scripte erst aktiviert, wenn eine entsprechende Datei in der Ramdisk vorhanden ist. Die Key Datei ist einfach ein GPG Key, ein anderer ist im System selbst gespeichert. Die zweite Partition ist als JFFS2 im Ordner JFFS gemountet. Auf den Ordner kann "admin" aber nur lesend zugreifen. Also auch kein Datenklau aus dem System in Richtung Karte möglich. Auf der Partition werden durch scripte aufgearbeitete Systemlogs gespeichert, und die ganzen Daten, die bis zum Senden über GPRS zwischen gespeichert werden. Der Upload erfolgt an einen bestimmten Server, den man übers Admininterface angeben kann. Nunja, eigentlich ist es nicht möglich, größere Daten aus dem System raus zu bekommen ohne Rootrechte, weil halt die Datenpartition der SD Karte keinen Schtreibzugriff von Admin erlaubt. Die Config Partition ist nur read only gemountet. Wenn man aber die Config im Webinterface ändert, wird sie zum schreiben neu gemountet, und die Config Datei komplett neu geschrieben. Sie bleibt dann auch so gemountet bis zum Reboot. Dann kann man sich die Ordner /etc /var /tmp /ramdisk /scripts schön runter ziehen und man hat das gesamte Geheimnis der Kiste auf der SD.
moe schrieb: > Ich hab aus Interesse mal ein paar Minuten Rechenzeit spendiert, und > siehe da: John (http://www.openwall.com/john/) hat das Root-Passwort in > 25 Minuten (!) rausgefunden. Denke mal, da jeder das mit dem Programm > selber nachvollziehen kann, ist es ok, wenn ich es hier poste Hay Cool, danke, dann kann ich ja nochmal mit vollem Rootzugriff an das System ran :) Hab ja auch schon ne Sicherheitslücke im Webinterface entdeckt, mit der ich Daten klauen konnte :)
So rein interessehalber, was ist / war das eigendlich für ein ursprüngliches Gerät?
Es war eine Daten-Aufzeichnung und Weiterleitung über GPRS. Die Ertragsdaten der Solaranlage und des BHKW wurden permanent an einen Webserver gesendet, der dann schöne Statistiken mit schönen Diagrammen gemacht hat.
Das Teil wollten Monteure schon verschrotten. Es wurde nicht mehr gebraucht da die Betreiber mit ihrer politischen Selbstdarstellung fertig waren. War halt so ein typisches Projekt: Schaut alle her, wir und unsere Partei XXX tun so viel für die Umwelt. Ich habs das Gerät der Verschrottung gerettet. Achja, das Root Passwort geht übrigens.
Hatte die gleiche Idee^^ # john --incremental=all --session=mcn passwd.mcn Loaded 1 password hash (FreeBSD MD5 [32/32]) t3kn (root) guesses: 1 time: 0:00:41:17 c/s: 5111 trying: t3kn Nur hatte dafür keine extra optimierte Version von John genommen... EDIT: Und falls jemand wissen will warum FreeBSD MD5 so viel langsamer als DES zu knacken ist (~Faktor 300) sollte sich mal http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/lib/libcrypt/crypt.c?rev=1.2&content-type=text/plain anschauen.
Hab das Programm auch mal getestet. Bei mir hat er das Passwort in 22 Minuten gefunden :)
Achja, bekommen Firmen für solche Solar- und Ökospielereien eigentlich öffentliche Fördergelder? Weil sonst kann ich mir solche Spielereien zusammen mit der Politik eigentlich kaum erklären
Zumindest bekommen sie sehr oft dafür einen Artikel im lokalen Käseblatt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.