Home

Awesome

<h1 align="center"> <img src="https://github.com/freelabz/secator/assets/9629314/ee203af4-e853-439a-af01-edeabfc4bf07/" width="400"> </h1> <h4 align="center">The pentester's swiss knife.</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%40FreeLabz"></a> <!-- <a href="https://discord.gg/freelabz"><img src="https://img.shields.io/discord/695645237418131507.svg?logo=discord"></a> --> </p> <p align="center"> <a href="#features">Features</a> • <a href="#supported-commands">Supported commands</a> • <a href="#install-secator">Installation</a> • <a href="#usage">Usage</a> • <a href="https://docs.freelabz.com">Documentation</a> </p>

secator is a task and workflow runner used for security assessments. It supports dozens of well-known security tools and it is designed to improve productivity for pentesters and security researchers.

Features

Supported tools

secator integrates the following tools:

NameDescriptionCategory
httpxFast HTTP prober.http
cariddiFast crawler and endpoint secrets / api keys / tokens matcher.http/crawler
gauOffline URL crawler (Alien Vault, The Wayback Machine, Common Crawl, URLScan).http/crawler
gospiderFast web spider written in Go.http/crawler
katanaNext-generation crawling and spidering framework.http/crawler
dirsearchWeb path discovery.http/fuzzer
feroxbusterSimple, fast, recursive content discovery tool written in Rust.http/fuzzer
ffufFast web fuzzer written in Go.http/fuzzer
h8mailEmail OSINT and breach hunting tool.osint
dnsxFast and multi-purpose DNS toolkit designed for running DNS queries.recon/dns
dnsxbruteFast and multi-purpose DNS toolkit designed for running DNS queries (bruteforce mode).recon/dns
subfinderFast subdomain finder.recon/dns
fpingFind alive hosts on local networks.recon/ip
mapcidrExpand CIDR ranges into IPs.recon/ip
naabuFast port discovery tool.recon/port
maigretHunt for user accounts across many websites.recon/user
gfA wrapper around grep to avoid typing common patterns.tagger
grypeA vulnerability scanner for container images and filesystems.vuln/code
dalfoxPowerful XSS scanning tool and parameter analyzer.vuln/http
msfconsoleCLI to access and work with the Metasploit Framework.vuln/http
wpscanWordPress Security Scannervuln/multi
nmapVulnerability scanner using NSE scripts.vuln/multi
nucleiFast and customisable vulnerability scanner based on simple YAML based DSL.vuln/multi
searchsploitExploit searcher.exploit/search

Feel free to request new tools to be added by opening an issue, but please check that the tool complies with our selection criterias before doing so. If it doesn't but you still want to integrate it into secator, you can plug it in (see the dev guide).

Installation

Installing secator

<details> <summary>Pipx</summary>
pipx install secator
</details> <details> <summary>Pip</summary>
pip install secator
</details> <details> <summary>Bash</summary>
wget -O - https://raw.githubusercontent.com/freelabz/secator/main/scripts/install.sh | sh
</details> <details> <summary>Docker</summary>
docker run -it --rm --net=host -v ~/.secator:/root/.secator freelabz/secator --help

The volume mount -v is necessary to save all secator reports to your host machine, and--net=host is recommended to grant full access to the host network.

You can alias this command to run it easier:

alias secator="docker run -it --rm --net=host -v ~/.secator:/root/.secator freelabz/secator"

Now you can run secator like if it was installed on baremetal:

secator --help
</details> <details> <summary>Docker Compose</summary>
git clone https://github.com/freelabz/secator
cd secator
docker-compose up -d
docker-compose exec secator secator --help
</details>

Note: If you chose the Bash, Docker or Docker Compose installation methods, you can skip the next sections and go straight to Usage.

Installing languages

secator uses external tools, so you might need to install languages used by those tools assuming they are not already installed on your system.

We provide utilities to install required languages if you don't manage them externally:

<details> <summary>Go</summary>
secator install langs go
</details> <details> <summary>Ruby</summary>
secator install langs ruby
</details>

Installing tools

secator does not install any of the external tools it supports by default.

We provide utilities to install or update each supported tool which should work on all systems supporting apt:

<details> <summary>All tools</summary>
secator install tools
</details> <details> <summary>Specific tools</summary>
secator install tools <TOOL_NAME>

For instance, to install httpx, use:

secator install tools httpx
</details>

Please make sure you are using the latest available versions for each tool before you run secator or you might run into parsing / formatting issues.

Installing addons

secator comes installed with the minimum amount of dependencies.

There are several addons available for secator:

<details> <summary>worker</summary>

Add support for Celery workers (see Distributed runs with Celery).

secator install addons worker
</details> <details> <summary>google</summary>

Add support for Google Drive exporter (-o gdrive).

secator install addons google
</details> <details> <summary>mongodb</summary>

Add support for MongoDB driver (-driver mongodb).

secator install addons mongodb
</details> <details> <summary>redis</summary>

Add support for Redis backend (Celery).

secator install addons redis
</details> <details> <summary>dev</summary>

Add development tools like coverage and flake8 required for running tests.

secator install addons dev
</details> <details> <summary>trace</summary>

Add tracing tools like memray and pyinstrument required for tracing functions.

secator install addons trace
</details> <details> <summary>build</summary>

Add hatch for building and publishing the PyPI package.

secator install addons build
</details>

Install CVEs

secator makes remote API calls to https://cve.circl.lu/ to get in-depth information about the CVEs it encounters. We provide a subcommand to download all known CVEs locally so that future lookups are made from disk instead:

secator install cves

Checking installation health

To figure out which languages or tools are installed on your system (along with their version):

secator health

Usage

secator --help

Usage examples

Run a fuzzing task (ffuf):

secator x ffuf http://testphp.vulnweb.com/FUZZ

Run a url crawl workflow:

secator w url_crawl http://testphp.vulnweb.com

Run a host scan:

secator s host mydomain.com

and more... to list all tasks / workflows / scans that you can use:

secator x --help
secator w --help
secator s --help

Learn more

To go deeper with secator, check out:

Stats

<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>