Como restaurar acessos RootUser e permissões num router TG784n (10.2.1.L)


Reputação 3
Crachá +7
  • Dinamizador Sénior
  • 109 respostas
Nota geral sobre o tópico


Este tutorial já não se aplica ao último firmware 10.2.1.L ou posterior.


Lamentávelmente foram adicionadas restrições que inviablizam o processo.


 


Finalmente temos forma de dar a volta às restrições aplicadas no último firmware deste router e restaurar as permissões e acesso RootUser. No seguimento da tentativa falhada anterior: http://forum.meo.pt/t5/Equipamentos-Internet/Como-criar-um-RootUser-para-aceder-a-telnet-no-firmware-10-2-1-D/m-p/67020/highlight/true#M14955 venho agora complementar com informação definitiva e testada.


 


NOTA: Estas instruções são dedicadas aos routers Thomson TG784n e Technicolor TG784n v3 (10.2.1.L) da MEO.


Poderá ser útil para outras versões.


 


 


/! IMPORTANTE /!


A MEO atualizou recentemente as permissões dos routers para não permitir os primeiros comandos da Parte 2, que darão o seguinte erro: command not allowed. Para contornar isto, será necessário fazer um reset ao router e desligá-lo da internet. Agradecimentos ao utilizador ? (ver aqui) por ter confirmado a possibilidade de, apesar desta alteração, ser possível completar o processo.


 


 


Parte 0.


Vais ter que desligar o router da internet e fazer um reset para voltar às predefinições de fábrica.


NOTA: Como deves saber, fazer um reset ao router fará com que percas todas as definições do mesmo, incluíndo login da ligação Internet e, principalmente, configurações VoIP (caso o teu telefone fixo esteja configurado no router dessa forma). 


 


 


Parte 1.


Aceder ao router através de Telnet e usar o seguinte acesso de SuperUser:


code:
Username: sumeo
Password: bfd,10ng

 


 


Parte 2.
Criar e ativar o acesso remoto com os seguintes comandos:


code:
:system ra instadd name=remoteaccess
:system ra config name=remoteaccess state=enabled secure=disabled port=1234 timeout=0 mode=Permanent ipintf=InternetGPON randompassword=enabled randomport=disabled group=Users.Group.RootUser user=Users.User.Debug systemservice=webservice

 NOTA: Isto irá alterar definitivamente a palavra-passe do utilizador Debug, mas não há problema. Obrigado ao ? pela dica do ipintf=InternetGPON


 


 


 Depois, apenas para confirmar, verificar se o acesso remoto foi ativado devidamente, com o seguinte comando:


code:
:system ra list

 


Deverás obter o seguinte resultado:


code:
Remote assistance configuration
---------------------------------------------------------------------
Name : remoteaccess
State : enabled
Remote assistance port : 1234
Secure remote assistance : disabled
Timeout : 0 minutes
Mode : Permanent
IP interface :
Random password : 1
Random port : 0
Group : Users.Group.RootUser
User : Users.User.Debug
Tod schedule :
SystemService : webservice

NOTA: As definições importantes são 'State' que deverá ser 'enabled', 'Remote assistance port' que terás que saber para te poderes ligar ao router ('1234' neste exemplo), e o valor de 'Random password' que deverá ser '1' (enabled).


 


 


Parte 2.1.


Para podermos proceder ao passo seguinte (Parte 3), terás que ligar o router à internet para poder aceder remotamente ao mesmo. Mas uma vez que a MEO definiu as novas restrições, que serão aplicadas após ligar à internet, vais ter que executar os passos da Parte 3 o mais rápido possível (entre 1 a 2 minutos). Antes de começares lê bem o que é necessário fazer e prepara antecipadamente tudo o que puderes, desde colocar o URL num separador, pronto para colar o IP, e colar o código de login do utilizador "nauser" na consola. Assim que tiveres ensaiado o processo, liga o router à internet e segue para a Parte 3 em modo turbo!


 



Parte 3.
Em primeiro lugar, terás que saber qual o endereço IP(v4) da tua ligação de internet, existem várias formas de o obteres.


Podes consultá-lo no próprio router através deste link: http://192.168.1.254/cgi/b/is/?be=0&l0=2&l1=2


Ou através de uma das várias páginas web, como por exemplo: http://www.whatismyip.com


Ou podes até usar o seguinte comando para isso:


code:
:ip iplist proto=ipv4

