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.
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
- 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. - Dry run is the default.
kaliauto scanprints exactly what it would do and sends nothing. Traffic requires--execute, given deliberately. - Everything is audited.
.kaliauto/audit.jsonlgets 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
portsmodule 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. digandnmapare 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 printsNo 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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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 logRelease 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 logSecurity 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.
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 logA 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.