Metadata-Version: 2.4
Name: forensic-cli
Version: 1.4.1
Summary: DevKit Forense - CLI para análise de navegadores e rede
Home-page: https://github.com/ErickG123/devkit_forense
Author: Erick Gabriel dos Santos Alves
Author-email: Erick Gabriel dos Santos Alves <erickgabrielalves0@gmail.com>
License: MIT
Project-URL: Changelog, https://erickg123.github.io/devkit_forense/
Project-URL: Source, https://github.com/ErickG123/devkit_forense
Project-URL: Issues, https://github.com/ErickG123/devkit_forense/issues
Keywords: forensics,cli,network,browser
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: LICENSE-GPL
Requires-Dist: altgraph==0.17.4
Requires-Dist: annotated-types==0.7.0
Requires-Dist: anyio==4.10.0
Requires-Dist: attrs==25.3.0
Requires-Dist: certifi==2025.8.3
Requires-Dist: cffi==1.17.1
Requires-Dist: charset-normalizer==3.4.3
Requires-Dist: click==8.2.1
Requires-Dist: colorama==0.4.6
Requires-Dist: contourpy==1.3.3
Requires-Dist: cryptography==45.0.6
Requires-Dist: cycler==0.12.1
Requires-Dist: defusedxml==0.7.1
Requires-Dist: dnspython==2.7.0
Requires-Dist: docopt==0.6.2
Requires-Dist: docutils==0.22
Requires-Dist: fonttools==4.59.1
Requires-Dist: greenlet==3.2.4
Requires-Dist: h11==0.16.0
Requires-Dist: id==1.5.0
Requires-Dist: idna==3.10
Requires-Dist: ipwhois==1.3.0
Requires-Dist: jaraco.classes==3.4.0
Requires-Dist: jaraco.context==6.0.1
Requires-Dist: jaraco.functools==4.3.0
Requires-Dist: keyring==25.6.0
Requires-Dist: kiwisolver==1.4.9
Requires-Dist: markdown-it-py==4.0.0
Requires-Dist: matplotlib==3.10.5
Requires-Dist: mdurl==0.1.2
Requires-Dist: more-itertools==10.7.0
Requires-Dist: nh3==0.3.0
Requires-Dist: numpy==2.3.2
Requires-Dist: outcome==1.3.0.post0
Requires-Dist: packaging==25.0
Requires-Dist: pandas==2.3.2
Requires-Dist: pefile==2023.2.7
Requires-Dist: pillow==11.3.0
Requires-Dist: pyasn1==0.6.1
Requires-Dist: pycparser==2.22
Requires-Dist: pycryptodome==3.23.0
Requires-Dist: pydantic==2.11.7
Requires-Dist: pydantic_core==2.33.2
Requires-Dist: pyinstaller==6.15.0
Requires-Dist: pyinstaller-hooks-contrib==2025.8
Requires-Dist: pyparsing==3.2.3
Requires-Dist: pysnmp==7.1.21
Requires-Dist: PySocks==1.7.1
Requires-Dist: pyspnego==0.11.2
Requires-Dist: python-dateutil==2.9.0.post0
Requires-Dist: pytz==2025.2
Requires-Dist: pywin32==311
Requires-Dist: pywin32-ctypes==0.2.3
Requires-Dist: requests==2.32.5
Requires-Dist: requests-toolbelt==1.0.0
Requires-Dist: rfc3986==2.0.0
Requires-Dist: rich==14.1.0
Requires-Dist: scapy==2.6.1
Requires-Dist: selenium==4.35.0
Requires-Dist: six==1.17.0
Requires-Dist: smbprotocol==1.15.0
Requires-Dist: sniffio==1.3.1
Requires-Dist: sortedcontainers==2.4.0
Requires-Dist: starlette==0.47.2
Requires-Dist: trio==0.30.0
Requires-Dist: trio-websocket==0.12.2
Requires-Dist: typer==0.16.1
Requires-Dist: typing-inspection==0.4.1
Requires-Dist: typing_extensions==4.14.1
Requires-Dist: tzdata==2025.2
Requires-Dist: urllib3==2.5.0
Requires-Dist: websocket-client==1.8.0
Requires-Dist: wsproto==1.2.0
Requires-Dist: yarg==0.1.10
Dynamic: author
Dynamic: home-page
Dynamic: license-file
Dynamic: requires-python

