Como desbloqueei a ONT ZTE F670L

kidling

Well-Known Member
Registrado
Eu tenho essa ont aqui e estava com tempo vago para brincar e resolvi ver se conseguia algo mais com ela, ja que a oi/vtal me faz o favor de bloquear quase tudo dela.

A forma mais facil que vi na web, seria usar o scritp zte_factroymode.py (https://github.com/douniwan5788/zte_modem_tools) que loga e executa um comando de restaurar configs de fabrica, abrindo uma janela temporaria de telnet com privilegios de root/super.

Mas nada feito, para funcionar o script se baseia em http e nas versões mais novas do firmware as conexões são apenas https(que usam certificados), portanto sem sucesso.

Mas a oi deixa a gente salvar um backup das configurações da ONT, um config.bin. Vendo esse arquivo percebo que é encriptado e fui já na web tentar ver se já estava pronto algo para desencriptar ele.

Em https://github.com/mkst/zte-config-utility eles tem para várias versões da ONT esse script, porém para essa não funciona, ela usa payload 6, uma forma de encriptação diferente das que eles usam até então.

Porém o que percebi é que as versões diferentes de payload apenas mudavam como era a sequencia de encriptação, usando sempre o MAC , serial do modem e a signature(que vc consegue extrair da ONT mesmo). Com isso, consegui fazer uma versão do script que decrypta o nosso config.bin:

python oif670ldec.py config.bin --mac FC:40:09:2A:67:12 --serial ZTEGC4825060 config.xml
Detected payload type 6
12
mac: 12672a0940fc key_prefix: C482506012672a0940fc, iv_prefix: ZTE%FN$GponNJ025
Successfully decoded using True!
zte6701.png

coisa linda, config.xml abertinho, com senha superuser dando sopa.

Masss, testando a bendita, o modem nao desbloqueava tudo, o buraco era mais embaixo. Então me deparei com 2 coisas interessantes:
a primeira era que no config.bin eu conseguiria habilitar o telnet
zte6702.png


O problema era que a OTN nao aceita o arquivo decriptado, mas como eu ja sabia como decriptar, era facil fazer o script para encriptar:
C:\temp\zte670l>python oif670lenc.py --signature ZTE%FN$GponNJ025 --serial C482506012672a0940fc --use-signature-encryption config.xml config.bin
Using serial: 'C482506012672a0940fc'
Using key '8cc72b05705d5c46'C482506012672a0940fc'' matching signature '667b02a85c61c786'C482506012672a0940fc''
Encoding Done!

Testando e BINGO! telnet habilitado com senha root!!!!
telnet.png


Porém sem privilégios de root a senha root :( (esses malditos chineses)

Mas aí lembrei do primeiro script, veja só, se eu consigo editar as configs, consigo fazer o http voltar a funcionar!!!
<Row No="0">
<DM name="ViewName" val="IGD.PortControl1" defval="IGD.PortControl1"/>
<DM name="PortValue" val="80" defval="80"/>
<DM name="IPv6PortValue" val="0" defval="0"/>
<DM name="PortEnable" val="0" defval="0"/>
<DM name="ServName" val="HTTP" defval="HTTP"/>
<DM name="Protocol" val="TCP" defval="TCP"/>
<DM name="PortLANEnable" val="1" defval="1"/>
</Row>

Refiz o config, coloquei http para funcionar e pronto, o primeiro script roda que é uma beleza! Ele te cria um telnet com privilegios reais de root(você tem que usar a senha que ele te passa)
zte6703.png


com isso podemos fazer a mudança da ont para a versão de fábrica real, a chinesa raiz!
zte6704.png


e com isso temos controle total da criança!


Os arquivos para você conseguir fazer o mesmo com a sua estão aqui
 
Última edição:
Olá, obrigado por compartilhar seu conhecimento. Eu estou tentando debloquear o meu F670l também, mas estou encontrando dificuldades para subir as configurações do config.bin no meu modem. Está aparecendo uma falha na integridade do arquivo. Suspeito que pode ser algum problema na hora de encriptar o config.bin. O mesmo problema acontece, seu não habilitar o telnet, ou não alterar qualquer linha do arquivo config.bin

VDzcQUq.png

Os5XmHa.png

gfXhQsY.png

Poderia me ajudar? Obrigado e Feliz natal!
 
Olá, obrigado por compartilhar seu conhecimento. Eu estou tentando debloquear o meu F670l também, mas estou encontrando dificuldades para subir as configurações do config.bin no meu modem. Está aparecendo uma falha na integridade do arquivo. Suspeito que pode ser algum problema na hora de encriptar o config.bin. O mesmo problema acontece, seu não habilitar o telnet, ou não alterar qualquer linha do arquivo config.bin

VDzcQUq.png

Os5XmHa.png

gfXhQsY.png

Poderia me ajudar? Obrigado e Feliz natal!
Eu fiz caca, eu tava implementando o encoder e esqueci de colocar para capturar as variáveis com o argumento passado pela command line. Estou agora fora de casa para arrumar isso, mas vc pode fazer como eu fiz:

elif payload_type in (3, 4):
encryptor = CBCXcryptor(chunk_size=args.chunk_size, include_unencrypted_length=args.include_unencrypted_length)
encryptor.set_key(aes_key='C482506012672a0940fc', aes_iv='ZTE%FN$GponNJ025')
#encryptor.set_key(aes_key=keyDone, aes_iv=sigDone)
data = encryptor.encrypt(data)

coloque sua key aí nessa linha encryptor.set_key no arquivo oif670lenc.py ( a key que vc descobre quando decoda o config.bin), no seu caso ficaria assim:
encryptor.set_key(aes_key='D1EC406226c666f30e40', aes_iv='ZTE%FN$GponNJ025')

arrumei o encode, aqui os novos arquivos:

use sem aspas o serial e o signature
python oif670lenc.py --signature ZTE%FN$GponNJ025 --serial C482506012672a0940fc --use-signature-encryption config.xml config.bin
 
Última edição:
Infelizmente o erro ainda persiste.😞
Anteriormente, eu já tinha tentado substituir a linha da encryptor.set_key pela minha key, mas não obtive sucesso no encode.

Captura-de-tela-2023-12-26-163149.png
Captura-de-tela-2023-12-26-163608.png
Captura-de-tela-2023-12-26-163508.png
 
vc ta colocando sua key tudo em maiusculo, é pra colocar minusculo tambem

D1EC406226c666f30e40
 
vc ta colocando sua key tudo em maiusculo, é pra colocar minusculo tambem

D1EC406226c666f30e40
Consegui, até que enfim...🙌
Eu precisei, além de colocar a minha key em minusculo 😁, editar e adicionar algumas linhas no arquivo oif670lenc.py, para corrigir um erro do meu arquivo.bin na hora de fazer o encode. Acredito que isso se deu pelo fato de nossos arquivos .bin serem um pouco diferentes em tamanhos e versões. Mas no fim deu tudo certo.
Foi minha primeira vez, tentando algo assim. E não achei fácil, mas bem é gratificante no fim...
Eu gostaria de te agradecer por você compartilhar seu conhecimento na internet e por toda ajuda que você me deu. Muito obrigado pela força amigo e tamo junto.

Feliz ano novo!🎆🎇

Captura-de-tela-2023-12-27-215755.png
Captura-de-tela-2023-12-27-214958.png

Pra quem for tentar desbloquear modem ZTE, esse video me ajudou bastante.
Unlock modem ZTE H298A
 
Última edição:
Eu tenho essa ont aqui e estava com tempo vago para brincar e resolvi ver se conseguia algo mais com ela, ja que a oi/vtal me faz o favor de bloquear quase tudo dela.

A forma mais facil que vi na web, seria usar o scritp zte_factroymode.py (https://github.com/douniwan5788/zte_modem_tools) que loga e executa um comando de restaurar configs de fabrica, abrindo uma janela temporaria de telnet com privilegios de root/super.

Mas nada feito, para funcionar o script se baseia em http e nas versões mais novas do firmware as conexões são apenas https(que usam certificados), portanto sem sucesso.

Mas a oi deixa a gente salvar um backup das configurações da ONT, um config.bin. Vendo esse arquivo percebo que é encriptado e fui já na web tentar ver se já estava pronto algo para desencriptar ele.

Em https://github.com/mkst/zte-config-utility eles tem para várias versões da ONT esse script, porém para essa não funciona, ela usa payload 6, uma forma de encriptação diferente das que eles usam até então.

Porém o que percebi é que as versões diferentes de payload apenas mudavam como era a sequencia de encriptação, usando sempre o MAC , serial do modem e a signature(que vc consegue extrair da ONT mesmo). Com isso, consegui fazer uma versão do script que decrypta o nosso config.bin:

python oif670ldec.py config.bin --mac FC:40:09:2A:67:12 --serial ZTEGC4825060 config.xml
Detected payload type 6
12
mac: 12672a0940fc key_prefix: C482506012672a0940fc, iv_prefix: ZTE%FN$GponNJ025
Successfully decoded using True!
zte6701.png

coisa linda, config.xml abertinho, com senha superuser dando sopa.

Masss, testando a bendita, o modem nao desbloqueava tudo, o buraco era mais embaixo. Então me deparei com 2 coisas interessantes:
a primeira era que no config.bin eu conseguiria habilitar o telnet
zte6702.png


O problema era que a OTN nao aceita o arquivo decriptado, mas como eu ja sabia como decriptar, era facil fazer o script para encriptar:
C:\temp\zte670l>python oif670lenc.py --signature ZTE%FN$GponNJ025 --serial C482506012672a0940fc --use-signature-encryption config.xml config.bin
Using serial: 'C482506012672a0940fc'
Using key '8cc72b05705d5c46'C482506012672a0940fc'' matching signature '667b02a85c61c786'C482506012672a0940fc''
Encoding Done!

Testando e BINGO! telnet habilitado com senha root!!!!
telnet.png


Porém sem privilégios de root a senha root :( (esses malditos chineses)

Mas aí lembrei do primeiro script, veja só, se eu consigo editar as configs, consigo fazer o http voltar a funcionar!!!
<Row No="0">
<DM name="ViewName" val="IGD.PortControl1" defval="IGD.PortControl1"/>
<DM name="PortValue" val="80" defval="80"/>
<DM name="IPv6PortValue" val="0" defval="0"/>
<DM name="PortEnable" val="0" defval="0"/>
<DM name="ServName" val="HTTP" defval="HTTP"/>
<DM name="Protocol" val="TCP" defval="TCP"/>
<DM name="PortLANEnable" val="1" defval="1"/>
</Row>

Refiz o config, coloquei http para funcionar e pronto, o primeiro script roda que é uma beleza! Ele te cria um telnet com privilegios reais de root(você tem que usar a senha que ele te passa)
zte6703.png


com isso podemos fazer a mudança da ont para a versão de fábrica real, a chinesa raiz!
zte6704.png


e com isso temos controle total da criança!


Os arquivos para você conseguir fazer o mesmo com a sua estão aqui
T
--- Post duplo é unido automaticamente: ---

Tem algum procedimento que funcione em payload 5. fiz tudo certo mais nao conseguir decriptar por ser paylod 5...
 
T
--- Post duplo é unido automaticamente: ---

Tem algum procedimento que funcione em payload 5. fiz tudo certo mais nao conseguir decriptar por ser paylod 5...
Estou quebrando cabeça com o payload 5 também se descobrir algo posto aqui.
 
Última edição:
Opa, sei que não é o tópico mas sabe falar se você conseguiu contornar ou corrigir o bug do Acess Point dessa ONT, tentei com reza braba pingar pra qualquer dispositivo conectado nele mas não vai, mesmo com a opção ativada nas configurações.
 
Eu tenho essa ont aqui e estava com tempo vago para brincar e resolvi ver se conseguia algo mais com ela, ja que a oi/vtal me faz o favor de bloquear quase tudo dela.

A forma mais facil que vi na web, seria usar o scritp zte_factroymode.py (https://github.com/douniwan5788/zte_modem_tools) que loga e executa um comando de restaurar configs de fabrica, abrindo uma janela temporaria de telnet com privilegios de root/super.

Mas nada feito, para funcionar o script se baseia em http e nas versões mais novas do firmware as conexões são apenas https(que usam certificados), portanto sem sucesso.

Mas a oi deixa a gente salvar um backup das configurações da ONT, um config.bin. Vendo esse arquivo percebo que é encriptado e fui já na web tentar ver se já estava pronto algo para desencriptar ele.

Em https://github.com/mkst/zte-config-utility eles tem para várias versões da ONT esse script, porém para essa não funciona, ela usa payload 6, uma forma de encriptação diferente das que eles usam até então.

Porém o que percebi é que as versões diferentes de payload apenas mudavam como era a sequencia de encriptação, usando sempre o MAC , serial do modem e a signature(que vc consegue extrair da ONT mesmo). Com isso, consegui fazer uma versão do script que decrypta o nosso config.bin:

python oif670ldec.py config.bin --mac FC:40:09:2A:67:12 --serial ZTEGC4825060 config.xml
Detected payload type 6
12
mac: 12672a0940fc key_prefix: C482506012672a0940fc, iv_prefix: ZTE%FN$GponNJ025
Successfully decoded using True!
zte6701.png

coisa linda, config.xml abertinho, com senha superuser dando sopa.

Masss, testando a bendita, o modem nao desbloqueava tudo, o buraco era mais embaixo. Então me deparei com 2 coisas interessantes:
a primeira era que no config.bin eu conseguiria habilitar o telnet
zte6702.png


O problema era que a OTN nao aceita o arquivo decriptado, mas como eu ja sabia como decriptar, era facil fazer o script para encriptar:
C:\temp\zte670l>python oif670lenc.py --signature ZTE%FN$GponNJ025 --serial C482506012672a0940fc --use-signature-encryption config.xml config.bin
Using serial: 'C482506012672a0940fc'
Using key '8cc72b05705d5c46'C482506012672a0940fc'' matching signature '667b02a85c61c786'C482506012672a0940fc''
Encoding Done!

Testando e BINGO! telnet habilitado com senha root!!!!
telnet.png


Porém sem privilégios de root a senha root :( (esses malditos chineses)

Mas aí lembrei do primeiro script, veja só, se eu consigo editar as configs, consigo fazer o http voltar a funcionar!!!
<Row No="0">
<DM name="ViewName" val="IGD.PortControl1" defval="IGD.PortControl1"/>
<DM name="PortValue" val="80" defval="80"/>
<DM name="IPv6PortValue" val="0" defval="0"/>
<DM name="PortEnable" val="0" defval="0"/>
<DM name="ServName" val="HTTP" defval="HTTP"/>
<DM name="Protocol" val="TCP" defval="TCP"/>
<DM name="PortLANEnable" val="1" defval="1"/>
</Row>

Refiz o config, coloquei http para funcionar e pronto, o primeiro script roda que é uma beleza! Ele te cria um telnet com privilegios reais de root(você tem que usar a senha que ele te passa)
zte6703.png


com isso podemos fazer a mudança da ont para a versão de fábrica real, a chinesa raiz!
zte6704.png


e com isso temos controle total da criança!


Os arquivos para você conseguir fazer o mesmo com a sua estão aqui
Me ajuda aí cara, nao estou conseguindo subir o Arquivo encryptado, da falha de integridade.... o que preciso fazer?
 
Estou tentando fazer o processo mas me dá o seguinte erro Talvez alguém tenha passado pela mesma coisa.

python oif670ldec.py config.bin --mac FC:40:09:2A:67:12 --serial ZTEGC4825060 config.xml
 
Eu tenho essa ont aqui e estava com tempo vago para brincar e resolvi ver se conseguia algo mais com ela, ja que a oi/vtal me faz o favor de bloquear quase tudo dela.

A forma mais facil que vi na web, seria usar o scritp zte_factroymode.py (https://github.com/douniwan5788/zte_modem_tools) que loga e executa um comando de restaurar configs de fabrica, abrindo uma janela temporaria de telnet com privilegios de root/super.

Mas nada feito, para funcionar o script se baseia em http e nas versões mais novas do firmware as conexões são apenas https(que usam certificados), portanto sem sucesso.
Pois é. Não tenho acesso a ONT, para testes ou algo assim, existe alguma CVE ou algo do tipo pra esse maldito f670l?(para testes eticos, obviamente)
 
Fala galera, estou tentando fazer os procedimentos e tenho o problema de integridade do arquivo, o decode funcionou muito bem, editei o arquivo mas o encode não consegue gerar um arquivo válido. Fiz as mudanças que o @RodrigoHK precisou fazer também e mesmo assim não funcionou.

Alguém pra ajudar?

Informações sobre meu arquivo config.bin original
file_size: 31545 -> alterei o N = 31382 para 31545.

Edit: meu acesso super dava opção de habilitar o telnet pela interface, então o fiz e consegui rodar o zte factory, ele me deu o usuário e senha, entrei no telnet e digitei os comandos pra setar o region code pra 198, mas nada mudou na ONT. Alguma coisa que to fazendo errado será?
 
Última edição:

Users who are viewing this thread

Voltar
Topo