Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 14-05 21:09
Omdat ik zin had iets te hacken en al langer loop back NAT mis op mijn SX-762 ADSL modem ben ik gaan zoeken naar mogelijkheden om in dit ding te komen. Als ik er in ben hoop ik door het toevoegen van een regeltje voor iptables loop back NAT aan te kunnen zetten.
Eerst in dat ding komen dus. SSH staat aan, maar met het administrator account kom je in een heel beperkte shell.
Het mooiste is dus om het root account geactiveerd te krijgen. Maar daar heb je root access voor nodig, of een exploit in de webinterface (werkt bij bijv. LaCie NAS).
Ik ben een firmware bestand gedownload: een zip file met een runtime (=root filesystem ?) en een secondary file. De laatste is klein en ik vermoed dat die alleen de configuratie bevat.

Ik ben er nog niet achter wat voor files dit zijn. Het commando 'file' zegt dat het data is, dus daar schiet ik niets mee op. Ik heb geprobeerd de runtime te mounten als ext2, minix of squashfs, maar dat levert een 'wrong fs type' melding op.
Wat voor fs-types kan ik nog meer proberen? Andere tips? De eeste bytes van de runtime zijn:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
00000000  de ad be ef 00 00 01 00  1c 14 3c 9c 70 3a 6a 8c  |..........<.p:j.|
00000010  2b c5 0c 51 4e 78 f6 59  cf 7e 44 04 d7 8d 8a 17  |+..QNx.Y.~D.....|
00000020  0b 56 32 af a6 91 3a be  14 47 39 ea 6e c5 59 5c  |.V2...:..G9.n.Y\|
00000030  f1 20 34 8e 06 7f 01 bd  e5 a4 ce ca 34 3d f5 cc  |. 4.........4=..|
00000040  b0 f6 32 bd c6 13 06 93  65 d5 47 90 5b 45 b7 5c  |..2.....e.G.[E.\|
00000050  d4 8c b9 9f 36 43 37 d9  d6 5a b1 f6 f0 cc 3c 4f  |....6C7..Z....<O|
00000060  67 ab 26 61 c5 b4 3a 72  44 fe 35 b3 3a 86 dc a6  |g.&a..:rD.5.:...|
00000070  89 2f 08 c7 17 98 f6 f4  85 97 e5 33 b2 c1 9a d9  |./.........3....|
00000080  3e 22 45 71 cc 15 ef 66  55 5c 6e 48 00 00 00 00  |>"Eq...fU\nH....|
00000090  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000100  00 00 00 00 00 00 00 00  00 00 00 00 73 78 37 36  |............sx76|
00000110  32 00 00 00 00 00 00 00  00 00 00 00 00 00 00 01  |2...............|
00000120  00 00 00 01 00 00 00 00  00 00 00 00 30 39 30 31  |............0901|
00000130  31 36 5f 31 33 30 38 5f  72 75 6e 74 69 6d 65 5f  |16_1308_runtime_|
00000140  73 78 37 36 78 5f 61 5f  5f 76 32 2e 33 2e 35 32  |sx76x_a__v2.3.52|
00000150  2e 31 32 2e 30 30 00 69  6d 67 00 00 00 00 00 00  |.12.00.img......|
00000160  00 00 00 00 00 00 00 00  00 00 00 82 00 5c ce 84  |.............\..|
00000170  00 0c 1d ea 00 4f d0 00  80 00 20 00 80 26 e0 40  |.....O.... ..&.@|
00000180  5d 00 00 80 00 00 30 2a  00 00 00 00 00 00 20 06  |].....0*...... .|
00000190  88 61 14 8a c3 cf 72 a7  4f fe 6c c4 49 e0 87 6f  |.a....r.O.l.I..o|
000001a0  46 c0 21 53 93 18 c6 3c  1c d6 19 7b cd a8 a1 ca  |F.!S...<...{....|
000001b0  9a c2 1a 60 a4 c0 84 39  10 79 3f d9 73 b3 b3 20  |...`...9.y?.s.. |
000001c0  e1 94 bc bf ee eb d9 f2  b8 16 4c 5f 2f bd 18 ae  |..........L_/...|
000001d0  97 56 6c 51 83 59 2f 70  33 05 71 32 cd c7 38 eb  |.VlQ.Y/p3.q2..8.|
000001e0  0c b2 d6 6c e6 75 00 5b  dc 79 a2 ba 2e 6c d4 93  |...l.u.[.y...l..|
000001f0  d1 66 2a 9e b9 80 18 3f  7d 7e b7 7e 8c 37 85 ca  |.f*....?}~.~.7..|

Behalve de naam van het modem en de file zie ik niets nuttigs. Iemand een idee?

edit:
Aanvulling

Die secondary lijkt iets bootloader-achtigs te zijn, aldus 'strings'.
De bits 19-21 lijken te suggeren dat het een qnx image is. Realtime operating system lijkt niet onlogisch met de signaal processing die nodig is om een stevige data stream te verwerken. Een 'mount -t qnx4' levert helaas weer een 'wrong fs type' melding op. (qnx4.ko is geladen) Idem voor cramfs.

[ Voor 5% gewijzigd door Sir Isaac op 29-03-2010 22:42 ]


Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 14-05 21:09
schopje..

Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Het lijkt me een custom systeem gezien de eerste 32 bits, al is 0xDEADBEEF wel een redelijk bekende magic number natuurlijk :P

Het kan in principe alles zijn, maar ik denk sowieso dat je de eerste 4 bytes eerst moet strippen. En misschien wel meer ;)

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • Mijzelf
  • Registratie: September 2004
  • Niet online
Ik ben het pad ook al een keer gegaan. De firmware file bevat een squashfs op ik meen 0x0D0000. Het begint met een header sqsh. Helaas is dit een oude versie van squashfs, waardoor hij niet mount op een 2.6 kernel. Hij mount ook niet op een standaard 2.4 kernel, omdat er lzma compressie is gebruikt.
Ergens op internet kun je router firmware hack tool sources downloaden, waarbij een programma om dit soort squashfs-sen uit- en in te pakken.

Eindresultaat van deze hele actie: met het commando sx76xos kom je van de standaard ssh shell in een (busybox) sh shell.
Bonus: je kunt je eigen opstartscript op een jffs partitie zetten. (Ik meen gemount op /config, maar als je rcS leest wordt dat wel duidelijk.

Die secondary file is volgens mij een bootloader.

Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 14-05 21:09
He bedankt 'Mijzelf'.
Ik heb de eerste 832kb (tot 0xd0000) weggegooid zodat ik de squashfs image overhoud:
runtime.img: Squashfs filesystem, big endian, version 3.0, 5228216 bytes, 1048 inodes, blocksize: 65536 bytes, created: Fri Jan 16 13:49:29 2009

Ik heb de firmware modification toolkit gedownload. Het extract_firmware script werkt niet op dit image, maar met unsqushfs-lzma heb ik de image uit kunnen pakken.

Het commando sx76xos bestaat niet in de SCM shell van het modem. Dat is in sx762os.
Vooralsnog geen adduser en passwd commandos gezien /(s)bin. Heeft ook geen zin tip een read-only fs. De /var en /tmp directories zijn trouwens wel beschrijfbaar. Dit zijn geen links naar een dir in /config. Die snap ik nog niet.
edit:
Dit zijn gewoon tmpfs file systemen

Scripts in /config/scripts worden inderdaad uitgevoerd door /etc/rc.d/init.d/rcS.

Het wachtwoord van administrator kan worden aangepast in de webinterface. Dat moet dus ook ergens in /config staan. Werk aan de winkel.

Het ding heeft trouwens een 233MHz MIPS processor van AMAZON, en 29.5Mb geheugen. Dat zal 32Mb min de grootte van de kernel en de tmpfs file systemen zijn.

[ Voor 15% gewijzigd door Sir Isaac op 31-03-2010 00:41 ]


Acties:
  • 0 Henk 'm!

  • Mijzelf
  • Registratie: September 2004
  • Niet online
Het commando sx76xos bestaat niet in de SCM shell van het modem. Dat is in sx762os.
Begrijp ik hieruit dat het commando bij jou sx762os is? Grappig dat er blijkbaar meer versies van die shell zijn.
Het ding heeft trouwens een 233MHz MIPS processor van AMAZON, en 29.5Mb geheugen. Dat zal 32Mb min de grootte van de kernel en de tmpfs file systemen zijn.
Alleen min de kernel. Als je nog een tmpfs aanmaakt veranderd de geheugengrootte niet.

Acties:
  • 0 Henk 'm!

  • Sir Isaac
  • Registratie: September 2002
  • Laatst online: 14-05 21:09
Mijzelf schreef op woensdag 31 maart 2010 @ 13:45:
[...]
Begrijp ik hieruit dat het commando bij jou sx762os is? Grappig dat er blijkbaar meer versies van die shell zijn.
Inderdaad. Naar 4x raden had ik hem. Die x vond ik niet logisch.
[...]
Alleen min de kernel. Als je nog een tmpfs aanmaakt veranderd de geheugengrootte niet.
Wel als je er dingen in zet. 2.5Mb is wel veel voor een kernel voor een wireless router.
Over de kernel gesproken. Die heb ik nog niet gevonden. Ik neem aan dat die in de eerste 785kb zit die voor de squasfs image stond. 750kb is een mooie grootte voor een gecomprimeerd kernel image.

Acties:
  • 0 Henk 'm!

  • Ierlandfan
  • Registratie: Augustus 2002
  • Laatst online: 03-05 17:47
Als je wat meer info wil en wat wil spelen kan je ook een kijkje nemen op de opensource pagina van Siemens.
Voor zover ik weet heeft de sx762 een opensource licensed firmware. Die is te downloaden. (Binary, source, tools) Vroeger via gigaset.com te vinden voordat ze de hele website omgooide. Beetje zoeken moet je er wel komen.
Pagina: 1