
secator - o canivete suíço do pentester
<h1 align="center">
<img src="https://assets.kitploit.com/production/public/readmes/6300/dc9ae605fb3dd81cb606836bd853e391122c4acde19b8554c2db00fcaa28a6e5.png" width="400">
</h1>
<h4 align="center">O canivete suíço do pentester.</h4>
<p align="center">
<!-- <a href="https://goreportcard.com/report/github.com/freelabz/secator"><img src="https://goreportcard.com/badge/github.com/freelabz/secator"></a> -->
<img src="https://img.shields.io/badge/python-3.6-blue.svg">
<a href="https://github.com/freelabz/secator/releases"><img src="https://img.shields.io/github/release/freelabz/secator"></a>
<a href="https://github.com/freelabz/secator/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-BSL%201.1-brightgreen.svg"></a>
<a href="https://pypi.org/project/secator/"><img src="https://img.shields.io/pypi/dm/secator"></a>
<a href="https://twitter.com/freelabz"><img src="https://img.shields.io/twitter/follow/freelabz.svg?logo=twitter"></a>
<a href="https://youtube.com/@FreeLabz"><img src="https://img.shields.io/youtube/channel/subscribers/UCu-F6SpU0h2NP18zBBP04cw?style=social&label=Subscribe%20@FreeLabz"></a>
<a href="https://discord.gg/nyHjC2aTrq"><img src="https://img.shields.io/discord/695645237418131507.svg?logo=discord"></a>
</p>
<p align="center">
<a href="#features">Funcionalidades</a> •
<a href="#supported-commands">Comandos suportados</a> •
<a href="#install-secator">Instalação</a> •
<a href="#usage">Uso</a> •
<a href="https://docs.freelabz.com">Documentação</a> •
<a href="https://discord.gg/nyHjC2aTrq">Junte-se a nós no Discord!</a>
</p>
`secator` é um executor de tarefas e workflows usado para avaliações de segurança. Suporta dezenas de ferramentas de segurança conhecidas e é projetado para aumentar a produtividade de pentesters e pesquisadores de segurança.
# Funcionalidades

