Bulk Extractor: Principais características e funcionalidades

Bulk Extractor 7

  1. Introdução. 7
  2. a) Uma história de sucesso do bulk_extractor 8
  3. b) Finalidade deste Manual 9
  4. Como funciona o bulk_extractor 9
  5. Executando bulk_extractor 13
  6. c) Guia de Instalação. 13
  7. d) Executar bulk_extractor no Bulk Extractor Viewer 18
  8. e) Executar bulk_extractor no Bulk Extractor Viewer 19
  9. Casos de uso para bulk_extractor 24
  10. f) Investigações de Malware. 24
  11. g) Investigações Cibernéticas. 25
  12. h) Quebra de senha. 26
  13. i) Analisando informações de imagens. 26
  14. Conclusão. 26

 

Bulk Extractor

1.     Introdução

Bulk_extractor é um programa que extrai recursos como endereços de emails, números de cartão de credito, URL e outros tipos de informações de mídia de evidência digital. É uma ferramenta de investigação forense útil para muitas tarefas, como investigações de malware e intrusão, investigações cibernéticas, bem como análise de imagens e quebra de senha. O programa oferece vários recursos incomuns, incluindo

  • Encontra endereços de email, URL e números de cartão de crédito que outras ferramentas não conseguem porque pode processar dados compactados e em dados completos ou parcialmente corrompidos. Ele pode fazer o carving em JPEG, documentos de escritório e outros tipos de arquivos de fragmentos de dados compactados.
  • Ele cria listas de palavras com base em todas as palavras encontradas nos dados, mesmo aquelas em arquivos compactados que estão em espaço não alocado. Essas listas de palavras podem ser úteis para quebrar senhas.
  • É multi-threaded executando o bulk_extractor em um computador com o dobro de número de núcleos normalmente faz com que ele conclua uma execução na metade do tempo.

Bulk_extractor opera em imagens de disco, arquivos ou um diretório de arquivos e extrai informações úteis sem analisar o sistema de arquivos ou as estruturas do sistema de arquivos. A entrada é dividida em paginas e processada por um ou mais scanners. Os resultados são armazenados em arquivos de recursos que podem ser facilmente inspecionados, analisados ou processados com outras ferramentas automatizadas. Bulk_extractor também cria histogramas de recursos que encontra. Isso é útil porque recursos como endereços de email e termos de pesquisa na internet que são mais comuns tendem a ser importantes.

Além dos recursos descritos acima, o bulk_extractor também inclui:

  • Uma interface gráfica do usuário, Bulk Extractor Viewer, para navegar pelos recursos armazenados em arquivos de recursos e iniciar varreduras do bulk_extractor
  • Um pequeno número de programas python para realizar análises adicionais no recurso

Bulk extractor detecta e descompacta com otimismo dados em arquivos zip, gzip, rar. Isso provou ser útil, por exemplo, na recuperação de endereços de email de fragmentos de arquivos compactados encontrados em espaço não alocado. Bulk extractor contém um mecanismo simples, mas eficaz, ele também possui recursos projetados especificamente para Windows e análise de malware, incluindo decodificadores para os formatos de diretório Windows PE, Linux ELF, VCARD, Base16, Base64 e Windows.

O bulk_extractor obtém sua velocidade através do uso de expressões de pesquisa compiladas e multithreading. As expressões de pesquisa são escritas como expressões regulares pré-compiladas, essencialmente permitindo que o bulk_extractor execute pesquisas em termos diferentes em paralelo. O encadeamento é realizado por meio do uso de um pool de encadeamentos de análise. Após a extração dos recursos, o bulk_extractor cria um histograma de endereços de e-mail, termos de pesquisa do Google e outros recursos extraídos. As listas de parada também podem ser usadas para remover recursos não relevantes para um caso.

Bulk extractor se distingue de outras ferramentas forenses por sua velocidade e meticulosidade. Como ignora a estrutura do sistema de arquivos, o bulk_extractor pode processar diferentes partes do disco em paralelo. Isso significa que uma máquina de 8 núcleos processará uma imagem de disco aproximadamente 8 vezes mais rápido do que uma máquina de 1 núcleo. bulk_extractor também é completo. Ele detecta, descompacta e reprocessa automaticamente dados que foram compactados com uma variedade de algoritmos. Nossos testes mostraram que há uma quantidade significativa de dados compactados nas regiões não alocadas dos sistemas de arquivos, perdidas pela maioria das ferramentas forenses comumente usadas atualmente. Outra vantagem de ignorar sistemas de arquivos é que bulk_extractor pode ser usado para processar qualquer tipo de mídia digital. O programa foi usado para processar discos rígidos, SSDs, mídia óptica, cartões de câmera, telefones celulares, despejos de pacotes de rede e outros tipos de informações digitais.

