Forum: Mikrocontroller und Digitale Elektronik Config/Dongle SD-Card auslesen


von makro (Gast)


Lesenswert?

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?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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.

von makro (Gast)


Lesenswert?

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.

von makro (Gast)


Lesenswert?

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?

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

Wo ist das Image gespeichert?

EDIT: Grade gesehen, interner Flash. Kommst du an den dran zum Auslesen?

von Peter (Gast)


Lesenswert?

wie booted denn das system? Kann man dem Bootloader parameter übergeben?

von makro (Gast)


Lesenswert?

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.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

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.

von makro (Gast)


Lesenswert?

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

von makro (Gast)


Lesenswert?

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

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Nee, das ist nur der Passwort-Hashwert.

von moe (Gast)


Lesenswert?

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.

von makro (Gast)


Lesenswert?

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.

von makro (Gast)


Lesenswert?

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.

von moe (Gast)


Lesenswert?

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.

von makro (Gast)


Lesenswert?

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.

von makro (Gast)


Lesenswert?

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 :)

von D. K. (lemur)


Lesenswert?

So rein interessehalber, was ist / war das eigendlich für ein 
ursprüngliches Gerät?

von makro (Gast)


Lesenswert?

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.

von makro (Gast)


Lesenswert?

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.

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

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.

von makro (Gast)


Lesenswert?

Hab das Programm auch mal getestet. Bei mir hat er das Passwort in 22 
Minuten gefunden :)

von makro (Gast)


Lesenswert?

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

von Tim T. (tim_taylor) Benutzerseite


Lesenswert?

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
Noch kein Account? Hier anmelden.