Kérdés:
Kicsomagolja és újracsomagolja a firmware-t frissített verzióként való használatra?
kifcaliph
2014-06-16 01:04:24 UTC
view on stackexchange narkive permalink

Megpróbálok firmware-t módosítani a TD-W8961ND útválasztóhoz, mert van egy biztonsági rés, amely lehetővé teheti a támadók számára, hogy letöltsék az útválasztó konfigurációs fájlját, amely felfedi az útválasztó jelszavát. Az & lehetővé teszi számára, hogy később ellenőrizze az útválasztó beállításait. itt találtam rá a megoldásra. Képes volt a virtuális memóriában lévő firmware módosítására a számomra nem elérhető soros port használatával.

Tehát van-e lehetőség arra, hogy a firmware-ben javasoltakat alkalmazzuk, majd frissítsük az útválasztót?

Az útválasztó firmware neve ras és 2011.11.25-én jelent meg.

A binwalk segítségével nyilvánvaló, hogy a fájl ZynOS. De valóban nem tudom kibontani az aláírást, ahogyan azt ott kifejtették, és nem tudom, mit tegyek később.

Szerkesztés

binwalk output

  ~ $ binwalk rasDECIMAL HEX LEÍRÁS --------------------------- -------------------------------------------------- -------------------------------------- 84992 0x14C00 ZynOS fejléc, fejlécméret: 48 bájt, rom képtípus: ROMBIN, tömörítetlen méret: 66824, tömörített méret: 16870, tömörítetlen ellenőrző összeg: 0xF480, tömörített ellenőrző összeg: 0xF03A, zászlók: 0xE0, tömörítetlen ellenőrző összeg érvényes, a bináris fájl tömörítve, tömörített ellenőrző összeg érvényes, memóriatérkép-táblázat címe: 0x085043 0x14C33 LZMA tömörített adatok, tulajdonságok: 0x5D, szótár mérete: 8388608 bájt, tömörítetlen méret: 66824 bájt128002 0x1F402 GIF képadatok, "89a" verzió, 200 x 50136194 0x21402 GIF képadatok, "89a" verzió, 560 x 50326749 0x4 "c) 2001 - 2011 TP-LINK TECHNOLOGIES CO ., LTD.LOGIES CO., LTD. "