Entre 2005 e 2008, a equipe do bulk_extractor entrevistou as autoridades policiais sobre o uso de ferramentas forenses. Os policiais queriam uma ferramenta altamente automatizada para encontrar endereços de e-mail e números de cartão de crédito (incluindo informações da faixa 2), números de telefone, coordenadas de GPS e informações EXIF de JPEGs, termos de pesquisa (extraídos de URLs) e todas as palavras presentes no disco (para quebra de senha). A ferramenta precisava ser executada em sistemas Windows, Linux e Mac OS X sem interação do usuário.

Ele também tinha que operar em imagens de disco brutas, volumes split-raw e arquivos E01. A ferramenta precisava ser executada na velocidade máxima de E/S da unidade física e nunca travar. Por meio dessas entrevistas, foram desenvolvidos os requisitos iniciais para o sistema bulk_extractor.

Nos últimos cinco anos, trabalhamos para criar a ferramenta que esses oficiais desejavam.

a)    Uma história de sucesso do bulk_extractor

Uma das primeiras histórias de sucesso do bulk_extractor vem do Departamento de Polícia da cidade de San Luis Obispo na primavera de 2010. O promotor distrital apresentou acusações contra dois indivíduos por fraude de cartão de crédito e posse de materiais para cometer fraude de cartão de crédito.

Os arguidos foram detidos com um computador. Esperava-se que os advogados de defesa argumentassem que os réus não eram sofisticados e não tinham conhecimento para cometer o crime. O examinador recebeu um drive de 250 GB um dia antes da audiência preliminar; normalmente levaria vários dias para conduzir uma investigação forense adequada de tantos dados.

 

 

bulk_extractor encontrou evidências acionáveis em apenas duas horas e meia, incluindo as seguintes informações:

  • Havia mais de 10.000 números de cartão de crédito no disco rígido (materiais ilegais). Mais de 1000 dos números de cartão de crédito eram únicos.
  • O endereço de e-mail mais comum pertencia ao réu principal (evidência de posse).
  • As consultas mais comuns em mecanismos de pesquisa na Internet diziam respeito a fraudes de cartão de crédito e números de identificação bancária (evidência de intenção).
  • Os sites mais visitados estavam em um país estrangeiro cujo idioma principal é falado pelo réu (evidência de risco de fuga).

De posse desses dados, os réus foram detidos sem fiança.Como o bulk_extractor foi implantado e usado em diferentes aplicativos, ele evoluiu para atender a requisitos adicionais. Este manual descreve os casos de uso do sistema bulk_extractor e demonstra como os usuários podem aproveitar ao máximo todos os seus recursos.

b)    Finalidade deste Manual

Este Manual do Usuário destina-se a ser útil para usuários novos, intermediários e experientes do bulk_extractor . Ele fornece uma análise aprofundada da funcionalidade incluída no bulk_extractor e mostra como acessar e utilizar recursos por meio da operação de linha de comando e do Bulk Extractor Viewer. Este manual inclui exemplos de trabalho com links para os dados de entrada (imagens de disco) usados, dando aos usuários a oportunidade de trabalhar com os exemplos e utilizar todos os aspectos do sistema.

2.     Como funciona o bulk_extractor

 

Bulk_extractor encontra endereços de e-mail, URLs e CCNs que outras ferramentas não encontraram. Isso se deve em parte ao fato de que bulk_extractor descompacta e reanalisa com otimismo

Figura 1 – Três fases da operação bulk_extractor

todos os dados (por exemplo, fragmentos zip, execuções de cache do navegador gzip). A descompactação opera em dados incompletos e corrompidos até que a descompactação falhe. bulk_extractor também pode criar lista de palavras para quebra de senha

Existem três fases de operação no bulk_extractor: extração de recursos, criação de histogramas, pós- processamento, conforme mostrado na Figura 1. Os arquivos de recursos de saída contêm dados extraídos projetados para fácil processamento por programas de terceiros ou uso em ferramentas de planilhas. O sistema de histograma bulk_extractor resume automaticamente os recursos.

Os arquivos de recursos são gravados usando o sistema de gravação de recursos. À medida que as feições são descobertas, elas são enviadas para o gravador de feições e registradas no arquivo apropriado. Vários scanners podem gravar no mesmo arquivo de recurso. Por exemplo, o scanner exif pesquisa os formatos de arquivo usados por câmeras digitais e encontra as coordenadas GPS nas imagens. Essas descobertas são gravadas no arquivo de saída gps.txt pelo gravador de recurso gps. Um scanner separado, o scanner gps, pesquisa os dados do Garmin Trackpoint e encontra as coordenadas GPS e as grava em gps.txt. Vale a pena notar que alguns scanners também encontram mais de um tipo de feição e gravam em vários arquivos de feição. Por exemplo, o verificador de e-mail procura endereços de e-mail, domínios, URLs e cabeçalhos RFC822 e os grava em email.txt, domain.txt, url.txt, rfc822.txt e ether.txt, respectivamente.

