Küsimus:
ZTE krüpteeritud varukonfigureerimisfail
J91321
2015-12-24 22:20:00 UTC
view on stackexchange narkive permalink

Ma torkasin ringi ZTE Speedport Entry 2i (CPE-d kasutatakse enamasti Saksamaal, Slovakkias jne., ilmselt kohandatud Deutsche Telekomi jaoks). Kasutajaliideselt on võimalik konfigureerimise varukoopia alla laadida.

Sain teada, et see erineb teistest ZTE seadistuste varukoopiatest. Tavaliselt on see zlib-tihendatud XML. Kahtlustan, et sellel on kiht mingit pseudokrüpteerimist.

  00000000 99 99 99 99 44 44 44 44 55 55 55 55 55 aa aa aa aa | .... DDDDUUUU .. .. | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 | ................ | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ | 00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 | ......... ...... @ | 00000040 00 02 00 00 00 00 00 80 00 00 57 c6 00 00 00 00 | .......... W ..... | 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ................ | * 00000080 04 03 02 01 00 00 00 00 00 00 00 12 53 70 65 65 | ... ......... Spee | 00000090 64 70 6f 72 74 20 45 6e 74 72 79 20 32 69 01 02 | Dorti kanne 2i .. | 000000a0 03 04 00 00 00 02 00 00 00 00 00 00 57 a8 00 01 | ............ W ... | 000000b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | ............ .... | * 000000d0 00 00 00 00 00 00 00 00 00 00 00 00 57 57 00 00 | ............ W ".. | 000000e0 57 60 00 00 00 00 be d3 f7 b3 fe 9e 99 a4 35 75 | W "............ 5u | 000000f0 ce db 7f c2 99 17 43 7f 1e e2 54 7a 63 72 6f c8 | ...... C ... Tzcro. | 00000100 b7 2d cc e8 cb 32 6c 3a f0 fd 55 19 10 ac ea d5 |.-... 2l: .. U ..... | 00000110 e9 18 01 01 71 7c 20 68 ca 66 d0 d9 f9 12 03 3d | .. ..q | hf .... = | 00000120 ee bd ad 2a 00 e2 c1 96 73 12 bd 5a 94 3e 6d 1a | ... * .... s..Z.> m. | 00000130 a8 7f c8 a8 8b 3d b6 1e d8 ae 9b 43 63 6a e3 ea | ..... = ..... Ccj .. | 00000140 94 33 55 57 dc 81 b2 22 c5 e7 39 fd 75 b9 ba 5b | .3UW ... ". .9.u .. [| 00000150 00 ca a1 29 9b e2 9f bd 8e 1f 00 98 30 62 8b d7 | ...) ........ 0b .. | 00000160 c6 12 ae ef 27 55 30 2a 4c f8 de 7c e5 2a 33 b9 | .... 'U0 * L .. |. * 3. |
00000170 8b 32 4a d2 2c da 2a 18 ff 72 vrd 1c 42 d8 41 6b | .2J.,. * .. r..B.Ak |  

Selle konfiguratsiooni teisi näiteid saab Siit leiate: RE tihendatud varukoopia, ruuteri Linux-põhine, kas see on tihendatud zlib-iga?

Kas on võimalik välja mõelda, kuidas selle konfiguratsiooni sisu välja tõmmata? Kas on võimalik tuvastada, kas mingisugune lihtne XOR-krüptimine on olemas?

Mul ei õnnestunud seadme püsivara hankida, see on CPE, nii et see on üsna lukus. Paistab, et seade kasutab eemaldatud versiooni, mis sarnaneb ZTE E5502-ga (sama lua-põhine veebiliides) E5502 püsivara

Konfiguratsiooni saate alla laadida siit. config.bin

Redigeeri :

Olles lugenud midagi tihendamise ja entroopia erinevusest, jõudsin järeldusele, et fail on tõenäoliselt krüptitud ja mitte lihtsalt segatud XOR-ga (kuna see ei muuda entroopiat)

