## Volatility 2.6
#### Introdução
Pegar informações da imagem.
```markdown
# Pedir help dos comandos
volatility -f [caminho_da_imagem] -h
# Visualiza as informações da imagem.
volatility -f [caminho_da_imagem] imageinfo
# Visualiza mais informações da image, incluse o profile.
volatility -f [caminho_da_imagem] kdbgscan
```
> Sobre o kdbgscan, sabemos que cada versão do Windows possui uma assinatura definida em seu KDBGHeader. Sendo assim, veremos como utilizar esse plugin para correta utilização dos demais plugins do Volatility. Esse plugin traz ainda o número de processos, abertos ou fechados, existentes em memória, por meio do campo **PsActiveProcessHead**.
#### Process List
Pegar a lista de processos rodando no sistema:
```markdown
# Visualizar os processos em lista.
volatility -f [caminho_da_imagem] --profile=[perfil] pslist
# Mostrar os processos em arvore.
volatility -f [caminho_da_imagem] --profile=[perfil] pstree
```
> Material complementar sobre os processos Windows:
> https://www.sans.org/posters/hunt-evil/
Buscar detalhes de um processo:
```markdown
# Buscar as dll vinculadas ao processo.
volatility -f [caminho_da_imagem] --profile=[perfil] dlllist --pid=[PID]
# Realizar backup de DLL que são usadas por processos, especificando o local (offset) da memória.
volatility -f [caminho_da_imagem] --profile=[perfil] dlldump --pid=[PID] -b [0x00000000] -D .
# Este plugin mostra a linha de comando usada para iniciar o processo, o que pode incluir o caminho do executável.
volatility -f [caminho_da_imagem] --profile=[perfil] cmdline --pid=[PID]
```
Buscar quem foi o GETSIDS que abriu o processo na maquina.
```markdown
volatility -f [caminho_da_imagem] --profile [perfil] getsids -p 1640
```
Para buscar processos que podem ter terminado, usando uma técnica pool-tag (varredura de assinaturas de 4 bytes)
```markdown
volatility -f [caminho_da_imagem] --profile=[perfil] psscan
```
Buscar por usuários e detalhes de variáveis vinculados aos processos ou variáveis do sistema.
```markdown
volatility -f [caminho_da_imagem] --profile=[perfil] envars
```
Realizar um dump de um arquivo que está em memória:
```
volatility -f [caminho_da_imagem] --profile=[perfil] procdump -p PID -D .
```
#### Network
Visualizar a correlação entre conexão de rede e processo, horário de início, o estado da conexão (para conexões TCP), o IP de origem e o de destino:
```markdown
volatility -f [caminho_da_imagem] --profile=[perfil] netscan
```
> Website contendo várias ferramentas online de Lookup de Sites e IPs:
> https://zeltser.com/lookup-malicious-websites/
> Com versões muito antigas, talvez seja necessário usar outros plugins conforme é mostrado na tabela abaixo:
>
> | Nome do Plugin | Versão do Windows | Propósito |
|-----------------|---------------------------------|---------------------------------------------------------------------------|
| Sockscan | Windows XP/2003 | Listar todas as conexões TCP/UDP, incluindo as fora da single-linked list ou fechadas. |
| Sockets | Windows XP/2003 | Listar apenas as conexões TCP/UDP ativas. |
| Connscan | Windows XP/2003 | Listar todas as conexões TCP/UDP, incluindo as fora da single-linked list ou fechadas. |
| Connections | Windows XP/2003 | Listar apenas conexões TCP ativas. |
| Netscan | Windows Vista/7/8/8.1/10/11 | Listar todas as conexões TCP/UDP, não importando seu estado. |
#### Extração de Arquivos
```
volatility -f [caminho_da_imagem] --profile=[perfil] filescan
````
```
volatility -f [caminho_da_imagem] --profile=[perfil] dumpfiles -Q 0x0000000000 -D .
```
#### Analise de Rootkit.
o plugin ssdt busca pelas entradas SSDT (**System Service Descriptor Table**). Com seu uso, veremos que a maioria das entradas aponta para o kernel (ntoskrnl.exe) ou para o driver relacionado à interface gráfica do Windows (win32k.sys). Esse padrão é visto em um Windows **sadio**, mas em um sistema infectado, poderemos ver algumas funções “roubadas”.
```
volatility -f [caminho_da_imagem] --profile=[perfil] sstd -D .
```
O plugin psxview detecta processos ocultos, que não são detectados pelo plugin **pslist**.
```
volatility -f [caminho_da_imagem] --profile=[perfil] psxview
```
```
volatility -f [caminho_da_imagem] --profile=[perfil] modsscan
```
```
volatility -f [caminho_da_imagem] --profile=[perfil] moddump -b 0xb240b000 -D .
```
Se as entradas para DLL aparecem em branco, ou seja, não há mapeamento para o local de carregamento da DLL, se trata de um código malicioso que substituiu a região de memória
```
volatility -f [caminho_da_imagem] --profile=[perfil] ldrmodules | grep False
```
```
volatility -f [caminho_da_imagem] --profile=[perfil] malfind
```
```
volatility -f [caminho_da_imagem] --profile=[perfil] hollowfind
```
Os plugins **cmdscan** e **consoles** funcionam muito bem em versões anteriores ao Windows 7, inclusive. O plugin **consoles** procura por informações sobre a estrutura **CONSOLE_INFORMATION**, a qual mantém informações sobre os últimos comandos executados e o processo associado com o **prompt** de comando utilizado.
```
volatility -f [caminho_da_imagem] --profile=[perfil] cmdscan
```
```
volatility -f [caminho_da_imagem] --profile=[perfil] consoles
```
a partir do Windows 8, os dois comandos acima podem não trazer qualquer informação. Sendo assim, podemos contornar esse problema ao executar o plugin **memdump** para extrair porções da memória com comandos executados:
```
volatility -f [caminho_da_imagem] --profile=[perfil] memdump -n conhost -D .
```
#### Extração de Chaves de Registro.
Isso exibe os endereços de memória e nomes dos hives carregados, como `SAM`, `SYSTEM` e `SOFTWARE`.
```
volatility -f [caminho_da_imagem] --profile=[perfil] hivelist
```
Esse comando extrai hashes de senhas de usuários armazenados no `SAM`.
```
volatility -f [caminho_da_imagem] --profile=[perfil] hashdump
```
Esse comando extrai o nome do computador.
```
volatility -f [caminho_da_imagem] --profile=[perfil] printkey -K 'ControlSet001\Control\ComputerName\ComputerName'
```
Isso lista programas instalados, ajudando na identificação de software malicioso.
```
volatility -f [caminho_da_imagem] --profile=[perfil]
printkey -K 'Microsoft\Windows\CurrentVersion\Uninstall'
```
Caso seja necessário exportar hives completos:
```
volatility -f [caminho_da_imagem] --profile=[perfil] dumpregistry -o <endereço_hive> -D ./output
```
#### Extração de Comandos no Windows Atual
1. **Listar Processos na Imagem de Memória:**
```
vol.py -f 3.vmem memdump -n conhost -D /home/dumps --profile=Win10x64_19041
```
2.
```
vol.py -f 3.vmem memdump -n conhost -D /home/dumps --profile=Win10x64_19041
```
1```
`
```
#### Outras possibilidades
```
## Volatility 3 1
Verificar detalhes no Windows ou Linux:
```Markdown
vol -f [Caminho_da_imagem] windows.info
vol -f [Caminho_da_imagem] linux.info
```
Buscar os processos relacionados:
```Markdown
vol -f [Caminho_da_imagem] windows.pslist
vol -f [Caminho_da_imagem] windows.pstree
```
Buscar os dados de redes. Caso o comando não funcione tente o [Bulk Extractor](https://www.kali.org/tools/bulk-extractor/)
```Markdown
vol -f [Caminho_da_imagem] windows.netstat
```
Fazer uma varredura atrás de caçar malware ou outras anomalias na memória.
```Shell
python3 vol.py -f [file] windows.malfind
python3 vol.py -f [file] windows.yarascan
```
Realizar uma busca de ganchos SSDT (System Service Descriptor Table), tabela usada pelo Windows para procurar funções.
```Markdown
python3 vol.py -f [file] windows.ssdt
```
Mais alguns comandos para analisar malwares de memória:
```Markdown
python3 vol.py -f [file] windows.driverscan
# Alguns outros modulo
# modscan, driverirp, callbacks, idt, apihooks, moddump, handles
```
Fazer um dump um processo suspeito:
```Markdown
vol -f [file] -o /tmp windows.memmap.Memmap --pid [pid] --dump
```
Visualizar os arquivos do sistema:
```Shell
vol -f [file] windows.filescan
```
Outra comandos segue a documentação:
[https://github.com/volatilityfoundation/volatility/wiki/Command-Reference](https://github.com/volatilityfoundation/volatility/wiki/Command-Reference)
Cheatsheet da documentação:
[https://downloads.volatilityfoundation.org/releases/2.4/CheatSheet_v2.4.pdf](https://downloads.volatilityfoundation.org/releases/2.4/CheatSheet_v2.4.pdf)