Em 2007 eu fiz uma experiência com modens/routers. A pesquisa englobou links estáticos e dinâmicos de uma fornecedora de internet aqui do Sul. Eu escaniei 65.025 possíveis hosts, procurando por equipamentos com as portas 23/80 (que pode caracterizar um router) e testei uma amostra dos resultados utilizando as senhas padrões dos dispositivos.

O trabalho foi bem manual e me tomou aproximadamente 2 semanas porem trouxe algumas conclusões interessantes, como por exemplo:

dentre o pessoal que usa 3com o habito de trocar a senha padrão é bem maior se comparado ao pessoal que usa dlink. Mas isso é bem óbvio né? E dentre os dlinks somente 30%~40% trocava as senhas dos equipamentos. Isso significa que 6 ou 7 em cada 10 pessoas com dlinks mantinham a senha default.

Nos últimos 2 meses tem se falado muito a respeito de uma botnet de modens/routers, segundo as informações disponíveis ela compreende um grupo de equipamentos que permite ao atacante instalar um ‘novos software’ com alguma facilidade. Depois de instalado, esse worm se conecta a canais de mirc a espera de comandos do dono da botnet. Alem é claro de procurar novos equipamentos para infectar, inclusive testando as senhas default.

Eu resolvi repetir a experiência em menor escala. Como da ultima vez, escrevi um código que busca por routes/modens, e em seguida tenta logar no equipamento e me retornar o DNS usado. Fiz o script baseado em um Router DL-500B. E qual a surpresa?

Em 255 hosts estáticos escaniados encontrei 16 possíveis roteadores, 8 deles eram DL-500B e 5 deles logaram com a senha default e me retornaram o DNS. Pois é, nos últimos 2 anos as coisas não mudaram muito.

Você percebe a gravidade dessa situação? Só para citar como exemplo a questão do DNS, alguém mal intencionado poderia trocar os servidores DNS do equipamento, por um DNS próprio que aponte para sites falsos. Dessa forma seria bem fácil roubar usuários e senhas de serviços populares como o gmail, hotmail, ou até mesmo dados bancários. Considerando ainda que os links estáticos dessa fornecedora são para uso empresarial a situação fica ainda pior.

Para quem ficou curioso, a base do script que faz o scan é essa:

?View Code PYTHON
#!/usr/bin/python
import os
import re
 
rede = 'x.x.x.'
for i in range(255):
    final = str(i)
    tmp = os.popen("nmap -PN -p80,23 " +rede+final).read()
    if (re.search("open  telnet",tmp)!=None) and (re.search("open  http",tmp)!=None):
	    print "Provavelmente um router: ",rede+final

Já o resto do script eu não vou postar, para evitar que os kids façam bobagem!

São eles:
4.2.2.1
4.2.2.2
4.2.2.3
4.2.2.4
4.2.2.5
4.2.2.6

Essa dica brotou nos meus feeds: Easy to remember public DNS servers
Como o título sugere, é uma lista de DNS servers fáceis de serem memorizados. Ideal para troubleshooting, principalmente em se tratando dos pontos 1, 3, 5 e 7!

Para mim é uma mão na roda.