gyntoolkit 2.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gyntoolkit-2.1.1/LICENSE +21 -0
- gyntoolkit-2.1.1/PKG-INFO +386 -0
- gyntoolkit-2.1.1/README.md +343 -0
- gyntoolkit-2.1.1/gyntoolkit/__init__.py +80 -0
- gyntoolkit-2.1.1/gyntoolkit/__main__.py +7 -0
- gyntoolkit-2.1.1/gyntoolkit/brute.py +179 -0
- gyntoolkit-2.1.1/gyntoolkit/cli.py +451 -0
- gyntoolkit-2.1.1/gyntoolkit/config.py +109 -0
- gyntoolkit-2.1.1/gyntoolkit/core.py +86 -0
- gyntoolkit-2.1.1/gyntoolkit/export.py +139 -0
- gyntoolkit-2.1.1/gyntoolkit/i18n.py +487 -0
- gyntoolkit-2.1.1/gyntoolkit/recon.py +358 -0
- gyntoolkit-2.1.1/gyntoolkit/scan.py +150 -0
- gyntoolkit-2.1.1/gyntoolkit/ui.py +132 -0
- gyntoolkit-2.1.1/gyntoolkit/utils.py +61 -0
- gyntoolkit-2.1.1/gyntoolkit.egg-info/PKG-INFO +386 -0
- gyntoolkit-2.1.1/gyntoolkit.egg-info/SOURCES.txt +25 -0
- gyntoolkit-2.1.1/gyntoolkit.egg-info/dependency_links.txt +1 -0
- gyntoolkit-2.1.1/gyntoolkit.egg-info/entry_points.txt +2 -0
- gyntoolkit-2.1.1/gyntoolkit.egg-info/requires.txt +15 -0
- gyntoolkit-2.1.1/gyntoolkit.egg-info/top_level.txt +1 -0
- gyntoolkit-2.1.1/pyproject.toml +77 -0
- gyntoolkit-2.1.1/setup.cfg +4 -0
- gyntoolkit-2.1.1/tests/test_config.py +48 -0
- gyntoolkit-2.1.1/tests/test_export.py +41 -0
- gyntoolkit-2.1.1/tests/test_i18n.py +77 -0
- gyntoolkit-2.1.1/tests/test_utils.py +65 -0
gyntoolkit-2.1.1/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-2026 PH, Fl4vs (GynToolkit)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: gyntoolkit
|
|
3
|
+
Version: 2.1.1
|
|
4
|
+
Summary: Canivete suΓΓ§o de pentest β recon, port scan, CVE lookup e brute force.
|
|
5
|
+
Author: PH, Fl4vs
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/flavsjr/gyntoolkit
|
|
8
|
+
Project-URL: Repository, https://github.com/flavsjr/gyntoolkit
|
|
9
|
+
Project-URL: Issue Tracker, https://github.com/flavsjr/gyntoolkit/issues
|
|
10
|
+
Keywords: security,pentest,reconnaissance,port-scanner,cli
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Information Technology
|
|
14
|
+
Classifier: Intended Audience :: System Administrators
|
|
15
|
+
Classifier: Topic :: Security
|
|
16
|
+
Classifier: Topic :: System :: Networking
|
|
17
|
+
Classifier: Topic :: System :: Networking :: Monitoring
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
23
|
+
Classifier: Operating System :: OS Independent
|
|
24
|
+
Classifier: Natural Language :: Portuguese (Brazilian)
|
|
25
|
+
Requires-Python: >=3.10
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
License-File: LICENSE
|
|
28
|
+
Requires-Dist: colorama>=0.4.6
|
|
29
|
+
Requires-Dist: requests>=2.32.0
|
|
30
|
+
Requires-Dist: python-whois>=0.9.4
|
|
31
|
+
Requires-Dist: dnspython>=2.6.1
|
|
32
|
+
Requires-Dist: scapy>=2.5.0
|
|
33
|
+
Requires-Dist: paramiko>=3.4.0
|
|
34
|
+
Requires-Dist: aiohttp>=3.10.0
|
|
35
|
+
Requires-Dist: cryptography>=42.0.0
|
|
36
|
+
Requires-Dist: rich>=13.7.0
|
|
37
|
+
Requires-Dist: pyyaml>=6.0.1
|
|
38
|
+
Provides-Extra: dev
|
|
39
|
+
Requires-Dist: ruff>=0.6.0; extra == "dev"
|
|
40
|
+
Requires-Dist: mypy>=1.11.0; extra == "dev"
|
|
41
|
+
Requires-Dist: pytest>=8.3.0; extra == "dev"
|
|
42
|
+
Dynamic: license-file
|
|
43
|
+
|
|
44
|
+
# GynToolkit
|
|
45
|
+
|
|
46
|
+
**π Language / Idioma:** **English** Β· [PortuguΓͺs (BR)](README.pt-BR.md)
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
ββββββββββ βββββββ βββ βββββββββ βββββββ βββββββ βββ βββ βββββββββββββββ
|
|
50
|
+
ββββββββββββ βββββββββ βββ ββββββββββββββββββββββββββββββ βββ ββββββββββββββββ
|
|
51
|
+
βββ βββββββββββ ββββββ βββ βββ βββ ββββββ ββββββ βββββββ βββ βββ
|
|
52
|
+
βββ βββ βββββ ββββββββββ βββ βββ ββββββ ββββββ βββββββ βββ βββ v2.1
|
|
53
|
+
βββββββββ βββ βββ ββββββ βββ βββββββββββββββββββββββββββββ ββββββ βββ by: PH,Fl4vs
|
|
54
|
+
βββββββ βββ βββ βββββ βββ βββββββ βββββββ βββββββββββ ββββββ βββ
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
> All-in-one Python security toolkit for reconnaissance, network scanning,
|
|
58
|
+
> vulnerability analysis and **authorized** penetration testing β in a single
|
|
59
|
+
> dark-themed interactive CLI (`gyntoolkit:~#`).
|
|
60
|
+
|
|
61
|
+
[](https://github.com/flavsjr/gyntoolkit/actions/workflows/tests.yml)
|
|
62
|
+
[](https://pypi.org/project/gyntoolkit/)
|
|
63
|
+

|
|
64
|
+

|
|
65
|
+

|
|
66
|
+

|
|
67
|
+
|
|
68
|
+
<!-- Demo: generate the GIF with `vhs demo.tape` (see demo.tape at the repo root). -->
|
|
69
|
+

|
|
70
|
+
|
|
71
|
+
> `[!] WARNING:` Use **only** against targets you are **authorized in writing** to test.
|
|
72
|
+
> Unauthorized use is a crime β Lei 12.737/12 (BR), CFAA (US) and equivalents.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Table of Contents
|
|
77
|
+
|
|
78
|
+
- [Why GynToolkit?](#why-gyntoolkit)
|
|
79
|
+
- [Features](#features)
|
|
80
|
+
- [Installation](#installation)
|
|
81
|
+
- [Quick Start](#quick-start)
|
|
82
|
+
- [Example](#example)
|
|
83
|
+
- [Security Lab](#security-lab)
|
|
84
|
+
- [Reports](#reports)
|
|
85
|
+
- [Configuration](#configuration)
|
|
86
|
+
- [Documentation](#documentation)
|
|
87
|
+
- [Development](#development)
|
|
88
|
+
- [Testing](#testing)
|
|
89
|
+
- [Contributing](#contributing)
|
|
90
|
+
- [Security](#security)
|
|
91
|
+
- [Disclaimer](#disclaimer)
|
|
92
|
+
- [License](#license)
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## Why GynToolkit?
|
|
97
|
+
|
|
98
|
+
- **One CLI, many tools** β recon, port scanning, TLS/HTTP fingerprinting, CVE
|
|
99
|
+
lookup and SSH/HTTP auth testing, without juggling a dozen separate commands.
|
|
100
|
+
- **Safe to try** β ships with a local lab (`127.0.0.1`) and an end-to-end runner,
|
|
101
|
+
so you can exercise every brute-force module without touching a real target.
|
|
102
|
+
- **Readable output** β `rich` tables/panels when available, graceful fallback to
|
|
103
|
+
plain colored text; export any result to JSON or a dark-themed HTML report.
|
|
104
|
+
- **Authorization-first** β every attack module requires explicit confirmation.
|
|
105
|
+
- **Zero mandatory API keys** β recon sources used (crt.sh, ip-api, InternetDB,
|
|
106
|
+
HIBP, NVD) work on their public/free tiers.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Features
|
|
111
|
+
|
|
112
|
+
### `[1]` Information Gathering β passive & active recon
|
|
113
|
+
|
|
114
|
+
| # | Module | Source / technique |
|
|
115
|
+
|---|--------|--------------------|
|
|
116
|
+
| 1 | **WHOIS** | `python-whois` β registrar, dates, contacts |
|
|
117
|
+
| 2 | **DNS Lookup** | `dnspython` β A, AAAA, MX, NS, CNAME, TXT, SOA |
|
|
118
|
+
| 3 | **IP Geolocation** | `ip-api.com` (free) β country, ISP, ASN, proxy/hosting flags |
|
|
119
|
+
| 4 | **Reverse DNS (PTR)** | `socket.gethostbyaddr` |
|
|
120
|
+
| 5 | **Subdomain Enum** | Certificate Transparency via `crt.sh` |
|
|
121
|
+
| 6 | **SSL/TLS Cert Inspector** | `cryptography` β subject, issuer, SANs, expiry, cipher, SHA-256 |
|
|
122
|
+
| 7 | **HTTP Fingerprint** | nginx, Apache, IIS, Cloudflare, PHP, WordPress, Laravel, ASP.NET, Django, Rails, Node |
|
|
123
|
+
| 8 | **InternetDB (Shodan free)** | Open ports, CPEs, known CVEs β no API key |
|
|
124
|
+
| 9 | **HIBP Breach Check** | Domain β known breaches via Have I Been Pwned |
|
|
125
|
+
| 10 | **MAC Vendor Lookup** | `api.macvendors.com` β OUI β vendor |
|
|
126
|
+
| 11 | **Traceroute (TCP)** | `scapy` β hops + RTT (needs privilege) |
|
|
127
|
+
|
|
128
|
+
### `[2]` Brute Force
|
|
129
|
+
|
|
130
|
+
| # | Module | Details |
|
|
131
|
+
|---|--------|---------|
|
|
132
|
+
| 1 | **CUPP wordlist** | Wrapper for `cupp.py -i` β custom wordlist generator |
|
|
133
|
+
| 2 | **SSH brute** | `paramiko`, async via `asyncio.to_thread`, concurrency `Semaphore`, delay |
|
|
134
|
+
| 3 | **HTTP brute** | `aiohttp` β Basic Auth or form POST with configurable `fail_signature` |
|
|
135
|
+
|
|
136
|
+
> Every attack requires typing `AUTORIZO` to confirm β no silent bypass.
|
|
137
|
+
|
|
138
|
+
### `[3]` Advanced Scanning
|
|
139
|
+
|
|
140
|
+
- **Port scan** β fast (Top 21 common ports) or full (1β65535)
|
|
141
|
+
- **SYN scan** (stealth) when privileged, automatic fallback to **TCP connect**
|
|
142
|
+
- **Banner grabbing** β async, parallel
|
|
143
|
+
- **CVE analysis** per service via **NVD API v2.0**
|
|
144
|
+
- **Host discovery** (ARP scan) by CIDR β e.g. `192.168.0.0/24`
|
|
145
|
+
- Automatic risk classification based on CVEs found
|
|
146
|
+
|
|
147
|
+
### `[4]` Utilities
|
|
148
|
+
|
|
149
|
+
| # | Module | Details |
|
|
150
|
+
|---|--------|---------|
|
|
151
|
+
| 1 | **Text hash** | MD5, SHA1, SHA256, SHA512 |
|
|
152
|
+
| 2 | **File hash** | Streamed (does not load the whole file in memory) |
|
|
153
|
+
| 3 | **Base64 encode** | UTF-8 β base64 |
|
|
154
|
+
| 4 | **Base64 decode** | base64 β UTF-8 with auto-padding |
|
|
155
|
+
| 5 | **JWT decode** | Header + payload without signature verification |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Installation
|
|
160
|
+
|
|
161
|
+
**Requirements:** Python 3.10+ and `pip`.
|
|
162
|
+
|
|
163
|
+
### From PyPI (recommended)
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
pip install gyntoolkit
|
|
167
|
+
gyntoolkit # launch the interactive CLI
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
That installs the `gyntoolkit` command and all dependencies.
|
|
171
|
+
|
|
172
|
+
### From source (development)
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
git clone https://github.com/flavsjr/gyntoolkit.git
|
|
176
|
+
cd gyntoolkit
|
|
177
|
+
pip install -e .
|
|
178
|
+
gyntoolkit # or: python -m gyntoolkit
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
> **Optional β brute-force wordlists:** the "CUPP wordlist" module wraps
|
|
182
|
+
> [CUPP](https://github.com/Mebus/cupp). Clone it next to where you run
|
|
183
|
+
> GynToolkit (`git clone https://github.com/Mebus/cupp.git`); it is not a
|
|
184
|
+
> Python dependency and is not installed by pip.
|
|
185
|
+
|
|
186
|
+
**Windows note:** for SYN scan and traceroute (raw sockets) install
|
|
187
|
+
[Npcap](https://npcap.com) and run in an **admin** terminal. Without Npcap, SYN
|
|
188
|
+
scan degrades to TCP connect scan automatically.
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## Quick Start
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
gyntoolkit # after `pip install gyntoolkit`
|
|
196
|
+
# or, from a source checkout:
|
|
197
|
+
python -m gyntoolkit
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
An interactive dark CLI opens with a numbered menu. Commands are entered at the
|
|
201
|
+
`gyntoolkit:~#` prompt. Output degrades gracefully to plain colored text if
|
|
202
|
+
[`rich`](https://github.com/Textualize/rich) is not installed.
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Example
|
|
207
|
+
|
|
208
|
+
Target: the **local security lab** (never a third-party system).
|
|
209
|
+
|
|
210
|
+
```bash
|
|
211
|
+
# 1. Launch GynToolkit
|
|
212
|
+
gyntoolkit
|
|
213
|
+
|
|
214
|
+
# 2. Pick [3] Advanced Scanning β scan 127.0.0.1
|
|
215
|
+
# 3. Inspect discovered services / banners
|
|
216
|
+
# 4. When prompted, export the result as JSON or HTML report
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
To exercise the brute-force modules end to end against local mocks:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
python lab/run_e2e.py
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
See [Security Lab](#security-lab) below.
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Security Lab
|
|
230
|
+
|
|
231
|
+
The project includes a local lab so you can test GynToolkit **without targeting
|
|
232
|
+
external systems** β no Docker, no VMs.
|
|
233
|
+
|
|
234
|
+
```text
|
|
235
|
+
GynToolkit β Security Lab β 127.0.0.1 β Recon / Scan / Auth testing β Report
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
| Service | Address | Valid credentials (intentionally weak) |
|
|
239
|
+
|---------|---------|-----------------------------------------|
|
|
240
|
+
| SSH mock (`paramiko`) | `127.0.0.1:2222` | `admin:hunter2`, `root:toor` |
|
|
241
|
+
| HTTP mock (`aiohttp`) | `127.0.0.1:8080` | Basic `admin:letmein` Β· Form `admin:s3cret` |
|
|
242
|
+
|
|
243
|
+
Run the full automated suite (starts mocks, attacks, validates, tears down):
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
python lab/run_e2e.py # exit code 0 = all green
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
Full walkthrough: [`docs/security-lab.md`](docs/security-lab.md) and
|
|
250
|
+
[`lab/README.md`](lab/README.md).
|
|
251
|
+
|
|
252
|
+
> The mocks accept weak credentials **on purpose**. Run only on `127.0.0.1` and
|
|
253
|
+
> never expose them on a public network.
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## Reports
|
|
258
|
+
|
|
259
|
+
After scans and recon lookups, the CLI offers to export results as **JSON** or a
|
|
260
|
+
dark-themed **HTML report**. Files are written to
|
|
261
|
+
`reports/<module>-<timestamp>.<fmt>` (configurable via `export.dir`; set
|
|
262
|
+
`export.auto: true` to export without prompting). Details in
|
|
263
|
+
[`docs/reports.md`](docs/reports.md).
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## Configuration
|
|
268
|
+
|
|
269
|
+
Optional. Copy `.gyntoolkit.example.yaml` to `.gyntoolkit.yaml` and override only
|
|
270
|
+
the keys you want β everything else falls back to defaults.
|
|
271
|
+
|
|
272
|
+
```bash
|
|
273
|
+
cp .gyntoolkit.example.yaml .gyntoolkit.yaml
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
Resolution order: `GYNTOOLKIT_CONFIG` env var β `.gyntoolkit.yaml` in the current
|
|
277
|
+
directory β `.gyntoolkit.yaml` in the project root. Full reference:
|
|
278
|
+
[`docs/configuration.md`](docs/configuration.md).
|
|
279
|
+
|
|
280
|
+
**UI language:** menus run in English or Portuguese. Set `ui.lang: auto|en|pt`
|
|
281
|
+
in the config, or `GYNTOOLKIT_LANG=pt` / `=en` per run; `auto` detects the OS
|
|
282
|
+
locale and falls back to English.
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
## Documentation
|
|
287
|
+
|
|
288
|
+
| Doc | Content |
|
|
289
|
+
|-----|---------|
|
|
290
|
+
| [`docs/installation.md`](docs/installation.md) | Install from PyPI or source, and the PyPI publish flow |
|
|
291
|
+
| [`docs/quickstart.md`](docs/quickstart.md) | First run, menu walkthrough |
|
|
292
|
+
| [`docs/reconnaissance.md`](docs/reconnaissance.md) | Recon modules (WHOIS, DNS, TLS, fingerprint, β¦) |
|
|
293
|
+
| [`docs/scanning.md`](docs/scanning.md) | Port scan, banners, CVE lookup, host discovery |
|
|
294
|
+
| [`docs/reports.md`](docs/reports.md) | JSON / HTML report formats |
|
|
295
|
+
| [`docs/configuration.md`](docs/configuration.md) | `.gyntoolkit.yaml` reference |
|
|
296
|
+
| [`docs/security-lab.md`](docs/security-lab.md) | Local lab + end-to-end tests |
|
|
297
|
+
| [`docs/development.md`](docs/development.md) | Dev setup, lint, tests |
|
|
298
|
+
|
|
299
|
+
---
|
|
300
|
+
|
|
301
|
+
## Development
|
|
302
|
+
|
|
303
|
+
```bash
|
|
304
|
+
git clone https://github.com/flavsjr/gyntoolkit.git
|
|
305
|
+
cd gyntoolkit
|
|
306
|
+
python -m venv .venv && source .venv/bin/activate # .venv\Scripts\activate on Windows
|
|
307
|
+
pip install -e ".[dev]"
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
Lint and type-check (config in `pyproject.toml`):
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
ruff check .
|
|
314
|
+
ruff check . --fix
|
|
315
|
+
mypy gyntoolkit
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
See [`CONTRIBUTING.md`](CONTRIBUTING.md) and [`docs/development.md`](docs/development.md).
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Testing
|
|
323
|
+
|
|
324
|
+
Unit tests (offline β no network, no external services, no real targets):
|
|
325
|
+
|
|
326
|
+
```bash
|
|
327
|
+
pytest
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
End-to-end lab suite (local mocks):
|
|
331
|
+
|
|
332
|
+
```bash
|
|
333
|
+
python lab/run_e2e.py
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
Both run in CI on every push/PR (see the CI badge above).
|
|
337
|
+
|
|
338
|
+
---
|
|
339
|
+
|
|
340
|
+
## Contributing
|
|
341
|
+
|
|
342
|
+
```text
|
|
343
|
+
Fork β Branch β Changes β Tests β Pull Request
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
Commits follow [Conventional Commits](https://www.conventionalcommits.org/).
|
|
347
|
+
Full guide (dev setup, `ruff`, running the lab): [`CONTRIBUTING.md`](CONTRIBUTING.md).
|
|
348
|
+
Report bugs and request features with the
|
|
349
|
+
[issue templates](.github/ISSUE_TEMPLATE/).
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## Security
|
|
354
|
+
|
|
355
|
+
GynToolkit is intended for **authorized** security testing, security research,
|
|
356
|
+
CTFs and controlled lab environments. To report a vulnerability **in GynToolkit
|
|
357
|
+
itself**, see [`SECURITY.md`](SECURITY.md) β please do not open a public issue
|
|
358
|
+
for sensitive reports.
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## Disclaimer
|
|
363
|
+
|
|
364
|
+
GynToolkit is intended **exclusively** for:
|
|
365
|
+
|
|
366
|
+
- Security testing **authorized in writing**
|
|
367
|
+
- Academic research in controlled environments
|
|
368
|
+
- Ethical pentest practice (CTF, HackTheBox, TryHackMe, your own labs)
|
|
369
|
+
|
|
370
|
+
Any use against systems or networks **without explicit authorization** is
|
|
371
|
+
strictly prohibited and constitutes a crime under most jurisdictions. The authors
|
|
372
|
+
are not liable for misuse or damage caused by this software.
|
|
373
|
+
|
|
374
|
+
---
|
|
375
|
+
|
|
376
|
+
## License
|
|
377
|
+
|
|
378
|
+
MIT β see [`LICENSE`](LICENSE).
|
|
379
|
+
|
|
380
|
+
---
|
|
381
|
+
|
|
382
|
+
## Star History
|
|
383
|
+
|
|
384
|
+
If this project helped you, drop a β β it really boosts visibility!
|
|
385
|
+
|
|
386
|
+
[](https://star-history.com/#flavsjr/gyntoolkit&Date)
|