Skip to main content

kali-auto-suite

Authorized, non-destructive reconnaissance, orchestrated. Scope-gated, dry-run by default, every attempt audited. Repo kali-auto-suite; command and package kaliauto.

kaliauto validating a scope and refusing an unauthorized private target

CI license: MIT python

What this is, and what it is deliberately not

This is the boring, defensible half of penetration testing: the recon you would run against systems you own or are contracted to test. It exists because the risky part of scanner automation is rarely the scanner. It is the run nobody wrote down, against a host nobody cleared, at a rate nobody capped.

It is not an exploitation framework. There are no exploit modules, no credential attacks, no brute forcing, no denial of service, no payloads, and no plugin surface. The four modules are fixed in code. If you want that other thing, this is the wrong tool, on purpose.

The three rules the code enforces

  1. No scope file, no run. The scope file names a human (authorized_by), a date, a contact and a reference. If any of those is missing, every command refuses and exits 4. There is no flag that skips it.
  2. Dry run is the default. kaliauto scan prints exactly what it would do and sends nothing. Traffic requires --execute, given deliberately.
  3. Everything is audited. .kaliauto/audit.jsonl gets one JSON line per plan, per module start, per skip and per refusal. A refused run is evidence too, which is why refusals are recorded rather than dying quietly.

Private and loopback ranges additionally require "allow_private": true, because "my lab" and "my production network" are not the same permission.

Use

cp scope.example.json scope.json     # fill in who authorized what, honestly
kaliauto scope --scope scope.json    # validate it, see the fingerprint and age
kaliauto scan  --scope scope.json    # dry run: prints the plan, sends nothing
kaliauto scan  --scope scope.json --execute --max-rate 0.5 --json

Exit codes are a contract: 0 clean or dry run, 3 findings, 4 refused, 5 a module's dependency is missing, 2 bad invocation.

What it checks

Module Checks Needs
dns resolves at all, SPF, DMARC, CAA dig for TXT/CAA
tls expiry, expiry under 30 days, protocol below 1.2, verification failure nothing
headers HSTS, CSP, nosniff, clickjacking protection, version banners nothing
ports risky open ports on the top 100 (-sT -Pn, no scripts, fixed flags) nmap

Targets are validated as hostnames, IPs or CIDR ranges before they can reach an argv list, and the shell is never involved: subprocess.run gets a list. A target containing shell metacharacters is refused as UnsafeTarget, not sanitized and hoped over.

Honest limits

  • The ports module only ever runs one fixed nmap invocation: no -A, no -O, no NSE scripts, no version probing. That is a deliberate ceiling, not a missing feature.
  • dig and nmap are optional. When absent the module is skipped and said to be skipped, never quietly reported as clean.
  • Findings are bounded by checkset v1: a clean run prints No issues found by checkset v1, because silence from twelve checks is not a statement about safety.
  • This is not a substitute for a real engagement process. It records what you did; it cannot tell you whether you were allowed to.

Tests

50 tests, no network access. Grading functions are pure (a certificate dict or header map in, findings out), and every module accepts an injected runner, so the suite proves behaviour without touching a host. The scope and CLI tests are adversarial: out-of-scope targets, missing authorization fields, private ranges without opt-in, shell metacharacters in targets, and a dry run that fails the test if a module is executed at all.

scripts/verify.sh is the gate CI runs.

License

MIT.

Metadata

Release files for kaliauto 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kaliauto 0.1.0
File Size Uploaded Provenance Actions
kaliauto-0.1.0.tar.gz 20.6 kB With provenance Details for kaliauto-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for kaliauto 0.1.0
File Interpreter ABI Platform Actions
kaliauto-0.1.0-py3-none-any.whl Python 3 none any Details for kaliauto-0.1.0-py3-none-any.whl

Total release size: 39.8 kB

Release files / kaliauto-0.1.0.tar.gz

Download URL kaliauto-0.1.0.tar.gz
Size 20.6 kB
Tags Source
SHA-256 checksum
How to use checksums
9e1778088d61c16eca68ef424973a76f4f8153e3a7a79a4d72b45b7db0f9d25c
BLAKE2b-256 checksum
How to use checksums
6d53881fc4aba023250bd3f67d75a5861925be5374f4e3026e5dc05d0cf91062
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.

Transparency log

Release files / kaliauto-0.1.0-py3-none-any.whl

Download URL kaliauto-0.1.0-py3-none-any.whl
Size 19.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d49a58d08baa319e5914158aaf620fbe76651fa8db7aa535ac21b12ba2357f4b
BLAKE2b-256 checksum
How to use checksums
7eab0ce85c43f1dd1b669cae1a202d27f5cd1dc1517e9b5342d2bea45d78f5c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.

Transparency log

Security for kaliauto 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for kaliauto-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 30, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page