Procedimento genérico de backup e restauração de firmware linux via telnet

Como o próprio nome diz, este procedimento é genérico. Um exemplo simplificado que você pode adaptar para o seu aparelho. Até agora só testei com meu NVR (backup e restauração) e seis câmeras IP (apenas backup). Eu vou passar a publicar backups de aparelhos que passarem pelas minhas mãos e espero poder estimular outras pessoas a publicarem os backups dos seus.

Do que você precisa:

  • Acesso telnet ao aparelho;
  • Que o linux do aparelho tenha busybox (os comandos necessários são parte dele);
  • Um servidor NFS ou TFTP (por enquanto só abordarei NFS). Aviso: Se o aparelho tem porta USB que suporta pendrives pode ser muito mais simples usá-la em vez de usar o servidor NFS/TFTP. Veja exemplo na seção “DUMP/backup do firmware” no meu post sobre o mini-NVR.

Infelizmente nem todo aparelho com busybox disponibiliza os comandos de que precisamos. Modems e roteadores, por exemplo, costumam vir com uma versão bem limitada do busybox. Aliás, é comum você sequer conseguir listar diretórios via telnet nesses equipamentos.

O que você precisa saber

Para o propósito deste texto, entenda o comando “mount” do linux como o comando para fazer o que é um “mapeamento de rede” no jargão do Windows. Por exemplo:

mount -t nfs 10.0.0.10:/srv/storage /tmp/nfs

Faz com que o conteúdo de 10.0.0.10:/srv/storage seja mapeado localmente como /tmp/nfs

 

Para gravação em memória flash do tipo NOR usa-se o comando flashcp. Em flash do tip NAND usa-se o comando nandwrite. Eu suponho que você possa distinguir qual é o caso por qual comando está presente no seu aparelho. Nos poucos que testei somente flashcp estava disponível.

 

Apesar do firmware que você instala ser apresentado como um único arquivo, no aparelho a memória flash é organizada em partições, como um HDD. No jargão do linux a flash é chamada de “MTD” e as partições são identificadas como “mtd0”, “mtd1”, “mtd2” e assim por diante.

Para obter tudo o que precisamos saber sobre essas partições use o comando:

cat /proc/mtd

A resposta é algo assim:

O campo “name” nos dá a dica do propósito (os nomes variam com os aparelhos) de cada partição o que é muito útil ao fazer restauração e modificações. Você deve fazer backup de todas, mas só deve restaurar o mínimo necessário e com atenção:

  • uboot – A primeira partição, não importando o nome, deve ser o bootloader. Geralmente somente leitura. Não mexa nessa a menos que não tenha escolha.
  • kernel – É onde fica o linux propriamente dito. Geralmente somente leitura. Geralmente você não precisa mexer com ela.
  • rfs – “rootfs” ou sistema de arquivos raiz. Não tenho certeza ainda do que você pode fazer com ela.
  • app – No caso do NVR, é onde fica o programa (app) que você vê no monitor, o controle activex que você baixa, etc
  • config – a configuração do usuário. Muitas vezes apagar essa partição faz um hard reset do aparelho, mas sempre faça um backup antes.
  • logo – no caso do NVR é nessa partição que fica a imagem em formato JPG que aparece na tela quando o aparelho está dando boot.

Vamos supor para os procedimentos a seguir que você tem seis partições no aparelho e tem um servidor NFS no endereço 10.0.0.10 com um export chamado /srv/storage.

Procedimento de backup

mkdir /tmp/nfs

mount -t nfs 10.0.0.10:/srv/storage /tmp/nfs

dd if=/dev/mtd0 of=/tmp/nfs/mtd0.img
dd if=/dev/mtd1 of=/tmp/nfs/mtd1.img
dd if=/dev/mtd2 of=/tmp/nfs/mtd2.img
dd if=/dev/mtd3 of=/tmp/nfs/mtd3.img
dd if=/dev/mtd4 of=/tmp/nfs/mtd4.img
dd if=/dev/mtd5 of=/tmp/nfs/mtd5.img

Pronto, se você não viu nenhuma mensagem de erro uma cópia das seis partições está no seu servidor NFS. Confira o tamanho de cada arquivo com o que aparece na coluna “size” do comando cat /proc/mtd antes de prosseguir. Tem que dar exatamente igual mas perceba que os números em /proc/mtd estão em hexadecimal e o Windows mostra os tamanhos, claro, em decimal.

De posse desse backup você pode fazer comparações grosseiras entre firmwares. Instale várias versões pelo método tradicional, faça backup de todas elas e depois compare os backups com um utilitário de comparação para ter uma idéia do que mudou entre elas. Note que as partições que guardam as configurações de usuário podem ser sempre diferentes.

Procedimento de restauração

Digamos que você só queira restaurar as partições 3 e 4 e que os respectivos arquivos estão no compartilhamento do servidor NFS.