Sain konfiguratsioonifaili mõnest teisest ZTE-seadmest (ühest, mis on tihendatud zlib-iga)

  $ binwalk -E -N config_f660.binDECIMAL HEXADECIMAL ENTROPY ------------------------------------- ------------------------------------------- 1024 0x400 Tõusev entroopia serv (0,973932 ) 10240 0x2800 entroopia serv (0,958898) 14336 0x3800 entroopia serv (0,966971) 17408 0x4400 entroopia serv (0,968328) $ binwalk -E -N config_encrypted.binDECIMAL HEXADECIMAL ENTROPY -------------- -------------------------------------------------- ---------------- 1024 0x400 Tõusev entroopia serv (0,974513) 22528 0x5800 Langev entroopia serv (0,737589)  

Niipalju kui suudan neid andmeid tõlgendada, on see, et esimene tõusev serv on mõlemas konfiguratsioonis krüptimata päis. Tihendatud konfiguratsioonis peaksid teised tõusvad servad kujutama tihendatud zlib-plokke. Kui joonistate graafiku binwalkiga, näete, et entroopias on veel mõned tõusvad servad, kuid palju väiksem on joon peaaegu tasane. (Madala maine tõttu ei saa graafikuid lisada). Olen nüüd kindel, et selle põhjustab krüptimise rakendamine nende tihendatud zlib-plokkide peal.

Kas minu eeldused on õiged või mul on midagi puudu? Kas on olemas meetod, mida saaksin proovida krüptimistüüpi murda või vähemalt arvata ilma püsivara pildita?

