sábado, janeiro 05, 2008

Router Hacking

Ao fim de uma semana com o router Belkin F5D7633-4, encontrei um "pequeno" problema no aparelho. A porta 5190 encontrava-se aberta quer a nível local quer externo, coisa que não me agrada. Andei a pesquisar no Google e não encontrei ninguém a queixar-se do mesmo problema.

A porta 5190 é a porta utilizada para o serviço de instant messaging da AOL, e eu não utilizo tal serviço, no entanto estava ali aberto a ligações. Nem mesmo depois de uma substituição de firmware. Troquei impressões com outra pessoa que tem um router Belkin, o problema era o mesmo, porta 5190 aberta.

Liguei-me por ssh ao bicho e andei a mexer no sistema operativo do router (linux) e encontrei no ficheiro /var/passwd o seguinte:

# cat passwd
admin:xxxxxxx:0:0:Administrator:/:/bin/sh
support:xxxxxx:0:0:Technical Support:/:/bin/sh
user:xxxxxx:0:0:Normal User:/:/bin/sh
nobody:xxxxxxx:0:0:nobody for ftp:/:/bin/sh

As passwords cifradas foram censuradas por motivos óbvios. Como se pode reparar, existe um user no router chamado "support". Estranho isto não vir mencionado no manual não? Porta aberta, conta de suporte... 1+1=2.

Aparentemente não existe maneira de editar os ficheiros pois não existe nenhum editor instalado no sistema operativo do router, por isso não foi possível apagar as contas "em excesso". E por esse mesmo motivo desviei a atenção para a firewall, que neste sistema é a normalíssima iptables. Listando as regras apareceu:

# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:1863:1864
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:4443
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5190
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5566
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpts:40000:40099
LOG tcp -- 0.0.0.0/0 0.0.0.0/0
limit: avg 6/hour burst 5 tcp flags:0x16/0x02
LOG flags 0 level 1 prefix `Intrusion -> '
DROP all -- 0.0.0.0/0 0.0.0.0/0

Chain FORWARD (policy ACCEPT)
target prot opt source destination
TCPMSS tcp -- 0.0.0.0/0 0.0.0.0/0 tcp flags:0x06/0x02
TCPMSS clamp to PMTU
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
LOG tcp -- 0.0.0.0/0 0.0.0.0/0
limit: avg 6/hour burst 5 tcp flags:0x16/0x02
LOG flags 0 level 1 prefix `Intrusion -> '
DROP all -- 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

Lá está a porta 5190 a ser permitida, entre outras, no entanto essas outras passam como stealth nos vários port scans que fiz ao router.
Bastou um simples comando iptables para apagar a regra e resolver o problema:

iptables -D INPUT 4


Este comando apaga a regra 4 da INPUT chain e para já resolve o problema. Os port scans já não acusam nada e o router continua aparentemente funcional :) Não sei até que ponto seria inofensivo ter esta porta aberta...

É preciso ter atenção que estes passos alteram o firmware do equipamento, e se não houver conhecimento do que se está a fazer pode-se acabar com um firmware danificado sendo depois necessária a reinstalação do mesmo para o router voltar ao funcionamento normal... ou não.