* **Lista curada de comandos**
* **Opções de entrada unificadas**
* **Esquema de saída unificado**
* **Uso via CLI e como biblioteca**
* **Opções distribuídas com Celery**
* **Complexidade desde tarefas simples até workflows complexos**
* **Personalizável**
## Ferramentas suportadas
`secator` integra as seguintes ferramentas:
<!-- START_TOOLS_TABLE -->
| Nome | Descrição | Categoria |
|-----------------------------------------------------------------|--------------------------------------------------------------------------------|-------------------|
| [arjun](https://github.com/s0md3v/Arjun) | Suite de descoberta de parâmetros HTTP. | `url/fuzz/params` |
| arp | Exibe o cache ARP do sistema. | `ip/recon` |
| [arpscan](https://github.com/royhills/arp-scan) | Escaneia um intervalo CIDR em busca de hosts ativos usando ARP. | `ip/recon` |
| [bbot](https://github.com/blacklanternsecurity/bbot) | Scanner multifuncional. | `vuln/scan` |
| [bup](https://github.com/laluka/bypass-url-parser) | Bypasser de 40X. | `url/bypass` |
| [cariddi](https://github.com/edoardottt/cariddi) | Rastreia endpoints, segredos, chaves de API, extensões, tokens... | `url/crawl` |
| [dalfox](https://github.com/hahwul/dalfox) | Poderosa ferramenta de escaneamento XSS de código aberto. | `url/fuzz` |
| [dirsearch](https://github.com/maurosoria/dirsearch) | Bruteforcer avançado de caminhos web. | `url/fuzz` |
| [dnsx](https://github.com/projectdiscovery/dnsx) | dnsx é um kit de ferramentas DNS rápido e multifuncional projetado para executar diversas bibliotecas retryabledns. | `dns/fuzz` |
| [feroxbuster](https://github.com/epi052/feroxbuster) | Ferramenta de descoberta de conteúdo recursiva, simples e rápida, escrita em Rust | `url/fuzz` |
| [ffuf](https://github.com/ffuf/ffuf) | Fuzzer web rápido escrito em Go. | `url/fuzz` |
| [fping](https://github.com/schweikert/fping) | Envia sondas ICMP echo para hosts de rede, semelhante ao ping, mas muito melhor. | `ip/recon` |
| [gau](https://github.com/lc/gau) | Busca URLs conhecidas do AlienVault's Open Threat Exchange, Wayback Machine, Common Crawl e URLScan. | `pattern/scan` |
| [getasn](https://github.com/Vulnpire/getasn) | Obtém informações de ASN a partir de endereço IP. | `ip/probe` |
| [gf](https://github.com/tomnomnom/gf) | Wrapper em torno do grep, para ajudar a procurar por coisas. | `pattern/scan` |
| [gitleaks](https://github.com/gitleaks/gitleaks) | Ferramenta para detectar segredos como senhas, chaves de API e tokens em repositórios git, arquivos e stdin. | `secret/scan` |
| [gospider](https://github.com/jaeles-project/gospider) | Spider web rápido escrito em Go. | `url/crawl` |
| [grype](https://github.com/anchore/grype) | Scanner de vulnerabilidades para imagens de contêiner e sistemas de arquivos. | `vuln/scan` |
| [h8mail](https://github.com/khast3x/h8mail) | Ferramenta de consulta de informações de e-mail e senhas. | `user/recon/email` |
| [httpx](https://github.com/projectdiscovery/httpx) | Kit de ferramentas HTTP rápido e multifuncional. | `url/probe` |
| [jswhois](https://github.com/jschauma/jswhois) | WHOIS em formato JSON | `domain/info` |
| [katana](https://github.com/projectdiscovery/katana) | Framework de crawling e spidering de próxima geração. | `url/crawl` |
| [maigret](https://github.com/soxoj/maigret) | Coleta um dossiê sobre uma pessoa pelo nome de usuário. | `user/recon/username` |
| [mapcidr](https://github.com/projectdiscovery/mapcidr) | Programa utilitário para realizar múltiplas operações em determinados intervalos de sub-rede/CIDR. | `ip/recon` |
| [msfconsole](https://docs.rapid7.com/metasploit/msf-overview/) | CLI para acessar e trabalhar com o Metasploit Framework. | `exploit/attack` |
| [naabu](https://github.com/projectdiscovery/naabu) | Ferramenta de escaneamento de portas escrita em Go. | `port/scan` |
| [nmap](https://github.com/nmap/nmap) | Network Mapper é um utilitário gratuito e de código aberto para descoberta de rede e auditoria de segurança. | `port/scan` |
| [nuclei](https://github.com/projectdiscovery/nuclei) | Scanner de vulnerabilidades rápido e personalizável baseado em DSL YAML simples. | `vuln/scan` |
| [search_vulns](https://github.com/ra1nb0rn/search_vulns) | Busca por vulnerabilidades conhecidas em software por nome de produto ou CPE. | `vuln/recon` |
| [searchsploit](https://gitlab.com/exploit-database/exploitdb) | Pesquisador de exploits baseado no ExploitDB. | `exploit/recon` |
| [sshaudit](https://github.com/jtesta/ssh-audit) | Auditoria de segurança do servidor e cliente SSH (banner, troca de chaves, criptografia, mac, compressão, etc). | `ssh/audit/security` |
| [subfinder](https://github.com/projectdiscovery/subfinder) | Ferramenta rápida de enumeração passiva de subdomínios. | `dns/recon` |
| [testssl](https://github.com/testssl/testssl.sh) | Scanner de segurança SSL/TLS, incluindo cifras, protocolos e falhas criptográficas. | `dns/recon/tls` |
| [trivy](https://github.com/aquasecurity/trivy) | Scanner de segurança abrangente e versátil. | `vuln/scan` |
| [trufflehog](https://github.com/trufflesecurity/trufflehog) | Ferramenta para encontrar segredos em repositórios git e sistemas de arquivos usando TruffleHog. | `secret/scan` |
| [urlfinder](https://github.com/projectdiscovery/urlfinder) | Encontra URLs em texto. | `pattern/scan` |
| [wafw00f](https://github.com/EnableSecurity/wafw00f) | Ferramenta de fingerprinting de Web Application Firewall. | `waf/scan` |
| [whois](https://github.com/mboot-github/WhoisDomain) | A ferramenta whois recupera informações de registro sobre nomes de domínio e endereços IP. | |
| [wpprobe](https://github.com/Chocapikk/wpprobe) | Ferramenta rápida de enumeração de plugins WordPress. | `vuln/scan/wordpress` |
| [wpscan](https://github.com/wpscanteam/wpscan) | Scanner de segurança WordPress. | `vuln/scan/wordpress` |
| [x8](https://github.com/Sh1Yo/x8) | Suite de descoberta de parâmetros ocultos escrita em Rust. | `url/fuzz/params` |
| [xurlfind3r](https://github.com/hueristiq/xurlfind3r) | Descobre URLs para um determinado domínio de forma simples, passiva e eficiente | `url/recon` |
<!-- END_TOOLS_TABLE -->
Sinta-se à vontade para solicitar novas ferramentas abrindo uma issue, mas por favor verifique se a ferramenta atende aos nossos critérios de seleção antes de fazê-lo. Se não atender, mas você ainda quiser integrá-la ao `secator`, pode conectá-la (veja o [guia de desenvolvimento](https://docs.freelabz.com/for-developers/writing-custom-tasks)).
## Instalando o secator
<details>
<summary>Bash</summary>
```sh
bash -c "$(curl -fsSL https://raw.githubusercontent.com/freelabz/secator/main/scripts/install_universal.sh)"
```
***Nota:** Suporta flags opcionais `--version`, `--templates`, `--addons` e `--tools` — execute o script com `--help` para detalhes.*
</details>
<details>
<summary>Pipx</summary>
```sh
pipx install secator
```
***Nota:** Certifique-se de ter o [pipx](https://pipx.pypa.io/stable/installation/) instalado.*
</details>
<details>
<summary>Pip</summary>
```sh
pip install secator
```
</details>
<details>
<summary>Docker</summary>
```sh
docker run -it --rm --net=host -v ~/.secator:/root/.secator freelabz/secator --help
```
A montagem de volume -v é necessária para salvar todos os relatórios do secator em sua máquina host, e --net=host é recomendado para conceder acesso total à rede do host.
Você pode criar um alias para este comando para executá-lo mais facilmente:
```sh
alias secator="docker run -it --rm --net=host -v ~/.secator:/root/.secator freelabz/secator"
```
Agora você pode executar o secator como se estivesse instalado na máquina:
```
secator --help
```
</details>
<details>
<summary>Docker Compose</summary>
```sh
git clone https://github.com/freelabz/secator
cd secator
docker-compose up -d
docker-compose exec secator-client secator --help
```
</details>
***Nota:*** Se você escolheu os métodos de instalação Docker ou Docker Compose, pode pular as próximas seções e ir diretamente para [Uso](#usage).
## Uso
```sh
secator --help
```
### Exemplos de uso
Para obter uma cheatsheet completa do que você pode fazer com `secator`, por favor leia a saída de:
```sh
secator cheatsheet
```
Execute uma tarefa de fuzzing (`ffuf`):
```sh
secator x ffuf http://testphp.vulnweb.com/FUZZ
```
Execute um workflow de crawl de URL:
```sh
secator w url_crawl http://testphp.vulnweb.com
```
Execute um scan de host:
```sh
secator s host mydomain.com
```
Para listar todas as tarefas / workflows / scans que você pode usar:
```sh
secator x --help
secator w --help
secator s --help
```
Para descobrir quais linguagens ou ferramentas estão instaladas em seu sistema (junto com suas versões):
```sh
secator health
```
### Consultas
`secator` permite consultar todos os relatórios anteriores com o comando `secator query` (ou `secator q`) e reutilizar consultas.
`secator q <arg>` resolve seu argumento em três etapas:
1. **Nome de consulta salva** — se `<arg>` corresponder a uma consulta salva, sua expressão é usada.
2. **Expressão de filtro** — se `<arg>` parecer um filtro (contém `==`, `<`, `~=`, `&&`, …), ele é passado diretamente.
3. **Linguagem natural** — caso contrário, é enviado para o chat de IA (`secator x ai --mode chat`).
```sh
# Execute expressões brutas diretamente
secator q "vulnerability.tags ~= 'kev' && vulnerability.confidence == 'high'" # vulns KEV (Vulnerabilidades Conhecidas e Exploradas) + alta confiança
secator q "vulnerability.severity == 'critical' && vulnerability.tags ~= 'exploitable' && vulnerability.confidence == 'high'" # vulns críticas + exploráveis + alta confiança
secator q "vulnerability.severity_nb < 2 && vulnerability.confidence == 'high'" # vulns severidade > alta + alta confiança
secator q "exploit.cves ~= 'CVE-2021-44521'" # exploits encontrados para vuln CVE-2021-44521
secator q "port" -f "{host} {port} {service_name}" | cut -d " " -f2 | sort | uniq -c | sort -nr | head -n 15 # top 15 portas
secator q "port" -f "{host} {port} {service_name}" | cut -d " " -f3,4,5,6 | awk 'NF > 0' | sort | uniq -c | sort -nr | head -n 15 # top 15 serviços
secator q "technology" -f "{product}/{version}" | sort | uniq -c | sort -nr | head -n 15 # top 15 tecnologias
secator q "port.state == 'open'" -rf scans/23,tasks/10 # apenas resultados do scan 23 e tarefa 10
# Salve uma consulta e execute-a
secator c set queries.critical_vulns "vulnerability.severity_nb < 2" # salvar uma consulta
secator c get queries # listar consultas salvas
secator q critical_vulns -f "{vulnerability.matched_at}" -ws secator.cloud # executar consulta salva no workspace + extrair alvos
# Faça uma pergunta em linguagem natural (executa a tarefa de chat de IA)
secator q "Analyze my workspace data"
```
`secator q` aceita as mesmas opções que `secator r show` (`-o/--output`,
`-d/--time-delta`, `-f/--format`, `-w/-ws/--workspace`, `--driver`, `--dedupe`),
além de `-rf/--report-filter` para limitar a consulta a caminhos específicos de runners (equivalente ao argumento `REPORT_QUERY` do `r show`). No caminho do chat de IA, apenas o workspace e o prompt são usados.
### Completamento de shell
`secator` suporta completamento de shell para bash, zsh e fish. Isso fornece autocompletar para:
- Nomes de tarefas (ex.: `nmap`, `httpx`, `nuclei`)
- Nomes de workflows (ex.: `url_crawl`, `subdomain_recon`)
- Nomes de scans (ex.: `host`, `domain`, `network`)
- Opções de CLI como `--profiles`, `--workspace`, `--driver`, `--output`
Para instalar o completamento de shell:
**Bash:**
```sh
secator util completion --shell bash --install
source ~/.bashrc
```
**Zsh:**
```sh
secator util completion --shell zsh --install
source ~/.zshrc
```
**Fish:**
```sh
secator util completion --shell fish --install
```
Após a instalação, você pode usar o completamento com tab:
```sh
secator x n<TAB> # completa para nmap, naabu, nuclei, etc.
secator w url_<TAB> # completa para url_crawl, url_fuzz, url_dirsearch, etc.
secator x nmap --profiles ag<TAB> # completa para aggressive
```
## Instalando ferramentas
`secator` instala automaticamente as ferramentas quando você as usa pela primeira vez.
Você pode evitar esse comportamento definindo `security.autoinstall_commands` como `false` usando `secator config set security.autoinstall_commands false` ou `SECATOR_SECURITY_AUTOINSTALL_COMMANDS=0`.
Para instalar todas as ferramentas, você ainda pode executar:
```sh
secator install tools
```
## Instalando addons
Addons estão disponíveis para `secator`, por favor verifique [nossa documentação](https://docs.freelabz.com/getting-started/installation#installing-addons-optional) para detalhes.
Por exemplo, usando o addon `mongodb` permite enviar resultados de runners para o MongoDB.
## Saiba mais
Para se aprofundar no `secator`, confira:
* Nossa [documentação](https://docs.freelabz.com) completa
* Nosso [vídeo tutorial](https://youtu.be/-JmUTNWQDTQ?si=qpAClDWMXo2zwUK7) de introdução
* Nosso [artigo no Medium](https://medium.com/p/09333f3d3682)
* Siga-nos nas redes sociais: [@freelabz](https://twitter.com/freelabz) no Twitter e [@FreeLabz](https://youtube.com/@FreeLabz) no YouTube
## Estatísticas
<a href="https://star-history.com/#freelabz/secator&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=freelabz/secator&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=freelabz/secator&type=Date" />
<img alt="Gráfico de Histórico de Estrelas" src="https://api.star-history.com/svg?repos=freelabz/secator&type=Date" />
</picture>
</a>