Ma ei vasta teile küsimusele, kuid võib-olla aitab see teid. Mul on sama probleem ja ma arvan, et meil on sama krüpteerimisalgoritm, kuid erinevad võtmed. See on minu [config.bin] (https://www.dropbox.com/ s / k0dprjt17bh5eqn / config.bin? dl = 0) Samuti saan teada, et sageli on seal number 0x57, võib see osade üle otsustada. Minu konfiguratsioonifailis on 0xb6. Võib-olla on selle lahendamisel abi.
Tänan, laadisin alla teie konfiguratsiooni ja entroopia näeb minu omaga väga sarnane, see on tõsi. Kahjuks pole ma siiani leidnud rohkem teavet ega ideid selle probleemi lahendamiseks.
Kas olete selles osas kunagi edusamme teinud? Samuti vaatan oma uue ruuteri `config.bin`, ka ZTE-st.
Mitte tegelikult, mul oleks ilmselt vaja hankida püsivara näidis ja see ümber töötada, et teada saada, mis toimub config.bin-iga. Aga kui olete nõus jagama oma config.bini näidist, vaatan selle üle. Ärge unustage enne konfidentsiaalset teavet enne selle eksportimist eemaldada.
Püsivara link ei näi pakkuvat püsivara versioone
Ma arvan, et ZTE müüb neid ainult CPE-na. Üritasin isegi ühte veebist osta, kuid ei leidnud seda kuskilt.
Mul õnnestus käivitada Speedport Entry 2i välklamp alglaaduri abil. Proovis leida krüptovõtit, kuid ilma õnneta. Laadisin üles cspd ja dekompileerimise koos retdeciga [siia] (https://mega.nz/#F!j4YnXaCC!qCRedLY5GQU46n38GJxglw). Tulemus sisaldab palju pseudokõnesid, millest ma aru ei saanud ja mõned olulised funktsioonid on tühjad. Ehk saate aru, milles on võti. Ma laadisin üles ka terved juurfailid. Veebiliides on üsna keeruline, see on krüptitud lua. Lisasin dekrüpteeritud lua-failid. Need saate alla laadida siit [siit] (https://mega.nz/#F!yxRnEKgJ!aKkXk7nb-6FgAvipMRCP8A). Failid pärinevad a
@danca, kas saaksite mulle oma mac-aadressi anda, arvan, et konfiguratsiooni võti on md5 mac-aadressid
mul on zte h267a ruuter. mul on juurdepääs ssh-le ja telnetile. Kuidas saan oma võtme väljavõtmiseks tühjendada funktsiooni CSPDBGetFileEncryKey ... (ma tean võtit juba, aga tahan selle leida kernelist). Käin oma mtdblocks kahesuunaliselt ja näen heksview'is mõningaid tuuma käske ... aga kuidas võti leida? otsisin ka oma kompuutris cspd-failis bin ja tftp, kuid ma ei tea, kuidas funktsiooni või võtit leida! Palun aidake ... aitäh !!
@danca, kuidas te välistasite SE2i-st välklambi, mul on ka sama seade ja mul pole kombeks oma püsivara alglaadurile üle viia?
Kolm vastused:
streetster
2016-10-25 03:36:25 UTC
view on stackexchange narkive permalink

Uuendatud 2020. aasta augustiks:

Allolev teave on minu teada täpne. Seda on kirjutamise ajal dekrüpteeritud config.bin 2 eri ruuteril.

Konfiguratsiooni segane osa fail on ZLIB-iga tihendatud sektsioonide seeria, mis on krüptitud AES-ga EKP-režiimis 16-baidise võtmega .

Seal on rakendus nimega cspd kood> ruuteris, mis teeb palju erinevaid asju. Üks nendest asjadest on konfigureerimisfaili krüptimine / dekrüpteerimine.

Mõnel ZTE ruuteril on AES-võti kõvakoodiga cspd binaarsesse; mõned neist ei tee seda. Kahjuks pole see teie oma.

cspd -i sees on funktsioon nimega PdtDBSetAESEncryKey (Ghidra kood viisakalt), mida kasutatakse võti:

  undefined4 PdtDBSetAESEncryKey (char * param_1, int param_2) {bait bVar1; char cVar2; undefined4 uVar3; int iVar4; suurus_t sVar5; määratlemata4 * puVar6; määratlemata4 * puVar7; bait bVar8; undefined4 kohalik_48; undefined4 kohalik_44; undefined4 kohalik_40; undefined4 local_3c; undefined4 kohalik_38; määratlemata kohalik_18; kohalik_48 = 0; kohalik_44 = 0; kohalik_40 = 0; kohalik_3c = 0; memset (&local_38,0,0x21); uVar3 = 0xffffffff; if ((param_1! = (char *) 0x0) && (param_2! = 0)) {iVar4 = _getTagparamMD5 (&local_48); kui (iVar4! = 0) {ProcUserLog ("dbc_mgr_pdt_encry.c", 0x9c, "PdtDBSetAESEncryKey", 5,0,0, "_getTagparamMD5 ebaõnnestus! Kasuta vaikimisi"); sVar5 = strlen ("Tere! maailm,"); CspGetMD5 ("Tere! Maailm,", sVar5, &local_48); } puVar7 = &local_48; puVar6 = &local_38; tee {bVar1 = * (bait *) puVar7 >> 4; if (bVar1 < 10) {cVar2 = '0'; } else {cVar2 = 'W'; } bVar8 = * (bait *) puVar7 & 0xf;
* (bait *) puVar6 = bVar1 + cVar2; if (bVar8 < 10) {bVar8 = bVar8 + 0x30; } muu {bVar8 = bVar8 + 0x57; } puVar7 = (määratlemata4 *) ((int) puVar7 + 1); * (bait *) ((int) puVar6 + 1) = bVar8; puVar6 = (määratlemata4 *) ((int) puVar6 + 2); } while (puVar7! = &local_38); kohalik_18 = 0; strncpy (param_1, (char *) &local_38, param_2 - 1); uVar3 = 0; } return uVar3;}  

mis:

  1. loeb faili nimega tagparam_m ja genereerib selle sisu MD5; _getTagparamMD5()
  2. Kui see funktsioon ebaõnnestub, kuvatakse 'Tere! maailm, kasutatakse selle asemel . iVar4! = 0
  3. teisendab MD5 (väiketähtedega) kuusnurkseks; (do-loop)

See võti sisestatakse seatud võtme funktsioonile AES_set_decrypt_key, asukohast libcrypto , teise parameetriga ('bits') väärtuseks määrati 128 (st 16-baidine KEY_LENGTH).

Fail tagparam_m asub kaustast / var ja luuakse ruuteri loomisel algab.

Olen sellest failist näinud kahte näidet. Igale andmesisestusele eelneb mini päise preambul, mis sisaldab järgmist:

  • 2-baidine identifikaator
  • 2-baidine pikkus ja
  • 2-baidine polsterdus.

Näide 1:

  0100 0006 0000 // 0100: MAC 0, 0006: 6 baiti, 0000: paddingaabb ccdd eef2 // MAC-aadress 0 (töötlemata heksakujuline) 0101 0006 0000 // 0101: MAC 1, 0006: 6 baiti, 0000: paddingaabb ccdd eef3 // MAC-aadress 1 (toores hex) 0102 0006 0000 // .. etcaabb ccdd eef40103 0006 0000aabb ccdd eef50104 0006 0000aabb ccdd eef60105 0006 0000aabb ccdd eef70106 0006 0000aabb ccdd eef80107 0006 0000aabb ccdd eef90108 0006 0000 aabb ccdd eefa0109 0006 0000aabb ccdd eefb020044004 Serial
0400 000e 0000 // 0400: BSSID, 000e: 14 baiti, 0000: polsterdus4142434445464748494a4b4c4d4e // BSSID (ASCII) 0510 0010 0000 // 0501: BSSID parool, 0010: 16 baiti, 0000: padding414243444444444444444444444444444444444444444444444444444444444444444744444444744444444444444444444444444444444444ti4 ja 414444444444444444644ou644444444444 azonban seotudroticus 0000 // 0601: administraatori kasutajanimi, 0005: 5 baiti, 0000: padding4142434445 // kasutajanimi (ASCII) 0701 0008 0000 // 0701: administraatori parool, 0008: 8 baiti, 0000: padding4142434445464748 // parool (ASCII) 0300 0006 0000 / / 0300: Tootja MAC, 0006: 6 baiti, 0000: polsterdus414243444546 // Tootja MAC (ASCII) 0806 0006 0000 // 0806: Riistvararemont5631 2e30 2e30 // Riistvararemont (ASCII) 0807 0001 0000 // 0807: Treiler? 30 / / "0" ASCII  

Näide 2:

  010 0 0006 0000 // 0100: MAC 0, 6 baiti5078 b3aa bbc0 // 50: 78: b3: aa: bb: c00101 0006 0000 // 0101: MAC 1, 6 baiti5078 b3aa bbc1 // 50: 78: b3: aa: bb: c10102 0006 0000 // 0102: MAC 2, 6 baiti5078 b3aa bbc2 // 50: 78: b3: aa: bb: c20103 0006 0000 // 0103: MAC 3, 6 baiti5078 b3aa bbc3 // 50: 78: b3: aa: bb: c30200 000f 0000 // 0200: Seerianumber, 15 bytes323638454142434445464748494a4b // 268EABCDEFGHIJK0400 000 mld 0000 // 0400: BSSID, 11 bytes4142434445464748494a4b // ABCDEFGHIJK0510 0010 0000 // 0510: BSSID parooli, 16 bytes4142434445464748494a4b4c4d4e4f50 // ABCDEFGHIJKLMNOP0701 0008 0000 // 0701: administraatori parool, 8 baiti4142434445464748 // ABCDEFGH0300 0006 0000 // 0300: tootja MAC, 6 baiti
353037384233 // 5078B30806 0006 0000 // 0806: Riistvara redigeerimine, 6 baiti :  Olen kasutanud näivväärtusi MAC / BSSID / parooli jne jaoks!  

Kui leiate selle faili ja täidate selle MD5 (nt md5sum / var / tagparam_m ), teie võtmeks on hex-i kokkuvõtte esimesed 16 tähemärki.

Hea võtme jaoks peaksid dekrüpteeritud ploki esimesed 8 baiti välja nägema 0x0102030400000000 , mis on algus osa ZLIB-i päisest.

Selle failivormingu kohta lisateabe saamiseks vaadake minu kirjutatud moodulit zcu.

Märkused:

Teine tagparam_m fail vahetati baitidega, kuid võti oli MD5 pärast seda, kui fail oli tagasi baiditud ja taga olev 00 oli kärbitud.

Kui keegi soovib mulle saata ir tagparam_m fail värskendan seda postitust!

Autorid:

  • Dimitris oma tagparam_m code MD5 väljaarvutamiseks > fail oli võti!
  • @Vido teise näite tagparam_m faili jaoks
Äge, vaatan selle kohe läbi, kui aega on. cspd näib vastutavat mitmete ZTE seadmete konfiguratsioonide krüptimise ja dekrüpteerimise eest, nagu siin F660 puhul mainitud http://reverseengineering.stackexchange.com/questions/13391/zte-reverse-engineering-config-bin-file-problem Kuid meetod näib erinevat tüüpi seadmete vahel. Koodi käivitamiseks võite alati proovida kasutada quemu.
Samuti proovin tuvastada varukoopia failides kasutatavaid krüpte, olen kasutanud ZTE ZXV10 H201L V2 ja minu thred asub siin http://reverseengineering.stackexchange.com/questions/14711/identify-compression-of-this-file/
Speedport Entry 2i-l on mul juurdepääs shellile ja strace, samuti gdbserver. Ma määratlesin protsessi, mida nimetatakse varundamisnupu vajutamisel. Mida siis teha, et varukoopia faili parooli uurida ja hankida?
@Vido Värskendasin postitust just eile * saadud teabe põhjal. Kui leiate faili `tagparam_m`, peaks selle võtmeks olema selle faili MD5.
See on suurepärane tnx @streetster
Ta kasutas maci jaoks mannekeeni, lubage mul kontrollida, siin see on https://pastebin.com/gy4eJk1q, see ei sisalda ruuteri sildilt maci
@streetster Sain just aru, et tagparm pärineb mu teiselt ruuterilt, mul on kaks ja mac on faili alguses õiges kohas
Jätkame [jätkame seda arutelu vestluses] (https://chat.stackexchange.com/rooms/112510/discussion-between-vido-and-streetster).
user33502
2020-06-09 23:43:55 UTC
view on stackexchange narkive permalink

sattus nende võtmete ja jagamise juurde

Tuntud AES-võtmed:

  zxhn h118n ert5 - 'MIK @ 0STzKpB% qJZe' zxhn h118n V2.1.3_ROSCNT? - 'MIK @ 0STzKpB% qJZf' zxhn h168n v3 - '402c38de39bed665' zxhn h298n hv17_fv116_mts? T1 - 'Wj' (vea tõttu on algsõna 'Wj% 2 $ CjM') zxhn h298a hw1.1.20_f - "m8 @ 96&ZG3Nm7N&Iz 'zxhn h108n hw1.2_fw2.5.4_eg1t8_ted, zxhn h108n hv11_fv2_5_4_ * -' GrWM2Hz&LTvz&f ^ 5 'zxhn h168n hv10_fv310t3_belt -' GrWM3Hz&LTvz&f ^ 9 'zxhn h208n hv10_fv1010_belt16t1 -' Renjx% 2 $ CJM 'zxhn h267n hv10_fv100t3_belt -' tHG @ Ti&GVh @ ql3XN ' 
Vido
2017-03-12 01:07:49 UTC
view on stackexchange narkive permalink

Võtme saamiseks peate kontrollima funktsiooni CSPDBGetFileEncryKey



See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 3.0-litsentsi eest, mille all seda levitatakse.
Loading...