mkdir /tmp/nfs

mount -t nfs 10.0.0.10:/srv/storage /tmp/nfs

#cd /tmp/nfs

ls < – você deve ser capaz de ver uma listagem dos arquivos no servidor
flashcp -v mtd3.img /dev/mtd3
flashcp -v mtd4.img /dev/mtd4
reboot

Pronto. Partições restauradas.

1 comentário
  • Jefferson - 6.631 Comentários

    Hoje eu tentei usar esse procedimento com meu mini-NVR e falhei miseravelmente. Eu jurava que tinha conseguido antes mas agora toda tentativa de usar o comando mount dava o erro “no such device”.

    Depois de apanhar muito eu desisti e fiz o backup das partições via pendrive. Horas depois eu encontrei uma dica que pode explicar o problema: o mini-NVR possivelmente não tem suporte a nfs. Para checar que sistemas de arquivos o aparelho suporta o comando é este:

    cat /proc/filesystems

    E a resposta do mini-NVR é

    # cat /proc/filesystems
    nodev sysfs
    nodev rootfs
    nodev bdev
    nodev proc
    nodev tmpfs
    nodev securityfs
    nodev sockfs
    nodev usbfs
    nodev pipefs
    nodev anon_inodefs
    nodev devpts
    squashfs
    nodev ramfs
    vfat
    msdos
    iso9660
    nodev jffs2
    nodev fuse
    fuseblk
    nodev fusectl
    nodev mtd_inodefs
    ext3

    Note que “nfs” não aparece na lista.

Clique para comentar
(Prefira clicar em "Responder" se estiver comentando um comentário)

Deixe um comentário

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »

Como e para que criar um servidor NFS, mesmo sendo usuário do Windows.

Nota: Este post está em rascunho. Eu sei que pode estar vago, mas alguns poderão notar que já é muito útil do jeito que está. Se precisar de um maior esclarecimento deixe um comentário porque eu irei preenchendo lacunas aos poucos.

NFS (Network File System – Por um tempo eu jurava que significava Network File Server) é um protocolo de compartilhamento de arquivos massivamente usado no mundo Linux e completamente distinto do usado no mundo Windows (CIFS/SMB).  Normalmente não tem qualquer utilidade para nós exceto quando precisamos lidar com aparelhos baseados em Linux (cameras ip, nvr, media player, tv, etc), que é o caso que vou abordar neste post. Para muitos dispositivos desse tipo o único meio de trocar arquivos com o mundo exterior, principalmente arquivos que contém o firmware do aparelho, é você ter acesso a um servidor NFS.  A maioria dos usuários Windows está a no máximo uma dúzia de cliques de criar um servidor CIFS, mas conseguir um servidor NFS pode ser bem complicado e frustrante quando você não faz a menor idéia de por onde começar.

Outros posts virão onde explicarei como fazer backup e restauração de firmware de alguns aparelhos e o processo vai depender de você ter acesso a um servidor NFS.

Se você tiver acesso ao Windows Server 2008 ou 2012, um servidor NFS supostamente é parte das opções oferecidas, mas não vou tratar disso aqui.

 

haneWIN NFS Server

Shareware

Prós

  • Roda no Windows. Incluindo XP e Windows 8.1 x64 (testado);
  • Pequeno, leve, prático e funciona. Do download ao servidor funcionando são só uns poucos minutos.

Contras

  • Só pode usar por 30 dias

O procedimento é muito simples

  • Baixe e instale o programa;
  • Crie um diretório c:\public
  • Execute NFS Server pelo ícone deixado no desktop (para configurar você precisa executar como Administrador);
  • Vá em Exports -> Edit Exports File e retire o parâmetro -readonly da linha que começa com c:\public
  • Clique em Restart Server

Agora você pode montar no cliente com uma seqüência de comandos do tipo (digamos que o servidor esteja em 192.168.0.10);

#mkdir /tmp/nfs

#mount -t nfs 192.168.0.10:/c/public /tmp/nfs

Observe a notação acima. Se o drive fosse “d:”, o caminho a usar começaria com “/d/”

Se der “Connection Refused” experimente acrescentar ‘-o nolock’, assim:

#mount -t nfs -o nolock 192.168.0.10:/c/public /tmp/nfs


Tunkey Linux File Server

Prós:

  • Imediatamente após terminar o assistente de configuração o servidor já está funcionando;
  • Compartilhamentos são simultaneamente exportados como CIFS e NFS. Assim você pode colocar um arquivo no servidor através do Linux e resgatá-lo do mesmo local usando o Windows e vice-versa;

