Instalar Rekall no Ubuntu e Debian

Hoje vou ensinar os passos para instalar o rekall no Debian e no Ubuntu, este guia de instalação foi feito porque apesar de termos o rekall como pacote disponível no repositório oficial do Debian, nem todas as versões tanto do Ubuntu quanto do Debian podem possuir o pacote disponível para instalação ou ter a versão mais recente disponível.

Para fazer a instalação do rekall vamos seguir a documentação oficial do projecto. Resumindo, os passos serão os seguintes:

1º Instalar as dependências necessárias
2º Criar um ambiente virtual em python (a instalação não avança caso não detecte um ambiente virtual activo)
3º Instalar o rekall
4º (opcional) criar atalhos para activar o ambiente virtual e chamar o rekall

Vamos então começar com a nossa instalação.

Para instalar o rekall precisamos da seguinte dependencia “pip”, o pip é um gestor de pacote python que precisamos para criar um ambiente virtual e fazer a instalação do rekall.

Para instalar as dependências vamos usar o seguinte comando

$ sudo apt-get install -y python-pip python-dev

Agora vamos criar um diretório para criar o nosso ambiente virtual e começar com a instalação do rekall.

$ mkdir virtual-env # criar directório
$ virtualenv virtual-env # criar ambiente virtual
(virtual-env) $ source virtual-env/bin/activate # activar ambiente virtual
(virtual-env) $ pip install --upgrade pip setuptools wheel # actualizar as ferramentas do ambiente virtual
(virtual-env) $ pip install rekall-agent rekall # instalar o rekall e o agente

Com estes passos acabamos de instalar o rekall dentro de um ambiente virtual, no entanto devo salientar que a execução do rekall somente funcionará se o ambiente virtual estiver activo ou se a execução do mesmo for feita usando o caminho absoluto do executável. Por exemplo:

(virtual-env) $ rekall -p perfil.json -f memory-dump.mem # executar o programa rekall usando o perfil perfil.json e o dump de memoria memory-dump.mem
$ /home/<USER>/virtual-env/bin/rekall -p perfil.json -f memory-dump.mem # executar o programa com os mesmos parametros usando o caminho absoluto

Para evitar de ter que activar o ambiente virtual sempre que quisermos utilizar o rekall ou termos que digital sempre o caminho absoluto, podemos criar um alias para quando digitarmos o comando rekall o terminal interpretar como o caminho absoluto sem a necessidade de nós termos que digitar sempre o comando completo. Para isso podemos executar o seguinte comando que cria um alias dentro do ficheiro “bashrc” que é carregado sempre que o utilizador faz login.

$ echo "alias rekall=/home/<USER>/virtual-env/bin/rekall" >> ~/.bashrc

Desta forma podemos simplesmente executar o comendo rekall que ele será interpretado com o atalho acima criado.

Para desactivar o ambiente virtual podemos simplesmente executar o comando “deactivate”.

(virtual-env) $ deactivate

Para analisar um dump de memória de uma máquina com o kernel Linux o rekall precisa de criar um perfil especifico. Por causa das grande variedade de distribuições e de configurações de kernel, é virtualmente impossível manter um repositorio actualizado com todas as possiveis versões de kernel e todas as configurações de kernel, felizmente o rekall possui uma forma facil de criar perfis especificos para linux.

Para a criação de perfil devemos instalar o código fonte do kernel actualmente instalado na máquina e instalar a biblioteca “ncurses” e o programa “make” para nos permitir compilar o perfil. Para isso usamos o seguinte comando.

$ sudo apt-get install -y linux-headers-$(uname -r)  libncurses5-dev build-essential

Após a instalação das dependências devemos entrar no directório de instalação do rekall e compilar o perfil.

$ cd /home/<USER>/virtual-env/tools/linux/
$ sudo make profile

Isto vai criar um ficheiro com o nome de versão do kernel e com a extensão zip, agora vamos usar o rekall para transformar este arquivo zip em um arquivo do tipo JSON para sr utilizado com o rekall. NO meu caso o nome do arquivo é o 4.13.0-1-amd64.zip.

(virtual-env) $ rekall convert_profile 4.13.0-1-amd64.zip 4.13.0-1-amd64.json

Assim agora temos o arquivo 4.13.0-1-amd64.json que podemos usar como perfil para analisar a memória da máquina. Também podemos usar o rekall para colectar o dump de memória no formato aff4. Para recolher a memória o rekall precisa de acesso root a máquina, isso pode ser feito chamando o rekall com o seu caminho absoluto.

$ /home/<USER>/virtual-env/bin/rekall aff4acquire memory-dump.aff4

Com o comando acima o rekall começa a recolher os dados em memória e a gravar os mesmos no arquivo “memory-dump.aff4” que depois poderá ser analisado usando o próprio rekall e o perfil criado anteriormente.

Como complemento recomendo a leitura do artigo que fala sobre aquisição de memoria para mais informações. Por hoje ficamos por aqui.

Até a próxima…

Compartilhe... :)

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *