# Forense Digital

### Sistemas Operacionais Forensics

| SISTEMA OPERACIONAL                           | URL                                                                                                              |
| --------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `CAINE`                                       | [https://www.caine-live.net/](https://www.caine-live.net/)                                                       |
| `DEFT`                                        | [http://na.mirror.garr.it/mirrors/deft/](http://na.mirror.garr.it/mirrors/deft/)                                 |
| `Helix3 Free`                                 | --                                                                                                               |
| `SANS Investigative Forensics Toolkit (SIFT)` | [https://digital-forensics.sans.org/community/downloads](https://digital-forensics.sans.org/community/downloads) |
| `Santoku Linux (Perícia Móvel)`               | https://santoku-linux.com/                                                                                       |

###

### Métodos de Captura

#### Captura Física

É criado uma cópia da unidade de disco bit a bit / setor a setor. Metadados do sistema de arquivos, arquivos excluídos, fragmentos de arquivos excluídos e espaço não alocados são capturados. A imagem resultado é um cópia exata.

#### Captura Lógica

Neste, espaço não alocado, dados do sistema de arquivos e arquivos excluídos e/ou parcialmente apagados, arquivos ocultos e espaço não usado, não são capturados

#### Captura Esparsa

Semelhante a Captura Lógica, porém este captura dados excluídos e seus fragmentos. Normalmente é usado em sistemas RAID



### gdb (com Script Bash)

Crie um aquivo chamado `dump-memory.sh` (pode ser o nome que preferir) e insira o seguinte conteúdo:

```bash
#!/bin/bash
grep rw-p /proc/$1/maps \
| sed -n 's/^\([0-9a-f]*\)-\([0-9a-f]*\) .*$/\1 \2/p' \
| while read start stop; do \
        gdb --batch --pid $1 -ex \
                 "dump memory $1-$start-$stop.dump 0x$start 0x$stop"; \
done
```

Dê permissão de execução para o arquivo sh.

```bash
chmod +x dump-memory.sh
```

E para executar, primeiro precisamos pegar o PID do processo em questão.

```bash
ps aux
```

Agora que já sabemos o PID, podemos executar nosso script.

```bash
./dump-memory.sh <pid>
```

Feito isso, note que no mesmo diretório do script, foram criados alguns arquivos com extensão `.dump`. Filtre esse arquivo com palavras-chave com um dos comandos abaixo:

```bash
grep -irn password
strings *.dump | grep -i password
```



### Mozilla Firefox

#### Despejo de Memória

```bash
# Aceita os termos contrato. Obrigatório fazer isso pela primeira vez que for usar
procdump64.exe -accepteula

# Realizando o Dump
procdump64.exe -ma <service_or_pid>
```

#### Lendo Histórico e Favoritos

```sql
sqlite3 /home/<user>/.mozilla/firefox/<profile.default>/places.sqlite

# Histórico
SELECT * FROM moz_places;

# Favoritos
SELECT * FROM moz_bookmarks;
```

#### E-mail utilizados em Formulários

```bash
sqlite3 /home/<user>/.mozilla/firefox/<profile.default>/formhistory.sqlite
SELECT DISTINCT(value) FROM moz_formhistory WHERE instr(`value`, '@') > 0;
```

#### Quantidade de Perfis

Cada  `[Profile<num>]` é um perfil. Note que em cada profile existe um campo chamado `Path` e no mesmo diretório de `profiles.ini`, deve ter um diretório com o mesmo nome do valor de `Path`. Caso não exista esse diretório, significa que o perfil foi excluído.

```bash
cat /home/<user>/.mozilla/firefox/profiles.ini
```

#### Verificando addons que foram adicionados

```bash
cat /home/<user>/.mozilla/firefox/<profile.default>/addons.json | jq
```

#### Capturando senhas com firepwd

Antes de executar o comando abaixo, certifique-se de os arquivos `login.json`, `key3db` ou `key4.db` estão no diretório correto.

```bash
python firepwd.py -d </path/directory/>
```

#### Capturando Detalhes de Senhas Salvas

```bash
cat /home/<user>/.mozilla/firefox/<profile.default>/logins.json | jq
```

#### Brute Force para Descobrir Senhas

```bash
for x in $(cat firefox_decrypt.py) ; do echo $x | python firefox_decrypt.py ; done
```

#### Cookies

```bash
sqlite3 /home/<user>/.mozilla/firefox/<profile.default>/places.sqlite

# Cookies de todos os sites
SELECT * FROM moz_cookies;

# Cookies de um determinado site
SELECT * FROM moz_cookies WHERE baseDomain = "<site.com>";

# Cookies acessados recentemente
SELECT * FROM moz_cookies WHERE (lastAccessed) in (SELECT MAX(lastAccessed) FROM moz_cookies);

# Retornando os cookie que não expiraram
SELECT * FROM moz_cookies WHERE expiry > <timestamp_now>;
```



### Google Chrome

Vendo Histórico de Sites

```bash
sqlite3 /home/<user>/.config/google-chrome/Default/History
SELECT * FROM urls;
```

URL de Arquivos baixados

```bash
sqlite3 /home/<user>/.config/google-chrome/Default/History
SELECT * FROM downloads_url_chains;
SELECT * FROM downloads;
```

Pesquisas realizadas no site do Google.

```bash
sqlite3 /home/<user>/.config/google-chrome/Default/History
SELECT * FROM keyword_search_terms;
```

Cookies

```bash
sqlite3 /home/<user>/.config/google-chrome/Default/Cookies
SELECT host_key FROM cookies WHERE expires_utc > <timestamp_now>;
```



### Lendo BMC

Carregue o arquivo no `BMC Viewer`, selecione o tamanho do `BPP` (tile) e clique em `LOAD`. \
**OBS.:** O tamanho do `tite` é uma questão de tentativa a erro



### Lendo Arquivos Apagados do Pendrive

Primeiro veja onde está o `Filesystem` do pendrive

```bash
df -h
```

Agora vamos ler o seu conteúdo

```bash
strings </dev/filesystem>
```



### USB

```bash
usbrip events violations <auth_file.json> --file <syslogfile>
```



### Imagens de Disco

#### img\_stat

Verificando os tipos de formato imagens que o `img_stat` trabalha.

```bash
img_stat -i list
```

Verificando o tipo de formato de uma determinada imagem de disco.

```bash
img_stat -t <file.img>
```

#### fsstat

Verificando o tipo de sistema de arquivos. Utilize o `img_stat` acima para pegar o tipo de formato de imagem.

```bash
fsstat -i <image_type> -t <file.img>
```

Buscando detalhes sobre o SO.

```bash
fsstat -i <image_type> -f <type_system_file> <file.img>
```

#### fls

Listando diretórios da imagem.

```bash
fls -i <image_type> -f <type_system_file> <file.img>
```

Agora que já sabemos os nomes dos diretórios, podemos listar os arquivos desse diretório utilizando o seu número de indicação. Vamos supor que na saída acima tenha retornado `d/d 17: photos` em uma das linhas, então 17 é o número que irá identificar o diretório `photos`.

```bash
fls -i <image_type> -f <type_system_file> <file.img> 17
```

Assim como os diretórios possuem um número para identificá-los, os arquivos também possui, então ler um arquivo utilizando seu número de identificação com `icat`, logo abaixo.

#### icat

Lendo arquivos

```bash
icat -i <image_type> -f <type_system_file> <file.img> <numero_identificao_arquivo>
```



#### Sites

```bash
# Blogs / Fóruns / Tutoriais
https://lifeinhex.com
https://resources.infosecinstitute.com
https://www.us-cert.gov/ncas/alerts

http://www.darknessgate.com
https://osint.link 
http://www.edrm.net
https://www.secjuice.com
http://cyberforensicator.com
https://www.darkreading.com/
https://www.dfir.training

# Despejo de memória com ProcDump
https://support.microsoft.com/pt-br/help/4294410/how-to-use-procdump-to-troubleshoot-virtual-machine-manager-service-vm  

# Protegendo a unidade de disco contra gravações. Utilize caso não tenha um hardware para isso
www.darknessgate.com/computer-forensic/computer-forensic-prerequisites/windows-os-write-protection-with-usb-devices

# Lista de assinaturas de arquivos
https://filesignatures.net

# firefox_decrypt
https://github.com/unode/firefox_decrypt

# firepwd
https://github.com/lclevy/firepwd

# Lista de extensões e seus formatos
https://fileinfo.com/filetypes/common

# Identifica tipos de arquivos (extensão) e o programa utilizado para executar
https://www.openwith.org

# Trabalha com Binários, Hexas, Decimais, etc
https://hexed.it

# Diversos tipos de assinaturas para determinar o tipo real do arquivo
https://www.garykessler.net/library/file_sigs.html
```