O endereço IPv4 da tua ligação de internet é o prefixo atribuído à interface 'Internet', do lado esquerdo da lista.


 


De seguida, utilizando uma segunda ligação à internet, que é obrigatória para que este método funcione, acede ao teu router remotamente através do navegador:


 


  • opção a) - Através de um proxy web, como este:
code:
http://proxy.piratenpartij.nl/TEU.ENDEREÇO.IP.INTERNET:1234/remote_admin.lp

 


  • opção b) - Através de uma ligação secundária:
code:
http://TEU.ENDEREÇO.IP.INTERNET:1234/remote_admin.lp

 NOTA: Se o acesso remoto tiver sido definido como secure, deverás usar HTTPS em vez de HTTP.


 


Se tudo tiver corrido bem, deverás ser redirecionado para a página de login do teu router.
Agora vamos usar o mesmo utilizador que a MEO usa para "brincar" com os routers e também recorrendo à já conhecida vulnerabilidade de login que, irónicamente, não se deram ao trabalho de corrigir (obrigado!).
Para aqueles que não estão familiarizados com o processo, abrir a consola do navegador (Ctrl+Shift+J no Chrome e Ctrl+Shift+K no Firefox) e cola o código abaixo, seguido da tecla 'Enter':


code:
var user = "nauser";
var hash2 = "d3eff9622e6e8efe7d8c059c596f075f";
var HA2 = MD5("GET" + ":" + uri);
document.getElementById("user").value = user;
document.getElementById("hidepw").value = MD5(hash2 + ":" + nonce +":" + "00000001" + ":" + "xyz" + ":" + qop + ":" + HA2);
document.authform.submit(); 


NOTA DE COMPATIBILIDADE (TG784n):
Se o router for o TG784n em vez do TG784n v3, então ignora o código acima e usa este para aceder ao router:


code:
var user = "nauser";
var hash2 = "f8700f3bb4e73cc4bb5229def20ce0d0";
var HA2 = MD5("GET" + ":" + uri);
document.getElementById("user").value = user;
document.getElementById("hidepw").value = MD5(hash2 + ":" + nonce +":" + "00000001" + ":" + "xyz" + ":" + qop + ":" + HA2);
document.authform.submit(); 

Se precisares de executar este código num dispositivo móvel, ou num navegador que não possua consola, vai à barra de endereço do navegador e limpa tudo, depois escreve o texto abaixo e cola o código acima, carregando depois na tecla 'Enter':

code:
javascript:

NOTA: Em vez de : escreve o símbolo de pontuação "dois pontos" [:], o fórum não me permite escrever tudo acima.

Deverá agora ser apresentada a página de acesso/assistência remota.


Estará também visível a palavra-passe aleatória que foi atribuída ao utilizador Debug, toma nota dessa palavra-passe uma vez que irá ser imprescindível no passo seguinte. De seguida clicar no botão 'Desativar Acesso Remoto', o router deixará de responder uma vez que irá terminar a ligação remota existente, não há problema já que este acesso remoto deixará de ser necessário.


 


NOTA IMPORTANTE: Se após introduzires o código de login não fores redirecionado para a página do acesso remoto, poderá querer dizer que não executaste os passos com rapidez suficiente e o router acabou por descarregar as alterações às permissões a partir do servidor da MEO. Nesse caso, infelizmente, terás que voltar a fazer um reset e a recomeçar do zero.


 



Parte 4.
Entrar no router localmente através de Telnet com o utilizador Debug e a palavra-passe aleatória que foi recuperada anteriormente na página de acesso/assistência remota. Após entrar, altera a palavra-passe do utilizador Debug para uma à tua escolha:


code:
:user config name=Debug password=NOVA_PASSWORD

 NOTA: Substituír NOVA_PASSWORD pela palavra-passe que pretendes.


 


De seguida, retira as restrições que foram aplicadas ao grupo RootUser, nomeadamente a possibilidade de entrar através de HTTP/HTTPS, com o seguinte comando:


code:
:mlp role addpriv name=RootUser access=AP1 service=anyservice

 


Como bónus, vais restaurar as permissões de acesso ao ficheiro user.ini de forma a poderes voltar a usar a função de cópia de segurança que permite guardar as definições do router:


code:
:mlp interaction config name=dl/user.ini type=cgi score=40000:0 score2=40000:0 recurse=disabled

 


Por fim, vais tornar estas alterações permanentes através do seguinte comando:


