Análise forense de disco, análise forense de memória e análise forense de log. Estrutura de volatilidade e autópsia. Solução de problemas com r0ot-mi. Parte 1

imagem

Este artigo contém soluções para tarefas destinadas aos registros forenses de memória, RAM e servidor da web. Bem como exemplos de uso dos programas Volatility Framework e Autopsy.

Informações Organizacionais
Especialmente para aqueles que desejam aprender algo novo e se desenvolver em qualquer uma das áreas de segurança da informação e da informática, escreverei e falarei sobre as seguintes categorias:

  • PWN;
  • criptografia (criptografia);
  • tecnologias de rede (rede);
  • reverso (engenharia reversa);
  • esteganografia (estegano);
  • pesquisa e exploração de vulnerabilidades na WEB.

Além disso, compartilharei minha experiência em análise forense de computadores, análise de malware e firmware, ataques a redes sem fio e redes locais, realização de protestos e explorações por escrito.

Para que você possa descobrir sobre novos artigos, software e outras informações, criei um canal no Telegram e um grupo para discutir quaisquer questões no campo da CID. Além disso, considerarei pessoalmente seus pedidos, perguntas, sugestões e recomendações pessoais e responderei a todos .

Todas as informações são fornecidas apenas para fins educacionais. O autor deste documento não se responsabiliza por nenhum dano causado a alguém como resultado do uso dos conhecimentos e métodos obtidos como resultado do estudo deste documento.

Análise forense de memória - nível 2


imagem

Nesta tarefa, recebemos uma imagem da RAM e somos solicitados a encontrar o nome da máquina. Para resolver esse tipo de tarefa, usaremos o Volatility Framework. Carregamos a imagem com o seguinte comando, especificando o caminho para a imagem como parâmetro. Primeiro, descobrimos informações sobre a imagem.

volatility -f ch2.dmp imageinfo 

imagem

Assim, aprendemos que esta é uma imagem de memória do sistema operacional Windows. Ou seja, podemos descobrir o nome da máquina no registro. Agora devemos especificar o perfil como um parâmetro. O valor da chave no registro pode ser exibido da seguinte maneira.

 volatility -f ch2.dmp --profile=Win7SP1x86_23418 printkey -K "ControlSet001\Control\ComputerName" 

imagem

E agora descobrimos o nome do computador.

 volatility -f ch2.dmp --profile=Win7SP1x86_23418 printkey -K "ControlSet001\Control\ComputerName\ActiveComputerName" 

imagem

Vemos o nome do computador. Entregue, ganhe pontos.

imagem

Logs forense - ataque na web


imagem

Nesta tarefa, eles nos fornecem um log do servidor da Web e dizem que foi feito um ataque, precisamos entender quais dados o invasor aprendeu. Vamos abrir o log.

imagem

Vemos que os dados codificados em base64 como um parâmetro de pedido. Escreveremos um código para decodificá-los.

 from re import * from base64 import * f = open('ch13.txt') log = f.read() f.close() k = findall("action=membres&order=(.*?) HTTP", log) [print(str(b64decode(i.replace("%3D", "=")), "utf-8")) for i in k] 

imagem

Converta um pouco em compreensível.

imagem

Assim, comparamos os dois primeiros bits da primeira letra da senha com 00, 01, 10, 11 e fazemos uma pausa correspondente - 0, 2, 4 e 6 segundos. Também acontece com o segundo e o terceiro dois bits. Depois disso, o sétimo bit é verificado e, dependendo da igualdade de 0 ou 1, é feita uma pausa de 2 e 4 segundos.

Assim, pelo atraso, podemos determinar quais bits o servidor retorna.

imagem

Por exemplo: a diferença de tempo entre os primeiros pedidos é de 6 segundos, ou seja, são os bits 11, etc. Automatize esse processo.

 from re import * from base64 import * import binascii f = open('ch13.txt') log = f.read() f.close() k = findall("action=membres&order=(.*?) HTTP", log) dec_k = [str(b64decode(i.replace("%3D", "=")), "utf-8") for i in k] t = findall("2015:12:1(.*?) \+0200]", log) tim = [int(i.split(':')[0])*60 + int(i.split(':')[1]) for i in t] tim = [tim[i+1] - tim[i] for i in range(len(tim)-1)] + [0] password = "" for i in range(0, len(tim), 4): c = '' for sec in tim[i:i+3]: if sec == 0: c += '00' elif sec == 2: c += '01' elif sec == 4: c += '10' elif sec == 6: c += '11' if tim[i+3] == 2: c += '0' elif tim[i+3] == 4: c += '1' password += chr(int(c,2)) print(password) 

Nós damos a senha.

imagem

Análise forense de memória - nível 5


imagem

Somos solicitados a encontrar a senha de John e fornecer um despejo de RAM. Como na última vez, descobrimos qual sistema operacional é usado.

imagem

Este é o Windows. A volatilidade tem uma opção de hashdump.

imagem

Agora encontramos a senha do usuário.

imagem

Enviamos a senha e obtemos pontos.

imagem

Forense em disco - encontre o gato


imagem

É-nos dada uma imagem de disco e solicitados a encontrar o local onde o gato está. Para essas tarefas, você pode usar o FTK Imager. Vou resolvê-lo usando o AutoPsy . Execute o programa.

imagem

É-nos dito para abrir a página em um navegador. Nós abrimos. Agora crie um novo caso e adicione um host. Em seguida, você precisa adicionar uma imagem.

Imagens
imagem

imagem

imagem

imagem

imagem

imagem

imagem

Depois de criar o ambiente, temos o seguinte.

imagem "

Selecione a opção de análise.

imagem

Exibimos a seguinte estrutura de seção. Não há nada interessante na pasta Documentações. Vamos para Arquivos.

imagem

Há um arquivo odt interessante. Nós selecionamos.

imagem

O conteúdo é exibido abaixo - há algum tipo de imagem. Selecione extrair para extrair o arquivo. Do arquivo baixado, extraímos a imagem.

imagem

Provavelmente este é o gato que precisamos encontrar. Vamos ver informações exif.

imagem

Ótimo, existem coordenadas de localização. Encontramos nos cartões.

imagem

Enviamos a resposta e obtemos pontos.

imagem

Mais e mais complicado ... Você pode se juntar a nós no Telegram . Lá, você pode propor seus próprios tópicos e votar na escolha de tópicos para os seguintes artigos.

Source: https://habr.com/ru/post/pt469577/


All Articles