Lemmi
08.01.2005, 19:29:54
Ich habs geschafft, die Box fährt mein erstes eigenes Update! :)
Zwar ist das Update noch Code-gleich zu 1.18, aber die RSA-Prüfsumme habe ich ausgetrickst.
1.)
Zuerst habe ich die Original FW 1.18 (1.18small.wsw) genommen und den RSA-Code gepatched, damit dieser ungültig wird. Mit dieser modifizierten Version habe ich ein Update versucht, welches mit einem Prüfsummenfehler zurückgewiesen wurde -- wie erwartet.
2.)
Mit den beiden folgenden Dateien habe ich die Box überlistet:
Datei install
#!/bin/sh
mkdir -p /var/tmp/usr-bin
tar cf - -C /usr/bin . | tar xf - -C /var/tmp/usr-bin
cp rsadecode /var/tmp/usr-bin
chmod 755 /var/tmp/usr-bin/rsadecode
mount -r --bind /var/tmp/usr-bin /usr/bin
Datei rsadecode
#!/bin/sh
cat /var/tmp/verify.txt
Dann habe ich nochmals das veränderte Update eingespielt --> es klapp!!!!!
Mein eigenes 'rsadecode' gaukelt dem System dann die korrekte Prüfsumme vor.
Jetzt kann ich jegliche Software in der Box verändern, die in einem cramfs-Archiv vorliegt, d.h. das kompeltte root-System ohne /data. /data liegt in jffs2 vor, das ist auch ein offenes System und sollte auch zu lösen sein -- dass überlasse ich (vorerst) anderen.
Und mit gambler's Tool-Chain sind wir an der anderen Front auch schon wider weiter.
Bei Verständnisproblemen zu WSW bitte Thread Flash-RAM == /dev/mtd* (http://www.m740.de/forum/showthread.php?t=229) nachlesen.
------
Wie geht's weiter:
Ein modifiziertes Update erstellen mit:
telnet Freigabe (inetd, passwd, shadow)
Modifiziertes rsadecode.
Da möchte ich aus Sicherheitsgründen nicht ganz auf Prüfsummen verzichten.
beliebige Veränderungen und Ergänzungen direkt im Kern-Datei-System (solange der Speicher reicht)
Ich geh jetzt erstmal feiern ..... :D
P.S.:
Nachahmern empfehle ich, ersteinmal 1.18small als Grundlage zu verwenden, da 1.18 in Gegensatz zu 1.12.1 den Boot-Sector und das Rescue-System nicht anfaßt.
Natürlich alles auf eigene Gefahr
Zwar ist das Update noch Code-gleich zu 1.18, aber die RSA-Prüfsumme habe ich ausgetrickst.
1.)
Zuerst habe ich die Original FW 1.18 (1.18small.wsw) genommen und den RSA-Code gepatched, damit dieser ungültig wird. Mit dieser modifizierten Version habe ich ein Update versucht, welches mit einem Prüfsummenfehler zurückgewiesen wurde -- wie erwartet.
2.)
Mit den beiden folgenden Dateien habe ich die Box überlistet:
Datei install
#!/bin/sh
mkdir -p /var/tmp/usr-bin
tar cf - -C /usr/bin . | tar xf - -C /var/tmp/usr-bin
cp rsadecode /var/tmp/usr-bin
chmod 755 /var/tmp/usr-bin/rsadecode
mount -r --bind /var/tmp/usr-bin /usr/bin
Datei rsadecode
#!/bin/sh
cat /var/tmp/verify.txt
Dann habe ich nochmals das veränderte Update eingespielt --> es klapp!!!!!
Mein eigenes 'rsadecode' gaukelt dem System dann die korrekte Prüfsumme vor.
Jetzt kann ich jegliche Software in der Box verändern, die in einem cramfs-Archiv vorliegt, d.h. das kompeltte root-System ohne /data. /data liegt in jffs2 vor, das ist auch ein offenes System und sollte auch zu lösen sein -- dass überlasse ich (vorerst) anderen.
Und mit gambler's Tool-Chain sind wir an der anderen Front auch schon wider weiter.
Bei Verständnisproblemen zu WSW bitte Thread Flash-RAM == /dev/mtd* (http://www.m740.de/forum/showthread.php?t=229) nachlesen.
------
Wie geht's weiter:
Ein modifiziertes Update erstellen mit:
telnet Freigabe (inetd, passwd, shadow)
Modifiziertes rsadecode.
Da möchte ich aus Sicherheitsgründen nicht ganz auf Prüfsummen verzichten.
beliebige Veränderungen und Ergänzungen direkt im Kern-Datei-System (solange der Speicher reicht)
Ich geh jetzt erstmal feiern ..... :D
P.S.:
Nachahmern empfehle ich, ersteinmal 1.18small als Grundlage zu verwenden, da 1.18 in Gegensatz zu 1.12.1 den Boot-Sector und das Rescue-System nicht anfaßt.
Natürlich alles auf eigene Gefahr