
secator - il coltellino svizzero del pentester
<h1 align="center">
<img src="https://assets.kitploit.com/production/public/readmes/6300/dc9ae605fb3dd81cb606836bd853e391122c4acde19b8554c2db00fcaa28a6e5.png" width="400">
</h1>
<h4 align="center">Il coltellino svizzero del 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=Iscriviti%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">Funzionalità</a> •
<a href="#supported-commands">Comandi supportati</a> •
<a href="#install-secator">Installazione</a> •
<a href="#usage">Utilizzo</a> •
<a href="https://docs.freelabz.com">Documentazione</a> •
<a href="https://discord.gg/nyHjC2aTrq">Unisciti a noi su Discord!</a>
</p>
`secator` è un esecutore di attività e flussi di lavoro utilizzato per valutazioni di sicurezza. Supporta decine di strumenti di sicurezza noti ed è progettato per migliorare la produttività di pentester e ricercatori di sicurezza.
# Funzionalità

* **Elenco curato di comandi**
* **Opzioni di input unificate**
* **Schema di output unificato**
* **Utilizzo da CLI e come libreria**
* **Opzioni distribuite con Celery**
* **Complessità da semplici attività a flussi di lavoro complessi**
* **Personalizzabile**
## Strumenti supportati
`secator` integra i seguenti strumenti:
<!-- START_TOOLS_TABLE -->
| Nome | Descrizione | Categoria |
|-----------------------------------------------------------------|----------------------------------------------------------------------------------|-------------------|
| [arjun](https://github.com/s0md3v/Arjun) | Suite per scoperta di parametri HTTP. | `url/fuzz/params` |
| arp | Mostra la cache ARP di sistema. | `ip/recon` |
| [arpscan](https://github.com/royhills/arp-scan) | Scansiona un intervallo CIDR per host attivi usando ARP. | `ip/recon` |
| [bbot](https://github.com/blacklanternsecurity/bbot) | Scanner multiuso. | `vuln/scan` |
| [bup](https://github.com/laluka/bypass-url-parser) | Bypasser 40X. | `url/bypass` |
| [cariddi](https://github.com/edoardottt/cariddi) | Crawler di endpoint, segreti, chiavi API, estensioni, token... | `url/crawl` |
| [dalfox](https://github.com/hahwul/dalfox) | Potente strumento open source per scanning XSS. | `url/fuzz` |
| [dirsearch](https://github.com/maurosoria/dirsearch) | Brute-forcer avanzato di percorsi web. | `url/fuzz` |
| [dnsx](https://github.com/projectdiscovery/dnsx) | dnsx è un toolkit DNS veloce e multiuso progettato per eseguire varie librerie retryabledns. | `dns/fuzz` |
| [feroxbuster](https://github.com/epi052/feroxbuster) | Strumento di scoperta dei contenuti semplice, veloce e ricorsivo scritto in Rust | `url/fuzz` |
| [ffuf](https://github.com/ffuf/ffuf) | Fuzzer web veloce scritto in Go. | `url/fuzz` |
| [fping](https://github.com/schweikert/fping) | Invia sonde ICMP echo agli host di rete, simile a ping, ma molto meglio. | `ip/recon` |
| [gau](https://github.com/lc/gau) | Recupera URL noti da AlienVault's Open Threat Exchange, Wayback Machine, Common Crawl e URLScan. | `pattern/scan` |
| [getasn](https://github.com/Vulnpire/getasn) | Ottiene informazioni ASN da un indirizzo IP. | `ip/probe` |
| [gf](https://github.com/tomnomnom/gf) | Wrapper attorno a grep, per aiutare a cercare cose. | `pattern/scan` |
| [gitleaks](https://github.com/gitleaks/gitleaks) | Strumento per rilevare segreti come password, chiavi API e token in repo git, file e stdin. | `secret/scan` |
| [gospider](https://github.com/jaeles-project/gospider) | Spider web veloce scritto in Go. | `url/crawl` |
| [grype](https://github.com/anchore/grype) | Scanner di vulnerabilità per immagini contenitore e filesystem. | `vuln/scan` |
| [h8mail](https://github.com/khast3x/h8mail) | Strumento di ricerca informazioni email e password. | `user/recon/email` |
| [httpx](https://github.com/projectdiscovery/httpx) | Toolkit HTTP veloce e multiuso. | `url/probe` |
| [jswhois](https://github.com/jschauma/jswhois) | WHOIS in formato JSON | `domain/info` |
| [katana](https://github.com/projectdiscovery/katana) | Framework di crawling e spidering di nuova generazione. | `url/crawl` |
| [maigret](https://github.com/soxoj/maigret) | Raccoglie un dossier su una persona tramite il nome utente. | `user/recon/username` |
| [mapcidr](https://github.com/projectdiscovery/mapcidr) | Programma di utilità per eseguire più operazioni su determinati intervalli subnet/cidr. | `ip/recon` |
| [msfconsole](https://docs.rapid7.com/metasploit/msf-overview/) | CLI per accedere e lavorare con Metasploit Framework. | `exploit/attack` |
| [naabu](https://github.com/projectdiscovery/naabu) | Strumento di scansione delle porte scritto in Go. | `port/scan` |
| [nmap](https://github.com/nmap/nmap) | Network Mapper è un'utilità gratuita e open source per la scoperta di rete e audit di sicurezza. | `port/scan` |
| [nuclei](https://github.com/projectdiscovery/nuclei) | Scanner di vulnerabilità veloce e personalizzabile basato su un semplice DSL YAML. | `vuln/scan` |
| [search_vulns](https://github.com/ra1nb0rn/search_vulns) | Cerca vulnerabilità note nel software per nome prodotto o CPE. | `vuln/recon` |
| [searchsploit](https://gitlab.com/exploit-database/exploitdb) | Cercatore di exploit basato su ExploitDB. | `exploit/recon` |
| [sshaudit](https://github.com/jtesta/ssh-audit) | Audit di sicurezza del server e client SSH (banner, scambio chiavi, crittografia, mac, compressione, ecc.). | `ssh/audit/security` |
| [subfinder](https://github.com/projectdiscovery/subfinder) | Strumento veloce di enumerazione passiva dei sottodomini. | `dns/recon` |
| [testssl](https://github.com/testssl/testssl.sh) | Scanner di sicurezza SSL/TLS, inclusi cifrari, protocolli e difetti crittografici. | `dns/recon/tls` |
| [trivy](https://github.com/aquasecurity/trivy) | Scanner di sicurezza completo e versatile. | `vuln/scan` |
| [trufflehog](https://github.com/trufflesecurity/trufflehog) | Strumento per trovare segreti in repository git e filesystem utilizzando TruffleHog. | `secret/scan` |
| [urlfinder](https://github.com/projectdiscovery/urlfinder) | Trova URL nel testo. | `pattern/scan` |
| [wafw00f](https://github.com/EnableSecurity/wafw00f) | Strumento di fingerprinting per Web Application Firewall. | `waf/scan` |
| [whois](https://github.com/mboot-github/WhoisDomain) | Lo strumento whois recupera informazioni di registrazione su nomi di dominio e indirizzi IP. | |
| [wpprobe](https://github.com/Chocapikk/wpprobe) | Strumento veloce di enumerazione dei plugin WordPress. | `vuln/scan/wordpress` |
| [wpscan](https://github.com/wpscanteam/wpscan) | Scanner di sicurezza WordPress. | `vuln/scan/wordpress` |
| [x8](https://github.com/Sh1Yo/x8) | Suite di scoperta di parametri nascosti scritta in Rust. | `url/fuzz/params` |
| [xurlfind3r](https://github.com/hueristiq/xurlfind3r) | Scopre URL per un determinato dominio in modo semplice, passivo ed efficiente | `url/recon` |
<!-- END_TOOLS_TABLE -->
Sentiti libero di richiedere nuovi strumenti da aggiungere aprendo un issue, ma controlla prima che lo strumento sia conforme ai nostri criteri di selezione. Se non lo è ma desideri comunque integrarlo in `secator`, puoi collegarlo (vedi la [guida per sviluppatori](https://docs.freelabz.com/for-developers/writing-custom-tasks)).
## Installazione di secator
<details>
<summary>Bash</summary>
```sh
bash -c "$(curl -fsSL https://raw.githubusercontent.com/freelabz/secator/main/scripts/install_universal.sh)"
```
***Nota:** Supporta flag opzionali `--version`, `--templates`, `--addons` e `--tools` — esegui lo script con `--help` per i dettagli.*
</details>
<details>
<summary>Pipx</summary>
```sh
pipx install secator
```
***Nota:** Assicurati di avere [pipx](https://pipx.pypa.io/stable/installation/) installato.*
</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
```
Il mount del volume -v è necessario per salvare tutti i report di secator sulla tua macchina host, e --net=host è raccomandato per concedere accesso completo alla rete host.
Puoi creare un alias per questo comando per eseguirlo più facilmente:
```sh
alias secator="docker run -it --rm --net=host -v ~/.secator:/root/.secator freelabz/secator"
```
Ora puoi eseguire secator come se fosse installato direttamente:
```
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 hai scelto i metodi di installazione Docker o Docker Compose, puoi saltare le prossime sezioni e andare direttamente a [Utilizzo](#usage).
## Utilizzo
```sh
secator --help
```
### Esempi di utilizzo
Per ottenere un cheat sheet completo di cosa puoi fare con `secator`, leggi l'output di:
```sh
secator cheatsheet
```
Esegui un'attività di fuzzing (`ffuf`):
```sh
secator x ffuf http://testphp.vulnweb.com/FUZZ
```
Esegui un flusso di lavoro di crawling URL:
```sh
secator w url_crawl http://testphp.vulnweb.com
```
Esegui una scansione host:
```sh
secator s host mydomain.com
```
Per elencare tutte le attività / flussi di lavoro / scansioni che puoi utilizzare:
```sh
secator x --help
secator w --help
secator s --help
```
Per scoprire quali linguaggi o strumenti sono installati sul tuo sistema (insieme alla loro versione):
```sh
secator health
```
### Query
`secator` ti consente di interrogare tutti i report precedenti con il comando `secator query` (o `secator q`) e di riutilizzare le query.
`secator q <arg>` risolve il suo argomento in tre passaggi:
1. **Nome della query salvata** — se `<arg>` corrisponde a una query salvata, viene utilizzata la sua espressione.
2. **Espressione di filtro** — se `<arg>` assomiglia a un filtro (contiene `==`, `<`, `~=`, `&&`, …), viene passato direttamente.
3. **Linguaggio naturale** — altrimenti viene inviato alla chat AI (`secator x ai --mode chat`).
```sh
# Esegui espressioni direttamente
secator q "vulnerability.tags ~= 'kev' && vulnerability.confidence == 'high'" # vuln KEV (Vulnerabilità note e sfruttate) + alta confidenza
secator q "vulnerability.severity == 'critical' && vulnerability.tags ~= 'exploitable' && vulnerability.confidence == 'high'" # vuln critiche + sfruttabili + alta confidenza
secator q "vulnerability.severity_nb < 2 && vulnerability.confidence == 'high'" # vuln con gravità > alta + alta confidenza
secator q "exploit.cves ~= 'CVE-2021-44521'" # exploit trovati per la vuln CVE-2021-44521
secator q "port" -f "{host} {port} {service_name}" | cut -d " " -f2 | sort | uniq -c | sort -nr | head -n 15 # prime 15 porte
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 # primi 15 servizi
secator q "technology" -f "{product}/{version}" | sort | uniq -c | sort -nr | head -n 15 # prime 15 tecnologie
secator q "port.state == 'open'" -rf scans/23,tasks/10 # solo risultati dalla scansione 23 e attività 10
# Salva una query ed eseguila
secator c set queries.critical_vulns "vulnerability.severity_nb < 2" # salva una query
secator c get queries # elenca query salvate
secator q critical_vulns -f "{vulnerability.matched_at}" -ws secator.cloud # esegui una query salvata su workspace + estrai target
# Fai una domanda in linguaggio naturale (esegue l'attività di chat AI)
secator q "Analizza i dati del mio workspace"
```
`secator q` accetta le stesse opzioni di `secator r show` (`-o/--output`,
`-d/--time-delta`, `-f/--format`, `-w/-ws/--workspace`, `--driver`, `--dedupe`),
più `-rf/--report-filter` per limitare la query a percorsi specifici del runner
(l'equivalente dell'argomento `REPORT_QUERY` di `r show`). Nel percorso della chat AI vengono utilizzati solo il workspace e il prompt.
### Completamento shell
`secator` supporta il completamento shell per bash, zsh e fish. Fornisce il completamento automatico per:
- Nomi di attività (es. `nmap`, `httpx`, `nuclei`)
- Nomi di flussi di lavoro (es. `url_crawl`, `subdomain_recon`)
- Nomi di scansioni (es. `host`, `domain`, `network`)
- Opzioni CLI come `--profiles`, `--workspace`, `--driver`, `--output`
Per installare il completamento 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
```
Dopo l'installazione, puoi usare il completamento con tab:
```sh
secator x n<TAB> # completa con nmap, naabu, nuclei, ecc.
secator w url_<TAB> # completa con url_crawl, url_fuzz, url_dirsearch, ecc.
secator x nmap --profiles ag<TAB> # completa con aggressive
```
## Installazione degli strumenti
`secator` installa automaticamente gli strumenti quando li usi per la prima volta.
Puoi impedire questo comportamento impostando `security.autoinstall_commands` su `false` usando `secator config set security.autoinstall_commands false` o `SECATOR_SECURITY_AUTOINSTALL_COMMANDS=0`.
Per installare tutti gli strumenti, puoi comunque eseguire:
```sh
secator install tools
```
## Installazione degli addon
Sono disponibili addon per `secator`, consulta la [nostra documentazione](https://docs.freelabz.com/getting-started/installation#installing-addons-optional) per i dettagli.
Ad esempio, usando l'addon `mongodb` puoi inviare i risultati del runner a MongoDB.
## Per saperne di più
Per approfondire `secator`, dai un'occhiata a:
* La nostra documentazione completa [documentation](https://docs.freelabz.com)
* Il nostro video tutorial introduttivo [tutorial video](https://youtu.be/-JmUTNWQDTQ?si=qpAClDWMXo2zwUK7)
* Il nostro articolo su [Medium](https://medium.com/p/09333f3d3682)
* Seguici sui social media: [@freelabz](https://twitter.com/freelabz) su Twitter e [@FreeLabz](https://youtube.com/@FreeLabz) su YouTube
## Statistiche
<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="Grafico della cronologia delle stelle" src="https://api.star-history.com/svg?repos=freelabz/secator&type=Date" />
</picture>
</a>