349184 0x55400 ZynOS fejléc, fejlécméret: 48 bájt, rom képtípus: ROMBIN, tömörítetlen méret: 102400, tömörített méret: 55931, tömörítetlen ellenőrző összeg: 0xC892, tömörített ellenőrző összeg: 0xC30C, zászlók: 0xE0, tömörítetlen ellenőrző összeg érvényes, a bináris fájl tömörítve , a tömörített ellenőrzőösszeg érvényes, a memóriatérkép táblázat címe: 0x0349235 0x55433 LZMA tömörített adatok, tulajdonságok: 0x5D, szótár mérete: 8388608 bájt, tömörítetlen méret: 102400 byte405248 0x62F00 ZynOS fejléc, fejlécméret: 48 bájt, rom képtípus: ROMBIN, uncom : 102400, tömörített méret: 59174, tömörítetlen ellenőrző összeg: 0x8D2B, tömörített ellenőrző összeg: 0x66BC, zászlók: 0xE0, a tömörítetlen ellenőrző összeg érvényes, a bináris fájl tömörítve, a tömörített ellenőrző összeg érvényes, a memóriatérkép-táblázat címe: 0x0405299 0x62F33 LZMA tömörített adatok, tulajdonságok: 0x5D, szótár mérete: 8388608 bájt, tömörítetlen méret: 102400 bájt464640 0x71700 ZynOS fejléc, fejlécméret: 48 bájt, rom képtípus: ROMBIN, uncompres sed méret: 102400, tömörített méret: 52399, tömörítetlen ellenőrző összeg: 0xA2DE, tömörített ellenőrző összeg: 0x917A, zászlók: 0xE0, a tömörítetlen ellenőrző összeg érvényes, a bináris fájl tömörítve, a tömörített ellenőrző összeg érvényes, a memóriatérkép táblázat címe: 0x0464691 0x71733 LZMA tömörített adatok, tulajdonságok: 0x5D, szótár mérete: 8388608 bájt, tömörítetlen méret: 102400 bájt517120 0x7E400 ZynOS fejléc, fejlécméret: 48 bájt, rom képtípus: ROMBIN, tömörítetlen méret: 102400, tömörített méret: 63920, tömörítetlen ellenõrzõ összeg: 0xFEC9: , flags: 0xE0, tömörítetlen ellenőrző összeg érvényes, a bináris fájl tömörítve, a tömörített ellenőrző összeg érvényes, memóriatérkép-táblázat címe: 0x0517171 0x7E433 LZMA tömörített adatok, tulajdonságok: 0x5D, szótár mérete: 8388608 bájt, tömörítetlen méret: 102400 bájt
581120 0x8DE00 ZynOS fejléc, fejlécméret: 48 bájt, rom képtípus: ROMBIN, tömörítetlen méret: 102400, tömörített méret: 54909, tömörítetlen ellenőrző összeg: 0xF811, tömörített ellenőrző összeg: 0x3544, zászlók: 0xE0, tömörítetlen ellenőrző összeg érvényes, a bináris fájl tömörítve , a tömörített ellenőrzőösszeg érvényes, a memóriatérkép-táblázat címe: 0x0581171 0x8DE33 LZMA tömörített adatok, tulajdonságok: 0x5D, szótár mérete: 8388608 bájt, tömörítetlen méret: 102400 byte636160 0x9B500 ZynOS fejléc, fejlécméret: 48 bájt, rom képtípus: ROMBBIN, : 102400, tömörített méret: 61051, tömörítetlen ellenőrző összeg: 0x36F3, tömörített ellenőrző összeg: 0x6A1, zászlók: 0xE0, tömörítetlen ellenőrző összeg érvényes, a bináris fájl tömörítve, a tömörített ellenőrző összeg érvényes, a memóriatérkép táblázat címe: 0x0636211 0x9B533 LZMA tömörített adatok, tulajdonságok: 0x5D, szótár mérete: 8388608 bájt, tömörítetlen méret: 102400 bájt697344 0xAA400 ZynOS fejléc, fejlécméret: 48 bájt, rom képtípus: ROMBIN, tömörítés ed méret: 102400, tömörített méret: 54463, tömörítetlen ellenőrző összeg: 0x30D8, tömörített ellenőrző összeg: 0x9AB9, zászlók: 0xE0, a tömörítetlen ellenőrző összeg érvényes, a bináris fájl tömörítve, a tömörített ellenőrző összeg érvényes, a memóriatérkép táblázat címe: 0x0697395 0xAA433 LZMA tömörített adatok, tulajdonságok: 0x5D, szótár mérete: 8388608 bájt, tömörítetlen méret: 102400 bájt751872 0xB7900 ZynOS fejléc, fejlécméret: 48 bájt, rom képtípus: ROMBIN, tömörítetlen méret: 12440, tömörített méret: 6879, tömörítetlen ellenõrzõ összeg: 0x5C0A, tömörített ellenõrzõ összeg , flags: 0xE0, tömörítetlen ellenőrző összeg érvényes, a bináris fájl tömörítve, a tömörített ellenőrző összeg érvényes, memóriatérkép-táblázat címe: 0x0751923 0xB7933 LZMA tömörített adatok, tulajdonságok: 0x5D, szótár mérete: 8388608 bájt, tömörítetlen méret: 12440 bájt
759040 0xB9500 ZynOS fejléc, fejlécméret: 48 bájt, rom képtípus: ROMBIN, tömörítetlen méret: 3914416, tömörített méret: 884839, tömörítetlen ellenőrző összeg: 0xA904, tömörített ellenőrző összeg: 0x73E3, zászlók: 0xE0, tömörítetlen ellenőrző összeg érvényes, a bináris fájl tömörítve , a tömörített ellenőrző összeg érvényes, a memóriatérkép-táblázat címe: 0x0759091 0xB9533 LZMA tömörített adatok, tulajdonságok: 0x5D, szótár mérete: 8388608 bájt, tömörítetlen méret: 3914416 bájt  

az a srác, aki felfedte a kizsákmányolást hogy a képen nincsenek Lzma által tömörített adatok, mivel úgy tűnik, hogy &, ez csak nagy darab adat tiszta szövegben.

Esetleg felteszi a `binwalk` kimenetét?
Hozzáadtam a binwalk kimenetet
Három válaszokat:
devttys0
2014-06-16 17:29:08 UTC
view on stackexchange narkive permalink

Fontos tudni, hogy nem minden ZyNOS-kép jön létre egyenlően, és a piotrbania esetében alkalmazott pontos lépések (a kérdésben hivatkozva) valószínűleg nem fognak működni.