Contras:

  • É irritante que ele não deixa você terminar a instalação enquanto não escolher uma senha complicada (que dois meses depois eu já havia esquecido e tive que instalar tudo de novo);
  • Oferece uma enorme quantidade de configurações pela GUI que são todas completamente inúteis para nosso caso e só confundem;
  • Embora o servidor NFS rode automaticamente não encontrei opção na GUI para configurá-lo. Eu só descobri quais eram os diretórios exportados quando fiz um webshell e li /etc/exports. Depois foi preciso editar o arquivo /etc/exports manualmente para fazer uma mudança necessária;
  • É configurado para atualizar automaticamente e não encontrei opção na GUI para desativar isso. Então para tentar impedi-lo na marra eu forneci endereços de gateway e DNS falsos;

O Turnkey Linux File Server é uma distro do Linux que está disponível como máquina virtual.  Basta importar o arquivo .ova disponibilizado no site na sua cópia do Virtualbox e seguir o assistente de instalação. Em poucos passos está quase pronto para o uso.

A primeira tela do assistente vai pedir uma senha para o usuário root. Você precisa combinar letras maiúsculas e minúsculas e colocar ao menos um número.

turnkey_fileserver_1_root_password_ryan-com-br

Confirme a senha

turnkey_fileserver_2_root_password_confirm_ryan-com-brSe a senha não estiver ao agrado do programa vai ser rejeitada logo na primeira tentativa

turnkey_fileserver_3_root_password_insecure_ryan-com-br

Em seguida o programa vai oferecer os “hub services”, que são inúteis para nossa finalidade. Você pode pular a instalação com a tecla TAB, até selecionar SKIPturnkey_fileserver_4_hub_services_ryan-com-br

Salte as notificações da mesma forma

turnkey_fileserver_5_notifications_ryan-com-br

Minta internet tem apenas 800kbps. Esperar para fazer atualizações é intolerável. Eu salto isso também.

turnkey_fileserver_6_update_now_ryan-com-br

Se você não quiser mudar as configurações de rede, a configuração acabou. Se quiser mudar, selecione Advanced Menu

turnkey_fileserver_7_ryan-com-br

Selecione Networking

turnkey_fileserver_8_advanced_menu_ryan-com-br

Selecione Static e configure ao seu gosto. Para evitar que o programa se atualize sem minha permissão, eu forneço informações falsas de gateway e DNS. Isso não afeta a operação na sua rede.

turnkey_fileserver_10_network_static_ryan-com-br

A partir desse ponto você pode fazer muita coisa com o mouse. Basta acessar o servidor via browser, no endereço IP que você definiu.

 

O único real problema que encontrei foi que apesar de não existir username e password para acessar um servidor NFS pois as permissões são definidas por IP, por default o servidor NFS não permite gravação se você estiver acessando como usuário root, mas normalmente esse é justamente o usuário com que fazemos login nos dispositivos (dá permission denied). Mas uma pequena configuração extra no arquivo /etc/exports resolve.

Exemplo de arquivo /etc/exports

Após a instalação você precisa acrescentar a opção no_root_squash ao compartilhamento que quer liberar completamente.

Você não pode simplesmente copiar e colar o meu arquivo exports porque o arquivo é criado com endereços que dependem da sua rede.

O modo simples de editar o arquivo exports é fazer login pelo webshell para copia-lo para o compartilhamento, editá-lo usando o seu editor preferido no Windows mesmo e depois transferi-lo de volta:

O arquivo editado fica mais ou menos assim (observe o que foi acrescentado em negrito):

A partir do servidor telnet de uma câmera, consegui fazer o mount com:
# mkdir /tmp/nfs
# mount -t nfs -o nolock 10.0.0.39:/srv/storage /tmp/nfs

 

Não funcionaram

FreeNFS e FreeNFSe – Free. A versão FreeNFSe é destinada a instalação a partir do Windows XP e é especificamente destinada ao que desejamos: a conexão de clientes NFS “embutidos” ou “embarcados” e é extremamente simples de usar, mas não consegui fazer funcionar. O compartilhamento é criado mas tentar copiar para ele dá muitos erros e os arquivos são criados com zero bytes.

Windows Services For Unix – Gratuito e da própria Microsoft. Pode ser instalado até no Windows XP, mas foi descontinuado e não é mais oferecido para download.  Complica demais porque requer que você faça um mapeamento entre os usuários do Windows e do Unix antes de poder compartilhar pastas. Se você quiser procurar por ele aqui estão informações de autenticidade para a versão 3.5 (a última), da cópia que baixei anos atrás:

CRC-32: 87cfd0f3
MD4: 95aac2b26bfd9971b73efe9e6c62d462
MD5: d632c1bd7bed8af2ddb2a00c81aafcab
SHA-1: cd9cc633d967a2186c6f55ec8e362c1efb370661