Um arquivo de recurso contém linhas de recursos. Cada linha é normalmente composta por um deslocamento, um recurso e o recurso no contexto de evidência, embora os scanners sejam livres para armazenar qualquer informação que desejarem. Algumas linhas de um arquivo de recurso de e-mail podem ter a seguinte aparência:

Os tipos de recursos exibidos no arquivo de recursos variam dependendo do tipo de recurso está sendo armazenado. No entanto, todos os arquivos de recursos usam o mesmo formato com cada linha correspondendo a uma instância encontrada de um recurso e três colunas descrevendo os dados relacionados (deslocamento, recurso e recurso no contexto de evidência).

Um arquivo de histograma, em geral, se parecerá com o seguinte trecho de arquivo:

n =875 mozilla@kewis .ch ( utf16 =3)

n =651 charlie@m57 .biz ( utf16 =120)

n =605 ajbanck@planet .nl

n =288 mattwillis@gmail .com

n =281 garths@oeone .com

n =226 michael . buettner@sun .com ( utf16 =2)

n =225 bugzilla@babylonsounds .com

n =218 berend . cornelius@sun .com

n =210 ips@mail .ips.es

n =201 mschroeder@mozilla .x- home . org

n =186 pat@m57 .biz ( utf16 =1)

Cada linha mostra um recurso e o número de vezes que esse recurso foi encontrado pelo bulk_extractor (o histograma indica quantas vezes o item foi encontrado codificado como UTF-16). Os recursos são armazenados no arquivo em ordem de ocorrência, com os recursos mais frequentes aparecendo na parte superior do arquivo e os menos frequentes exibidos na parte inferior.

Bulk_extractor tem vários scanners que extraem recursos. Cada scanner é executado em uma ordem arbitrária. Os scanners podem ser ativados ou desativados, o que pode ser útil para depuração e otimização de velocidade. Alguns scanners são recursivos e realmente expandem os dados que estão explorando, criando assim mais dados que o bulk_extractor pode analisar. Esses blocos são chamados de sbufs. O “s” representa a palavra segura. Todo o acesso aos dados no sbuf é verificado por limites, portanto, eventos de estouro de buffer são muito improváveis. A estrutura de dados sbuf é uma das razões pelas quais o bulk_extractor é tão resistente a falhas. A recursão é usada para, entre outras coisas, descompactar ZLIB e Windows HIBERFILE, extrair texto de PDFs e manipular dados compactados do cache do navegador.

O processo de recursão requer uma nova maneira de descrever deslocamentos. Para fazer isso, bulk_extractor introduz o conceito de “caminho forense”. O caminho forense é uma descrição da origem de um dado. Pode vir, por exemplo, de um arquivo simples, um fluxo de dados ou uma descompactação de algum tipo de dados. Considere um fluxo HTTP que contém um e-mail compactado com GZIP, conforme mostrado na Figura 2. Uma série de scanners primeiro encontrará as regiões compactadas ZLIB no fluxo HTTP que contém o e-mail, descompacte-as e, em seguida, encontre os recursos nesse e-mail que podem incluir endereços de e-mail, nomes e números de telefone. Usando este método, bulk_extractor pode encontrar endereços de e-mail em dados compactados. O caminho forense para os endereços de e-mail encontrados indica que ele se originou em um e-mail, que foi compactado em GZIP e encontrado em um fluxo HTTP. O caminho forense dos recursos de endereços de e-mail encontrados pode ser representado da seguinte forma:

11052168704 – GZIP -3437 live .com eMn=’ domexuser@live .com ’; var srf_sDispM

11052168704 – GZIP -3475 live .com pMn=’ domexuser@live .com ’; var srf_sDreCk

Figura 2 – caminho forense dos recursos encontrados no e-mail levam de volta ao fluxo HTTP

11052168704 – GZIP -3512 live .com eCk=’ domexuser@live .com ’; var srf_sFT =’<

A funcionalidade completa do bulk_extractor é fornecida por meio da operação de linha de comando e da ferramenta GUI, Bulk Extractor Viewer. Ambos os modos de operação funcionam para Linux, Mac e Windows. A seção a seguir descreve como baixar, instalar e executar o bulk_extractor usando a linha de comando ou o Bulk Extractor Viewer.

 

3.     Executando bulk_extractor

Bulk_extractor é uma ferramenta de linha de comando com uma ferramenta de interface gráfica do usuário, Bulk Extractor Viewer. Toda a funcionalidade de linha de comando do bulk_extractor também está disponível no Bulk Extractor Viewer. Os usuários podem acessar a funcionalidade da maneira que preferirem. Neste manual, revisamos as opções de usuário do bulk_extractor em ambos os formatos.

