Segurança da Informação, Hacking, PenTest, malware, analise forense. Um blog para quem acha que segurança importa.

quarta-feira, 27 de abril de 2011

Recuperando Rastros Franceses

No Final do ano fui chamado para ajudar em uma Resposta a Incidente.
O que me foi reportado:
Maquina linux, foi invadida.
Uma pagina alterada. ( defacement )

Detalhes:
1- Fui chamado 3 horas após o incidente.
2- A pessoa que fez o primeiro atendimento, por inexperiencia, rebootou a maquina 3 vezes.
3- maquina com 2 hds rodando Raid 1 (mirror).

Minha missão:
1 - descobir o que aconteceu e como.
2 - tornar a maquina estavel tempo suficiente para a migração e backup dos dados.


Assim, remotamente, uma vez dentro da maquina, fui atras de arquivos de log.
NADA. Todos os logs foram deletados.
Olhando no /tmp, encontrei alguns scripts utilizados pelo atacante .

Descobri, que o script alterava todo e qualquer arquivo da maquina, com os nomes index, default e home.
Essa informação foi crucial para poder voltar ao funcionamento alguns serviços, como o email.
O script ainda indicava que após a "invasão" o site Zone-H era contactado.

Continuando ..

Verifiquei a data corrente da maquina.
# date

sabendo aproximadamente o horario da invasão, utilizei o comando touch do linux para " criar um arquivo de "referencia" algum tempo antes da invasão.

################################
touch -d "27 Dec 2010 08:00:00" /tmp/date_marker
###############################

apos isso utilizei o find para localizar todos os arquivos modificados na maquina após essa data e horario.

######################################
find / -newer /tmp/date_marker
######################################

Olhando a lista de arquivos, notei uma instalação do JOOMLA.
"Navegando dentro da maquina" descobri que a mesma era ANTIGA, e vulneravel a diversos tipos de ataque.

Consegui inclusive encontrar, outros arquivos, até partes de um rootkit.

O que e como eu já havia descoberto.
Voltei os serviços minimos da maquina, a um estado aceitavel.

Mesmo o cliente estando satisfeito, eu queria saber quem. ( e talvez alguns detalhes a mais do como )


Agora vem a pergunta ...
Como recuperar dados de um HD remoto, discos em mirror, sabendo que a maquina foi rebootada 3 vezes e que o mirror/fsck teve tempo suficiente para syncronizar os discos ?


Para minha sorte havia o NETCAT instalado na maquina ( default em alguns sistemas operacionais )
Assim, fiz a tranferencia de alguns arquivos, e depois tentei procurar algum resto de log que pudesse me ajudar.


Na maquina invadida:

# dd if=/dev/sda | strings | nc 11223


Na maquina destino ( minha maquina ):

# nc -l -p 11223 >>/tmp/strings.txt

O procedimento acima poderia ser utilizado nos 3 devices ... :-)
/dev/md0
/dev/sda
/dev/sdb

Depois de algumas horas eu interrompi a transferencia.
Buscando no arquivo /tmp/strings.txt na minha maquina um simples GREP com palavras chave do log HTTP, consegui recuperar TODOS os LOGS para remontar as ações do atacante.
Atacante, vindo de um IP de range FRANCES, usando um navegador FRANCES, fazendo Defacement de paginas no Brasil, com textos em Portugues - Brasileiro.

#########################
Minha primeira ação nesse caso, seria "quebrar" o mirror, separando os discos, tentando preservar algum dado, em algum HD, e é claro não rebootar a maquina. ( ou tardar o maximo essa ação )
#########################

MOTIVAÇÃO:
- mulecagem - Mass defacement - Mirror no Zone H

Conclusões.

0 - somente o arquivo "zerado" criado no /tmp, foi criado/alterdo na maquina.
1 - Sempre dá para achar alguma coisa.
2 - Não acredito que pilotos de ferramenta conseguissem fazer o que foi feito, principalmente remotamente.

#########################################################
alguns parametros, detalhes e endereços foram omitidos
#########################################################
Para quem não entendeu a dificuldade.

Raid 1 = Mirror.
Tudo feito na maquina é replicado para nos HDs.
Em caso de problemas com um disco voce DEVE ter dois discos iguais.
Assim, separando o mirror, voce consegue manter um backup.

O problema é que se um arquivo for apagado, será apagado dos dois HDs.
Se for executado um reboot, existe a chance do sistema efetuar rotinas normais de verificação e fazer a sincronizacao desses dados. ( apagar em um HD o que já foi apagado no outro )
#########################################################

Para quem se importa, existem algumas opções.
1- Estudar e aprender.
2- contratar alguem que saiba o que esta fazendo.

Abraços