Problemas diversos

  • “Connection refused” no comando mount – A maioria dos tutoriais diz que isso está relacionado ao seu firewall. Mas descobri que acrescentar ao mount a opção ‘-o nolock’ resolve o problema;
  • Comando mount demora demais e depois dá “RPC timed out” – O firewall está atrapalhando
  • “Permission denied” no comando mount – Se você é o usuário ‘root’ na máquina onde está dando o comando mount, o servidor NFS está configurado para negar acesso ao usuário root;
3 comentários
  • Ygor Almeida - 136 Comentários

    … Jurava que já havia feito comentário aqui nesse post. Mas devo ter caído em alguma regra ou se perdeu.

    Não sei se funciona corretamente ( talvez se você tiver tempo e saco para testar o windows 10 ) mas com o advento do Bash do Ubuntu 14.04 no Windows – acho que seria possível utilizar o NFS Server nativo do linux rodando sob o windows.

    Uma das limitações até onde eu sei é editar coisas parece que o Bash não tem permissão de escrita na camada do HD Windows. Mas leitura ele faz. Acredito que um pouco de apt-get e algumas configurações e você poderia compartilhar a pasta usando o NFS.

    Vale o teste, já que muitos serviços as coisas funcionam no Bash, como LAMP e até mesmo o X eu vi que é possivel usar com muito truque.

    Pra fins de teste e desafio embora sei que seu tempo seja limitado. Acho que vale a pena !!!

    :yahoo: :clapping:

    • Jefferson - 6.631 Comentários

      Ygor,

      Eu não uso o Windows 10 ainda. E por causa da característica “mutante” desse SO eu ainda estou reticente quanto à validade de se fazer qualquer tutorial baseado nele.

  • Jefferson - 6.631 Comentários

    Eu expandi os tutoriais e documentei alguns possíveis problemas.

Clique para comentar
(Prefira clicar em "Responder" se estiver comentando um comentário)

Deixe um comentário

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »

Ruminações diversas, 19/08/2016

Acho um absurdo que em pleno 2016 ainda exista tanto machismo e segregação nas olimpíadas. Essa separação precisa acabar e precisamos ver a mulherada competindo de igual para igual com os marmanjos não só na esgrima, tiro, ginástica artística e nado sincronizado mas também na maratona, canoagem, vôlei, boxe, atletismo…


Quando saiu a primeira notícia de que os nadadores americanos tinham dito que os bandidos que os assaltaram tinham “mostrado o distintivo” para eles eu imediatamente achei que havia algo errado, só por causa disso. Mas como era o Rio eu deixei para lá minha desconfiança. No final minha primeira impressão estava correta e era invenção mesmo.


Concordo plenamente com o surf e skate se tornarem esportes olímpicos porque se futebol é esporte olímpico acho que até cuspe à distância se enquadra :P

3 comentários
Clique para comentar
(Prefira clicar em "Responder" se estiver comentando um comentário)

Deixe um comentário

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »

A bringIT vende teclados de outro notebook dizendo que é o teclado do seu.

As diferenças não atrapalham a digitação mas atrapalham significativamente o controle do notebook.

Veja as discussões que tive com o vendedor no Mercado Livre aqui e aqui e tire suas próprias conclusões. Para registro, o teclado abaixo é o legítimo teclado PK130QG2B27 que equipa o gateway Ne56R08bTeclado_PK130QG2B27_Gateway_NE56R08b_DSC02185_700_ryan.com.br

Teclado_PK130QG2B27_Gateway_NE56R08b_DSC02181_700_ryan.com.br

 

Eu até pensei em comprar vários teclados direto com a bringIT porque além do frete ser mais barato que o do Mercado Envios (alguém se surpreende?), direto com eles dá para trazer vários teclados no mesmo frete, o que eles não deixam fazer pelo Mercado Envios. E como bônus eu não daria nenhum dinheiro ao Mercado Livre. Mas depois dessa eu estou com um pé atrás. Algum de meus leitores de longa data pode testemunhar a favor da empresa? Esse é um hábito ou um caso isolado?

 

Clique para comentar
(Prefira clicar em "Responder" se estiver comentando um comentário)

Deixe um comentário

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »

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.

 

 

 

 

6 comentários
  • Diogo - 17 Comentários

    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…

    • Jefferson - 6.631 Comentários

      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.

  • Jefferson - 6.631 Comentários

    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.

  • Jefferson - 6.631 Comentários

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

  • Jefferson - 6.631 Comentários

    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.

  • Jefferson - 6.631 Comentários

    Eu não vira na ocasião, mas dois meses depois que postei isso foi publicada a lista de credenciais que o Mirai usou para invadir mais de meio milhão de dispositivos IoT. São 61 combinações.

Clique para comentar
(Prefira clicar em "Responder" se estiver comentando um comentário)

Deixe um comentário

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »

Cameras IP que ficam sem imagem por até 15 minutos

