quarta-feira, 4 de março de 2015

Roteadores vulneráveis (password.cgi)




  Recentemente desenvolvemos o scanner RouterHunter BR que trabalha pela internet procurando por faixa de ips pre-definidas ou aleatórias encontrando routers(roteadores) caseiros vulneráveis a vulnerabilidade DNSchanger.

 Routeh

 Então me veio a ideia de montar um script separado que trabalha-se com o Shodan fazendo praticamente um trabalho parecido com o do routerhunter. A unica diferença do routerhunter para esse script é que ele trabalha juntamente com o Shodan com uma dork(filter) definida procurando por ips das operadoras (CTBC, OI, GVT, TELEFONICA) que são as principais operadoras com routers(roteadores) vulneráveis e verificando se pagina (password.cgi) está online ou não. (password.cgi) é uma pagina dentro do router que não requisita autenticação!

  Nesses mesmos modelos de roteadores que é encontrada a pagina (password.cgi), Também pode ser encontrado o GET "dnscfg.cgi?dnsPrimary=DNS1&dnsSecondary=DNS2&dnsDynamic=0&dnsRefresh=1" que está presente no routerhunter. Então vamos colocar a mão na massa!

   Antes vamos instalar as dependências necessárias para a utilização do script:

  Depois de instalada todas as dependências vamos para a utilização do script.

Vocês iram precisar criar uma conta no Shodan.io
2 Vocês também iram precisar uma apikey para definir no código
3 Com a apikey nas mãos coloque ela na variável "key" na linha 31

  Vamos a execução do script

python routeh.py
  Ele ira iniciar o scan por ips no Shodan com a dork(filter) definida "DSL Router micro_httpd". Depois ele ira te retornar os IPS testados.

Processo Manual

 O processo manual seria de duas formas utilizando o Scanhub e o Nmap

No Scanhub você pode utilizar esse filtro "((DSL Router micro_httpd) AND country:"br") AND service_names:http"

No nmap você irar usar o comando "nmap -sV -p 80 189.15.100.0-255" 

DEMO
https:/github.com/jh00nbr 
http://twitter.com/jh00nbr

6 comentários:

  1. python routeh.py
    File "routeh.py", line 18
    HEADER = '\033[95m'
    ^
    IndentationError: expected an indented block


    sabe me informar porque acontece isso?

    ResponderExcluir
  2. IndentationError: expected an indented block é erro de identação! por exemplo a estrutura tem que ser o seguinte:

    class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'

    Depois do "class bcolors:" tem que ter 4 espaços. Provavelmente o seu deve ta assim:
    class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKGREEN = '\033[92m'

    ResponderExcluir
    Respostas
    1. antes do "HEADER = '\033[95m'" coloque 4 espaço! depois pesquise por identação python

      Excluir
    2. velho deu esse erro aq..

      File "routeh.py", line 69
      api = WebAPI(key)
      ^
      IndentationError: expected an indented block

      Excluir
  3. root@kali:~/Desktop# python routeh.py
    File "routeh.py", line 69
    api = WebAPI(key)
    ^
    IndentationError: expected an indented block

    ResponderExcluir

............