Bulk_extractor pode ser executado em um sistema Linux, Mac OS X ou Windows. A maneira mais rápida de executar o bulk_extractor é em um sistema Linux. A execução do bulk_extractor no Windows fornece os mesmos resultados, mas a execução geralmente leva 40% mais tempo no mesmo hardware. Na verdade, o software pode ser executado mais rapidamente em uma máquina virtual Linux em execução no Windows com estação de trabalho VMware do que no sistema operacional Windows nativo.

c)     Guia de Instalação

As instruções de instalação variam para usuários de Linux, Mac OS X e usuários de Windows. As seções a seguir explicam como instalar o bulk_extractor .

                                               i.          Instalando no Linux ou Mac OS X

Antes de compilar o bulk_extractor para sua plataforma, você pode precisar instalar outros pacotes em seu sistema que o bulk_extractor requer para compilar de forma limpa e com um conjunto completo de recursos.

Dependências do Fedora

Os seguintes comandos devem adicionar os pacotes apropriados:

sudo yum update

sudo yum groupinstall ferramentas de desenvolvimento

sudo yum install flex

 

Dependências para Debian ou Ubuntu

 

O seguinte comando deve adicionar as bibliotecas apropriadas:

 

sudo apt-get -y install gcc g++ flex libewf-dev

 

 

Dependências para Mac OS X Os

 

Usuários do Mac OS X devem primeiro instalar o aplicativo Xcode da Apple (disponível na loja de aplicativos do OS X) e, em seguida, instalar as ferramentas de linha de comando. Para instalar as ferramentas de linha de comando no Mavericks e no Yosemite, digite este comando no terminal:

 

xcode-select –install

 

Outros componentes podem ser baixados usando o sistema MacPorts. Para instalar MacPorts, obtenha as portas mais recentes para sua versão do OS X aqui: http://macports.com Depois que as portas mais recentes forem instaladas, você ainda precisará garantir que alguns pacotes opcionais sejam adicionados usando estes comandos:

 

sudo port install flex autoconf automake sudo port

install libewf-devel

 

Os usuários do Mac OS X devem observar que o libewf-devel pode não estar disponível nas portas e, no momento, o libewf não é novo o suficiente. Se a versão necessária não estiver disponível como uma porta, faça o download e descompacte a fonte libewf (por exemplo, em /tmp), cd no diretório de origem e execute:

 

./configure

make

sudo make install

 

Baixe e instale o bulk_extractor Em seguida

 

Baixe a versão mais recente do bulk_extractor . O software pode ser baixado em http://digitalcorpora.org/ downloads/bulk_extractor/. O arquivo para download será chamado bulk_extractor-xyztar.gz onde xyz é a versão mais recente. Na publicação deste manual, a versão mais recente do bulk_extractor é 1.5.

 

Depois de baixar o arquivo tar.gz, descompacte e descompacte-o. Em seguida, faça cd no diretório bulk_extractor-xyz recém-criado e execute os seguintes comandos para instalar o bulk_extractor em /usr/ local/bin (por padrão):

 

./configure

make

sudo make install

 

Com estas instruções, o seguinte diretório não será instalado:

 

  • plugins/ – Isto é apenas para desenvolvedores C/C++. Você pode desenvolver seus próprios plug-ins bulk_extractor que serão executados em tempo de execução com o executável bulk_extractor. Consulte Bulk_extractor Programmers Manual for Developing Scanner Plug-ins [?] para obter mais informações.

 

As instruções sobre como executar o bulk_extractor na linha de comando podem ser encontradas

A ferramenta Bulk Extractor Viewer é instalada como parte do processo de instalação acima. Instruções específicas sobre como executá-lo podem ser encontradas.

 

                                             ii.          Instalando no Windows

Os usuários do Windows devem baixar o Windows Installer para bulk_extractor . O arquivo para download está localizado em http://digitalcorpora.org/downloads/bulk_extractor/ e é denominado bulk_extractor-xyz- windowsinstaller.exe onde xyz é o número da versão mais recente.

Em seguida, execute o arquivo bulk_extractor-xyz-windowsinstaller.exe. Isso instalará automaticamente o bulk_extractor em sua máquina. Como esse arquivo não é usado por muitos usuários do Windows, alguns sistemas antivírus tentarão excluí-lo manualmente no download ou bloquear o download, conforme mostrado na Figura 3. Esteja ciente de que você pode ter que contornar seu sistema antivírus. Além disso, algumas versões do Windows tentarão impedir que você o execute. A Figura 4 mostra a mensagem que o Windows 8 exibe ao tentar executar o instalador. Para executar mesmo assim, clique em “Mais informações” e selecione “Executar assim mesmo”.

Quando o arquivo do instalador for executado, a instalação será iniciada e mostrará uma caixa de diálogo como a mostrada na Figura 5. O usuário deve selecionar a configuração padrão, que será a configuração de 64 bits para sistemas Windows de 64 bits ou a configuração de 32 bits configuração para sistemas Windows de 32 bits. Clique em “Instalar” e o instalador instalará o bulk_extractor em seu sistema e o notificará quando estiver concluído.

