AVISO LEGAL: Este conteúdo tem finalidade exclusivamente educacional, documental e de pesquisa. A análise apresentada foi realizada apenas sobre um arquivo de configuração que eu tinha autorização para exportar e sobre informações e ferramentas disponíveis publicamente. Nenhum acesso não autorizado foi realizado, nenhuma configuração ou plano de serviço foi alterado e nenhuma ação foi executada com o objetivo de causar danos, obter vantagens indevidas ou comprometer sistemas de terceiros. O conteúdo é apresentado para fins de documentação e conscientização técnica, não constituindo incentivo ou orientação para acesso não autorizado a sistemas, redes ou contas. Caso você seja responsável por algum conteúdo, informação ou recurso mencionado neste artigo e queira solicitar sua remoção, desativação ou alteração, encaminhe sua solicitação para: [email protected]

Onde Tudo Começou

Comprei uma ONU R1 da Intelbras pra normalmente clonar a informação do roteador GPON Huawei que a Tim colocou, e falhei por conta que o modem não tinha um painel web de configuração, apenas a url http://192.168.1.1/tim_wizard.asp, que tem apenas configuração básica de wifi e um teste de conexão de rede. O interessante é que, caso você entre no teste de conexão de rede sem o cabo de fibra conectado, ele vai mostrar um hyperlink pra configurações avançadas, levando ao http://192.168.1.1/index.asp

O Painel Web

E finalmente eu tive acesso a um painel padrão de um roteador, com encaminhamento de portas e funções bastante normais, que a Tim por algum motivo escondeu no diretório /index.asp

Painel Web Escondido
Painel Web "Escondido"

E por lá, na seção "Advanced" > "Maintenance Diagnosis", eu consegui acesso ao "Configuration File Management", onde eu consigo exportar e importar arquivos de configuração. Porém eu não dei muita fé nisso, já que o modem do meu endereço antigo da Tim, o Blu-Castle BCSKV630, tinha o arquivo criptografado, mas pra minha surpresa era um XML puro! Com isso em mãos, eu procurei por algo que já conhecia de investigar as requisições do Blu-Castle: o usuário de engenharia da Tim, algo universal no firmware proprietário da Tim, o usuário L1vt1m4eng. E, pra surpresa de ninguém, ele estava lá:

<X_HW_WebUserInfoInstance InstanceID="2" UserName="L1vt1m4eng" Password="CESNURADO"
UserLevel="0" Enable="1" ModifyPasswordFlag="0" FactoryPassword="CESNURADO"
Salt="CERNSURADO" PassMode="3" Alias="cpe-2">
<X_HW_IteratePassword Password="CENSURADO" Salt="CENSURADO" IterateCount="10000"
HashType="0"/>
</X_HW_WebUserInfoInstance>

Com isso em mãos, eu peguei a tag FactoryPassword="CESNURADO" e joguei num site muito interessante feito por pessoas mais inteligentes que eu: o Huawei Password Utility, feito por andreluis034. Colocando a string, que se parece com isso: $2#L0D,H{Mg%"4x`LbVbODad][2e*nh-Z]ZW!B6X=U$ (nesse caso essa retorna AZULRE), ele retornou uma senha pra essa conta, e ao colocá-la no login, funcionou!

Logando e Modificando o Arquivo de Configuração

Ok, temos o login da conta equiparável ao root, vamos habilitar o SSH/Telnet. Se fosse possível pela interface, não existe nenhuma opção pra isso, então fiz algo ousado: tentei editar o arquivo de configuração na mão e habilitar os dois, e na seção <X_HW_LocalAccess Enable="1" Port="80,443" Protocol="HTTP,HTTPS" SupportedProtocols="HTTP,HTTPS,TELNET,FTP"/>, editei a linha pra <X_HW_LocalAccess Enable="1" Port="80,443,23" Protocol="HTTP,HTTPS,TELNET" SupportedProtocols="HTTP,HTTPS, TELNET,FTP"/>, fui nas configurações e fiz o upload do arquivo, o roteador reiniciou e, ao tentar logar, funcionou! Usando o L1vt1m4eng e a mesma senha decodificada, eu consegui ter acesso a...

WAP>

Sem busybox?

O SSH Mais SECO Que Eu Já Vi!

WAP? Sim, Wireless Access Point, um tipo de sessão SSH proprietária da Huawei, porém temos acesso a várias coisas interessantes: apertando ? ele faz uma lista de todos os comandos, que na maioria são auto-explicativos, exemplo de um:

WAP>display cpu info

                processor       : 0
                model name      : ARMv7 Processor rev 1 (v7l)
                BogoMIPS        : 1594.16
                Features        : half thumb fastmult edsp thumbee tls
                CPU implementer : 0x41
                CPU architecture: 7
                CPU variant     : 0x4
                CPU part        : 0xc09
                CPU revision    : 1
                CPU physical    : 0

                processor       : 1
                model name      : ARMv7 Processor rev 1 (v7l)
                BogoMIPS        : 1594.16
                Features        : half thumb fastmult edsp thumbee tls
                CPU implementer : 0x41
                CPU architecture: 7
                CPU variant     : 0x4
                CPU part        : 0xc09
                CPU revision    : 1
                CPU physical    : 1

                Hardware        : Hisilicon A9
                Revision        : 0000
                Serial          : 0000000000000000



success!
WAP>

Porém um me chamou bastante a atenção, sendo esse o su, que ao digitar:

WAP>su
success!
SU_WAP>

Que, foi assim? Tenho sudo no login superadmin? Ok, vamos listar os comandos pra ver se algo mudou:

[...]
shell
[...]

OPA! Será que finalmente-

SU_WAP>shell

BusyBox v1.34.1 () built-in shell (ash)
Enter 'help' for a list of built-in commands.

profile close core dump
WAP(Dopra Linux) # ?
exit
getcustominfo.sh
WAP(Dopra Linux) # 

Não. Apenas não. Brincadeiras à parte: temos um BusyBox! Mesmo que altamente limitado e... Dopra Linux? Sim, é um Linux proprietário de dispositivos WAP da Huawei, bastante interessante. De resto, o shell não tem nada além do .sh que mostra a versão original de software flashada nele e a senha original do L1vt1m4eng, e o WAP> é só uma versão CLI da interface web, com umas configurações a mais, porém nada de extraordinário que eu tenha visto.

Considerações Finais

Foi muito legal e interessante esse buraco de coelho, e espero que algum dia isso ajude alguém. Até mais, caros leitores!