Como tentar descobrir senhas de servidores por força bruta.

Notas:

  • “servidor” é, para a intenção deste post, uma funcionalidade de rede oferecido por um equipamento qualquer. Não estou me referindo a “um computador”, mas a aparelhos modernos conectados à rede como câmeras IP, NVRs, DVRs, modems, roteadores e media players;
  • Meu interesse é descobrir senhas padrão telnet e ftp de equipamentos que possuo e minha abordagem será essa;
  • O método de força bruta só é eficaz se o servidor não limitar o número de tentativas de login num determinado período de tempo. Medidas simples como bloquear o acesso do seu endereço  IP por x minutos após y tentativas erradas de login já reduzem enormemente a capacidade de sucesso. Mas os equipamentos em que estou interessado geralmente  não implementam qualquer proteção contra ataque de força bruta (edit: Injusto. Vários dos meus implementam medidas simples. Veja comentários);
  • Qualquer comentário com perguntas onde sequer pareça que você está querendo usar isso em servidores que não estão sob sua administração será vetado.

Para quê?

Você pode pular essa parte indo direto para “NCRACK” se quiser.

Neste momento eu tenho cinco câmeras IP conectadas à rede de minha casa que tem servidor telnet embutido. O acesso telnet em equipamentos desse tipo geralmente oferece opções avançadas de diagnóstico e recuperação, como hard reset (apagamento da partição de configuração), mudança de configurações e comportamento e até backup e restauração do firmware. Este último é especialmente interessante porque minhas câmeras são genéricas, chinesas, e apesar de todas oferecerem opção de instalação de novo firmware, nenhum dos fabricantes tem sequer uma página na internet. Se o firmware de uma delas for corrompido, o único jeito de consertar é conseguindo uma igual (minhas câmeras são geralmente diferentes) para fazer uma complicada operação de desmontagem e dessoldagem para fazer uma cópia da memória flash com um gravador. Tendo um backup guardado do firmware original eu estou mais seguro.

O problema é que as câmeras tem essa funcionalidade, mas o fabricante não te diz a senha de acesso. Faz um certo sentido porque se você não souber o que está fazendo pode inutilizar a câmera (basta apagar um arquivo do bootloader) e nenhum fabricante quer essa dor de cabeça. Provavelmente a senha só é dita ao usuário pelo suporte técnico avançado quando há um problema sério ou o analista de suporte faz um acesso remoto à sua rede e com isso pode fazer o diagnóstico sem nem precisar dizer a senha. Mas…

Suporte técnico avançado?

Analista de suporte?

Suporte? Que suporte?

No final a existência desse acesso se torna uma vulnerabilidade, porque você não sabe a senha mas alguém na internet com certeza sabe. Todos esses equipamentos são baseados em Linux e o modo mais comum de obter a senha deles é, tendo acesso ao arquivo de firmware (que pode ser de uma atualização oferecida pelo fabricante), extrair o arquivo criptografado de senhas (geralmente etc/passwd) e rodar um programa de força bruta como o John The Ripper. Como o “ataque a um arquivo” não pode ser limitado como o ataque a um servidor, você testa milhares de possibilidades por segundo dependendo do poder computacional que tem disponível. E as senhas nem são tão complexas assim por isso fazendo uma pesquisa no Google você encontra diversos casos de senhas que foram descobertas “facilmente” dessa maneira.

Eu não estou particularmente preocupado com o acesso de terceiros às minhas câmeras porque eu procuro tomar medidas para que terceiros não tenham acesso fácil à minha rede, mas se eu tiver acesso não custa nada eu mudar essa senha default para dar um pouco mais de trabalho a um possível intruso. E, como eu disse anteriormente, o acesso telnet abre diversas possibilidades para o usuário avançado, incluindo mudar essa senha.

Mas já estou fugindo do assunto.

NCRACK