A instalação automática inclui a ferramenta Bulk Extractor Viewer, bem como o sistema bulk_extractor completo que pode ser executado a partir da linha de comando. O Java 6 ou superior deve estar instalado na máquina para que o Bulk Extractor Viewer seja executado. As instruções sobre como executar o bulk_extractor na linha de comando podem ser encontradas.

As instruções sobre como executá-lo a partir do Bulk Extractor Viewer estão localizadas.

Figura 3 – Caixa de diálogo exibida quando o usuário executa o Windows Installer

que será extraído por bulk_extractor

Para executar bulk_extractor a partir da linha de comando em qualquer máquina, digite o seguinte comando:

bulk_extractor -o output mydisk.raw

O comando acima em qualquer um dos sistemas operacionais suportados assume que a imagem de disco mydisk.raw está localizada no diretório onde o comando está sendo executado. No entanto, você pode apontar bulk_extractor para uma imagem de disco encontrada em outro lugar em sua máquina, inserindo explicitamente o caminho para essa imagem.

O texto a seguir mostra a saída produzida quando bulk_extractor é executado no arquivo nps-2010-emails.E01. As informações impressas indicam o número da versão, arquivo de entrada, diretório de saída e tamanho do disco. A tela é atualizada conforme o bulk_extractor é executado com informações de status. bulk_extractor imprime informações de desempenho e o número de recursos encontrados quando a execução é concluída.

C:\>bulk_extractor -o bulk_extractor\Output\nps-2010-emails bulk_extractor\InputData\nps-2010-emails.E01

bulk_extractor version: 1.5.0

Input file: bulk_extractor\InputData\nps-2010-emails.E01

Output directory: bulk_extractor\Output\nps-2010-emails

Disk Size: 10485760

Threads: 4

All data are read; waiting for threads to finish…

Time elapsed waiting for 1 thread to finish:

(timeout in 60 min .)

Time elapsed waiting for 1 thread to finish:

6 sec (timeout in 59 min 54 sec.)

Thread 0: Processing 0

All Threads Finished!

Producer time spent waiting: 0 sec.

Average consumer time spent waiting: 8.32332 sec.

Phase 2. Shutting down scanners

Phase 3. Creating Histograms

ccn histogram… ccn_track2 histogram… domain histogram…

email histogram… ether histogram… find histogram…

ip histogram… lightgrep histogram… tcp histogram…

telephone histogram… url histogram… url microsoft-live…

url services… url facebook-address… url facebook-id…

url searches…Elapsed time: 11.1603 sec.

Overall performance: 0.939557 MBytes/sec

Total email features found: 67

Observe que o bulk_extractor optou automaticamente por usar 4 threads porque o programa foi executado em um computador com 4 núcleos. Em geral, bulk_extractor determina automaticamente o número de núcleos a serem usados. Portanto, não é necessário definir o número de threads, a menos que você queira limitar o número a ser usado.

 

Depois de executar bulk_extractor , examine o diretório de saída especificado pelo nome no comando run. Agora deve haver vários arquivos de saída gerados nesse diretório.

Existem várias categorias de saída criadas para cada execução do bulk_extractor. Primeiro, existem arquivos de recursos agrupados por categoria, que contêm os recursos encontrados e incluem o caminho, o recurso e o contexto. Em segundo lugar, existem arquivos de histograma que permitem aos usuários ver rapidamente os recursos agrupados pela frequência em que ocorrem. Certos tipos de arquivos, como arquivos JPEG e KML, podem ser inseridos em diretórios. Por fim, bulk_extractor cria um arquivo report.xml, no formato DFXML, que captura a proveniência da execução.

Após a execução do bulk_extractor, todos esses arquivos serão encontrados no diretório de saída especificado pelo usuário.

O texto abaixo mostra os resultados da execução do comando ls -s no diretório de saída do bulk_extractor executado na imagem de disco nps-2010-emails.E01. Os números ao lado dos nomes dos arquivos indicam o tamanho do arquivo e mostram que vários dos arquivos, incluindo email.txt e domain.txt, foram preenchidos com recursos durante a execução.

C:\bulk_extractor\Output\nps-2010-emails>ls -s

total 303

0 aes_keys.txt                                 0 kml.txt

0 alerts.txt                                       0 lightgrep.txt

0 ccn.txt                                           0 lightgrep_histogram.txt

0 ccn_histogram.txt                       0 rar.txt

0 ccn_track2.txt                              8 report.xml

0 ccn_track2_histogram.txt          0 rfc822.txt

64 domain.txt                                  0 tcp.txt

1 domain_histogram.txt                0 tcp_histogram.txt