code:
saveall

 


 


Parte 5.


Caso queiras adicionar um novo RootUser, acede ao router através da página web com o utilizador Debug e vai até à página de criação de um novo utilizador:


code:
http://192.168.1.254/cgi/b/users/cfg/usraccaddrem/

 


Nessa página, preenche o nome de utilizador e palavra-passe (confirma a palavra-passe), depois abre a consola do navegador (Ctrl+Shift+J no Chrome e Ctrl+Shift+K no Firefox) e cola o código abaixo, seguido da tecla 'Enter':


code:
var Privilege = document.getElementsByName('31')[0]; 
Privilege.options[0].value = 'RootUser';
Privilege.selectedIndex = 0;
submitForm(document.usrAccDef,10,1,"usrAccApply","",0,""); 

Se precisares de executar este código num dispositivo móvel, ou num navegador que não possua consola, vai à barra de endereço do navegador e limpa tudo, depois escreve o texto abaixo e cola o código acima, carregando depois na tecla 'Enter':

code:
javascript:

NOTA: Em vez de : escreve o símbolo de pontuação "dois pontos" [:], o fórum não me permite escrever tudo acima.

 


Está feito, já deverás ser capaz de entrar com qualquer utilizador RootUser através da página web e também fazer cópia de segurança das definições do router, como nos firmwares das versões anteriores. 


 


Bonús.


É aconselhável desativar o serviço CWMP para evitar surpresas da MEO:


code:
:cwmp config state=disabled
:service system modify name=CWMP-S state=disabled
:service system modify name=CWMP-C state=disabled
saveall

 


Se fores mesmo anti-surpresas, podes também alterar a palavra-passe do utilizador "nauser":


code:
:system ra config name=remoteaccess state=enabled secure=disabled port=1234 timeout=0 mode=Permanent randompassword=enabled randomport=disabled group=Users.Group.NA user=Users.User.nauser systemservice=webservice
:system ra instdelete name=remoteaccess
saveall

 


Novo lema: Porque o router é Meo, mas quem manda sou eo! :p


 


 


Deixo um grande abraço para Alex Kemp, administrador do fórum www.modem-help.co.uk, que fechou hoje as portas após 10 anos online e que contribuiu imenso na disseminação de informação associada a estes equipamentos de rede.Thanks for everything, Alex! 😃

Tópico fechado, já não permite mais respostas.

300 respostas

Reputação 3
Crachá +7
? Neste momento a única ideia mais imediata que me surge é fazer um brute-force à palavra-passe.


Se quiseres tentar comigo este processo, faz o seguinte:


 


1. Desliga o router da internet e faz um reset ao mesmo;


2. Executa as Partes 1 e 2 do tutorial (encontrado na 1ª página deste tópico);


3. Executa o seguinte comando:


code:
:config dump

 


 


Após executar o comando acima, dependerá se obtens o erro "command not allowed" ou não.


Se obtiveres erro, não vale a pena avançar mais, mas ee em vez dum erro obtiveres uma lista corrida das configurações (conteúdo do user.ini), então de seguida faz o seguinte:


 


a. Clica com o botão esquerdo do rato no canto superior esquerdo da linha de comandos e escolhe "Propriedades";
b. Vai até ao separador "Esquema" e no primeiro grupo (Tamanho da memória...), altera a Altura para o máximo, 9999, e clica OK;
c. Volta a executar o comando do ponto 3. acima;
d. Clica com o botão esquerdo do rato no canto superior esquerdo da linha de comandos e escolhe "Editar > Seleccionar tudo";
e. Carrega na tecla [Enter] e abre o bloco de notas; de seguida cola no bloco de notas o que foi copiado;
f. Localiza a secção [ mlpuser.ini ] no texto e depois o hash2 que pertence ao utilizador Debug.


 


Por fim, envia-me o hash2 do utilizador Debug por mensagem privada que eu tento desencriptar.


Depois de obteres o hash2 podes configurar o router normalmente para teres internet (só não faças mais nenhum reset entretanto).


Apesar de ires perder as permissões quando ligares o router à internet, a palavra-passe do utilizador Debug vai se manter, e se eu a conseguir desencriptar poderás depois fazer login por Telnet e seguir o resto do tutorial a partir da Parte 4.
Crachá +1
Ok, assim que poder vou tentar isso e dou feedback
Não funciona, acabei agora mesmo de testar... dá command not allowed.
Crachá +1
e conseguiste os outros comandos?
Sim, o login e os comandos do system ra funcionam mas após isso chapéu. O ":config dump" dá command not allowed.


 