O Ncrack é um programa simples de linha de comando que permite fazer isso. Eu queria testar cinco câmeras e tinha uma dúzia de possíveis senhas. Parece pouco mas manualmente eu teria que fazer 5×12= 60 tentativas de login. Na décima eu já estaria tão entediado que começaria a errar a digitação (HA! Dependendo da senha eu já estou errando na primeira tentativa). Ncrack facilita muito isso porque eu pude colocar as 12 senhas (agora são 23) em um arquivo :

E dei ao ncrack uma lista dos IPs das minhas câmeras e esse arquivo para ele tentar. A linha de comando que eu coloquei em um arquivo .bat ficou mais ou menos assim:

No exemplo acima, “ipcam.pwd” é o nome que dei ao arquivo com a lista de senhas (uma por linha) e o usuário testado sempre será ‘root” (–user root).

Em 30 segundos (quando a lista tinha apenas 12 senhas) eu tinha as senhas de três das câmeras. As senhas das outras duas não estavam na minha lista.

Mais tarde quando acrescentei três câmeras rodei o teste de novo e consegui a senha de mais duas em menos de um minuto. Depois eu ampliei a lista de senhas para 23 e sem fazer qualquer esforço consegui obter a senha de mais uma câmera.

Se você quiser que o programa teste várias combinações de usuários e senhas pode colocar os nomes de usuários em um arquivo (um por linha) e indicar ao programa que o use, trocando o parâmetro ‘–u’ por ‘-U’ como abaixo:

No exemplo acima eu coloquei os usuários em um arquivo de nome ‘ipcam.users’.

Note que este é um exemplo bem simples em que eu usei uma lista especial de senhas com alta probabilidade. Ncrack tem outras opções e você pode usar listas muito maiores.

 

 

 

 

5 comentários
  • Diogo

    Taí uma coisa que me impede de colocar minhas câmeras pra acessar pela internet, tenho medo que descubram o dns delas e quebrem a senha por força bruta…

    • Infelizmente conectar qualquer coisa diretamente à internet é arriscado. Até o próprio modem! A quantidade de exploits existentes para os mais diversos modems impressiona. Daí ser recomendável que você tenha no mínimo um roteador entre o modem, que deve ser configurado também como roteador, e sua rede.

      O ideal seria você ter um dispositivo “gateway” onde você tivesse que fazer logon primeiro antes de alcançar qualquer coisa na rede interna. E que esse gateway evidentemente bloqueasse qualquer IP por x minutos após y tentativas erradas de login.

      No caso das câmeras isso seria o NVR/DVR. Porém o danado usualmente vem com seu próprio pacote de vulnerabilidades.

  • Nota: mudar a senha default do usuário root nesses aparelhos é possível e desejável, mas é arriscado. É informado aqui que a Foscam FI9820 nem tem senha para o usuário root, mas se você colocar uma para proteger o acesso telnet a câmera deixa de dar boot porque vários scripts de inicialização dependem da falta dessa senha.

  • Ampliei a lista de possíveis senhas para 23 e expliquei como testar vários nomes de usuário também

  • Eu fui injusto ao dizer que esses dispositivos não tem qualquer proteção contra ataque de força bruta. Em várias das minhas câmeras o servidor telnet faz uma pausa de 3 ou 4 segundos quando você entra credenciais incorretas e se você errar três vezes é desconectado. Isso não é o bastante para impedir um ataque de dicionário como esse que estou fazendo com o ncrack, mas já dificulta enormemente o ataque tradicional.

    Ignorando o tempo que leva para reconectar de novo a cada desconexão forçada, só é possível testar uma combinação a cada 3 segundos. Isso dá meras 28800 combinações por dia. Para você ter uma idéia, só o dicionário Houaiss já tem mais de 228 mil palavras. Eu consegui tempos curtos por usar um dicionário especializado, de senhas default, mas leve em conta que o atacante também vai usar um e mudar a senha default desses dispositivos pode não ser fácil.