0 elf.txt                                              0 telephone.txt

16 email.txt                                      0 telephone_histogram.txt

4 email_histogram.txt                    96 url.txt

0 ether.txt                                        0 url_facebook-address.txt

0 ether_histogram.txt                    0 url_facebook-id.txt

1 exif.txt                                            4 url_histogram.txt

0 find.txt                                            0 url_microsoft-live.txt

0 find_histogram.txt                        0 url_searches.txt

0 gps.txt                                             1 url_services.txt

0 hex.txt                                             0 vcard.txt

0 ip.txt                                                12 windirs.txt

0 ip_histogram.txt                            0 winpe.txt

0 jpeg                                                  0 winprefetch.txt

8 jpeg_carved.txt                              88 zip.txt

0 json.txt

Existem vários arquivos de recursos produzidos pelo bulk_extractor para cada execução. Um arquivo de recurso é um arquivo delimitado por tabulações que mostra um recurso em cada linha. Cada linha inclui um caminho, uma característica e o contexto. Os arquivos estão no formato UTF-8.

Qualquer um dos arquivos de recursos criados pelo bulk_extractor pode ter um arquivo *_stopped.txt localizado no diretório de saída. Este arquivo mostrará todas as entradas interrompidas desse tipo que foram encontradas

para que os usuários possam examinar esses arquivos para garantir que nada crítico tenha sido oculto. Um recurso parado é um recurso que aparece em uma lista de paradas. A lista de paradas é uma lista de recursos que não interessam a uma investigação específica. Por exemplo, os usuários podem inserir um arquivo de lista de parada no bulk_extractor que contém vários endereços de e-mail que devem ser ignorados e não marcados como um recurso encontrado. Em vez de jogar fora esses resultados quando forem encontrados, o bulk_extractor criará um arquivo chamado email_stopped.txt que mostra todos os endereços de e-mail da lista de parada que foram encontrados durante a execução. Os endereços de e-mail interrompidos não aparecerão no arquivo email.txt. Mais informações sobre como criar e usar listas de paradas podem ser encontradas

Embora os comandos acima sejam tudo o que é necessário para a operação básica, existem inúmeras opções de uso que permitem ao usuário afetar entrada e saída, ajuste, modo de processamento de caminho, depuração e controle de scanners. Todas essas opções são descritas quando bulk_extractor é executado com a opção -h (ajuda). É importante notar que a grande tendência dos usuários é usar muitas dessas opções; no entanto, isso geralmente não é recomendado. Na maioria das vezes, a melhor maneira de executar o bulk_extractor é sem nenhuma opção especificada além de -o para especificar o diretório de saída. Para melhor desempenho e resultados, os usuários devem evitar adicioná-los em geral. Somente servidores avançados em casos específicos devem usar essas opções.

A execução de bulk_extractor apenas com a opção -h especificada produz a saída mostrada no Apêndice A. Para executar quaisquer opções de uso opcionais, elas devem ser inseridas antes que as opções de entrada e saída sejam especificadas. Especificamente, a ordem deve ter a seguinte aparência:

bulk_extractor [Opções de uso] -o saída mydisk.raw

A ordem específica na qual várias opções de uso são especificadas é importante. Algumas das opções são discutidas nas seções a seguir para casos de uso específicos, outras opções são para programador ou uso experimental. Em geral, evite usar as opções a menos que indicadas para uma finalidade específica.

d)    Executar bulk_extractor no Bulk Extractor Viewer

Em um sistema Linux ou Mac OS X, vá para o diretório onde o Bulk Extractor Viewer está instalado ou especifique o nome do caminho completo para o arquivo jar. Ele estará no local onde o código bulk_extractor foi instalado e no subdiretório chamado java_gui. Nesse diretório, execute o seguinte comando para iniciar o Bulk Extractor Viewer:

./BEViewer

e)    Executar bulk_extractor no Bulk Extractor Viewer

Os usuários do Windows devem ir ao menu Iniciar e escolher Programas->Bulk_Extractor xyz->BE Viewer com Bulk_extractor xyz (64 bits). Se a versão de 64 bits não puder ser executada em sua máquina, você poderá escolher a versão de 32 bits.

Figura 4 – Qual é a aparência do Bulk Extractor Viewer quando iniciado

Quando o Bulk Extractor Viewer for iniciado, ele se parecerá com a Figura 6. A aparência pode variar um pouco de acordo com o sistema operacional específico, mas todas as opções devem ser semelhantes. Para executar o bulk_extractor no visualizador, clique no ícone que se parece com uma engrenagem com uma seta para baixo. Ela fica ao lado do ícone Imprimir, abaixo do menu Ferramentas. Clicar neste ícone abrirá a janela “Executar bulk_extractor” conforme demonstrado