# DevKit Forense – Ferramenta Educacional de Perícia Digital

![Python](https://img.shields.io/badge/Python-3.11-blue.svg) ![FastAPI](https://img.shields.io/badge/FastAPI-0.100-green.svg) ![Typer](https://img.shields.io/badge/Typer-0.7-orange.svg) ![SQLite](https://img.shields.io/badge/SQLite-3.41.2-lightgrey.svg)

## Sumário
1. [Introdução](#introdução)  
2. [Estrutura do Projeto](#estrutura-do-projeto)  
3. [Módulos Forenses](#módulos-forenses)  
   - [Network](#network)
   - [Browser](#browser)
   - [Email](#email)
4. [Tecnologias Utilizadas](#tecnologias-utilizadas)  
5. [Planejamento e Futuras Extensões](#planejamento-e-futuras-extensões)  
6. [Instalação](#instalação)  
7. [Exemplos de Execução](#exemplos-de-execução)  

---

## 1. Introdução

**Objetivo:**  
O DevKit Forense é uma suíte de ferramentas educacionais para análise de evidências digitais, projetada para auxiliar no ensino de perícia digital. Combina **CLI**, **API** e **aplicações de apoio**, tornando o uso mais interativo, visual e didático.  

**Escopo:**  
- Execução de análises forenses em browsers, arquivos, emails e redes.  
- Visualização interativa de resultados.  
- Geração de relatórios automáticos.  
- Assistente interativo (Wizard) para guiar o usuário em tarefas complexas.  

**Público-alvo:**  
- Estudantes e professores de Segurança da Informação e Perícia Digital.  

---

## 2. Estrutura do Projeto

O DevKit está organizado em três camadas principais:

1. **CLI** – Executa os módulos forenses pelo terminal.  
2. **API** – Interface programática para execução de módulos e integração com dashboards.  
3. **Core** – Contém a lógica central, classes, funções e utilitários compartilhados pelos módulos.  

---

## 3. Módulos Forenses

### Network
| Função | Descrição |
|--------|-----------|
| `ipinfo` | Consulta informações detalhadas sobre um endereço IP. |
| `arpscan` | Varre a rede para identificar dispositivos conectados via ARP. |
| `dnscan` | Realiza levantamento de informações de DNS de domínios e hosts. |
| `snmpscan` | Realiza varredura SNMP em dispositivos de rede. |
| `smbscan` | Verifica serviços SMB ativos em um host . |
| `sweep` | Verifica quais hosts estão ativos em uma faixa de IP. |
| `traceroute` | Traça o caminho percorrido por pacotes até um host alvo. |
| `map` | Gera mapa visual de hosts e conexões detectadas. |
| `scan` | Identifica portas abertas e serviços ativos em hosts. |
| `fingerprinting` | Identifica sistemas, serviços e versões na rede. |

### Browser
| Função | Descrição |
|--------|-----------|
| `logins` | Extração de credenciais armazenadas no Chrome e Edge. |
| `favscreen` | Captura e organiza screenshots de sites favoritos ou acessados. |
| `words` | Identifica palavras mais comuns em histórico de navegação e downloads. |
| `history` | Coleta histórico de navegação de diferentes browsers. |
| `patterns` | Identifica padrões suspeitos em histórico de navegação ou downloads. |
| `downloads` | Lista arquivos baixados pelos usuários. |

### Email
| Função | Descrição |
|--------|-----------|
| `email_parser` | Extrai e organiza informações de emails. |
| `header_analysis` | Analisa cabeçalhos para identificar origem, roteamento e possíveis fraudes. |

---

## 4. Tecnologias Utilizadas

- **Python** – Linguagem principal do projeto.  
- **FastAPI** – API para integração e execução de módulos.  
- **Typer** – CLI estruturada e interativa.  
- **SQLite** – Banco de dados local leve.  

---

## 5. Planejamento e Futuras Extensões

| Aplicação / Módulo | Objetivo | Possíveis Extensões |
|-------------------|----------|------------------|
| Dashboard | Painel central para visualização e execução de módulos | Filtros avançados, alertas em tempo real, integração direta com relatórios |
| Visualizadores | Transformar dados da CLI em gráficos, mapas e tabelas | Timeline interativa, heatmaps de rede, gráficos de comportamento de usuários |
| Wizard | Guiar o usuário passo a passo | Templates de análise rápida, integração automática com módulos de email e data, relatórios PDF/HTML |
| Novos módulos CLI | Expansão da análise forense | Logs de sistemas, recuperação de dispositivos móveis, análise de mídia, detecção de malware, integração com threat intelligence |
| Ferramentas auxiliares | Suporte a módulos existentes e novos | Exportação avançada de relatórios, dashboards customizáveis, notificações em tempo real |

---

## 6. Instalação
A forma mais simples de instalar a CLI é utilizando o **PyPI**.  
Execute o seguinte comando no terminal:

```bash
pip install forensic-cli
```

## 7. Exemplos de Execução da CLI

### Comandos de Rede (`network`)

Utilitários para escanear, mapear e analisar redes e dispositivos.

### `map`
Mapeia dispositivos ativos na rede e salva os resultados em arquivos JSON e CSV.

**Sintaxe:**
```bash
forensic-cli network map --network <RANGE_IP> [OPÇÕES]
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --network | -n | Range de IPs da rede. Ex: 192.168.1.1-254 | Obrigatório |
| --ports | -p | Portas para escanear em cada host. | 21,22,80,443,445,8080 |
| --output | -o | Diretório para salvar os resultados. | ./output |

### `scan`
Realiza um scan de portas em um host específico e exibe os resultados em uma tabela.

**Sintaxe:**
```bash
forensic-cli network scan --target <ALVO> [OPÇÕES]
```

Opções:
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --target | -t | Alvo do scan (IP ou hostname). | Obrigatório |
| --ports | -p | Portas para escanear. Ex: '22,80,100-200'. | 21,22,53,80,443,445,3306,8080 |

### `sweep`
Verifica hosts ativos em um range de IPs via ping.

**Sintaxe:**
```bash
forensic-cli network sweep --network <RANGE_IP>
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --network | N/A | Range de IPs da rede. Ex: 192.168.1.1-254 | Obrigatório |

### `fingerprinting`
Detecta o sistema operacional, serviços e portas abertas em um host.

**Sintaxe:**
```bash
forensic-cli network fingerprinting --ip <IP_HOST>
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --ip | N/A | Endereço IP do host. Ex: 192.168.0.10 | Obrigatório |

### `traceroute`
Exibe o caminho (hops) e a latência (RTT) até um domínio ou host.

**Sintaxe:**
```bash
forensic-cli network traceroute --domain <DOMINIO>
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --domain | N/A | Informe um domínio ou hostname. Ex: google.com | Obrigatório |

### `arpscan`
Realiza uma varredura ARP para identificar dispositivos na rede local.

**Sintaxe:**
```bash
forensic-cli network arpscan --network <RANGE_IP>
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --network | N/A | Range de IPs da rede. Ex: 192.168.1.1-254 | Obrigatório |

### `dnscan`
Realiza reconhecimento DNS em um domínio ou IP, com opção de buscar subdomínios.

**Sintaxe:**
```bash
forensic-cli network dnscan --target <ALVO> [OPÇÕES]
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --target | N/A | Domínio ou IP alvo. Ex: exemplo.com | Obrigatório |
| --output-dir | N/A | Diretório para salvar os resultados (JSON e CSV). | Nenhum |
| --with-subdomains | N/A | Tenta descobrir subdomínios comuns. | False |

### `ipinfo`
Obtém informações detalhadas (geolocalização, ASN) sobre um IP ou hostname.

**Sintaxe:**
```bash
forensic-cli network ipinfo --ip <IP_HOST>
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --ip | N/A | IP ou hostname do destino. Ex: 8.8.8.8 | Obrigatório |

### `smbscan`
Verifica serviços SMB (Server Message Block) ativos em um host.

**Sintaxe:**
```bash
forensic-cli network smbscan --ip <IP_HOST>
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --ip | N/A | IP ou hostname do destino. Ex: 192.168.0.10 | Obrigatório |

### `snmpscan`
Executa uma varredura SNMP (Simple Network Management Protocol) para obter informações de um dispositivo.

**Sintaxe:**
```bash
forensic-cli network snmpscan --ip <IP_HOST>
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --ip | N/A | IP ou hostname do destino. Ex: 192.168.0.10 | Obrigatório |

### Comandos de Navegador (`browser`)
Ferramentas para extrair e analisar artefatos de navegadores web como Chrome, Edge e Firefox.

### `history`
Extrai o histórico de navegação dos navegadores instalados.

**Sintaxe:**
```bash
forensic-cli browser history [OPÇÕES]
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --chrome | N/A | Extrair histórico do Google Chrome. | False |
| --edge | N/A | Extrair histórico do Microsoft Edge. | False |
| --firefox | N/A | Extrair histórico do Mozilla Firefox. | False |
| --all | N/A | Extrair de todos os navegadores suportados. | False |

### `downloads`
Extrai o histórico de downloads dos navegadores.

**Sintaxe:**
```bash
forensic-cli browser downloads [OPÇÕES]
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --output-dir | -o | Diretório para salvar os artefatos. | artefatos/downloads |
| --chrome | N/A | Extrair downloads do Chrome. | False |
| --edge | N/A | Extrair downloads do Edge. | False |
| --firefox | N/A | Extrair downloads do Firefox. | False |
| --all | N/A | Extrair de todos os navegadores. | False |

### `favscreen`
Processa arquivos de histórico (.json), captura favicons e screenshots das URLs encontradas.

**Sintaxe:**
```bash
forensic-cli browser favscreen [OPÇÕES]
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --input-dir | -i | Diretório contendo os JSONs de histórico. | artefatos/historico |
| --output-dir | -o | Diretório para salvar favicons e prints. | artefatos/favscreen |

### `logins`
Extrai senhas e logins salvos no Chrome e Edge.

**Sintaxe:**
```bash
forensic-cli browser logins [OPÇÕES]
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --output-dir | -o | Diretório para salvar os logins em JSON. | artefatos/logins |
| --chrome | N/A | Extrair logins do Chrome. | False |
| --edge | N/A | Extrair logins do Edge. | False |
| --all | N/A | Extrair de todos os navegadores. | False |

### `patterns`
Analisa arquivos de histórico (.json) para encontrar padrões de navegação e gera gráficos.

**Sintaxe:**
```bash
forensic-cli browser patterns [OPÇÕES]
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --input-dir | -i | Diretório com os JSONs de histórico. | artefatos/historico |
| --output-dir | -o | Diretório para salvar gráficos e relatórios. | artefatos/patterns_output |

### `words`
Extrai as palavras mais pesquisadas do histórico do navegador.

**Sintaxe:**
```bash
forensic-cli browser words [OPÇÕES]
```

**Opções:**
| Opção | Atalho | Descrição | Padrão |
| :--- | :---: | :--- | :--- |
| --output-dir | -o | Diretório para salvar o JSON com as palavras. | artefatos/words_output |
| --chrome | N/A | Extrair palavras do Chrome. | True |