Először is, a ZyNOS egy Valós idejű operációs rendszer, és úgy gondolhatja, hogy az egész operációs rendszer csak egy nagy kernel (azaz nincs felhasználói terület vagy fájlrendszer, vagy bármi, amivel könnyen kezelhető lenne). A ZyNOS verziójától, a fordító verziójától, a fordító opcióitól, a célarchitektúrától stb. Függően még ugyanaz a forráskód is más és más bájt- és utasítássorozatra áll össze, és a ZyNOS különböző verziói / ízei nagyon eltérően "csomagolhatók". / p>

Az Ön esetében szinte garantálni tudom, hogy ezek az LZMA aláírások érvényesek, és valószínűleg tartalmaznak néhány adatot / kódot. Valószínűleg van nyers, tömörítetlen kód is a képen (próbálja meg a binwalk -A-t a nyers futtatható kód megkereséséhez).

Néhány általános lépés, amelyre szükséged lesz a kívánt cél eléréséhez:

  1. Tömörítsd le az összes tömörített blokkot, és azonosítsd, hogy melyek tartalmaznak futtatható kódot
  2. Szétszerelje az összes kódot (valószínűleg minden olyan kóddal kezdődik, amelyet nem volt tömörítve az elején, mivel valószínűleg a rendszer indításához és a firmware többi szakaszának dekompressziójához használják)
  3. A szétszerelési folyamat része azonosítani fogja az egyes kódrészek betöltési címét; e nélkül az adat xref-eknek nincs értelme. Keressen utalásokat az abszolút memória címekre (pl. Ugrások közvetlen címekre, függvénytáblákra, ugrótáblákra stb.).
  4. Most már elkezdheti a kód megfordítását, keresve a kódot, amely kezeli a ras fájl. Ha szerencséd van, akkor lesz egy szimbólumtáblázat, amelyet egyetlen szétszerelő sem fog megérteni, ezért írnia kell egy szkriptet a szimbólumtábla elemzéséhez és az összes szimbólumcím átnevezéséhez. Ha nem vagy ilyen szerencsés, akkor a funkciókat manuálisan kell meghatározni.
  5. Miután azonosította a javítandó kódot, akkor a piotrbania-hoz hasonló módon javíthatja, bár nyilvánvalóan a részletek kissé eltérhetnek a firmware-képen. csomagolja be a firmware képrészeit, frissítse az összes fejléc ellenőrző összegét, majd töltse fel az eszközére, és reméljük, hogy ez nem válik papírsúlyossá. :)

Tehát a kérdés megválaszolásához igen, ez minden bizonnyal lehetséges. De nem ismerek olyan előre elkészített megoldást, amely lehetővé tenné a firmware egyszerű kibontását / javítását / újjáépítését, így némi erőfeszítést igényel a megvalósítása. Nyilvánvaló, hogy valamilyen hibakeresési hozzáférés az eszközhöz (pl. UART vagy JTAG) sokat segít, amit a piotrbania munkája is bizonyít.

köszönöm mindenkinek a válaszait. Kitaláltam egy másik egyszerű módszert a probléma megoldására a CLI használatával, és közzétettem http://egyptianvulture.blogspot.com/2014/06/how-to-fix-zynos-vulnerability-prevent.html.....szóval nem kell a nehezebb utat menni :)
Félelmetes hallani a véleményét a ZynOS-ról, Craig!
6EQUJ5
2014-06-16 05:33:36 UTC
view on stackexchange narkive permalink

Kipróbálhatja a firmware-mod-kit használatát, és megnézheti, hogy jut-e tovább, bár a firmware-mod-kit kifejezetten a Linuxhoz igazodik, így nem biztos, hogy ez sokat segít. Néha azt tapasztaltam, hogy olyan dolgokat képes megtenni, amelyekről a binwalk nem képes (és fordítva)

Emellett érdemes létrehozni a binwalk a legújabb forrás próbálkozzon újra.

Dmitry Janushkevich
2015-09-14 20:53:38 UTC
view on stackexchange narkive permalink

Ez kissé régi, de nem tudtam ugyanazt a feladatot végrehajtani, mint az OP - vagyis olyan eszközt találni, amely megfelelően kibontja a ZyNOS firmware-frissítő képet. Szóval gurítottam a sajátomat. Fogd meg és próbáld ki a képeden:

https://github.com/dev-zzo/router-tools/blob/master/zynos.py

Az eszköz jelenleg nem támogatja a kép visszacsomagolását, de dolgozom rajta.



Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 3.0 licencért, amely alatt terjesztik.
Loading...