# Volatility

## O que é o Volatility?

O Volatility é uma ferramenta poderosa de análise de memória RAM usada em investigações forenses digitais e desafios de CTF. Ele permite a extração de informações relevantes de arquivos de memória capturados (como dump de memória) para ajudar na identificação de ameaças, análise de malwares e resolução de desafios.

## Instalação

### Requisitos

* Python 3.x (para o Volatility 3, que é a versão mais recente)

### Passos para Instalação

```bash
git clone https://github.com/volatilityfoundation/volatility3.git
cd volatility3
pip install -r requirements.txt
python3 vol.py
```

Se estiver instalado corretamente, você verá algo como:

```
Volatility 3 Framework
Usage: vol.py <volatility_options> <plugin> [plugin_options]
```

Para ver todos os plugins disponíveis no seu Volatility 3:

```bash
python3 vol.py --help
```

## Fluxo básico de uso em desafios de CTF

### Identifique o perfil do sistema

Determine o sistema operacional e a arquitetura.

```bash
python3 vol.py -f <arquivo> imageinfo
```

##

### Liste os processos ativos

Ajuda a identificar processos suspeitos.

```bash
python3 vol.py -f <arquivo> pslist
```

##

### Procure conexões de rede

Identifique conexões estabelecidas e portas abertas.

```bash
python3 vol.py -f <arquivo> netscan
```

##

### Dump de um processo específico

Para análise de possíveis malwares.

```bash
python3 vol.py -f <arquivo> memdump -p <PID>
```

##

### Extrair strings

Útil para encontrar pistas em CTFs.

```bash
python3 vol.py -f <arquivo> strings
```

##

### Analise módulos de kernel

Verifique alterações ou presença de rootkits.

```bash
python3 vol.py -f <arquivo> modscan
```

##

### Analise histórico de navegação

Busque URLs e possíveis pistas.

```bash
python3 vol.py -f <arquivo> webhist
```

##

### Listar handles de arquivos abertos

Lista todos os handles (manipuladores) do sistema, que podem incluir arquivos, processos, eventos, etc.

```bash
python3 vol.py -f <arquivo> handles
```

##

### Extrair hashes do sistema

Extrai hashes de senhas armazenadas no sistema a partir da memória.

```bash
python3 vol.py -f <arquivo> hashdump
```

##

### Busca por registros de clipboard

Exibe o conteúdo da área de transferência (clipboard), que pode conter informações copiadas pelo usuário.

```bash
python3 vol.py -f <arquivo> clipboard
```

##

### Visualizar histórico do cmd

Permite encontrar comandos executados a partir de linhas de comando.

```bash
python3 vol.py -f <arquivo> cmdscan
```

##

Se você está usando o Volatility no Windows via o executável volatility.exe, os comandos são semelhantes aos usados no Linux. A diferença está na sintaxe do comando e no uso de caminhos específicos para Windows.

### Ex:

```bash
.\volatility.exe -f <arquivo> --profile=Win7SP1x64 <comando>
```

OBS: Lembre-se de substituir *Win7SP1x64* pelo perfil apropriado para o sistema operacional do dump de memória.

## Write-Up e Sites de Apoio

### Write-Up

* [NAHAMCONCTF2020 - Volatile](https://razvioverflow.github.io/ctfwriteups/NAHAMCONCTF2020/#volatile)

### Sites de Apoio

* [Volatility 3: Análise de Memória - Lucas Soeiro](https://lucassoeiro.medium.com/volatility-3-an%C3%A1lise-de-mem%C3%B3ria-5809bff12aab)