Eu tenho esse problema com três das minhas câmeras ONVIF, de um total de oito em operação. Todas do mesmo modelo rodando duas versões do firmware.  As três apagam ao mesmo tempo e voltam sozinhas ao mesmo tempo. O intervalo é variável mas se eu não fizer absolutamente nada a imagem volta sozinha em 15 minutos. A primeira vez que notei o problema foi ao desligar o disjuntor #4 no quadro geral da casa. Depois notei que sempre acontecia também quando desligava o disjuntor do meu quarto (que no quadro geral está no circuito do disjuntor #7). Nenhum desses disjuntores alimentava essas câmeras. Até esse ponto eu estava pensando em um estranhíssimo problema de indução magnética. Não fazia sentido, mas era a única explicação que eu tinha.

Até que eu fui fazer manutenção na rede ethernet nos fundos da casa (as três câmeras problemáticas ficam no quintal da frente) e descobri por acaso que desconectar da rede o roteador do quintal também fazia as câmeras apagarem. E as câmeras não tinha nenhuma dependência desse roteador. Mas o roteador estava no circuito do disjuntor #4. As peças começavam a se encaixar.

Então eu fui ao meu quarto e descobri que não era desligar o disjuntor que apagava as câmeras: bastava desligar o switch do meu quarto, que também nada tinha a ver com as câmeras.

Percebeu o tamanho do abacaxi?

A única coisa que eu encontrava em comum entre o roteador no quintal dos fundos e o switch no meu quarto é que ambos eram ligados ao switch principal da casa passando por um longo eletroduto de dezenas de metros. E isso não oferecia explicação alguma já que as câmeras problemáticas são ligadas a um outro switch seguindo na direção oposta sendo que nesse switch são ligadas quatro câmeras e uma delas, de outro modelo, não apresenta problema algum.

Depois de 24h pensando ocasionalmente sobre essa bizarrice, finalmente a ficha caiu e descobri o que mais havia em comum entre o roteador do quintal e o switch do meu quarto: cada um deles era o ponto de acesso à rede de um NVR secundário (eu tenho três na casa no momento).

A explicação até agora: por um motivo que só o fabricante dessas câmeras sabe explicar, se qualquer NVR visualizando as câmeras for desligado estas apagam esperando que o NVR volte a ficar online. Se o NVR voltar a imagem volta imediatamente. Se não voltar, em 15 minutos elas voltam a responder. Não adianta tentar visualizar as câmeras por outros meios nesse intervalo. Elas aparecem na rede, mas não dão imagem. Isso cria uma preocupante vulnerabilidade porque qualquer segmento da minha rede levando a um NVR que for desligado faz com que a gravação de todas essas câmeras pare. Ainda não encontrei uma solução que não seja reduzir as possibilidades de ataque a esses segmentos e/ou distribuir as câmeras por pontos pouco importantes. Não que eu acredite que alguém vá fazer isso, mas eu sempre trato o que faço em casa como um laboratório.

Eu ainda não sei qual o hardware usado pelas câmeras. Quando eu precisar fazer manutenção em alguma delas eu aproveitarei para desmontar e analisar que possibilidade de troca do firmware eu tenho.

 

Clique para comentar
(Prefira clicar em "Responder" se estiver comentando um comentário)

Deixe um comentário

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »

Ruminações diversas, 08/08/16

Eu não lembro se já comentei sobre isso aqui, mas é bom nunca esquecer que máquinas dotadas de UEFI tem a capacidade de instalar software sem o conhecimento do usuário mesmo após uma formatação e o uso de discos “limpos” do sistema operacional. E esse recurso já foi abusado pela Lenovo com resultados espetacularmente ruins. Eu realmente sinto falta da simplicidade, segurança e robustez do BIOS.


Esta semana eu levei uma surra de uma máquina que não queria entrar no Windows de jeito nenhum (tela preta antes de aparecer a tela de login), exceto no Modo de Segurança, e seguindo pistas deixadas nos logs resolvi o problema removendo a placa de rede extra que eu mesmo instalara anos antes. A placa embutida que eu desativara por apresentar problemas, misteriosamente estava ativada e funcionando.


Nas últimas semanas eu venho consertando uma quantidade impressionante de aparelhos cujo único problema é um ou mais capacitores ruins. Uma TV, monitores, uns oito receptores de satélite, câmera IP e até um minúsculo módulo WiFi voltaram à vida trocando peças de um real. E às vezes nem isso. Muitas vezes o capacitor não é imprescindível à operação e basta removê-lo para o equipamento ficar perfeitamente usável novamente. Eu pretendo fazer posts sobre esses consertos no futuro.

