Arquivo

Archive for the ‘computacao forense’ Category

Como saber se alguém leu o e-mail que você enviou?

29 de setembro de 2011 3 comentários

Uma das dúvidas mais simples para quem envia um e-mail, é saber se o destinatário recebeu a mensagem, e se recebeu, se ele leu a mensagem.

– se a mensagem foi enviada, e foi devolvida, com erros (failed delivery – falha na entrega, unknow user – usuário desconhecido, timeout – tempo de espera esgotado para a entrega, etc), podemos identificar que provavelmente o usuário não leu a mensagem.

– se a mensagem foi enviada, e usando recursos disponíveis no cliente de e-mail como ‘confirmação de leitura’ e ‘prioridade alta’, o destinatário receberá a mensagem com estes avisos, mas se o seu e-mail estiver configurado com certa privacidade, o envio da confirmação pode não acontecer, portanto, não há como confirmarmos se ele realmente leu a mensagem.

– se a mensagem foi enviada, a pessoa leu a mensagem, e depois marcou como não-lida, pode argumentar dizendo que ainda não leu a mensagem (e até se prontifica a mostrar a mensagem unread na Caixa de Entrada).

Entretanto, sabemos que existem os spammers, que enviam as famigeradas mensagens que caem no Lixo Eletrônico, mas vez ou outra aparece uma em nossa Caixa de Entrada. Eles usam algumas técnicas de verificação da leitura de suas propagandas. É uma estatística que pode ser construída a partir de códigos ASP, PHP, AJAX, etc.

Há algum tempo, o Luiz Felipe publicou em http://www.thenets.org/blog/2010/07/spypig-envie-um-email-para-uma-pessoa-e-saiba-se-ela-ja-leu/ comentários sobre o SpyPIG. Neste post você já encontra algumas informações básicas sobre o serviço, que é gratuito e muito intuitivo. A seguir, um procedimento passo-a-passo, em português, para usar o SpyPIG a partir do seu webmail da Hotmail, GMail, Yahoo Mail, etc. No site existem observações específicas para usar via Outlook.

  • digite a sua mensagem no seu Hotmail normalmente.
  • em uma nova janela do seu navegador, acessar http://www.spypig.com/
  • informe o seu endereço de e-mail (que será usado para notificação) – passo 1
  • informe um título para seu e-mail, como ‘monitorando mensagem para o chefe’ – passo 2
  • escolha uma imagem. Para passar despercebido, escolha a primeira imagem, em branco – passo 3
  • clique no botão – passo 4
  • aparecerá a imagem na área abaixo, clique sobre ela com o botão direito, copie
  • volte ao seu e-mail, clique no ‘final’ da mensagem com o botão direito, e cole. Faça isto antes que o tempo acabe.
  • Envie a mensagem de e-mail.

Quando a mensagem for aberta, você receberá um e-mail avisando (no endereço que informou) que ela foi aberta. E informará também qual é o endereço IP que acessou, data e hora, navegador (se usou um computador ou um celular), etc.

Escondendo arquivos dentro de fotos (JPG)

2 de agosto de 2011 Deixe um comentário

Assistindo aos documentários da National Geographics sobre a 2ª Guerra Mundial, é possível perceber a importância da espionagem e principalmente da contra-espionagem.

Aqui está uma dica para proteção de arquivos importantes:

  • compacte os arquivos que deseja proteger usando o WinRAR, e na guia Advanced defina uma senha (Set password).
  • será criado um arquivo, por exemplo, TESTE.RAR com senha. Existe um nível de proteção aqui, mas em buscas no Google rapidamente encontramos ferramentas para quebrar esta senha…
  • coloque o arquivo TESTE.RAR em uma pasta, junto com o arquivo com a foto, neste exemplo, a DSCF0011.JPG
  • execute o Prompt de Comandos (CMD) via Iniciar/Executar [Win+R]
  • entre na pasta que está com o TESTE.RAR e também o DSCF0011.JPG
  • execute o comando COPY /B DSCF0011.JPG + TESTE.RAR + ARQUIVO_FINAL.JPG
  • será criado o ARQUIVO_FINAL.JPG contendo os dois arquivos embutidos. Se alguém tentar abrir o arquivo, será mostrada a foto normalmente, como se DSCF0011.JPG estivesse original, ali, sem qualquer modificação.
  • apenas quem criou sabe que ali existe o arquivo TESTE.RAR escondido.
  • para visualizar o arquivo TESTE.RAR, clique com o botão direito sobre o ARQUIVO_FINAL.JPG e peça Abrir com… escolhendo o WinRAR como software.
  • o WinRAR é executado e mostrará o conteúdo oculto, que foi embutido dentro do ARQUIVO_FINAL.JPG