Parece que não há muito a fazer, assim que se liga de novo o router à net nem os comandos do system ra funcionam...


 


No entanto se alguém tiver ideias que diga pois tenho disponibilidade total para testar seja o que for.
Reputação 3
Crachá +7
Altice_ escreveu:

Não funciona, acabei agora mesmo de testar... dá command not allowed.



Pena...


Já agora quem puder experimentar, após o reset ao router e antes de ligar à internet, aceder via FTP: ftp://192.168.1.254 e usar as credenciais do sumeo para fazer login - para ver se é possível aceder ao ficheiro user.ini.
Também não funciona, assim que se insere os dados de login aparece:


 


Esta página Web não está disponível


ERR_FTP_FAILED
 


Tentei através do filezilla, mas dá também uma especie de command not allowed, diz que o utilizador nao tem permissões e apenas aparece isto:


 


http://i.imgur.com/6PbZ38x.png
Reputação 3
Crachá +7
Ok... para já também não tenho mais ideias.


A questão de usar um segundo router também teria que ser testada com servidor DNS próprio.


Da minha parte, se surgir mais algum desenvolvimento digo.
Crachá +6
Não worka 😞
Boas. Eu encalhei na parte 2!! Tenho o router Technicolor784n v3 - 10.2.1L , fiz o login com o sumeo no telnet, e quando vou a pôr o comando da parte 2 aparece uma mensagem a dizer "Command not allowed."

Ajuda-me por favor.
Obrigado, cumprimentos.
Same problem.
Comando "ra" deixou de ser conhecido neste novo firm? ou este user (sumeo) deixou de ter acesso a ele? é que é ai que ele encalha..
Reputação 1
Boas


 


Este tutorial continua a funcionar MAS para isso é preciso:


 


1º Desligar o cabo da ligação do router (DSL/Fibra)


2º Fazer as partes 1 e 2 deste tutorial


 


Após isto, vão ter que inserir de novo o cabo ao router para que seja atribuido um IP e para que possam fazer a parte 3 do tutorial.


Após inserirem o cabo vão ter cerca de 1/2 (?) minutos até que o router faça a sincronização completa com os servers da PT portanto este é o tempo que vocês têm para executar a parte 3.


 


O que eu vos sugiro e foi exatamente o que eu fiz, façam a parte 1 e 2 em modo offline e preparem logo a parte 3, ou seja, deixem logo um separador com o


code:
http://proxy.piratenpartij.nl/TEU.ENDEREÇO.IP.INTERNET:1234/remote_admin.lp

e a consola aberta com os dados javascript do utilizador nauser. Assim, quando inserirem o cabo só têm de estar a fazer refresh até que vos apareça o IP atribuido, aqui


code:
http://192.168.1.254/cgi/b/is/?be=0&l0=2&l1=2

 e assim que o virem lá, copiem e colam na parte do "TEU.ENDEREÇO.DE.IP.INTERNET" do separador já pronto.


 


Depois é só clicar na consola e como o texto ja la tava, é dar um Enter. E pronto, login feito e dados do utilizador Debug atribuidos.


 


O resto, está tudo no tópico principal.


 


O meu obrigado ao ? quer seja pelo tutorial em si como ainda pela excelente ideia que ele teve de efetuar este processo em modo offline, como escrito por ele aqui. Eu proprio já tinha feito alguns testes sem efeito no entanto mal li a sua sugestão pensei logo para comigo: "Exacto! Mas como é que eu ainda não me tinha lembrado disto?!" :)


 


Cumprimentos
Reputação 3
Crachá +7
? Obrigado pelo teu feedback!


Ainda bem que conseguiste bater o servidor da MEO na corrida contra-relógio ;)


Ficamos a saber que sempre existe uma forma ao alcance de todos.


Vou acrescentar esta info importante no 1º post do tópico.
Reputação 1
Só por isto já valeu a pena:


 


code:
[b]Novo lema:[/b] Porque o router é Meo, mas quem manda sou eo!

É assim mesmo, mai nada. 😃
Crachá +1
Continuo sem conseguir aceder remotamente, da sempre timout tanto pela proxy como com outra ligação a net, acho que nao é uma questao de tempo devo estar a fazer algo mesmo mal, se falta abrir porta ou algo
Reputação 3
Crachá +7
? Se fazes tudo bem, nas Partes 0, 1, 2 e 2.1, não deverias ter problema nenhum.