9 comentários
  • rolab - 1 Comentário

    Obsolescência programada meu caro Ryan…

    • Jefferson - 6.631 Comentários

      Não necessariamente. Se você está se referindo ao fato de uma peça que não é imprescindível matar o aparelho, é importante frisar que elas não são imprescindíveis mas também não são desnecessárias. A função desses capacitores é melhorar a estabilidade, reduzindo o “ruído” nas linhas de alimentação. Sem eles o aparelho opera perfeitamente mas com “imunidade” reduzida.

      Na minha opinião isso está mais para o uso acidental de lotes ruins do que malícia. Principalmente no caso de capacitores eletrolíticos, que são componentes químicos de fabricação notoriamente sujeita a problemas.

      • Luciano - 493 Comentários

        Se for eletrolítico, pode ainda ser sombras da pirateação da formula de eletrólito feitas pelos chineses. Tem muito material sobre isso na internet.

        • Jefferson - 6.631 Comentários

          Esse foi o problema da TV e dos monitores. Todos os outros aparelhos tinham minúsculos capacitores cerâmicos em curto. Eu nem sabia que um capacitor desses poderia entrar em curto, principalmente com tensões tão baixas quanto 12 e 3.3V.

  • Alisson Teles Cavalcanti - 77 Comentários

    Hummmmmmmm… Isto muuuuuuito me interessa! :D

  • Snow_man - 313 Comentários

    Sobre a placa de rede, 2 considerações:

    1- quando pc não “starta”, me ensinaram a sempre retirar toda placa extra pra testar sem elas;
    2- já aconteceu comigo, mais de uma vez, da placa onboard estar falhando ou lenta, e adicionar uma placa de rede pci era a solução. E depois, do nada, a onboard volta a funcionar perfeitamente. Explicação? não sei :-P

    • Jefferson - 6.631 Comentários

      1- Sim, é diagnóstico básico. Porém é tão raro hoje em dia eu pegar uma máquina de cliente com algo “offboard” e a máquina ficava numa posição incômoda em baixo da mesa que eu nem pensei em abri-la inicialmente. Já quando a máquina está na minha bancada aí usualmente a primeira coisa que eu faço é abrir para fazer uma inspeção visual. Às vezes o problema é cooler parado, sujo demais ou solto e pelo menos olhar a placa às vezes poupa muito tempo.

Clique para comentar
(Prefira clicar em "Responder" se estiver comentando um comentário)

Deixe um comentário

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »

Mais um problema para quem faz login no Windows 8 usando conta Microsoft.

A idéia era ruim desde o início. O instalador do Windows 8/8.1 dá a entender que o único jeito de usar essa versão do Windows é com uma conta Microsoft (não é) e por isso muita gente acabou se registrando no PC com as mesmas credenciais do seu email. O primeiro resultado prático dessa idéia idiota é que qualquer pessoa que vá entregar o notebook para manutenção precisa compartilhar com o técnico a sua senha de email (ooops!) que possivelmente está ligada a outros serviços “sensíveis” como Office 365, Onedrive, Skype e XBOX Live. Eu mesmo não quero que ninguém compartilhe essas senhas comigo.

Mas ficou pior: descobriram que uma “funcionalidade” do Windows que existe há vinte anos e que embora fizesse especialistas em segurança arquearem as sobrancelhas nunca foi um grande problema (não havia como explorar de fora da sua rede local) se aproveita disso para que qualquer pessoa possa descobrir as credencias da conta de email de outra pessoa no outro lado do planeta simplesmente conseguindo convencê-la a clicar em um link!

Você pode testar aqui o funcionamento. Só funciona se você estiver navegando com IE ou Edge, mas existem meios de contornar isso.

Isso é o paraíso não apenas para “bandidos”, mas esposos, esposas, namorados, namoradas, desafetos, script kiddies… a lista de pessoas que podem se aproveitar disso é simplesmente imensa!

Como resolver? Você já deveria ter deixado de usar uma conta Microsoft para fazer login no seu computador com Windows 8 há muito tempo.

 