Pensando na espionagem e contra-espionagem, quem enviou o arquivo ARQUIVO_FINAL.JPG para outra pessoa por e-mail, pode ficar um pouco tranquila. Se alguém pegar este arquivo, e tentar abrir ele, encontrará apenas a DSCF0011.JPG sendo mostrada. Se for uma foto bobinha, quem pegou vai apagar a foto (com raiva, achando que não pegou nada). Somente quem souber deste truque é que poderá abrir o ARQUIVO_FINAL.JPG pelo WinRAR. E quem abrir, ainda encontrará a proteção com senhas (arquivos compactados listados com o sinal de asterisco na frente). Aqui está o ‘pulo-do-gato’: os software que quebram senhas de arquivos RAR não reconhecem o arquivo JPG como sendo um arquivo do WinRAR, logo, não conseguirá acessar e quebrar a senha atribuída.

Descobrir informações sobre um domínio

5 de maio de 2011 Deixe um comentário

Hoje recebi uma mensagem solicitando informações sobre como descobrir informações sobre um determinado domínio. O caso é simples. Uma empresa idônea tem o domínio http://www.empresa.com.br e algum engraçadinho foi lá e registrou o http://www.empresa.com e indiretamente está se aproveitando do marketing que o http://www.empresa.com.br já faz, porque se o usuário digita http://www.empresa.com apenas, é direcionado para o site ‘clone’.
* Para descobrir informações sobre http://www.empresa.com.br acesse http://registro.br e informe o endereço do site sem o www. Já existe, claro. Clique em WHOIS e informe os caracteres solicitados. Pronto.
* Para descobrir informações sobre http://www.empresa.com acesse http://www.internic.net e informe o endereço do site no campo WHOIS sem o www Aparecerão as informações de registro do domínio. Observe o campo Referral URL, e acesse-o. Normalmente é uma empresa de registro de domínios.
* Informe novamente o endereço do site sem o www. Clique em Get Info (ou Whois), e informe os caracteres.
Pronto.
Encontramos quem registrou, quando registrou, nome, endereço, telefone, etc.
As informações WHOIS são públicas e não há qualquer impedimento legal em apenas consultar tais dados.

Como fazer o teste de invasão? Dicas passo a passo

3 de janeiro de 2011 1 comentário

É claro que isto aqui não é uma palavra final sobre como verificar se o sistema da empresa é vulnerável ou seguro, mas é um passo-a-passo baseado em algumas experiências (e leituras, especialmente dos casos do famoso Mitnick). Vamos considerar que seja uma empresa comum na Internet atualmente, com servidor de Internet, SQL Server, FileServer, etc.

Obtendo informação