Em seguida, na janela “Executar bulk_extractor”, selecione o arquivo de imagem e o diretório de recursos de saída para executar bulk_extractor . Mostra um exemplo em que o usuário selecionou o arquivo nps-2010-emails.E01 como entrada e criará um diretório chamado nps-2010-charlie-output no diretório pai C:\bulk_extractor\Output. Observe que os números podem variar um pouco nas versões futuras do bulk_extractor, mas a funcionalidade principal permanecerá a mesma.

Depois de selecionar os diretórios de entrada e saída, clique no botão na parte inferior da janela “Executar bulk_extractor” rotulado como “Iniciar bulk_extractor”. Isso abrirá a janela mostrada na Figura 9 que atualiza conforme o bulk_extractor está em execução, fornecendo informações de status durante a execução e após a conclusão da execução.

Quando a execução estiver concluída, uma caixa de diálogo será exibida indicando que os resultados estão prontos para serem visualizados. A Figura 10 mostra essa caixa de diálogo. Clique no botão “Ok” que o levará de volta à janela principal do Bulk Extractor Viewer para visualizar os resultados da execução. Os relatórios”

Figura 5 – Clicar no ícone de engrenagem abre esta janela “Executar bulk_extractor”

Figura 6 – Depois de selecionar um arquivo de imagem para entrada, o usuário deve selecionar um diretório de saída para criar

Figura 7 – Janela de status que mostra o que acontece quando o bulk_extractor é executado e indica quando o bulk_extractor é concluído

Figura 8 – caixa de diálogo indicando que a execução do bulk_extractor foi concluída e os resultados estão prontos para serem visualizados

 

 

 

4.     Casos de uso para bulk_extractor

Existem muitos casos de uso forense digital para bulk_extractor — mais do que podemos enumerar neste manual. Nesta seção, destacamos alguns dos usos mais comuns do sistema. Cada caso discute quais arquivos de saída, incluindo arquivos de feições e seus programas, são mais relevantes para esses tipos de investigações. Na Seção 8, Exemplos resolvidos, fornecemos orientações mais detalhadas e nos referimos a esses casos de uso com informações de arquivo de saída mais detalhadas.

f)      Investigações de Malware

Malware é uma intrusão programática. Ao realizar uma investigação de malware, os usuários devem procurar executáveis, informações que foram baixadas de aplicativos baseados na Web e entradas de diretório do Windows (para investigações específicas do Windows). bulk_extractor permite isso de várias maneiras.

Primeiro, o bulk_extractor encontra evidências de praticamente todos os executáveis no disco rígido, incluindo os próprios, os contidos em arquivos ZIP e os compactados.

Ele não fornece o valor de hash do arquivo completo, mas apenas o hash dos primeiros 4 KB do arquivo. Nossa pesquisa mostrou que os primeiros 4 KB são preditivos porque a maioria dos executáveis tem um valor de hash distinto para os primeiros 4 KB do arquivo [?]. Além disso, muitos desses arquivos podem estar fragmentados e examinar os primeiros 4 KB ainda fornecerá informações relevantes para uma investigação porque é improvável que a fragmentação ocorra antes dos primeiros 4 KB. O hash completo de um arquivo fragmentado não está disponível em bulk_extractor .

Vários arquivos de recurso de saída produzidos pelo bulk_extractor contêm informações relevantes e importantes sobre executáveis. Esses arquivos incluem:

 

  • elf.txt — Este arquivo (produzido pelo scanner elf) contém informações sobre executáveis ELF que podem ser usados para direcionar sistemas Linux e Mac OS X.
  • winprefetch.txt — Este arquivo (produzido pelo scanner winprefetch lista os arquivos atuais e excluídos encontrados no diretório de pré-busca do Windows.

O XML nesses arquivos de recurso é muito complicado de revisar sem o uso de outros aplicativos. A maneira recomendada de analisar a saída do executável é usar uma ferramenta de terceiros que analise os executáveis ou extraia os resultados para uma planilha. Em uma planilha, uma coluna pode conter os valores de hash e esses valores podem ser comparados com um banco de dados de hashes executáveis.

Há também uma ferramenta python que vem com o bulk_extractor chamada identity_filenames.py que pode ser usada para obter o nome completo do arquivo.

Para investigações de malware específicas do Windows, os arquivos winpe.txt e winprefetch.txt são muito úteis. Eles são produzidos pelos scanners winpe e winprefetch, respectivamente. A pré-busca do Windows mostra os arquivos que foram pré-buscados no diretório de pré-busca do Windows e mostra os arquivos

excluídos que foram encontrados em espaço não alocado. O arquivo de recursos do Windows PE mostra as entradas relacionadas aos arquivos executáveis do Windows.

JSON, o JavaScript Object Notation, é um formato leve de troca de dados. Os sites tendem a baixar muitas informações usando JSON. O arquivo de saída json.txt, produzido pelo scanner json, pode ser útil para investigações de malware e análise de aplicativos baseados na web. Se um site tiver baixado informações no formato JSON, o scanner JSON poderá encontrar essas informações no cache do navegador.

g)    Investigações Cibernéticas

