Skip to main content

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

  1. stdin: reads standard input. This is useful for capturing a pipeline’s contents at an intermediate stage of processing.
  2. stdout: supports standard output.
  3. 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

  1. 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
  1. Does not ships with DNS resolver, use massdns
$ pnk < list.txt | massdns -
  1. Possible out of memory issues when redirecting stdout to 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

pnk-3.0.0.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

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

pnk-3.0.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

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

Hashes for pnk-3.0.0.tar.gz
Algorithm Hash digest
SHA256 6aa82d6e36e7e65d419dd942cddde1b48895df68c4f27ba73d2156e98a150c23
MD5 8065003b4b53c6c4ceab2c83abe5652f
BLAKE2b-256 79d558aefc87bd6968c2b8704db0a1da6220b74d91328ca07e0a98898eb14a8f

See more details on using hashes here.

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

Hashes for pnk-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f0a7f185a5076d9907317b257382082c041ed724ce0e0ebff84c7bf5f323c4f2
MD5 570bec820e9a6c0aab3ea1c17ba0e37a
BLAKE2b-256 428a540ed156b9624a58bc3e1cd9fe2cdd4c8e8514f803da574510e65edc1fff

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