secator 0.9.0__tar.gz → 0.9.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of secator might be problematic. Click here for more details.
- secator-0.9.1/.docker/Dockerfile.alpine +33 -0
- secator-0.9.1/.docker/Dockerfile.arch +36 -0
- secator-0.9.1/.docker/Dockerfile.debian +38 -0
- secator-0.9.1/.docker/Dockerfile.kali +37 -0
- secator-0.9.1/.docker/Dockerfile.osx +40 -0
- secator-0.9.1/.docker/Dockerfile.ubuntu +37 -0
- secator-0.9.1/.docker/build_all.sh +30 -0
- {secator-0.9.0 → secator-0.9.1}/.gitignore +0 -1
- {secator-0.9.0 → secator-0.9.1}/CHANGELOG.md +13 -0
- {secator-0.9.0 → secator-0.9.1}/PKG-INFO +14 -11
- {secator-0.9.0 → secator-0.9.1}/README.md +13 -10
- {secator-0.9.0 → secator-0.9.1}/pyproject.toml +1 -1
- {secator-0.9.0 → secator-0.9.1}/secator/celery.py +7 -6
- {secator-0.9.0 → secator-0.9.1}/secator/cli.py +1 -1
- {secator-0.9.0 → secator-0.9.1}/secator/config.py +6 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/bbot.py +1 -1
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/wpscan.py +2 -0
- {secator-0.9.0 → secator-0.9.1}/.dockerignore +0 -0
- {secator-0.9.0 → secator-0.9.1}/.flake8 +0 -0
- {secator-0.9.0 → secator-0.9.1}/CONTRIBUTING.md +0 -0
- {secator-0.9.0 → secator-0.9.1}/Dockerfile +0 -0
- {secator-0.9.0 → secator-0.9.1}/LICENSE +0 -0
- {secator-0.9.0 → secator-0.9.1}/SECURITY.md +0 -0
- {secator-0.9.0 → secator-0.9.1}/cloudbuild.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/helm/.helmignore +0 -0
- {secator-0.9.0 → secator-0.9.1}/helm/Chart.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/helm/templates/redis-service.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/helm/templates/redis.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/helm/templates/secator-manager.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/helm/templates/secator-worker.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/helm/values.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/download_cves.sh +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/install.sh +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/install_asciinema.sh +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/install_go.sh +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/install_ruby.sh +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/msf/exploit_cve.rc +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/msf/ftp_anonymous.rc +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/msf/ftp_version.rc +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/msf/ftp_vsftpd_234_backdoor.rc +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/msf/redis.rc +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/stories/STORY.md +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/stories/aliases.sh +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/stories/demo.sh +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/stories/fmt.sh +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/stories/input.sh +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/stories/pipe.sh +0 -0
- {secator-0.9.0 → secator-0.9.1}/scripts/stories/short_demo.sh +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/.gitignore +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/celery_utils.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/profiles/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/profiles/aggressive.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/profiles/default.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/profiles/stealth.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/scans/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/scans/domain.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/scans/host.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/scans/network.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/scans/subdomain.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/scans/url.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/cidr_recon.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/code_scan.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/host_recon.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/port_scan.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/subdomain_recon.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/url_bypass.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/url_crawl.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/url_dirsearch.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/url_fuzz.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/url_nuclei.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/url_vuln.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/user_hunt.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/configs/workflows/wordpress.yaml +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/decorators.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/definitions.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/exporters/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/exporters/_base.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/exporters/console.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/exporters/csv.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/exporters/gdrive.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/exporters/json.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/exporters/table.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/exporters/txt.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/hooks/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/hooks/gcs.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/hooks/mongodb.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/installer.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/_base.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/error.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/exploit.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/info.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/ip.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/port.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/progress.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/record.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/stat.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/subdomain.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/tag.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/target.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/url.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/user_account.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/vulnerability.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/output_types/warning.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/report.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/rich.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/runners/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/runners/_base.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/runners/_helpers.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/runners/celery.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/runners/command.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/runners/scan.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/runners/task.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/runners/workflow.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/scans/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/serializers/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/serializers/dataclass.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/serializers/json.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/serializers/regex.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/_categories.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/bup.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/cariddi.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/dalfox.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/dirsearch.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/dnsx.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/dnsxbrute.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/feroxbuster.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/ffuf.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/fping.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/gau.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/gf.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/gospider.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/grype.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/h8mail.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/httpx.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/katana.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/maigret.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/mapcidr.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/msfconsole.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/naabu.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/nmap.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/nuclei.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/searchsploit.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/tasks/subfinder.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/template.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/thread.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/utils.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/utils_test.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/secator/workflows/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/fixtures/h8mail_breach.txt +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/fixtures/ls.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/fixtures/msfconsole_input.rc +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/fixtures/nmap_output.xml +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/inputs.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/outputs.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/setup.sh +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/teardown.sh +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/test_addons.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/test_celery.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/test_scans.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/test_tasks.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/test_tasks_categories.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/test_worker.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/test_workflows.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/wordlist.txt +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/wordlist_dns.txt +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/wordpress_toolbox/Dockerfile +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/integration/wordpress_toolbox/Makefile +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/performance/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/performance/loadtester.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/performance/test_worker.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/unit/__init__.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/unit/test_celery.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/unit/test_cli.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/unit/test_config.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/unit/test_offline.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/unit/test_runners.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/unit/test_scans.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/unit/test_serializers.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/unit/test_tasks.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/unit/test_tasks_categories.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/unit/test_template.py +0 -0
- {secator-0.9.0 → secator-0.9.1}/tests/unit/test_utils.py +0 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
FROM alpine:latest AS builder
|
|
2
|
+
|
|
3
|
+
ENV PATH="${PATH}:/root/.local/bin"
|
|
4
|
+
RUN apk add --no-cache \
|
|
5
|
+
flock \
|
|
6
|
+
gcc \
|
|
7
|
+
musl-dev \
|
|
8
|
+
linux-headers \
|
|
9
|
+
pipx \
|
|
10
|
+
python3-dev
|
|
11
|
+
COPY . /code
|
|
12
|
+
WORKDIR /code
|
|
13
|
+
|
|
14
|
+
RUN pipx install --pip-args="--no-cache-dir" . && \
|
|
15
|
+
secator install addons worker && \
|
|
16
|
+
secator install addons gdrive && \
|
|
17
|
+
secator install addons gcs && \
|
|
18
|
+
secator install addons mongodb && \
|
|
19
|
+
secator install addons redis && \
|
|
20
|
+
secator install addons dev
|
|
21
|
+
|
|
22
|
+
FROM python:3.12-alpine
|
|
23
|
+
ARG flavor=full
|
|
24
|
+
ENV TERM="xterm-256color"
|
|
25
|
+
ENV PATH="${PATH}:/root/.local/bin"
|
|
26
|
+
ENV GOBIN="/root/.local/bin"
|
|
27
|
+
COPY --from=builder /root/.local /root/.local
|
|
28
|
+
RUN apk add --no-cache \
|
|
29
|
+
flock \
|
|
30
|
+
pipx \
|
|
31
|
+
sudo
|
|
32
|
+
RUN if [ "$flavor" != "lite" ]; then secator install tools --cleanup; fi
|
|
33
|
+
ENTRYPOINT ["secator"]
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
FROM archlinux:latest
|
|
2
|
+
|
|
3
|
+
ENV PATH="${PATH}:/root/.local/bin"
|
|
4
|
+
ENV GOBIN="/root/.local/bin"
|
|
5
|
+
RUN pacman -Syu --noconfirm && \
|
|
6
|
+
pacman -S --noconfirm \
|
|
7
|
+
base-devel \
|
|
8
|
+
bash \
|
|
9
|
+
curl \
|
|
10
|
+
git \
|
|
11
|
+
go \
|
|
12
|
+
jq \
|
|
13
|
+
openssl \
|
|
14
|
+
proxychains \
|
|
15
|
+
proxychains-ng \
|
|
16
|
+
python \
|
|
17
|
+
python-pip \
|
|
18
|
+
python-pipx \
|
|
19
|
+
ruby \
|
|
20
|
+
rubygems \
|
|
21
|
+
sudo \
|
|
22
|
+
unzip \
|
|
23
|
+
vim \
|
|
24
|
+
wget
|
|
25
|
+
COPY . /code
|
|
26
|
+
WORKDIR /code
|
|
27
|
+
RUN pipx install . && \
|
|
28
|
+
secator install addons worker && \
|
|
29
|
+
secator install addons gdrive && \
|
|
30
|
+
secator install addons gcs && \
|
|
31
|
+
secator install addons mongodb && \
|
|
32
|
+
secator install addons redis && \
|
|
33
|
+
secator install addons dev
|
|
34
|
+
RUN secator config set security.force_source_install true
|
|
35
|
+
RUN secator install tools --cleanup
|
|
36
|
+
ENTRYPOINT ["secator"]
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
FROM debian:latest
|
|
2
|
+
|
|
3
|
+
ENV PATH="${PATH}:/root/.local/bin"
|
|
4
|
+
ENV GOBIN="/root/.local/bin"
|
|
5
|
+
RUN apt update -y && \
|
|
6
|
+
apt install -y \
|
|
7
|
+
bash \
|
|
8
|
+
build-essential \
|
|
9
|
+
curl \
|
|
10
|
+
git \
|
|
11
|
+
golang-go \
|
|
12
|
+
jq \
|
|
13
|
+
openssl \
|
|
14
|
+
pipx \
|
|
15
|
+
python3 \
|
|
16
|
+
python3-pip \
|
|
17
|
+
python3-venv \
|
|
18
|
+
proxychains \
|
|
19
|
+
proxychains-ng \
|
|
20
|
+
ruby-full \
|
|
21
|
+
rubygems \
|
|
22
|
+
sudo \
|
|
23
|
+
unzip \
|
|
24
|
+
vim \
|
|
25
|
+
wget
|
|
26
|
+
COPY . /code
|
|
27
|
+
WORKDIR /code
|
|
28
|
+
RUN pipx install . && \
|
|
29
|
+
secator install addons worker && \
|
|
30
|
+
secator install addons gdrive && \
|
|
31
|
+
secator install addons gcs && \
|
|
32
|
+
secator install addons mongodb && \
|
|
33
|
+
secator install addons redis && \
|
|
34
|
+
secator install addons dev
|
|
35
|
+
RUN secator install langs go
|
|
36
|
+
RUN secator config set security.force_source_install true
|
|
37
|
+
RUN secator install tools --cleanup
|
|
38
|
+
ENTRYPOINT ["secator"]
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
FROM kalilinux/kali-rolling:latest
|
|
2
|
+
|
|
3
|
+
ENV PATH="${PATH}:/root/.local/bin"
|
|
4
|
+
ENV GOBIN="/root/.local/bin"
|
|
5
|
+
RUN apt update -y && \
|
|
6
|
+
apt install -y \
|
|
7
|
+
bash \
|
|
8
|
+
build-essential \
|
|
9
|
+
curl \
|
|
10
|
+
git \
|
|
11
|
+
golang-go \
|
|
12
|
+
jq \
|
|
13
|
+
openssl \
|
|
14
|
+
pipx \
|
|
15
|
+
python3 \
|
|
16
|
+
python3-pip \
|
|
17
|
+
python3-venv \
|
|
18
|
+
proxychains \
|
|
19
|
+
proxychains-ng \
|
|
20
|
+
ruby-full \
|
|
21
|
+
rubygems \
|
|
22
|
+
sudo \
|
|
23
|
+
unzip \
|
|
24
|
+
vim \
|
|
25
|
+
wget
|
|
26
|
+
COPY . /code
|
|
27
|
+
WORKDIR /code
|
|
28
|
+
RUN pipx install . && \
|
|
29
|
+
secator install addons worker && \
|
|
30
|
+
secator install addons gdrive && \
|
|
31
|
+
secator install addons gcs && \
|
|
32
|
+
secator install addons mongodb && \
|
|
33
|
+
secator install addons redis && \
|
|
34
|
+
secator install addons dev
|
|
35
|
+
RUN secator config set security.force_source_install true
|
|
36
|
+
RUN secator install tools --cleanup
|
|
37
|
+
ENTRYPOINT ["secator"]
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
FROM sickcodes/docker-osx:latest
|
|
2
|
+
|
|
3
|
+
ENV PATH="${PATH}:/home/arch/.local/bin"
|
|
4
|
+
ENV GOBIN="/home/arch/.local/bin"
|
|
5
|
+
RUN /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
6
|
+
RUN echo >> /home/arch/.bashrc
|
|
7
|
+
RUN echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/arch/.bashrc
|
|
8
|
+
RUN sudo pacman -Syu --noconfirm && \
|
|
9
|
+
sudo pacman -S --noconfirm -y \
|
|
10
|
+
base-devel \
|
|
11
|
+
bash \
|
|
12
|
+
curl \
|
|
13
|
+
git \
|
|
14
|
+
go \
|
|
15
|
+
jq \
|
|
16
|
+
openssl \
|
|
17
|
+
proxychains \
|
|
18
|
+
proxychains-ng \
|
|
19
|
+
python \
|
|
20
|
+
python-pip \
|
|
21
|
+
python-pipx \
|
|
22
|
+
ruby \
|
|
23
|
+
rubygems \
|
|
24
|
+
sudo \
|
|
25
|
+
unzip \
|
|
26
|
+
vim \
|
|
27
|
+
wget
|
|
28
|
+
COPY . /code
|
|
29
|
+
WORKDIR /code
|
|
30
|
+
USER arch
|
|
31
|
+
RUN pipx install . && \
|
|
32
|
+
secator install addons worker && \
|
|
33
|
+
secator install addons gdrive && \
|
|
34
|
+
secator install addons gcs && \
|
|
35
|
+
secator install addons mongodb && \
|
|
36
|
+
secator install addons redis && \
|
|
37
|
+
secator install addons dev
|
|
38
|
+
RUN secator config set security.force_source_install true
|
|
39
|
+
RUN secator install tools --cleanup
|
|
40
|
+
ENTRYPOINT ["secator"]
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
FROM ubuntu:latest
|
|
2
|
+
|
|
3
|
+
ENV PATH="${PATH}:/root/.local/bin"
|
|
4
|
+
ENV GOBIN="/root/.local/bin"
|
|
5
|
+
RUN apt update -y && \
|
|
6
|
+
apt install -y \
|
|
7
|
+
bash \
|
|
8
|
+
build-essential \
|
|
9
|
+
curl \
|
|
10
|
+
git \
|
|
11
|
+
golang-go \
|
|
12
|
+
jq \
|
|
13
|
+
openssl \
|
|
14
|
+
pipx \
|
|
15
|
+
python3 \
|
|
16
|
+
python3-pip \
|
|
17
|
+
python3-venv \
|
|
18
|
+
proxychains \
|
|
19
|
+
proxychains-ng \
|
|
20
|
+
ruby-full \
|
|
21
|
+
rubygems \
|
|
22
|
+
sudo \
|
|
23
|
+
unzip \
|
|
24
|
+
vim \
|
|
25
|
+
wget
|
|
26
|
+
COPY . /code
|
|
27
|
+
WORKDIR /code
|
|
28
|
+
RUN pipx install . && \
|
|
29
|
+
secator install addons worker && \
|
|
30
|
+
secator install addons gdrive && \
|
|
31
|
+
secator install addons gcs && \
|
|
32
|
+
secator install addons mongodb && \
|
|
33
|
+
secator install addons redis && \
|
|
34
|
+
secator install addons dev
|
|
35
|
+
RUN secator config set security.force_source_install true
|
|
36
|
+
RUN secator install tools --cleanup
|
|
37
|
+
ENTRYPOINT ["secator"]
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Define an array of distributions
|
|
4
|
+
DISTROS=("alpine" "arch" "debian" "kali" "osx" "ubuntu")
|
|
5
|
+
|
|
6
|
+
# Function to build an image
|
|
7
|
+
build_image() {
|
|
8
|
+
local DISTRO=$1
|
|
9
|
+
local DOCKERFILE=".docker/Dockerfile.${DISTRO}"
|
|
10
|
+
local IMAGE_NAME="secator-${DISTRO}"
|
|
11
|
+
|
|
12
|
+
if [ -f "$DOCKERFILE" ]; then
|
|
13
|
+
echo "🚀 Building $IMAGE_NAME using $DOCKERFILE..."
|
|
14
|
+
docker build -t "$IMAGE_NAME" -f "$DOCKERFILE" . && \
|
|
15
|
+
echo "✅ Successfully built $IMAGE_NAME" || \
|
|
16
|
+
echo "❌ Failed to build $IMAGE_NAME"
|
|
17
|
+
else
|
|
18
|
+
echo "⚠️ Dockerfile $DOCKERFILE not found, skipping..."
|
|
19
|
+
fi
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
# Iterate through the distributions and build in parallel
|
|
23
|
+
for DISTRO in "${DISTROS[@]}"; do
|
|
24
|
+
build_image "$DISTRO" &
|
|
25
|
+
done
|
|
26
|
+
|
|
27
|
+
# Wait for all background jobs to finish
|
|
28
|
+
wait
|
|
29
|
+
|
|
30
|
+
echo "🎉 All parallel builds completed!"
|
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.9.1](https://github.com/freelabz/secator/compare/v0.9.0...v0.9.1) (2025-02-22)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* add celery broker transport options ([#547](https://github.com/freelabz/secator/issues/547)) ([3703d1e](https://github.com/freelabz/secator/commit/3703d1e10dd605b9c631ff6084713beb36bda469))
|
|
9
|
+
* add celery opts required for remote ([#544](https://github.com/freelabz/secator/issues/544)) ([36d1f2d](https://github.com/freelabz/secator/commit/36d1f2dadbd601ad8866e0b4ada485e3d26ec1b6))
|
|
10
|
+
* bbot port not cast as int ([#542](https://github.com/freelabz/secator/issues/542)) ([744553c](https://github.com/freelabz/secator/commit/744553c597869e0c4811214a00ead740b4dcd2e9))
|
|
11
|
+
* change main dockerfile path ([#546](https://github.com/freelabz/secator/issues/546)) ([6a2faf6](https://github.com/freelabz/secator/commit/6a2faf6966db2bf340311815a46ff4c347c8c136))
|
|
12
|
+
* cli bug warning ([#543](https://github.com/freelabz/secator/issues/543)) ([ca44b12](https://github.com/freelabz/secator/commit/ca44b12dcc5e4869753dc1d186adabd77825ee7e))
|
|
13
|
+
* update Dockerfile symlink ([#549](https://github.com/freelabz/secator/issues/549)) ([1b2bdcf](https://github.com/freelabz/secator/commit/1b2bdcf37eabad7150420a8893bb064a9f9c41cb))
|
|
14
|
+
* **wpscan:** set vuln confidence ([#548](https://github.com/freelabz/secator/issues/548)) ([0d8f13d](https://github.com/freelabz/secator/commit/0d8f13d7830906654778910c3e0e259962e31276))
|
|
15
|
+
|
|
3
16
|
## [0.9.0](https://github.com/freelabz/secator/compare/v0.8.2...v0.9.0) (2025-02-21)
|
|
4
17
|
|
|
5
18
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: secator
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.1
|
|
4
4
|
Summary: The pentester's swiss knife.
|
|
5
5
|
Project-URL: Homepage, https://github.com/freelabz/secator
|
|
6
6
|
Project-URL: Issues, https://github.com/freelabz/secator/issues
|
|
@@ -295,12 +295,23 @@ secator install addons worker
|
|
|
295
295
|
|
|
296
296
|
|
|
297
297
|
<details>
|
|
298
|
-
<summary>
|
|
298
|
+
<summary>gdrive</summary>
|
|
299
299
|
|
|
300
300
|
Add support for Google Drive exporter (`-o gdrive`).
|
|
301
301
|
|
|
302
302
|
```sh
|
|
303
|
-
secator install addons
|
|
303
|
+
secator install addons gdrive
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
</details>
|
|
307
|
+
|
|
308
|
+
<details>
|
|
309
|
+
<summary>gcs</summary>
|
|
310
|
+
|
|
311
|
+
Add support for Google Cloud Storage driver (`-driver gcs`).
|
|
312
|
+
|
|
313
|
+
```sh
|
|
314
|
+
secator install addons gcs
|
|
304
315
|
```
|
|
305
316
|
|
|
306
317
|
</details>
|
|
@@ -360,14 +371,6 @@ secator install addons build
|
|
|
360
371
|
</details>
|
|
361
372
|
|
|
362
373
|
|
|
363
|
-
### Install CVEs
|
|
364
|
-
|
|
365
|
-
`secator` makes remote API calls to https://cve.circl.lu/ to get in-depth information about the CVEs it encounters.
|
|
366
|
-
We provide a subcommand to download all known CVEs locally so that future lookups are made from disk instead:
|
|
367
|
-
```sh
|
|
368
|
-
secator install cves
|
|
369
|
-
```
|
|
370
|
-
|
|
371
374
|
### Checking installation health
|
|
372
375
|
|
|
373
376
|
To figure out which languages or tools are installed on your system (along with their version):
|
|
@@ -225,12 +225,23 @@ secator install addons worker
|
|
|
225
225
|
|
|
226
226
|
|
|
227
227
|
<details>
|
|
228
|
-
<summary>
|
|
228
|
+
<summary>gdrive</summary>
|
|
229
229
|
|
|
230
230
|
Add support for Google Drive exporter (`-o gdrive`).
|
|
231
231
|
|
|
232
232
|
```sh
|
|
233
|
-
secator install addons
|
|
233
|
+
secator install addons gdrive
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
</details>
|
|
237
|
+
|
|
238
|
+
<details>
|
|
239
|
+
<summary>gcs</summary>
|
|
240
|
+
|
|
241
|
+
Add support for Google Cloud Storage driver (`-driver gcs`).
|
|
242
|
+
|
|
243
|
+
```sh
|
|
244
|
+
secator install addons gcs
|
|
234
245
|
```
|
|
235
246
|
|
|
236
247
|
</details>
|
|
@@ -290,14 +301,6 @@ secator install addons build
|
|
|
290
301
|
</details>
|
|
291
302
|
|
|
292
303
|
|
|
293
|
-
### Install CVEs
|
|
294
|
-
|
|
295
|
-
`secator` makes remote API calls to https://cve.circl.lu/ to get in-depth information about the CVEs it encounters.
|
|
296
|
-
We provide a subcommand to download all known CVEs locally so that future lookups are made from disk instead:
|
|
297
|
-
```sh
|
|
298
|
-
secator install cves
|
|
299
|
-
```
|
|
300
|
-
|
|
301
304
|
### Checking installation health
|
|
302
305
|
|
|
303
306
|
To figure out which languages or tools are installed on your system (along with their version):
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import gc
|
|
2
|
+
import json
|
|
2
3
|
import logging
|
|
3
4
|
import sys
|
|
4
5
|
import uuid
|
|
@@ -49,7 +50,7 @@ app.conf.update({
|
|
|
49
50
|
|
|
50
51
|
# Broker config
|
|
51
52
|
'broker_url': CONFIG.celery.broker_url,
|
|
52
|
-
'broker_transport_options': {
|
|
53
|
+
'broker_transport_options': json.loads(CONFIG.celery.broker_transport_options) if CONFIG.celery.broker_transport_options else { # noqa: E501
|
|
53
54
|
'data_folder_in': CONFIG.dirs.celery_data,
|
|
54
55
|
'data_folder_out': CONFIG.dirs.celery_data,
|
|
55
56
|
'control_folder': CONFIG.dirs.celery_data,
|
|
@@ -62,17 +63,17 @@ app.conf.update({
|
|
|
62
63
|
# Result backend config
|
|
63
64
|
'result_backend': CONFIG.celery.result_backend,
|
|
64
65
|
'result_expires': CONFIG.celery.result_expires,
|
|
66
|
+
'result_backend_transport_options': json.loads(CONFIG.celery.result_backend_transport_options) if CONFIG.celery.result_backend_transport_options else {}, # noqa: E501
|
|
65
67
|
'result_extended': True,
|
|
66
68
|
'result_backend_thread_safe': True,
|
|
67
69
|
'result_serializer': 'pickle',
|
|
68
|
-
# 'result_backend_transport_options': {'master_name': 'mymaster'}, # for Redis HA backend
|
|
69
70
|
|
|
70
71
|
# Task config
|
|
71
|
-
'task_acks_late':
|
|
72
|
+
'task_acks_late': CONFIG.celery.task_acks_late,
|
|
72
73
|
'task_compression': 'gzip',
|
|
73
74
|
'task_create_missing_queues': True,
|
|
74
75
|
'task_eager_propagates': False,
|
|
75
|
-
'task_reject_on_worker_lost':
|
|
76
|
+
'task_reject_on_worker_lost': CONFIG.celery.task_reject_on_worker_lost,
|
|
76
77
|
'task_routes': {
|
|
77
78
|
'secator.celery.run_workflow': {'queue': 'celery'},
|
|
78
79
|
'secator.celery.run_scan': {'queue': 'celery'},
|
|
@@ -85,10 +86,10 @@ app.conf.update({
|
|
|
85
86
|
|
|
86
87
|
# Worker config
|
|
87
88
|
# 'worker_direct': True, # TODO: consider enabling this to allow routing to specific workers
|
|
88
|
-
'worker_max_tasks_per_child':
|
|
89
|
+
'worker_max_tasks_per_child': CONFIG.celery.worker_max_tasks_per_child,
|
|
89
90
|
# 'worker_max_memory_per_child': 100000 # TODO: consider enabling this
|
|
90
91
|
'worker_pool_restarts': True,
|
|
91
|
-
'worker_prefetch_multiplier':
|
|
92
|
+
'worker_prefetch_multiplier': CONFIG.celery.worker_prefetch_multiplier,
|
|
92
93
|
# 'worker_send_task_events': True, # TODO: consider enabling this for Flower monitoring
|
|
93
94
|
})
|
|
94
95
|
app.autodiscover_tasks(['secator.hooks.mongodb'], related_name=None)
|
|
@@ -20,7 +20,7 @@ from secator.config import CONFIG, ROOT_FOLDER, Config, default_config, config_p
|
|
|
20
20
|
from secator.decorators import OrderedGroup, register_runner
|
|
21
21
|
from secator.definitions import ADDONS_ENABLED, ASCII, DEV_PACKAGE, OPT_NOT_SUPPORTED, VERSION, STATE_COLORS
|
|
22
22
|
from secator.installer import ToolInstaller, fmt_health_table_row, get_health_table, get_version_info, get_distro_config
|
|
23
|
-
from secator.output_types import FINDING_TYPES, Info, Error
|
|
23
|
+
from secator.output_types import FINDING_TYPES, Info, Warning, Error
|
|
24
24
|
from secator.report import Report
|
|
25
25
|
from secator.rich import console
|
|
26
26
|
from secator.runners import Command, Runner
|
|
@@ -62,9 +62,15 @@ class Celery(StrictModel):
|
|
|
62
62
|
broker_pool_limit: int = 10
|
|
63
63
|
broker_connection_timeout: float = 4.0
|
|
64
64
|
broker_visibility_timeout: int = 3600
|
|
65
|
+
broker_transport_options: str = ""
|
|
65
66
|
override_default_logging: bool = True
|
|
66
67
|
result_backend: StrExpandHome = ''
|
|
68
|
+
result_backend_transport_options: str = ""
|
|
67
69
|
result_expires: int = 86400 # 1 day
|
|
70
|
+
task_acks_late: bool = False
|
|
71
|
+
task_reject_on_worker_lost: bool = False
|
|
72
|
+
worker_max_tasks_per_child: int = 20
|
|
73
|
+
worker_prefetch_multiplier: int = 1
|
|
68
74
|
|
|
69
75
|
|
|
70
76
|
class Cli(StrictModel):
|
|
@@ -194,7 +194,7 @@ class bbot(Command):
|
|
|
194
194
|
'_source': lambda x: 'bbot-' + x['module']
|
|
195
195
|
},
|
|
196
196
|
Port: {
|
|
197
|
-
'port': lambda x: int(x['data']['port']) if 'port' in x['data'] else x['data'].split(':')[-1],
|
|
197
|
+
'port': lambda x: int(x['data']['port']) if 'port' in x['data'] else int(x['data'].split(':')[-1]),
|
|
198
198
|
'ip': lambda x: [_ for _ in x['resolved_hosts'] if not _.startswith('::')][0],
|
|
199
199
|
'state': lambda x: 'OPEN',
|
|
200
200
|
'service_name': lambda x: x['data']['protocol'] if 'protocol' in x['data'] else '',
|
|
@@ -142,6 +142,7 @@ class wpscan(VulnHttp):
|
|
|
142
142
|
yield Vulnerability(
|
|
143
143
|
matched_at=target,
|
|
144
144
|
name=f'Wordpress theme - {slug} {number} outdated',
|
|
145
|
+
confidence='high',
|
|
145
146
|
severity='info'
|
|
146
147
|
)
|
|
147
148
|
|
|
@@ -171,5 +172,6 @@ class wpscan(VulnHttp):
|
|
|
171
172
|
yield Vulnerability(
|
|
172
173
|
matched_at=target,
|
|
173
174
|
name=f'Wordpress plugin - {slug} {number} outdated',
|
|
175
|
+
confidence='high',
|
|
174
176
|
severity='info'
|
|
175
177
|
)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|