Metadata-Version: 2.4
Name: netkatana
Version: 0.1.17
Summary: Add your description here
Author: Vlad Dmitrievich
Author-email: Vlad Dmitrievich <2tunnels@proton.me>
License-Expression: MIT
Classifier: Development Status :: 1 - Planning
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Security
Classifier: Topic :: Software Development
Classifier: Topic :: System :: Networking :: Monitoring
Requires-Dist: click>=8.3.2
Requires-Dist: dnspython>=2.8.0
Requires-Dist: httpx>=0.28.1
Requires-Dist: pydantic>=2.12.5
Requires-Dist: rich>=14.3.3
Requires-Python: >=3.14.3
Project-URL: source, https://github.com/netkatana/netkatana
Description-Content-Type: text/markdown

# netkatana

[![CI](https://github.com/netkatana/netkatana/actions/workflows/ci.yml/badge.svg)](https://github.com/netkatana/netkatana/actions/workflows/ci.yml)

🚧Experiment, under construction 🚧

Security scanner for HTTP headers, TLS certificates (using [tlsx](https://github.com/projectdiscovery/tlsx)),
and DNS configuration.

## Usage

Using uvx:

```sh
uvx netkatana http example.com
uvx netkatana tls example.com --severity=critical
uvx netkatana dns example.com -s critical -s warning -s notice -s pass -f jsonl
```

Using docker:

```sh
docker run -it ghcr.io/netkatana/netkatana tls expired.badssl.com
```

## Implemented Checks

- HTTP: 247 checks
- HTTP headers: 241 checks
- HTTP response behavior: 6 checks
- CSP: 191 checks
- HSTS: 7 checks
- CORS: 6 checks
- COOP / COEP / CORP: 20 checks
- Cookies: 6 checks
- TLS: 8 checks
- DNS: 5 checks

Architecture notes:

- rules are defined in [rules.py](https://github.com/netkatana/netkatana/blob/main/src/netkatana/rules.py)
- validators live under [validators](https://github.com/netkatana/netkatana/tree/main/src/netkatana/validators)