20 comentários
  • Jefferson - 6.631 Comentários

    Mesmo que você não esteja usando uma conta Microsoft, esse exploit é preocupante. Ao clicar no link o site me disse em segundos qual era a minha senha de login no meu computador (é uma senha simples, mas que eu não quero que ninguém conheça). Mesmo que você não use IE nem EDGE nem Outlook isso ainda pode ser explorado porque uma pessoa que consiga estar por alguns segundos na frente do seu computador desbloqueado pode usá-los para obter suas credenciais de login na máquina e a partir desse ponto ser capaz de usar sua máquina sem seu conhecimento. E se a senha que você usa para login for “sensível” de alguma forma, você tem um problema ainda maior.

    O que fazer se você usa Windows 8? No mínimo usar uma senha que você não usa em nenhum outro lugar. Se alguém eventualmente pode usar sua máquina que você não queira que use sem sua permissão, apague o internet explorer e o edge. Isso dificulta mas não impede o exploit porque é possível explorar a simples presença das DLLs do IE. Vamos esperar que a MS lance um patch para isso.

    • Jefferson - 6.631 Comentários

      Acabo de verificar que o site também obtém minhas credenciais do Windows 7. Só não sei do XP porque aparentemente o site bloqueia o acesso do IE no XP.

  • Jefferson - 6.631 Comentários

    Isso me deixou matutando aqui e pensei em outro modo disso ser um problema, não importa qual versão do Windows você está usando. Sabe aquelas situações onde por alguma razão você tem acesso a uma rede de terceiros com sua máquina? Isso geralmente acontece quando você está com seu notebook visitando alguma rede wireless ou mesmo na sua casa quando usando provedores sem fio mal configurados. Você de repente encontra aquela máquina “estranha” na rede e por pura curiosidade clica nos compartilhamentos. Suas credenciais são enviadas para esse compartilhamento e se for um “honeypot”, seu criador agora teria com acessar os seus compartilhamentos protegidos sem nem precisar decriptografar a senha, simplesmente replicando as credenciais que seu computador enviou automaticamente para ele?

    Tenho que ler mais sobre o assunto.

    • Jefferson - 6.631 Comentários

      Sim, é possível. O método se chama “pass the hash” e é explorado há muito tempo. Este documento explica como é feito. Clicar em um compartilhamento “hostil” efetivamente dá ao atacante a possibilidade de acessar todos os seus compartilhamentos automaticamente, sem precisar descobrir sua senha.

      • Jefferson - 6.631 Comentários

        Me ocorreu agora: o que acontece se eu usar para os meus compartilhamentos credenciais diferentes das que uso para fazer login no computador? Sabe, aquela situação onde ao tentar acessar o compartilhamento pela primeira vez você tem que dizer que quer fazer login como outro usuário e depois manda salvar? Se *essas* credenciais não forem passadas automaticamente para outros compartilhamentos pode ser um jeito de se proteger.

      • Jefferson - 6.631 Comentários

        Será que uma das coisas que o Windows desde a versão 7 faz quando você diz que a rede em que você está se conectando é “pública” é justamente bloquear o envio dessas credenciais? Espero que sim, mas desconfio que não, senão os especialistas que divulgaram o problema teriam feito essa observação. Mais tarde eu testarei isso.

  • Wagner Matuto - 129 Comentários

    Ótimo post! Desde que a Microsoft inventou isso no Windows 8, eu informo aos clientes que “pode” ser perigoso, principalmente se levar numa assistência técnica desconhecida. Cerca de 50% deles mudaram para uma conta local com senha diferente da utilizada no e-mail.

    Fora que a maioria dos clientes comuns, costumam clicar em e-mail, links suspeitos de sites pornográficos e até porcarias do Facebook. E são muito poucos os que seguem minhas recomendações de fazer escaneamento do antivírus e do antispyware frequentemente.

  • Bruno - 10 Comentários

    Eu recebi a seguinte mensagem:

    “Not vulnerable
    No login credentials found. It seems you are not vulnerable to this attack. This could be because your firewall settings prevent the connections. Please refer to our blog post for more information.”

    Porém uso uma conta microsoft e uso somente o firewall do windows.

    • Jefferson - 6.631 Comentários

      Provavelmente é o firewall no seu modem que está filtrando as portas necessárias para estabelecer um compartilhamento Windows via WAN.

      O meu é um relativamente moderno Sagemcom F@ST 1704. Eu fui agora em
      Advanced Setup -> Security -> IP Filtering -> Outgoing e adicionei regras (não havia nenhuma) para bloquear mensagens TCP/UDP nas portas 139 e 445 e agora eu também recebo a mensagem “not vulnerable”.

      Mas é melhor filtrar as portas de 135 a 139 e 445.

      É importante fazer isso, mas não acho suficiente. Preferia algo que eu também pudesse fazer na máquina.

  • VR5 - 397 Comentários

    Lembrando que desde ontem já está disponível a “Atualização de Aniversário do Windows 10”. Estou fazendo elas nos computadores da empresa e até agora sem problemas. Em tempo: na empresa usamos somente contas “locais” (do Domínio). Já em casa e no meu smartphone Microsoft uso minha Conta Microsoft (a mesma nos dois). E se precisar de algum reparo eu mesmo faço, ou faço em conjunto com um parceiro amigo que me assessora na empresa. Amigo de muitos anos que tomamos café juntos. Já é mais que uma parceria… :)

  • João Batista - 30 Comentários

    ainda bem que eu uso Linux eu uso também um antigo servidor da Dell PowerEdge 850 com esta distribuição http://www.ipfire.org/ para firewall , filtro de propagandas ( que e muto melhor do que o Adblock ) , antivírus em tempo real
    link do meu Profile
    http://fireinfo.ipfire.org/profile/7416ea58d3fce75c49ca6a84ae4bfc0937efe302

    • Ygor Almeida - 136 Comentários

      No trabalho utilizo o pfSense https://www.pfsense.org/ – também com muita facilidade, maquina antiga também mas manda muito bem neste trabalho.

      Em casa O OpenWRT com um script personalizado de AdBlock e Block Hosts – mais algumas medidas no Chrome fazem o resto do trabalho. :)

  • Intruder_A6 - 194 Comentários

    Testei em casa no Windows 7 e Windows 8.1 (ambos 64 bits) e em nenhum estava vulnerável “Not vulnerable” usando o IE.

    Desta eu escapei, mas realmente não sei como.

  • Wagner Matuto - 129 Comentários

    Eu já tive problemas com o dual boot do Windows 8 e o Ubuntu (não lembro a versão). Depois dessa, uso um HD pra cada sistema operacional E desligo um HD quando vou usar o outro.

    É trabalhoso, mas é mais seguro, tendo em conta que uso o Ubuntu pra acessar minhas contas de banco.

    • Jefferson - 6.631 Comentários

      É uma boa precaução. Usar o Windows em dual boot com qualquer coisa que não seja Windows é arriscado. Mas se não acontecer nada logo no primeiro boot e você desligar as atualizações do Windows fica relativamente seguro. O Windows, até onde sei, não fica mexendo nas outras partições aleatoriamente.

      Mas eu já tive a partição de um HDD de um NAS Linux que eu ia examinar seriamente danificada por ter dado boot por engano usando o Windows 7. No XP isso não teria acontecido.