Podemos obter informação de duas formas: furtivamente ou ofensivamente. Veja alguns casos:

  • No caso da obtenção furtiva, podemos acessar o site http://www.registro.br e verificar através da consulta do nome de domínio vários dados, especialmente sobre o responsável pelo ID. A partir desta identificação podemos partir para a obtenção ofensiva ou continuar aqui, em off.
  • Pesquisando na Internet, especialmente com o Google (recomendo ler o livro Google Hacking), conseguimos outras informações, muito além do número de IP (que poderá ser futuramente usado no teste de negação de serviço).
  • Pesquisando na Internet, em blogs e fóruns. É interessante como um cliente insatisfeito se mostra disposto a ferrar com uma empresa. Se achar uma reclamação publicada na Internet contra a empresa, aquelas onde ele falou 10 mil vezes com o atendimento ao cliente, e não teve o problema resolvido, encontramos uma mina de informações de ouro sobre a empresa. Podemos tentar entrar em contato com a pessoa, solidarizando-se com o problema, e obter dados como o tempo de resposta do atendimento, nomes e telefones de pessoas importantes na empresa (que poderão ser pesquisados a seguir para obtenção de senhas). Entra em ação uma série de procedimentos de Engenharia Social (no livro Universidade Hacker tem os detalhes).
  • Outra forma de obter dados, é simplesmente perguntando. Pois é. Apesar de muitas empresas serem claras quanto a política de divulgação de informação à imprensa (através de sua Assessoria de Imprensa somente), telefonar para a empresa pode ser muito proveitoso. Você liga em um ramal qualquer, e diz que quer falar com o TI, como o José (toda empresa tem um José trabalhando nela, nem sempre no TI, mas tem). Certamente dirão que não é aquele ramal, ou que não conhecem a pessoa. Sem problemas. Peça o ramal do TI e o nome do responsável. Porque é bom saber quem é o responsável? Vamos sequestrá-lo, hehe (brincadeira). Normalmente este pessoal de TI tem uma vida ativa na Internet. Cadastro em muitos sites, perfil em muitas redes sociais, etc. E se usarmos alguns truques, podemos descobrir a senha da pessoa. E como são muitos serviços, o cara usa a mesma senha no seu Terminal Server, por exemplo.
  • Podemos dizer que somos de uma empresa fornecedora de computadores e perguntar sobre a configuração atual. Muitos administradores de rede usam como senha a marca do teclado (sim, é verdade) ou da CPU que está na sua frente.
  • E se temos acesso físico ao local, podemos instalar um key-capture na porta do teclado, ou um keylogger (como o KeySwitch) no micro, programando para o envio para nosso e-mail.
  • Se houver tempo, além de instalar um keylogger, podemos programar um ‘defeito’ no Agendador de Tarefas, para apagar alguns arquivos do Windows, e então o suporte precisará ir ao computador, acessar com a senha de adminsitrador, etc. Mais informação para nossa etapa de obtenção de dados.
  • Se houver acesso ao lixo da empresa, alguns documentos e mídias podem ser muito úteis. Poucas empresas possuem fragmentadoras de papel e CDs, e as que tem, poucas usam.
  • Ultimamente, pesquisar em redes sociais está sendo muito mais proveitoso do que em blogs e outros sites. É que nas redes sociais, os funcionários não se sentem sujeitos às regras das empresas, e falam à vontade (até mais do que devem). Não conheço ninguém que esteja em uma rede social que separe o que é pessoal do que é profissional, especialmente após alguns elogios ‘despretenciosos’.

Mapeamento de vulnerabilidades

A partir de alguns dados, podemos iniciar um mapeamento do alvo, especialmente a partir de portas. Um servidor Internet permite acesso a serviços específicos através da inclusão do número da porta no endereço IP. Por exemplo, para configuração do PLesk, usamos a 8443. Incluímos assim: http://www.alvo.com.br:8443

Como nós já temos alguns dados, podemos testar eles ao acessar o PLesk do webiste. Número de telefone do administrador de redes, sua data de nascimento, a placa de seu carro, etc.

Outra forma, um pouco mais demorada, é garimpar portas. Acrescentando o número à frente do endereço, se o serviço estiver ativo, será permitido acesso, às vezes mediante identificação, outras vezes com senha em branco (pois é, às vezes o servidor é instalado, o serviço é instalado, mas não é configurado e esquecido). Esta é uma brecha (para os adminsitradores de redes, verifiquem os serviços instalados em seu servidor. Não precisa dele, remova)

A identificação do sistema operacional é interessante para identificar vulnerabilidades. Por exemplo, se usam Windows 7, acesse o site Windows Update da Microsoft, entre nas opções avançadas de administrador e descubra quais foram as últimas correções publicadas. Explore estas vulnerabilidades primeiro. Porque? Se o servidor da empresa não tem WSUS (Windows Server Update Service) ou as atualizações são manuais (muitos administradores de rede suspendem a instalação das atualizações imediatamente a pedido dos usuários. Quando alguma atualização crítica é instalada, o Windows deve ser reiniciado. Só que o usuário reclama que o Windows fica enviando mensagem para ele reiniciar o computador, e bla bla bla. O usuário está ocupadíssimo conferindo as últimas fotos da Cleo Pires, logo não quer ter o seu computador reiniciado naquele momento. E assim o administrador cria uma brecha temporal na sua rede, que pode ser de algumas horas até dias seguindos à publicação da correção no site Windows Update).

