I was poking around in ZTE Speedport Entry 2i (CPE used mostly in Germany, Slovakia etc, probably custom made for Deutsche Telekom). It's possible to download backup of config from UI.
I found out it's different from other ZTE config backups. Usually it's zlib compressed XML. I suspect this one has a layer of some pseudo-encryption on it.
00000000 99 99 99 99 44 44 44 44 55 55 55 55 aa aa aa aa |....DDDDUUUU....|
00000010 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 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 |................|
*
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 |dport Entry 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 |................|
*
000000d0 00 00 00 00 00 00 00 00 00 00 00 00 57 60 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| h.f.....=|
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 cf 1c 42 d8 41 6b |.2J.,.*..r..B.Ak|
Other examples of this config can be found here: RE Compressed backup file,router linux based so is it compresed with zlib?
Is there a way to figure out how to extract content of this config? Is there a way how to detect if some sort of simple XOR encryption is in place?
I was unable to obtain firmware of the device, it's CPE so it's pretty locked down. The device itself looks to be using stripped down version similar to ZTE E5502 (same lua based web UI) E5502 firmware
You can download the config here. config.bin
Edit:
After reading something about difference between compression and entropy, I came to conclusion that the file is probably encrypted and not just obfuscated with something like XOR (because that doesn't change the entropy)
I obtained config file from another ZTE device (one with zlib compression)
$ binwalk -E -N config_f660.bin
DECIMAL HEXADECIMAL ENTROPY
--------------------------------------------------------------------------------
1024 0x400 Rising entropy edge (0.973932)
10240 0x2800 Rising entropy edge (0.958898)
14336 0x3800 Rising entropy edge (0.966971)
17408 0x4400 Rising entropy edge (0.968328)
$ binwalk -E -N config_encrypted.bin
DECIMAL HEXADECIMAL ENTROPY
--------------------------------------------------------------------------------
1024 0x400 Rising entropy edge (0.974513)
22528 0x5800 Falling entropy edge (0.737589)
As far as I can interpret this data is that the first rising edge is unencrypted header in both configs. In the compressed config other rising edges should represent compressed zlib blocks. If you actually plot the graph with binwalk you can see that there are still some rising edges in entropy but much smaller the line is almost flat. (Cannot include graphs due to low reputation). I'm now confident that's caused by applying encryption over those compressed zlib blocks.
Are my assumptions correct or am I missing something? Is there a method I could try to break or at least guess the encryption type without the firmware image?
config.bin
from my new home router, from ZTE as well.