Generates permutations on provided subdomains
Project description
pnk
Produce a new combination of subdomains - generates permutations P(n,k).
Make it work
- swap subs themselves: web.test.domain.com -> test.web.domain.com
- increase/decrease digits on subs with numbers: test1.domain.com -> test2.domain.com
Make it right
stdin: reads standard input. This is useful for capturing a pipeline’s contents at an intermediate stage of processing.stdout: supports standard output.- Works with the next arguments:
usage: pnk [-h] [-i | -c] [-d] [-r] [-t TARGET] [-w WORDLIST] [-v] [FILE ...]
Generates a new subdomains on provided input
positional arguments:
FILE list of subdomains/hosts to process
optional arguments:
-h, --help show this help message and exit
-i, --increment increment any one or two digits on subdomains
-c, --cartesian increment digits on subdomains creating their Cartesian product
-d, --data generate test data from the stdin
-r, --replace replace underscores and dashes with dots
-t TARGET, --target TARGET
target domain to find subs for (which will not be processed)
-w WORDLIST, --wordlist WORDLIST
mixed subdomains with wordlist
-v, --version show program's version number and exit
$ cat subs1.txt subs2.txt | pnk
Make it fast
To turn this single process script into multiprocess use interlace
Features
Permutations:
echo "aws3-3.s11.env2.tesla.com" | pnk
aws3-3.s11.env2.tesla.com
aws3-3.env2.s11.tesla.com
s11.aws3-3.env2.tesla.com
s11.env2.aws3-3.tesla.com
env2.aws3-3.s11.tesla.com
env2.s11.aws3-3.tesla.com
With incrementation option:
echo "aws3-3.s11.env2.tesla.com" | pnk -i
aws0-3.s11.env2.tesla.com
aws1-3.s11.env2.tesla.com
aws2-3.s11.env2.tesla.com
...
aws8-8.s11.env2.tesla.com
aws9-9.s11.env2.tesla.com
...
Using the cartesian product option:
echo "v0.1-v2.tcsbank.ru" | pnk -c
v0.dev0-v0.tcsbank.ru
v1.dev0-v0.tcsbank.ru
...
v0.dev1-v0.tcsbank.ru
v0.dev2-v0.tcsbank.ru
...
v9.dev9-v8.tcsbank.ru
v9.dev9-v9.tcsbank.ru
Install & Usage
PyPi:
pip3 install --no-deps pnk
From the source code:
$ cat subs1.txt subs2.txt | ./src/pnk/__main__.py
Constraints
Limitations
- Does't handle increment option in the following cases: more then two digits:
v123.tesla.com -> v123.tesla.com
aws.1002030v.amazon.com -> aws.1002030v.amazon.com
- Does not ships with DNS resolver, use massdns
$ pnk < list.txt | massdns -
- Possible out of memory issues when redirecting
stdoutto a file, please read the Wiki
Feature request
See the open issue for the following feature requests:
- replace keywords with word in wordlist: v2.test.domain.com -> v2.stage.domain.com .. v2.prod.domain.com
- prepend/append word by creating new subs: test.domain.com -> demo.test.domain.com, test.demo.domain.com
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pnk-3.0.0.tar.gz.
File metadata
- Download URL: pnk-3.0.0.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6aa82d6e36e7e65d419dd942cddde1b48895df68c4f27ba73d2156e98a150c23
|
|
| MD5 |
8065003b4b53c6c4ceab2c83abe5652f
|
|
| BLAKE2b-256 |
79d558aefc87bd6968c2b8704db0a1da6220b74d91328ca07e0a98898eb14a8f
|
File details
Details for the file pnk-3.0.0-py3-none-any.whl.
File metadata
- Download URL: pnk-3.0.0-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f0a7f185a5076d9907317b257382082c041ed724ce0e0ebff84c7bf5f323c4f2
|
|
| MD5 |
570bec820e9a6c0aab3ea1c17ba0e37a
|
|
| BLAKE2b-256 |
428a540ed156b9624a58bc3e1cd9fe2cdd4c8e8514f803da574510e65edc1fff
|