
secator - das Schweizer Taschenmesser des Pentesters
<h1 align="center">
<img src="https://assets.kitploit.com/production/public/readmes/6300/dc9ae605fb3dd81cb606836bd853e391122c4acde19b8554c2db00fcaa28a6e5.png" width="400">
</h1>
<h4 align="center">Das Schweizer Taschenmesser für 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">Funktionen</a> •
<a href="#supported-commands">Unterstützte Befehle</a> •
<a href="#install-secator">Installation</a> •
<a href="#usage">Verwendung</a> •
<a href="https://docs.freelabz.com">Dokumentation</a> •
<a href="https://discord.gg/nyHjC2aTrq">Tritt uns auf Discord bei!</a>
</p>
`secator` ist ein Aufgaben- und Workflow-Ausführer, der für Sicherheitsbewertungen verwendet wird. Es unterstützt Dutzende bekannter Sicherheitstools und wurde entwickelt, um die Produktivität von Pentestern und Sicherheitsforschern zu verbessern.
# Funktionen

* **Kuratierte Liste von Befehlen**
* **Vereinheitlichte Eingabeoptionen**
* **Vereinheitlichtes Ausgabeschema**
* **CLI- und Bibliotheksnutzung**
* **Verteilte Optionen mit Celery**
* **Komplexität von einfachen Aufgaben bis hin zu komplexen Workflows**
* **Anpassbar**
## Unterstützte Tools
`secator` integriert die folgenden Tools:
<!-- START_TOOLS_TABLE -->
| Name | Beschreibung | Kategorie |
|-----------------------------------------------------------------|----------------------------------------------------------------------------------|-------------------|
| [arjun](https://github.com/s0md3v/Arjun) | HTTP-Parameter-Erkennungssuite. | `url/fuzz/params` |
| arp | System-ARP-Cache anzeigen. | `ip/recon` |
| [arpscan](https://github.com/royhills/arp-scan) | CIDR-Bereich mit ARP nach aktiven Hosts scannen. | `ip/recon` |
| [bbot](https://github.com/blacklanternsecurity/bbot) | Mehrzweck-Scanner. | `vuln/scan` |
| [bup](https://github.com/laluka/bypass-url-parser) | 40X-Bypasser. | `url/bypass` |
| [cariddi](https://github.com/edoardottt/cariddi) | Crawlen von Endpunkten, Geheimnissen, API-Keys, Erweiterungen, Token... | `url/crawl` |
| [dalfox](https://github.com/hahwul/dalfox) | Leistungsstarkes Open-Source-XSS-Scan-Tool. | `url/fuzz` |
| [dirsearch](https://github.com/maurosoria/dirsearch) | Fortgeschrittener Webpfad-Brute-Forcer. | `url/fuzz` |
| [dnsx](https://github.com/projectdiscovery/dnsx) | dnsx ist eine schnelle und vielseitige DNS-Toolbox, die für die Ausführung verschiedener retryabledns-Bibliotheken konzipiert ist. | `dns/fuzz` |
| [feroxbuster](https://github.com/epi052/feroxbuster) | Einfaches, schnelles, rekursives Content-Discovery-Tool, geschrieben in Rust. | `url/fuzz` |
| [ffuf](https://github.com/ffuf/ffuf) | Schneller Web-Fuzzer, geschrieben in Go. | `url/fuzz` |
| [fping](https://github.com/schweikert/fping) | ICMP-Echo-Probes an Netzwerk-Hosts senden, ähnlich wie ping, aber viel besser. | `ip/recon` |
| [gau](https://github.com/lc/gau) | Bekannte URLs von AlienVault's Open Threat Exchange, der Wayback Machine, Common Crawl und URLScan abrufen. | `pattern/scan` |
| [getasn](https://github.com/Vulnpire/getasn) | ASN-Informationen von IP-Adresse abrufen. | `ip/probe` |
| [gf](https://github.com/tomnomnom/gf) | Wrapper um grep, um das Suchen nach Dingen zu erleichtern. | `pattern/scan` |
| [gitleaks](https://github.com/gitleaks/gitleaks) | Werkzeug zur Erkennung von Geheimnissen wie Passwörtern, API-Keys und Token in Git-Repos, Dateien und stdin. | `secret/scan` |
| [gospider](https://github.com/jaeles-project/gospider) | Schneller Web-Spider, geschrieben in Go. | `url/crawl` |
| [grype](https://github.com/anchore/grype) | Schwachstellenscanner für Container-Images und Dateisysteme. | `vuln/scan` |
| [h8mail](https://github.com/khast3x/h8mail) | E-Mail-Informationen und Passwort-Suchwerkzeug. | `user/recon/email` |
| [httpx](https://github.com/projectdiscovery/httpx) | Schnelle und vielseitige HTTP-Toolbox. | `url/probe` |
| [jswhois](https://github.com/jschauma/jswhois) | WHOIS im JSON-Format | `domain/info` |
| [katana](https://github.com/projectdiscovery/katana) | Next-Generation-Crawling- und Spidering-Framework. | `url/crawl` |
| [maigret](https://github.com/soxoj/maigret) | Ein Dossier über eine Person anhand des Benutzernamens erstellen. | `user/recon/username` |
| [mapcidr](https://github.com/projectdiscovery/mapcidr) | Dienstprogramm zur Durchführung mehrerer Operationen für bestimmte Subnetz-/CIDR-Bereiche. | `ip/recon` |
| [msfconsole](https://docs.rapid7.com/metasploit/msf-overview/) | CLI für den Zugriff und die Arbeit mit dem Metasploit-Framework. | `exploit/attack` |
| [naabu](https://github.com/projectdiscovery/naabu) | Port-Scanning-Tool, geschrieben in Go. | `port/scan` |
| [nmap](https://github.com/nmap/nmap) | Network Mapper ist ein kostenloses und Open-Source-Dienstprogramm für die Netzwerkerkennung und Sicherheitsüberprüfung. | `port/scan` |
| [nuclei](https://github.com/projectdiscovery/nuclei) | Schneller und anpassbarer Schwachstellenscanner basierend auf einfachem YAML-basiertem DSL. | `vuln/scan` |
| [search_vulns](https://github.com/ra1nb0rn/search_vulns) | Suche nach bekannten Schwachstellen in Software nach Produktname oder CPE. | `vuln/recon` |
| [searchsploit](https://gitlab.com/exploit-database/exploitdb) | Exploit-Suche basierend auf ExploitDB. | `exploit/recon` |
| [sshaudit](https://github.com/jtesta/ssh-audit) | SSH-Server- & Client-Sicherheitsprüfung (Banner, Schlüsselaustausch, Verschlüsselung, MAC, Komprimierung usw.). | `ssh/audit/security` |
| [subfinder](https://github.com/projectdiscovery/subfinder) | Schnelles passives Subdomain-Enumerationstool. | `dns/recon` |
| [testssl](https://github.com/testssl/testssl.sh) | SSL/TLS-Sicherheitsscanner, einschließlich Ciphers, Protokolle und kryptografische Schwachstellen. | `dns/recon/tls` |
| [trivy](https://github.com/aquasecurity/trivy) | Umfassender und vielseitiger Sicherheitsscanner. | `vuln/scan` |
| [trufflehog](https://github.com/trufflesecurity/trufflehog) | Werkzeug zum Finden von Geheimnissen in Git-Repos und Dateisystemen mit TruffleHog. | `secret/scan` |
| [urlfinder](https://github.com/projectdiscovery/urlfinder) | URLs in Text finden. | `pattern/scan` |
| [wafw00f](https://github.com/EnableSecurity/wafw00f) | Web Application Firewall-Fingerprinting-Tool. | `waf/scan` |
| [whois](https://github.com/mboot-github/WhoisDomain) | Das whois-Tool ruft Registrierungsinformationen zu Domainnamen und IP-Adressen ab. | |
| [wpprobe](https://github.com/Chocapikk/wpprobe) | Schnelles WordPress-Plugin-Enumerationstool. | `vuln/scan/wordpress` |
| [wpscan](https://github.com/wpscanteam/wpscan) | WordPress-Sicherheitsscanner. | `vuln/scan/wordpress` |
| [x8](https://github.com/Sh1Yo/x8) | Hidden-Parameter-Erkennungssuite, geschrieben in Rust. | `url/fuzz/params` |
| [xurlfind3r](https://github.com/hueristiq/xurlfind3r) | URLs für eine bestimmte Domain auf einfache, passive und effiziente Weise finden | `url/recon` |
<!-- END_TOOLS_TABLE -->
Du kannst gerne die Aufnahme neuer Tools durch das Öffnen eines Issues anfragen, aber bitte überprüfe vorher, ob das Tool unseren Auswahlkriterien entspricht. Falls nicht, kannst du es dennoch in `secator` integrieren (siehe [Entwicklerhandbuch](https://docs.freelabz.com/for-developers/writing-custom-tasks)).
## secator installieren
<details>
<summary>Bash</summary>
```sh
bash -c "$(curl -fsSL https://raw.githubusercontent.com/freelabz/secator/main/scripts/install_universal.sh)"
```
***Hinweis:** Unterstützt optionale Flags `--version`, `--templates`, `--addons` und `--tools` — führe das Skript mit `--help` für Details aus.*
</details>
<details>
<summary>Pipx</summary>
```sh
pipx install secator
```
***Hinweis:** Stelle sicher, dass [pipx](https://pipx.pypa.io/stable/installation/) installiert ist.*
</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
```
Der Volume-Mount -v ist notwendig, um alle secator-Berichte auf deinem Host-Rechner zu speichern, und --net=host wird empfohlen, um vollen Zugriff auf das Host-Netzwerk zu gewähren.
Du kannst diesen Befehl aliassen, um ihn einfacher auszuführen:
```sh
alias secator="docker run -it --rm --net=host -v ~/.secator:/root/.secator freelabz/secator"
```
Jetzt kannst du secator wie eine native Installation ausführen:
```
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>
***Hinweis:*** Falls du die Docker- oder Docker-Compose-Installationsmethode gewählt hast, kannst du die nächsten Abschnitte überspringen und direkt zu [Verwendung](#usage) gehen.
## Verwendung
```sh
secator --help
```
### Verwendungsbeispiele
Um ein vollständiges Cheatsheet darüber zu erhalten, was du mit `secator` machen kannst, lies bitte die Ausgabe von:
```sh
secator cheatsheet
```
Eine Fuzzing-Aufgabe ausführen (`ffuf`):
```sh
secator x ffuf http://testphp.vulnweb.com/FUZZ
```
Einen URL-Crawl-Workflow ausführen:
```sh
secator w url_crawl http://testphp.vulnweb.com
```
Einen Host-Scan durchführen:
```sh
secator s host mydomain.com
```
Um alle Aufgaben / Workflows / Scans aufzulisten, die du verwenden kannst:
```sh
secator x --help
secator w --help
secator s --help
```
Um herauszufinden, welche Sprachen oder Tools auf deinem System installiert sind (zusammen mit ihrer Version):
```sh
secator health
```
### Abfragen
`secator` ermöglicht es dir, alle vorherigen Berichte mit dem Befehl `secator query` (oder `secator q`) abzufragen und Abfragen wiederzuverwenden.
`secator q <arg>` löst sein Argument in drei Schritten auf:
1. **Gespeicherter Abfragename** — wenn `<arg>` mit einem gespeicherten Abfragenamen übereinstimmt, wird dessen Ausdruck verwendet.
2. **Filterausdruck** — wenn `<arg>` wie ein Filter aussieht (enthält `==`, `<`, `~=`, `&&`, …), wird er direkt durchgereicht.
3. **Natürliche Sprache** — andernfalls wird es an den KI-Chat gesendet (`secator x ai --mode chat`).
```sh
# Rohausdrücke direkt ausführen
secator q "vulnerability.tags ~= 'kev' && vulnerability.confidence == 'high'" # vulns KEV (Known-Exploited Vulnerabilities) + hohe Vertrauensstufe
secator q "vulnerability.severity == 'critical' && vulnerability.tags ~= 'exploitable' && vulnerability.confidence == 'high'" # vulns kritisch + ausnutzbar + hohe Vertrauensstufe
secator q "vulnerability.severity_nb < 2 && vulnerability.confidence == 'high'" # vulns Schweregrad > hoch + hohe Vertrauensstufe
secator q "exploit.cves ~= 'CVE-2021-44521'" # Exploits gefunden für Schwachstelle CVE-2021-44521
secator q "port" -f "{host} {port} {service_name}" | cut -d " " -f2 | sort | uniq -c | sort -nr | head -n 15 # Top 15 Ports
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 Dienste
secator q "technology" -f "{product}/{version}" | sort | uniq -c | sort -nr | head -n 15 # Top 15 Technologien
secator q "port.state == 'open'" -rf scans/23,tasks/10 # nur Ergebnisse von Scan 23 und Aufgabe 10
# Eine Abfrage speichern und ausführen
secator c set queries.critical_vulns "vulnerability.severity_nb < 2" # eine Abfrage speichern
secator c get queries # gespeicherte Abfragen auflisten
secator q critical_vulns -f "{vulnerability.matched_at}" -ws secator.cloud # eine gespeicherte Abfrage im Workspace ausführen + Ziele extrahieren
# Eine Frage in natürlicher Sprache stellen (führt die KI-Chat-Aufgabe aus)
secator q "Analysiere meine Workspace-Daten"
```
`secator q` akzeptiert dieselben Optionen wie `secator r show` (`-o/--output`,
`-d/--time-delta`, `-f/--format`, `-w/-ws/--workspace`, `--driver`, `--dedupe`),
plus `-rf/--report-filter`, um die Abfrage auf bestimmte Runner-Pfade zu
beschränken (das Äquivalent zum `REPORT_QUERY`-Argument von `r show`). Auf dem
KI-Chat-Pfad werden nur der Workspace und die Eingabeaufforderung verwendet.
### Shell-Vervollständigung
`secator` unterstützt Shell-Vervollständigung für bash, zsh und fish. Dies bietet Auto-Vervollständigung für:
- Aufgabennamen (z. B. `nmap`, `httpx`, `nuclei`)
- Workflow-Namen (z. B. `url_crawl`, `subdomain_recon`)
- Scan-Namen (z. B. `host`, `domain`, `network`)
- CLI-Optionen wie `--profiles`, `--workspace`, `--driver`, `--output`
So installierst du die Shell-Vervollständigung:
**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
```
Nach der Installation kannst du die Tab-Vervollständigung verwenden:
```sh
secator x n<TAB> # vervollständigt zu nmap, naabu, nuclei usw.
secator w url_<TAB> # vervollständigt zu url_crawl, url_fuzz, url_dirsearch usw.
secator x nmap --profiles ag<TAB> # vervollständigt zu aggressive
```
## Tools installieren
`secator` installiert Tools automatisch, wenn du sie zum ersten Mal verwendest.
Du kannst dieses Verhalten verhindern, indem du `security.autoinstall_commands` auf `false` setzt, entweder mit `secator config set security.autoinstall_commands false` oder `SECATOR_SECURITY_AUTOINSTALL_COMMANDS=0`.
Um alle Tools zu installieren, kannst du dennoch Folgendes ausführen:
```sh
secator install tools
```
## Addons installieren
Für `secator` sind Addons verfügbar, bitte schau in [unsere Dokumentation](https://docs.freelabz.com/getting-started/installation#installing-addons-optional) für Details.
Zum Beispiel ermöglicht dir das `mongodb`-Addon, Runner-Ergebnisse an MongoDB zu senden.
## Mehr erfahren
Um tiefer in `secator` einzusteigen, schau dir Folgendes an:
* Unsere vollständige [Dokumentation](https://docs.freelabz.com)
* Unser [Tutorial-Video](https://youtu.be/-JmUTNWQDTQ?si=qpAClDWMXo2zwUK7) für den Einstieg
* Unseren [Medium-Beitrag](https://medium.com/p/09333f3d3682)
* Folge uns in den sozialen Medien: [@freelabz](https://twitter.com/freelabz) auf Twitter und [@FreeLabz](https://youtube.com/@FreeLabz) auf YouTube
## Statistiken
<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="Star History Chart" src="https://api.star-history.com/svg?repos=freelabz/secator&type=Date" />
</picture>
</a>