Clique aqui para comentar.
OBS: Os links "Responder" não aparecem nesta página, mas aparecerão na próxima.Por favor use-os se estiver respondendo a um comentário.

Abandonando o Vmware server em favor do Virtualbox

Há muito tempo eu venho tendo aborrecimentos com a versão gratuita do vmware: o vmware server. Fiquei preso à versão 1.0.10 porque não consegui de jeito nenhum me entender com a versão 2.x, por isso não sei como é a versão mais nova nesse sentido, mas a 1.x é intrusiva demais, criando diversos problemas difíceis de diagnosticar e/ou conviver na máquina host. De atrasar o boot do XP em 43s a impedir o funcionamento da webcam no Live Messenger (não acho meu post, se é que escrevi sobre isso). Os aborrecimentos eram tantos que passei a usar muito pouco a virtualização. Por um tempo eu ainda usei a versão portable do Microsoft Virtual PC, mas ela vive dando problemas porque a MS “implica” com a “portabilização”.

Há umas duas semanas, incentivado por não conseguir fazer uma virtualização funcionar no vmware, decidi testar outra vez o Virtualbox e fiquei surpreso com as melhorias que encontrei desde a última vez que testei. O teste, com uma máquina virtual Linux, foi facílimo porque o Virtualbox consegue usar o HDD virtual *.vmdk criado pelo vmware. A propósito, o Virtualbox também suporta os HDDs virtuais do VirtualPC (*.vhd).

Mas o que facilitou mesmo foi existir uma versão portable, de terceiros,  que funciona. Consegui fazer todo o meu teste, incluindo usar dois adaptadores wireless USB reais na máquina virtual, sem precisar sequer instalar o Virtualbox no meu PC.

 

 

 

3 comentários
  • Cesar Machado

    Eu uso o virtual box desde janeiro de 2011, e a cada update a melhora é visível. :)

  • Marcel

    Eu tenho usado o Citrix XenServer, e estou feliz com ele. Embora a automatização de backup tenha sido feita via script no linux por baixo dele, e algumas partes da manutenção tenha que ser via linha de comando, e que o XenConverter (para fazer P2V – Physical to Virtual) tem grandes chances de falhar (95% no meu caso), e que não dê para mandar uma serial real para a parte virtual, tenho conseguido tocar…

    A estabilidade, ser opensource (o XEN básico é, já a ferramenta da Citrix não), uma boa ferramenta de administração, e ser um linux por baixo foram os diferenciais para mim, mas confesso que o VMWare Server sempre foi meu sonho de consumo, até pela facilidade de poder trabalhar com o mesmo padrão de máquina virtual do vmware-player, podendo trabalhar na máquina local antes de mandá-la pro servidor.

    Quanto ao virtualbox, vou fazer um teste com ele assim que tiver um tempo (que pelo andar da carruagem, pode ser nunca) e paciência… 

  • Intruder_A6

    Acho que vou testar ele, não custa tentar, pois não precisar instalar facilita muito.


Clique aqui para comentar.
OBS: Os links "Responder" não aparecem nesta página, mas aparecerão na próxima.Por favor use-os se estiver respondendo a um comentário.

Gizmos freeware é um site que nos últimos…

Gizmos freeware é um site que nos últimos meses tem aparecido com frequência, merecidamente, no topo de minhas buscas no Google,

Altamente recomendado. Não apenas pelas análises, que são boas, mas também pelo nível dos comentários.

1 comentário
  • brunoguimaraes

    Hoje em dia é tão raro encontrar locais em que os comentários tem um alto nível, fico abismado com algumas discussões que acabam indo somente para o lado da agressão e do deboche. Felizmente aqui isso não acontece.


Clique aqui para comentar.
OBS: Os links "Responder" não aparecem nesta página, mas aparecerão na próxima.Por favor use-os se estiver respondendo a um comentário.