Identificando as rotas (com comandos como o router), podemos verificar quem é o calcanhar-de-aquiles da rede. Pode ser um roteador que pode ser acessado remotamente com o uso da senha padrão do fabricante (poucos administradores trocam a senha dos seus roteadores, deixando o 1111 padrão-fabricante lá, afinal, ninguém vai acessar a sala Shaft, trancada 24 horas por dia, né). Alguns switchs permitem a configuração porta-a-porta para amarrar o IP com o endereço MAC, evitando que algum engraçadinho leve um notebook, retire o seu micro da rede e navegue à vontade. Ou instale um roteador wireless embaixo da mesa, permitindo acesso pelo seu desktop e seu smartphones (ver TV digital no horário de serviço, por exemplo).

Acesso remoto

Quando o servidor oferece acesso remoto, podemos tentar via console TS, ou Telnet, ou FTP, ou até pelo ingênuo compartilhamento padrão. A ideia inicial de um servidor é ser acessível aos usuários. Então, existem 1000 (ou melhor, 65536) formas diferentes de acesso, e muitas vezes o administrador da rede esquece de bloquear, suspender ou excluir alguns deles.

Conta convidado, permissões de acesso remoto, quantidade de acessos simultâneos, arquivos de registro, configurações do Windows (e outros) públicos, além dos usuários que insistem em criar vulnerabilidades na rede (obrigado ‘especial’ a todos que usam o MSN escondido, acessam o Orkut no horário de serviço, usam proxys, etc).

A partir destes ‘espertinhos’, dados internos são publicados na Internet (eles acham que estão navegando anonimamente na rede, haha). As conexões P2P como o MSN criam um ‘túnel’ dentro da rede, onde podemos explorar através de software de captura de tráfego. Nesta captura encontramos reclamações sobre o chefe, um serviço do CPD que não funciona, uma senha que não entra (ops), além de fotos pessoais e todo tipo de assunto.

Buffer overflow

A partir da mudança de dados nos pacotes (aqueles capturados pela análise de tráfego dos espertinhos que usam o MSN via web), podemos causar um estado de buffer overflow (entre outros), sobrecarregando o servidor com instruções impossíveis (como por exemplo, loop eterno). Em http://mixter.void.ru/exploit.html existem algumas informações sobre como produzir o problema. Se não sabe inglês, a dica é: não use Windows ou Mac para tentar. O feitiço pode virar contra o feiticeiro.

Descoberta de senhas

Conforme comentei anteriormente, algumas pessoas usam a marca do computador como senha de acesso. E ainda fazem com requintes de dificuldade, como a primeira letra em maiúscula, por exemplo (sic). Outras formas são através de análise do perfil de redes sociais dos alvos, através da leitura de números como o telefone, CEP, data de nascimento (dos filhos, especialmente), nome de animal de estimação, marca de algum produto idolatrado pelo alvo, etc.

E quando a senha é limitada? Se o serviço pede uma senha de 6 dígitos, 99% das pessoas colocam uma senha de 6 dígitos. Devia ser o contrário. Se o limite são 256 caracteres, aproveite-os. Uma senha de 7 a 12 caracteres é relativamente fácil de ser quebrada através de softwares de quebra de senha pela força bruta.

E quem quiser aproveitar as vulnerabilidades que os novos mouses e teclados wireless criaram, podemos usar as dicas (claro que não aparecem as dicas no vídeo, mas se pensar um pouquinho…) exemplificadas em http://idgnow.uol.com.br/seguranca/2008/10/21/teclados-sao-vulneraveis-a-ataque-que-usa-antena-para-roubar-dados/

Negação de serviço