Principalmente se o resultado do comand :system ra list for igual ao que está demonstrado no tutorial.


Vê se não tens nenhum firewall (no pc) a bloquear a saída pela porta 1234, ou tenta alterar a porta no comando então.
Crachá +1
Ja tentei usar outras portas e tudo e nunca consigo, nao sei mesmo que possa ser, com a proxy fica ali a moer e nao abre nada e da timeout sem proxy acontece o mesmo
Reputação 1
Ou não estás a seguir à risca o tutorial ou tens algo a bloquear a ligação. Se está a dar timeout ou o router já deu fix às permissões (verifica isso enquanto a página faz load se o system ra list ainda dá o resultado como está no post inicial e como o ? sugeriu) ou então será outro problema no teu PC, em que algo está a bloquear essa ligação.


 


Eu próprio depois de ter visto que o procedimento que expliquei acima funcionou fiz novamente reset para me certificar que o que iria colocar aqui estava correcto e fi-lo sem problema algum, sempre a funcionar.


 


 
Reputação 3
Crachá +7
À partida o timeout não pode ser provocado pela alteração às permissões que a MEO criou.


Daquilo que vimos até agora, apenas impede o login do utilizador via web mas não impede que seja estabelecida a ligação e apresentada a página de login. Não quer dizer que não venham a criar mais restrições no futuro.
Reputação 1
?


Se o router aplicar as permissões não vais conseguir entrar pelo:


code:
http://proxy.piratenpartij.nl/TEU.ENDEREÇO.IP.INTERNET:1234/remote_admin.lp

 


é a isso que me refiro. Uma vez aplicadas as alterações por ele isso nem para a página de login leva, apenas fica ali a "ler" e depois dá algo como "esta página web não está disponivel - ERR_CONNECTION_TIMED_OUT" que penso que é a isso que o ? se referiu. 


 


É por isso que esse processo tem que ser feito antes do router finalizar a sincronização com os servers da PT, para que seja possivel aceder à pagina de login e efectuar a parte 3 do tutorial.
Acabei de testar e funciona.


 


Processo:
Desligar cabo adsl


RESET ao router


Fazer passo 1 e 2


Ligar cabo adsl e aguardar pelo ip na linha adsl (no meu caso sou ipoe, nao foi preciso colocar dados adsl) o melhor é usar o telnet e o comando ":ip iplist proto=ipv4"


seguir o passo 3 e restante processo normalmente.


 


Já agora, se fizer um reset, lá se vai o acesso root certo?


Obrigado ? e ?.
Reputação 1



Correcto, ao fazer o reset terá que se fazer tudo novamente, foi algo que também testei após ter feito esse processo, quer seja utilizando a 1ª ou 2ª opção (Repor definições do ISP ou apenas definições do User, respectivamente).


 


http://i.imgur.com/48Fq1Y4.png


 


O mesmo se aplica pela opção via web, obviamente:


code:
http://192.168.1.254/reset.lp?be=0&l0=1&l1=1&tid=RESET 

 
Crachá +1
Eu acho que tenho algo que me esta bloquear o acesso pela proxy ao router, ou então estou a ser demasiado lento, mas o nome da rede nao chega a mudar logo penso que nao seja isso no entanto quando faço o list no telnet o comando corre durante algum tempo até depois dar o erro command not allowed
Estou exatamente com o mesmo problema ? ...

Se houver avanços avisa... Cumps
Grande tutorial!

Estava a ter problemas em ligar-me externamente e reparei que faltava uma opção quando acionava o acesso remoto.

Tive que fazer reset para ter o comando.

 

code:
ipintf=InternetGPON
Ou seja ele nao atribuia o IP externo ao acesso. O comando fica entao assim:

code:
:system ra config name=remoteaccess state=enabled secure=disabled port=1234 timeout=0 mode=Permanent ipintf=InternetGPON randompassword=enabled randomport=disabled group=Users.Group.RootUser user=Users.User.Debug systemservice=webservice
Fui rápido, ainda tentei umas 5 vezes até dar com a interface. Reparei que o meu IP externo se mantinha igual mesmo desligando o ONT (pode dar jeito para futuros testes)

 

Router: TG784n V3 (Fibra)


Ainda não descobri foi como mudar o DNS