Skip to main content

Modular security toolkit for recon, scanning, and HTTP inspection.

Project description

nyx-toolkit

Modular security toolkit for recon, scanning, and HTTP inspection.
Minimal dependencies — stdlib only except dnspython for DNS resolution.

⚠️ Legal Disclaimer

nyx-toolkit is intended for authorized security testing and educational purposes only.
Only use this tool against systems you own or have explicit written permission to test.
Unauthorized scanning may be illegal in your jurisdiction. The authors accept no liability for misuse.

Installation

pip install nyx-toolkit

Or from source:

git clone https://github.com/Moonflower-labs/nyx
cd nyx
uv sync

Usage

nyx <command> <target> [options]

Commands

scan

TCP connect scan or SYN stealth scan — find open ports on a host or CIDR range.

nyx scan example.com
nyx scan example.com --ports 1-1024
nyx scan example.com --ports 80,443,8080
nyx scan example.com --ports full --concurrency 200
nyx scan 192.168.1.0/24 --ports common
nyx scan example.com --show-all
nyx scan example.com --banners
nyx scan example.com --output json
sudo nyx scan example.com --stealth
sudo nyx scan example.com --stealth --ports 1-1024 --output json
Flag Default Description
-p, --ports common Port expression: 80, 1-1024, 80,443, common, full
-t, --timeout 1.0 Per-port timeout in seconds
-c, --concurrency 100 Concurrent threads
-o, --output plain Output format: plain or json
--show-all off Show closed and filtered ports, not just open
--banners off Grab service banners from open ports
--stealth off SYN scan — never completes handshake (requires root)

Named port sets

Name Ports
common 21, 22, 23, 25, 53, 80, 110, 143, 443, 445, 3306, 3389, 5432, 6379, 8080, 8443
full 1–65535

Scan modes

Mode How Root required
TCP connect (default) Full 3-way handshake via connect() No
SYN stealth (--stealth) Sends SYN, reads SYN-ACK, sends RST — handshake never completes Yes

Banner grabbing

Services that announce themselves on connect (SSH, FTP, SMTP, etc.) are read directly. HTTP/HTTPS ports receive a HEAD / probe and return the Server: header.


http

Inspect HTTP responses — status, headers, redirect chain, TLS info, and security header audit.

nyx http example.com
nyx http https://example.com --no-follow
nyx http example.com --output json
Flag Default Description
-t, --timeout 10.0 Request timeout in seconds
-o, --output plain Output format: plain or json
--no-follow off Do not follow redirects

Security headers audited

strict-transport-security, content-security-policy, x-frame-options, x-content-type-options, referrer-policy, permissions-policy

Note: TLS certificate verification is disabled for HTTPS banner grabbing — this is intentional for a security scanner.


recon

Subdomain enumeration and DNS record lookup.

nyx recon example.com
nyx recon example.com --no-subdomains
nyx recon example.com --concurrency 100
nyx recon example.com --output json
Flag Default Description
-c, --concurrency 50 Concurrent threads for subdomain brute-force
-o, --output plain Output format: plain or json
--no-subdomains off Skip subdomain enumeration, DNS only

Resolves A, AAAA, MX, NS, and TXT records via dnspython. Brute-forces subdomains against a 60-entry wordlist covering common subdomains (www, api, mail, dev, staging, admin, git, vpn, and more).


Architecture

src/nyx/
  cli.py              entry point, argument parsing, subparsers
  commands/
    scan.py           port scanning logic
    http.py           HTTP inspection logic
    recon.py          recon and subdomain enumeration
  core/
    network.py        hostname resolution, IP validation, CIDR expansion
    utils.py          port expression parsing, named port sets
    output.py         Result dataclass, colored printing, JSON serialization
    scanner.py        TCP connect scan, concurrent scanning, banner grabbing
    syn.py            raw packet construction, SYN stealth scan

Design principles

  • core/ is pure logic — no CLI, no printing, no side effects
  • commands/ are thin — receive already-parsed values from cli.py and call into core/
  • cli.py owns all argument parsing via subparsers
  • Minimal dependencies — stdlib only except dnspython for real DNS resolution

Notes

  • TCP connect scan requires no root privileges
  • SYN stealth scan requires root (sudo) on both macOS and Linux — uses raw sockets
  • scanme.nmap.org is a safe host to test scanning against (maintained by the Nmap project)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nyx_toolkit-0.1.1.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nyx_toolkit-0.1.1-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file nyx_toolkit-0.1.1.tar.gz.

File metadata

  • Download URL: nyx_toolkit-0.1.1.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for nyx_toolkit-0.1.1.tar.gz
Algorithm Hash digest
SHA256 90d1d20888a2b9cca05f3d3efcffd49ea2a9a433bfdcdbbf904db9b54f07c1f3
MD5 992949c85df6c75ebd58a200bb2b9fe7
BLAKE2b-256 9ce1bf84804bca1b830a283979b23a1cf661dfca814a0c5535517452b8e83e23

See more details on using hashes here.

File details

Details for the file nyx_toolkit-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: nyx_toolkit-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for nyx_toolkit-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a86e386eca94d66527989216d32eb9280feb9d088076ef76633a398a0034f42c
MD5 2266267ac9e43e65e7c8d8171a216ba6
BLAKE2b-256 9b055b87a53fd362bbf56a09b5ed68f4d397c045f011ce1285fe58fbcd4d7abf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page