Skip to main content

GynToolkit

🌐 Language / Idioma: English · Português (BR)

 ██████╗██╗   ██╗███╗   ██╗    ████████╗ ██████╗  ██████╗ ██╗     ██╗  ██╗██╗████████╗
██╔════╝╚██╗ ██╔╝████╗  ██║    ╚══██╔══╝██╔═══██╗██╔═══██╗██║     ██║ ██╔╝██║╚══██╔══╝
██║  ███╗╚████╔╝ ██╔██╗ ██║       ██║   ██║   ██║██║   ██║██║     █████╔╝ ██║   ██║
██║   ██║ ╚██╔╝  ██║╚██╗██║       ██║   ██║   ██║██║   ██║██║     ██╔═██╗ ██║   ██║   v2.1
╚██████╔╝  ██║   ██║ ╚████║       ██║   ╚██████╔╝╚██████╔╝███████╗██║  ██╗██║   ██║   by: PH,Fl4vs
 ╚═════╝   ╚═╝   ╚═╝  ╚═══╝       ╚═╝    ╚═════╝  ╚═════╝ ╚══════╝╚═╝  ╚═╝╚═╝   ╚═╝

All-in-one Python security toolkit for reconnaissance, network scanning, vulnerability analysis and authorized penetration testing — in a single dark-themed interactive CLI (gyntoolkit:~#).

CI PyPI Python License Platform Purpose

GynToolkit Demo

[!] WARNING: Use only against targets you are authorized in writing to test. Unauthorized use is a crime — Lei 12.737/12 (BR), CFAA (US) and equivalents.


Table of Contents


Why GynToolkit?

  • One CLI, many tools — recon, port scanning, TLS/HTTP fingerprinting, CVE lookup and SSH/HTTP auth testing, without juggling a dozen separate commands.
  • Safe to try — ships with a local lab (127.0.0.1) and an end-to-end runner, so you can exercise every brute-force module without touching a real target.
  • Readable output — rich tables/panels when available, graceful fallback to plain colored text; export any result to JSON or a dark-themed HTML report.
  • Authorization-first — every attack module requires explicit confirmation.
  • Zero mandatory API keys — recon sources used (crt.sh, ip-api, InternetDB, HIBP, NVD) work on their public/free tiers.

Features

[1] Information Gathering — passive & active recon

# Module Source / technique
1 WHOIS python-whois — registrar, dates, contacts
2 DNS Lookup dnspython — A, AAAA, MX, NS, CNAME, TXT, SOA
3 IP Geolocation ip-api.com (free) — country, ISP, ASN, proxy/hosting flags
4 Reverse DNS (PTR) socket.gethostbyaddr
5 Subdomain Enum Certificate Transparency via crt.sh
6 SSL/TLS Cert Inspector cryptography — subject, issuer, SANs, expiry, cipher, SHA-256
7 HTTP Fingerprint nginx, Apache, IIS, Cloudflare, PHP, WordPress, Laravel, ASP.NET, Django, Rails, Node
8 InternetDB (Shodan free) Open ports, CPEs, known CVEs — no API key
9 HIBP Breach Check Domain → known breaches via Have I Been Pwned
10 MAC Vendor Lookup api.macvendors.com — OUI → vendor
11 Traceroute (TCP) scapy — hops + RTT (needs privilege)

[2] Brute Force

# Module Details
1 CUPP wordlist Wrapper for cupp.py -i — custom wordlist generator
2 SSH brute paramiko, async via asyncio.to_thread, concurrency Semaphore, delay
3 HTTP brute aiohttp — Basic Auth or form POST with configurable fail_signature

Every attack requires typing AUTORIZO to confirm — no silent bypass.

[3] Advanced Scanning

  • Port scan — fast (Top 21 common ports) or full (1–65535)
  • SYN scan (stealth) when privileged, automatic fallback to TCP connect
  • Banner grabbing — async, parallel
  • CVE analysis per service via NVD API v2.0
  • Host discovery (ARP scan) by CIDR — e.g. 192.168.0.0/24
  • Automatic risk classification based on CVEs found

[4] Utilities

# Module Details
1 Text hash MD5, SHA1, SHA256, SHA512
2 File hash Streamed (does not load the whole file in memory)
3 Base64 encode UTF-8 → base64
4 Base64 decode base64 → UTF-8 with auto-padding
5 JWT decode Header + payload without signature verification

Installation

Requirements: Python 3.10+ and pip.

pip install gyntoolkit
gyntoolkit          # launch the interactive CLI

That installs the gyntoolkit command and all dependencies.

From source (development)

git clone https://github.com/flavsjr/gyntoolkit.git
cd gyntoolkit
pip install -e .
gyntoolkit          # or: python -m gyntoolkit

Optional — brute-force wordlists: the "CUPP wordlist" module wraps CUPP. Clone it next to where you run GynToolkit (git clone https://github.com/Mebus/cupp.git); it is not a Python dependency and is not installed by pip.

Windows note: for SYN scan and traceroute (raw sockets) install Npcap and run in an admin terminal. Without Npcap, SYN scan degrades to TCP connect scan automatically.


Quick Start

gyntoolkit               # after `pip install gyntoolkit`
# or, from a source checkout:
python -m gyntoolkit

An interactive dark CLI opens with a numbered menu. Commands are entered at the gyntoolkit:~# prompt. Output degrades gracefully to plain colored text if rich is not installed.


Example

Target: the local security lab (never a third-party system).

# 1. Launch GynToolkit
gyntoolkit

# 2. Pick [3] Advanced Scanning → scan 127.0.0.1
# 3. Inspect discovered services / banners
# 4. When prompted, export the result as JSON or HTML report

To exercise the brute-force modules end to end against local mocks:

python lab/run_e2e.py

See Security Lab below.


Security Lab

The project includes a local lab so you can test GynToolkit without targeting external systems — no Docker, no VMs.

GynToolkit  →  Security Lab  →  127.0.0.1  →  Recon / Scan / Auth testing  →  Report
Service Address Valid credentials (intentionally weak)
SSH mock (paramiko) 127.0.0.1:2222 admin:hunter2, root:toor
HTTP mock (aiohttp) 127.0.0.1:8080 Basic admin:letmein · Form admin:s3cret

Run the full automated suite (starts mocks, attacks, validates, tears down):

python lab/run_e2e.py     # exit code 0 = all green

Full walkthrough: docs/security-lab.md and lab/README.md.

The mocks accept weak credentials on purpose. Run only on 127.0.0.1 and never expose them on a public network.


Reports

After scans and recon lookups, the CLI offers to export results as JSON or a dark-themed HTML report. Files are written to reports/<module>-<timestamp>.<fmt> (configurable via export.dir; set export.auto: true to export without prompting). Details in docs/reports.md.


Configuration

Optional. Copy .gyntoolkit.example.yaml to .gyntoolkit.yaml and override only the keys you want — everything else falls back to defaults.

cp .gyntoolkit.example.yaml .gyntoolkit.yaml

Resolution order: GYNTOOLKIT_CONFIG env var → .gyntoolkit.yaml in the current directory → .gyntoolkit.yaml in the project root. Full reference: docs/configuration.md.

UI language: menus run in English or Portuguese. Set ui.lang: auto|en|pt in the config, or GYNTOOLKIT_LANG=pt / =en per run; auto detects the OS locale and falls back to English.


Documentation

Doc Content
docs/installation.md Install from PyPI or source, and the PyPI publish flow
docs/quickstart.md First run, menu walkthrough
docs/reconnaissance.md Recon modules (WHOIS, DNS, TLS, fingerprint, …)
docs/scanning.md Port scan, banners, CVE lookup, host discovery
docs/reports.md JSON / HTML report formats
docs/configuration.md .gyntoolkit.yaml reference
docs/security-lab.md Local lab + end-to-end tests
docs/development.md Dev setup, lint, tests

Development

git clone https://github.com/flavsjr/gyntoolkit.git
cd gyntoolkit
python -m venv .venv && source .venv/bin/activate   # .venv\Scripts\activate on Windows
pip install -e ".[dev]"

Lint and type-check (config in pyproject.toml):

ruff check .
ruff check . --fix
mypy gyntoolkit

See CONTRIBUTING.md and docs/development.md.


Testing

Unit tests (offline — no network, no external services, no real targets):

pytest

End-to-end lab suite (local mocks):

python lab/run_e2e.py

Both run in CI on every push/PR (see the CI badge above).


Contributing

Fork → Branch → Changes → Tests → Pull Request

Commits follow Conventional Commits. Full guide (dev setup, ruff, running the lab): CONTRIBUTING.md. Report bugs and request features with the issue templates.


Security

GynToolkit is intended for authorized security testing, security research, CTFs and controlled lab environments. To report a vulnerability in GynToolkit itself, see SECURITY.md — please do not open a public issue for sensitive reports.


Disclaimer

GynToolkit is intended exclusively for:

  • Security testing authorized in writing
  • Academic research in controlled environments
  • Ethical pentest practice (CTF, HackTheBox, TryHackMe, your own labs)

Any use against systems or networks without explicit authorization is strictly prohibited and constitutes a crime under most jurisdictions. The authors are not liable for misuse or damage caused by this software.


License

MIT — see LICENSE.


Star History

If this project helped you, drop a ⭐ — it really boosts visibility!

Star History Chart

Metadata

Release files for gyntoolkit 2.1.1

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

Source distribution (sdist)

Source distribution for gyntoolkit 2.1.1
File Size Uploaded
gyntoolkit-2.1.1.tar.gz 40.6 kB Details

Built distribution (wheel)

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

Total release size: 78.1 kB

Release files / gyntoolkit-2.1.1.tar.gz

Download URL gyntoolkit-2.1.1.tar.gz
Size 40.6 kB
Tags Source
SHA-256 checksum
How to use checksums
22fac121bb8278e7f0096e06c2fbfeb63b09ec331ad7ffdee825743093c86e33
BLAKE2b-256 checksum
How to use checksums
f8f9308d7625609d9d8eb9b4661bfda4b093f06f5bb5c7e9b2b77ea25389999d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 8, 2026.

Transparency log

Release files / gyntoolkit-2.1.1-py3-none-any.whl

Download URL gyntoolkit-2.1.1-py3-none-any.whl
Size 37.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
93b6835c01a45bdd4d04daf876853a6e195022f467d69697abfb9084b5701fb9
BLAKE2b-256 checksum
How to use checksums
ce157e82042e97ad2e5edb037d36538806b1b4a898e865110a2a21c66f8093c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 8, 2026.

Transparency log

Release history Release notifications | RSS feed

2.3.0

2 release files

2.2.0

2 release files

This release

2.1.1 This release

2 release files

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