Basicamente existem duas formas de efetuar um ataque de negação de serviço (existem outras, mas é segredo, hehe). Baseado no número de IP do servidor (que é fixo), efetuamos o lançamento de pacotes (pode ser pelo PING, mas se o servidor estiver configurado para não responder aos PINGs, ponto para o administrador da rede). É conhecido como ‘esgotamento de serviços’.  Aqui eu citei o PING, mas ele é apenas um exemplo didático.

  • ataque direto – envio de pacotes diretamente para o endereço IP do servidor, sobrecarregando-o para atender aos pedidos. Um único computador enviando, não deve fazer estrago, mas se configurar vários micros zumbis para efetuarem a tarefa em determinada data/hora, podemos comprometer o servidor remoto.
  • ataque indireto – através de comandos como o ROUTER, descobrimos quem são os equipamentos que apóiam a operação do servidor (hubs, switchs, roteadores, outros servidores), e efetuamos um ataque coordenado a todos eles simultaneamente (sem atacar o servidor alvo). O administrador da rede deve ficar doidinho (como já fiquei), ao ver que o seu servidor está OK, não tem nada de errado no Event View, etc.

Injeção de código

Se existem serviços SQL em execução, a inserção de códigos pode ser uma chance de obter dados das bases de dados da empresa em questão. Muitos programadores não costumam mudar a terminologia padrão do banco de dados, usam campos em inglês como referência. Nome aparece como name, endereço aparece como address, e assim por diante. O uso de palavras em inglês no cabeçalho dos banco de dados é para evitar inconsistências devido à acentuação latina, por exemplo, além das traduções automáticas entre as páginas de caracteres que o Windows (e até o Adobe Acrobat Reader) fazem para nós.

Inclusão de código poderá ser por URL, cookies (aqueles que foram capturados na navegação), formulários, parâmetros JSP ou ASP ou PHP, etc. Quer saber mais? Veja http://www.macoratti.net/sql_inj.htm

Cross-site Script (XSS)

Antigamente, a página HTML que acessávamos era uma só, e pronto. Se o webmaster/digitador não mudasse, a página ficava lá, estática, original, etc. Hoje em dia é difícil encontrar uma página onde os dados não tenham sido construídos a partir de um programa. Este post aqui na WordPress é um exemplo. Esta página não existe, mas o que existe é um banco de dados com todas as minhas postagens. Na hora em que solicitou esta página, uma pesquisa foi realizada no banco de dados da WordPress e o resultado está aqui, na sua tela.

Esta técnica é amplamente utilizada hoje em dia, porque podemos ter conteúdo separado do formato. Se eu mudar a aparência de meu blog, nada acontece com as postagens. Ninguém precisará reconstruir o blog, e ele será adaptado. A página de extrato de seu banco também é assim. Como ela é construída (a página do extrato bancário)? Como este blog é montado? É passado para a página de construção uma série de parâmetros, como o login, data inicial, data final, etc.

Por exemplo, em uma página verPerfil.php se informarmos à sua frente ?teste estamos esperando como resultado o perfil do usuário teste, certo? Sim, certo. E se colocarmos apenas o ? sem nenhum login na frente? Muitos administradores esquecem das páginas de erro (afinal, ele não erra, não é), e neste caso, uma página de erro inexistente ou configurada incorretamente pode entregar o banco de dados. Uma forma de evitar, é criar um usuário ‘sem nome’, ou incluir páginas de redirecionamento para a página principal.

Amanhã tem mais.

Sistema operacional para testes

23 de dezembro de 2010 4 comentários

O Windows sem dúvida é um dos mais vulneráveis. Mas ele é o melhor para testar invasões. Tem gente que até tenta.

Outros procuram usar Linux.
Uma boa opção é o BackTrack, distribuição Linux específica para testes de invasão.
Ou seja, o controle é maior, e a quantidade de ferramentas é de atordoar.
Vale a visita.
http://www.backtrack-linux.org/
http://www.backtrack.com.br/

Outra opção é o CAINE
Baseado no Ubuntu, este sistema enfatiza a investigação forense, com ferramentas interessantes para análise de computadores afetados.
http://www.caine-live.net/
As ferramentas adicionais são open-source, e podemos criar um HD externo(ou Live CD) de boot com o caine e levar para qualquer lugar, fazendo o trabalho (altamente remunerado e especializado) em pouco tempo.