Clique para comentar
(Prefira clicar em "Responder" se estiver comentando um comentário)

Deixe um comentário

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »

Ruminações diversas, 03/08/2016

Depois de um ano sendo oferecido de graça e de uma forma tão agressiva que é altamente suspeita, estima-se que o Windows 10 só tenha alcançado 21% dos desktops. Em números absolutos ainda é um feito que impressiona: 350 milhões de máquinas. Mas se você pensar que é apenas o dobro que o Windows XP e metade que o Windows 7…

Nem dá para dizer que tenha alguma coisa a ver com pirataria, porque o Windows 10 não fazia qualquer objeção quanto a fazer o upgrade do Windows 7 Ultimate Jack Sparrow Edition.

Não, obrigado. Telemetria, updates obrigatórios, sistema operacional em constante mutação… Prefiro ficar alternando entre o Windows 8.1 ou o Windows XP. HA! Eu tenho um notebook aqui que roda Windows 98 para uso exclusivo com o meu programador de EEPROM.


A propósito, o amigo José Carneiro me apontou ontem que tem várias pessoas vendendo licenças do Windows 8.1 Professional no Mercado Livre  por entre R$10 e R$15. Este valor é com nota fiscal. E com garantia de ativação. Parece que alguém descobriu como criar um key generator. Eu não ficaria muito surpreso já que foi um brasileiro que descobriu como clonar PS4 usando um Raspberry Pi.


Também sobre o mesmo assunto, descobri ontem que ainda existe uma versão do Windows XP que recebe atualizações de segurança: O Windows Embedded POSReady 2009. Ainda por cima não exige ativação online e o instalador foi renovado, permitindo adicionar drivers de controladora com mais facilidade que o original que exige um drive de disquete.

Eu não testei, mas parece que os mais curiosos devem procurar pelo sha1 0e9e37f9268bbb7181e0a1ae561c178382cc3014


A mais recente versão do Avast nunca foi tão grande, com 219MB, mas acho que nunca instalou tão rápido. Agora existe uma opção de instalação mínima que termina em segundos.

A propósito, logo depois que a Avast comprou a AVG descobri que o link para download do instalador offline não funcionava mais. Achei que a Avast não ia permitir mais baixar o instalador completo, até achar um novo link.

 

2 comentários
Clique para comentar
(Prefira clicar em "Responder" se estiver comentando um comentário)

Deixe um comentário

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »

Por dentro do modem roteador WiFi Technicolor TD5136V2

Mais fotos e informações virão mais tarde. Estou agilizando a publicação de material acumulado.

Note que essa placa parece idêntica à do TD5130v2. Tão parecidas que eu achei que tinha colocado a mesma foto nos dois posts. Mas localizei duas diferenças: na outra existe um conector para antena WiFi externa (canto inferior esquerdo da placa) e está ausente o conector da porta serial. São detalhes tão discretos que parece o jogo dos sete erros.

Technicolor_TD5136V2_board_DSC02104_700_ryan.com.br

Clique para comentar
(Prefira clicar em "Responder" se estiver comentando um comentário)

Deixe um comentário

Você pode usar estas tags HTML

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

  

  

  

:) :( ;) O_o B) :lol: :huh: :S :D :-P 8-O :yahoo: :rtfm: :dashhead1: :clapping: more »