As investigações cibernéticas podem examinar uma ampla variedade de tipos de informações. Alguns recursos unificadores dessas investigações são a necessidade de encontrar chaves de criptografia, valores de hash e informações sobre pacotes ethernet. bulk_extractor fornece vários scanners que produzem arquivos de recursos contendo essas informações.

Para informações de criptografia, os seguintes arquivos de recursos podem ser úteis:

  • aes.txt — AES é um sistema de criptografia. Muitas implementações deixam chaves na memória que podem ser encontradas usando um algoritmo inventado na Universidade de Princeton. bulk_extractor fornece uma versão aprimorada desse algoritmo para localizar chaves AES no scanner aes. Ao verificar a memória, como arquivos de troca ou arquivos de hibernação descompactados, ele identificará as chaves AES. As chaves podem ser usadas para software que irá descriptografar o material criptografado AES.
  • hex.txt — O scanner de base16 decodifica as informações armazenadas em Base16, dividindo-as nos valores hexadecimais correspondentes. Isso é útil se você estiver procurando por chaves AES ou hashes SHA1. Este scanner grava apenas blocos de tamanho 128 e 256 porque são os tamanhos usados para chaves de criptografia. O arquivo de recurso é útil se o investigador estiver procurando por pessoas que enviaram chaves de criptografia ou valores de hash por e-mail em uma investigação cibernética.

Além disso, o scanner de base64 é importante para investigações cibernéticas porque ele examina principalmente anexos de e-mail codificados em Base64. As informações encontradas nesses anexos serão analisadas por outros scanners em busca de características específicas.

O scanner windirs encontra entradas de diretório Windows FAT32 e NTFS e será útil para investigações cibernéticas envolvendo máquinas Windows, pois podem ser indicadores de horários em que a atividade ocorreu.

Finalmente, os arquivos ether.txt, ip.txt, tcp.txt e domain.txt são todos produzidos pelo net scanner. Ele procura pacotes ethernet e estruturas de memória associadas a estruturas de dados de rede na memória. É importante observar que as conexões tcp têm muitos falsos positivos e muitas das informações encontradas por este scanner serão falsas.

Os investigadores devem ter cuidado com a interpretação desses arquivos de recursos para essa razão.

h)    Quebra de senha

Se um investigador estiver tentando quebrar uma senha, o scanner de lista de palavras pode ser útil. Gera uma lista de todas as palavras encontradas no disco que tenham entre 6 e 14 caracteres.

Os usuários podem alterar o tamanho mínimo e máximo das palavras especificando opções em tempo de execução, mas descobrimos que essa faixa de tamanho é ideal para a maioria dos aplicativos. Como o scanner de lista de palavras está desabilitado por padrão, os usuários devem ativá-lo especificamente em tempo de execução, quando necessário. Para fazer isso, execute o seguinte comando:

bulk_extractor -e wordlist -o output mydisk.raw

Isso produzirá dois arquivos úteis para quebra de senha, wordlist_histogram.txt e wordlist.txt. Esses arquivos conterão palavras grandes que podem ser usadas para recomendar senhas.

i)       Analisando informações de imagens

Em um investigador precisa analisar especificamente imagens, para algo como uma investigação de pornografia infantil, o scanner exif seria útil. Ele encontra JPEGs na imagem do disco e, em seguida, esculpe os codificados que podem estar em, por exemplo, arquivos ZIP ou arquivos de hibernação. Ele grava a saída desta escultura em jpeg_carved.txt

5.     Conclusão

 

Se essa análise for realizada, algumas informações podem ser extraídas dos arquivos sem executá-lo no dispositivo. Embora já saibamos que é Ransonware, as varreduras confirmaram essa suposição e até sugeriram URLs que poderiam ser verificados quanto a varreduras válidas posteriormente.

Essa ferramenta é útil para verificar rapidamente imagens de disco e o status de arquivos estáticos, incluindo malware.

Apesar das limitações, como a incapacidade de analisar o código se estiver oculto, ele atende à necessidade básica e elementar da análise de malware.

6. Sobre o autor

Edson Luiz: Analista Forense na Apura, especialista em Forense Digital com mais de 6 anos de atuação em diversos casos de Investigação e Perícia Cibernética, Pós-Graduado em Computação Forense e Perícia Digital, Cyber Threat Intelligence e cursando a Pós-Graduação Cyber Segurança Ofensiva.

Conheça nossos treinamentos

Introdução a Cripto Ativos

Metodologias Nacionais de Perícia Digital

Perícia Digital Para Advogados

Mitre Attack

Triagem de Malware

Passware Kit Forensics: Do Zero ao Avançado
Gratuito para Law Enforcement