29 de março de 2013

Hackeando o Whitebox


Sabe esse aparelhinho que a EAQ em parceria com a Anatel anda distribuindo para os voluntários do programa de testes de banda larga? Ele nada mais é do que um roteador wireless (se você não tinha percebido antes de ler isso, por favor, pare agora!) da TP LINK, modelo WR741ND V4 com sua firmware alterada. O aparelho é capaz de fazer tudo que um roteador sem fio comum pode fazer, mas devido à essa firmware, está limitado apenas à realizar testes de banda e enviar os dados aos servidores responsáveis.

MAAAASS... Nem tudo é perfeito, e há maneiras de reverter o processo de modo a usar o roteador normalmente, e eu sei que no fundo, beeeeem lá no fundo (talvez nem tanto), você quer fazer isso.
A seguir, você irá aprender o processo para usar o Whitebox como um roteador convencional.

FAQ:

Sério mesmo que dá pra botar uma distribuição do Linux num roteador?
Sim. Nesse caso, as distribuições devem ser chamadas de "firmwares", e são arquivos com pouco menos de 10 MB.

Quais as vantagens disso?
Um controle maior das suas configurações de rede, assim como a possibilidade de manter o seu roteador executando tarefas que antes eram destinadas ao computador, como rodar um cliente torrent por exemplo (para roteadores que possuam saída para um hd externo). Enfim, qualquer coisa que possa ser feita no Linux e não exija muita memória e poder de processamento

Quer dizer então que meu roteador é "tipo" um computador?
Sim, o mesmo possui processador, memória ram e memória para armazenamento de arquivos. Ambas em tamanhos minúsculos.

O processo é reversível?
Provavelmente sim. Possuo backup da firmware oficial e todos os arquivos necessários, só tô estudando uma maneira de fazer isso. Devido a isso, só FAÇA SE VOCÊ TIVER EXTREMA CERTEZA DO QUE ESTÁ FAZENDO.

Vou me ferrar com a Anatel se fizer isso? 
Não faço ideia. Se sim, você não me conhece e eu não tenho nada a ver com isso.

Necessário:

- Alguma noção de redes e configuração de servidores FTP ou HTTP.
- Um servidor HTTP (Apache, por exemplo) ou FTP, instalado e devidamente configurado.
- Um cliente Telnet (pode ser o do Windows).
- Firmware que deseja instalar no aparelho. Pode ser a oficial da TP-LINK, ou qualquer outra, tipo OpenWRT, DD-WRT ou Gargoyle  (já testei e vi que todas possuem versões compatíveis com este modelo).

PS: NÃO ME RESPONSABILIZO POR CAGADAS PROBLEMAS DERIVADOS DESSE PROCESSO, OK? CADA UM POR SI.

Você já deve ter tentado acessar o aparelho digitando algum ip no browser ou pelo menos ter tentado ver o gateway no dos né? Se não tentou, mais uma vez, não prossiga com este post.

A firmware deste roteador oculta seu gateway e não permite acesso pelo browser. Pesquisando internet afora, descobri um macete para acessá-lo, e daqui por diante vou dividir os passos para acessar e alterar a firmware do aparelho:

1 - Plugue o cabo do roteador numa das portas LAN e a outra extremidade na porta de rede do seu computador.

2 - Defina o ip da sua placa de rede cujo cabo está plugado para 192.168.1.2, por exemplo, ou qualquer outro que você deseje, diferente de 192.168.1.1, e deixe a máscara de rede padrão.

3 - Pressione o botão de ligar e em seguida vá pressionando o botão QOS (do lado da antena) repetidamente, até você ver o led do lado do power (que lembra uma estrela) piscando repetidamente.

4 - Após estar com o led piscando sem parar, use um cliente Telnet (se você não sabe como ativar e usar o do Windows, explicarei ao final do post) e mande conectá-lo ao endereço 192.168.1.1. Você verá a tela do OpenWRT customizado pela Samknows (mais a frente explico o que é isso).
Caso não veja, há algo errado.


5 - Digite "mount_root" (sem aspas) para montar o sistema de arquivos.

6 - Feito isso, dê um "cd /tmp" para trocar o diretório.

7 - Agora você deverá "puxar" a firmware que irá instalar no roteador. Como isso? Imagine que agora o roteador é um computador, e o seu computador, outro (oh really?) O que você irá fazer é simplesmente baixar um arquivo do outro. Uma dica é renomear a firmware baixada para um nome fácil, e no Telnet, dar os comandos para baixar a mesma.

Exemplos:  FTP:   wget ftp://192.168.1.2/pasta/firmware.bin
                 HTTP: wget http://192.168.1.2/pasta/firmware.bin

Onde "192.168.1.2" é o ip que você alterou anteriormente, "pasta" é sua pasta de transferência do servidor escolhido, e "firmware.bin" é a firmware que irá ser instalada.

8 - Após transferi-la, você deve escrevê-la. Para isso use os comandos a seguir:
mtd -r write /tmp/firmware.bin

9 - Se tudo der certo, você verá algo parecido com isso, e o aparelho será reiniciado.


Feito isso, espere o roteador ligar, cruze os dedos e tente acessá-lo pelo browser. Se você ver a tela da firmware que foi instalada, provavelmente terá dado tudo certo.

EXTRAS:

Usa Windows 7/8 e não está encontrando o Telnet? Nestas versões do Windows ele está desativado por padrão, para ativá-lo basta ir em programas e recursos > ativar ou desativar recursos do Windows > marque a caixa "Cliente Telnet" > Ok.

Samknows? What a Fuck?
Samknows nada mais é do que a empresa responsável pelo software de análises e testes de conexão (no caso, uma modificação do OpenWRT) adotado pelo Brasil. Os arquivos originais e toda a documentação do software podem ser encontrados aqui.

Pretendo fazer uma vídeo-aula sobre isso, mas como sou preguiço pra caramba e ando meio sem tempo (contraditório, não?), talvez, mais pra frente, num futuro não tão longe, quem sabe...

Dúvidas, sugestões, correções, opiniões? Comenta aê!

Traduzido, adaptado e explicado por mim mesmo.