Perícia forense computacional: passos para a montagem de uma isca virtual: mudanças entre as edições

De Eriberto Wiki
Ir para navegação Ir para pesquisar
 
(6 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 30: Linha 30:
Inicialmente, monte uma máquina real usando o [http://www.debian.org Debian] Squeeze NetInst. Isso fará com que o sistema seja bem enxuto. Observe os seguintes quesitos:
Inicialmente, monte uma máquina real usando o [http://www.debian.org Debian] Squeeze NetInst. Isso fará com que o sistema seja bem enxuto. Observe os seguintes quesitos:


* No momento do particionamento, crie duas partições: uma para a máquina real e outra para a máquina virtual. A máquina real permanecerá todo o tempo em segurança. A máquina virtual será a atacada.
* Configure os dados de rede, caso não haja DHCP, de acordo com o seu caso.
* No momento do particionamento, crie duas partições: uma para a máquina real e outra para a máquina virtual. A máquina real permanecerá todo o tempo em segurança. A máquina virtual será a atacada. Não crie uma partição de swap. Criaremos um swap em arquivo no momento certo.
* A partição criada para a máquina real deverá ser a maior possível. Nessa partição serão gravados, dentre outras coisas, logs tcpdump contendo todo o tráfego. Essa será a partição raiz.
* A partição criada para a máquina real deverá ser a maior possível. Nessa partição serão gravados, dentre outras coisas, logs tcpdump contendo todo o tráfego. Essa será a partição raiz.
* A partição criada para a máquina virtual, em princípio, deverá ser a menor possível (podendo chegar a menos de 1 GB). Isso permitirá a você ter um caso de ataque pequeno e "portátil", que poderá ser disponibilizado, se for o caso. Mas é lógico que essa exigência cairá por terra se você decidir por algo maior, como a disponibilização de um banco de dados vulnerável, e não estiver preocupado com a disponibilização na Internet da mídia atacada. Essa partição poderá chamar-se ''/vm'' ou outro nome qualquer.
* A partição criada para a máquina virtual, em princípio, deverá ser a menor possível (podendo chegar a menos de 1 GB). Isso permitirá a você ter um caso de ataque pequeno e "portátil", que poderá ser disponibilizado, se for o caso. Mas é lógico que essa exigência cairá por terra se você decidir por algo maior, como a disponibilização de um banco de dados vulnerável, e não estiver preocupado com a disponibilização na Internet da mídia atacada. Essa partição poderá chamar-se ''/vm'' ou outro nome qualquer.
Linha 78: Linha 79:


  # netstat -tunlp
  # netstat -tunlp
* Crie um [[swap em arquivo]] (siga as instruções do artigo correspondente). Sugiro utilizar algo em torno de 500 MB (ou menos!).


==== A máquina virtual ====
==== A máquina virtual ====
Linha 88: Linha 91:


  # dcfldd if=/dev/zero of=/dev/sda2
  # dcfldd if=/dev/zero of=/dev/sda2
* Crie uma máquina virtual, a ser colocada em /dev/sda2, seguindo as instruções do artigo [[Xen 4.0 no Debian Squeeze]], tomando o cuidado de utilizar apenas 100 MB como tamanho para o swap em arquivo. Se não pretender colocar serviços pesados dentro da máquina, utilize uma quantidade de memória pequena, como 64 MB. Isso facilitará a compressão do arquivo para disponibilização na Internet.
* Depois de criar a máquina virtual, logue na mesma e instale os seguintes pacotes (neste momento, a senha de root não deverá ser vulnerável):
# apt-get install netcat ntpdate php5 samhain sendmail ssh
{{exclamação1|O pacote ''php5'' forçará a instalação do servidor web Apache e é um simples atrativo para os atacantes. Se você desejar, poderá até mesmo configurar um site para o Apache servir. Se não desejar, deixe com o site default mesmo.}}
* O ''samhain'', instalado no passo anterior, será um dos seus grandes aliados, dando o alerta de que algo ocorreu. Assim, edite o arquivo /etc/aliases e, no fim, insira a linha:
root: email_falso_criado_anteriormente
* Para validar a configuração anterior, execute o comando:
# newaliases
* É quase fato que o atacante irá trocar a senha de root da máquina virtual depois que entrar. Muitos fazem isso. Com isso, você não terá mais acesso por ssh ou por login no console. Então, um aperfeiçoamento seria criar um par de chaves ssh assimétricas falsas (de um usuário fantasma, como sysadm), usando o comando ''ssh-keygen'', para que você possa entrar no sistema como root se precisar.
* Remova o log ''/var/log/auth.log'' para não deixar seus rastros (o log será recriado na primeira conexão ssh).
# rm /var/log/auth.log
* Adicione um usuário ''test'' com senha ''test''. (seja rápido a partir de agora)
# adduser test
* Troque a senha de root para 123456.
# passwd root
* Limpe o histórico de comandos.
# history -c
* Reinicie a máquina para limpar totalmente a memória.
# reboot
* A partir de agora, evite realizar logins desnecessários na máquina virtual. Veja no item a seguir como monitorar a máquina virtual. Ainda, na máquina real, inicie uma sessão tcpdump para registrar todo o tráfego de rede direcionado à máquina.
# tcpdump -n -host <ip_da_máquina_virtual> -w trafego.dump
<br><br>
== Monitorando a máquina atacada ==


==== O roteador ADSL ====
==== O roteador ADSL ====

Edição atual tal como às 14h47min de 3 de agosto de 2010

<absHTML>

<tbody> </tbody>
Esta página está em construção e deverá estar pronta em poucos dias. Por favor, volte depois ou consulte-a agora com cautela e paciência.

</absHTML>



A criação da isca...



by (C) João Eriberto Mota Filho <eriberto (a) eriberto pro br>

Artigo criado em: 03 de agosto de 2010.

Última atualização: veja o rodapé desta página.

Tiny URL ou bit.ly: http://bit.ly/iscaforense

Esta página é filha do artigo principal Perícia forense computacional.




O objetivo

O objetivo deste artigo é mostrar como montar um ambiente virtual para atrair atacantes e colher dumps de memória e disco para criar casos de perícia forense computacional. Este não é um artigo está baseado no Debian Squeeze e não é próprio para iniciantes.

ATENÇÃO: expôr máquinas vulneráveis à Internet é extremamente perigoso! Nunca realize os procedimentos contidos neste artigo se não tiver experiência em redes e segurança, além do completo conhecimento sobre tudo o que poderá acontecer. Você poderá, por exemplo, transformar-se em base de ataque para outras redes e responder judicialmente por isso.

A máquina criada poderá ser utilizada para o mesmo fim do experimento narrado neste post: http://www.eriberto.pro.br/blog/?p=376. Para tanto, alguns cuidados e preocupações deverão ser adotados. Dentre eles:

  • A isca deverá ser um ambiente restrito e controlado. Obteremos isso com uma máquina virtual.
  • A isca não deverá estar no mesmo ambiente físico de uma rede real em produção, para não comprometer outros servidores.
  • As evidências de ataques deverão ser preservadas ao máximo, para que se tenha um caso real de ataque.
  • O operador da isca deverá permanecer deslogado da mesma o maior tempo possível.
  • O operador da isca deverá acompanhar, de fora da mesma, as atividades de rede que estiverem sendo executadas. Isso envolve todas as conexões realizadas por atacantes.

Cabe resaltar que o fruto deste trabalho não será um honeypot. Honeypots são "artefatos" baseados em um conceito que não envolve a "facilitação da penetração".

A montagem da isca

Você precisará de um PC, com um disco totalmente disponível para o sistema. Não utilize uma máquina com um sistema operacional pré-instalado ou contendo dados de usuários. Discos e partições extras, por acaso existentes, poderão ser acessados por atacantes. Depois disso, siga os passos que serão mostrados a seguir.

A máquina real

Inicialmente, monte uma máquina real usando o Debian Squeeze NetInst. Isso fará com que o sistema seja bem enxuto. Observe os seguintes quesitos:

  • Configure os dados de rede, caso não haja DHCP, de acordo com o seu caso.
  • No momento do particionamento, crie duas partições: uma para a máquina real e outra para a máquina virtual. A máquina real permanecerá todo o tempo em segurança. A máquina virtual será a atacada. Não crie uma partição de swap. Criaremos um swap em arquivo no momento certo.
  • A partição criada para a máquina real deverá ser a maior possível. Nessa partição serão gravados, dentre outras coisas, logs tcpdump contendo todo o tráfego. Essa será a partição raiz.
  • A partição criada para a máquina virtual, em princípio, deverá ser a menor possível (podendo chegar a menos de 1 GB). Isso permitirá a você ter um caso de ataque pequeno e "portátil", que poderá ser disponibilizado, se for o caso. Mas é lógico que essa exigência cairá por terra se você decidir por algo maior, como a disponibilização de um banco de dados vulnerável, e não estiver preocupado com a disponibilização na Internet da mídia atacada. Essa partição poderá chamar-se /vm ou outro nome qualquer.
  • Utilize uma senha de root forte, contendo letras, números e caracteres especiais. No mínimo, como oito caracteres. Lembre-se de que a máquina real deverá permanecer todo o tempo em segurança.

Depois de instalada a máquina real, faça os seguintes procedimentos:

  • Instale pacotes essenciais para a operação e monitoramento na máquina real:
# apt-get install binutils bsd-mailx bzip2 dcfldd dsniff fail2ban geoip-bin iptraf less mc netcat ntpdate samhain sendmail ssh tcpdump whois
  • Edite o arquivo /etc/ssh/sshd_config e altere a porta ssh de 22 para algo acima de 5000.
  • Reinicie o servidor ssh:
# /etc/init.d/ssh restart
  • Crie um e-mail falso em algum provedor público (Yahoo, GMail etc). Isso será necessário para uso, principalmente, dentro da máquina virtual. Lembre-se de que o atacante verá esse e-mail.
  • Edite o arquivo /etc/aliases e, no fim, insira a linha:
root: email_falso_criado_recentemente
  • Para validar a configuração anterior, execute o comando:
# newaliases
A partir deste passo, você começará a receber e-mails dos samhain, que é um agente que verifica alterações no sistema operacional. Depois de disponibilizada a isca na Internet, leia atentamente cada mensagem enviada, observando se houve, em algum momento, o comprometimento da máquina real.
  • Edite o arquivo /etc/fail2ban/jail.conf e, na seção [ssh], altere a entrada
maxretry = 6

para

maxretry = 3

Ainda, abaixo da citada linha (maxretry = 3), acrescente:

bantime = 3600
  • Reinicie o serviço fail2ban:
# /etc/init.d/fail2ban restart
O fail2ban é utilizado para prevenir tentativas de conexão em serviços remotos por força bruta. No caso, foi configurado para, na ocorrência de três tentativas sem sucesso de autenticação SSH, bloquear por 1 hora (3600 segundos) o IP do atacante.
  • Utilize o comando netstat para verificar se há portas abertas desnecessariamente (isso compromete a segurança). Se for o caso, feche os serviços indesejados.
# netstat -tunlp
  • Crie um swap em arquivo (siga as instruções do artigo correspondente). Sugiro utilizar algo em torno de 500 MB (ou menos!).

A máquina virtual

A máquina virtual será montada na segunda partição (criada durante a instalação do Debian). Para facilitar a compressão da imagem da partição, que deverá ser gerada depois da invasão, inicialmente deveremos escrever zeros na extensão de tal partição.

Para criar a máquina virtual que será atacada, siga os procedimentos:

  • Escreva zeros em toda a superfície da partição que receberá a máquina. Vou considerar que seja a partição /dev/sda2. Neste caso, o comando será:
# dcfldd if=/dev/zero of=/dev/sda2
  • Crie uma máquina virtual, a ser colocada em /dev/sda2, seguindo as instruções do artigo Xen 4.0 no Debian Squeeze, tomando o cuidado de utilizar apenas 100 MB como tamanho para o swap em arquivo. Se não pretender colocar serviços pesados dentro da máquina, utilize uma quantidade de memória pequena, como 64 MB. Isso facilitará a compressão do arquivo para disponibilização na Internet.
  • Depois de criar a máquina virtual, logue na mesma e instale os seguintes pacotes (neste momento, a senha de root não deverá ser vulnerável):
# apt-get install netcat ntpdate php5 samhain sendmail ssh
O pacote php5 forçará a instalação do servidor web Apache e é um simples atrativo para os atacantes. Se você desejar, poderá até mesmo configurar um site para o Apache servir. Se não desejar, deixe com o site default mesmo.
  • O samhain, instalado no passo anterior, será um dos seus grandes aliados, dando o alerta de que algo ocorreu. Assim, edite o arquivo /etc/aliases e, no fim, insira a linha:
root: email_falso_criado_anteriormente
  • Para validar a configuração anterior, execute o comando:
# newaliases
  • É quase fato que o atacante irá trocar a senha de root da máquina virtual depois que entrar. Muitos fazem isso. Com isso, você não terá mais acesso por ssh ou por login no console. Então, um aperfeiçoamento seria criar um par de chaves ssh assimétricas falsas (de um usuário fantasma, como sysadm), usando o comando ssh-keygen, para que você possa entrar no sistema como root se precisar.
  • Remova o log /var/log/auth.log para não deixar seus rastros (o log será recriado na primeira conexão ssh).
# rm /var/log/auth.log
  • Adicione um usuário test com senha test. (seja rápido a partir de agora)
# adduser test
  • Troque a senha de root para 123456.
# passwd root
  • Limpe o histórico de comandos.
# history -c
  • Reinicie a máquina para limpar totalmente a memória.
# reboot
  • A partir de agora, evite realizar logins desnecessários na máquina virtual. Veja no item a seguir como monitorar a máquina virtual. Ainda, na máquina real, inicie uma sessão tcpdump para registrar todo o tráfego de rede direcionado à máquina.
# tcpdump -n -host <ip_da_máquina_virtual> -w trafego.dump



Monitorando a máquina atacada

O roteador ADSL



Voltar ao artigo principal...

Esta página é filha do artigo principal Perícia forense computacional.

Caso deseje voltar ao mesmo, clique aqui.

Redes sociais

  • Twitter: Para novidades sobre artigos, livros e palestras, siga-me em eribertomota.