Skip to main content

wordlistools

Wordlistools is a collection of tools to play with wordlists. This tool was built with offensive security in mind, to help bruteforcing, filtering wordlists to crack passwords, building wordlists for fuzzing, etc. This project is still under development.

Features

  • Can be used as command lines or as a python library
  • Can be used with stdin redirection |
  • Easily extensible, you can add your own plugins on your home directory ~/.koalak/wordlistools/plugins

wordlistools demo

Install

pip3 install wordlistools

Demonstration

Note: This demonstration is an old version of wordlistools, but the principe remains the same. wordlistools demo

Using policy subcommand

You can filter your wordlist based on a policy, the policy follow the following format [base_policy][lenght_policy]. The base policy can have the following rules:

  • a: word must contain at least one lower case letter
  • A: word must contain at least one upper case letter
  • 1: word must contain at least one digit
  • @: word must contain at least one special character

length rule have an operator (==, !=, <=, >=, <, >) followed by its length. Example if we want to have passwords that have at least one lowercase, at least one upper case, at least one special character and its length is at least 10 characters long policy 'aA@>=10'. Do not forget to quote your arguments.

policy_cmd

Add a tool

You can easily add your own tools in wordlistools. Create a python file in ~/koalak/wordlistools/plugins/ and subclass BasePlugin, wordlistools will automatically execute your script and register your plugin.

You have to define the following attributes

  • name(str): the name of your plugin (must be unique)
  • description(str): description of what your will plugin do, it will be displayed in the help CLI

Implement the following abstract methods:

  • init_parser(): to configure the CLI arguments by using the standard library argparse, use self.add_argument which is a wrapper for the original argparse method.
  • run: implement here the logic of your plugin, take any things as parameters and must return an iterator of strings
  • cmd(args): must call the self.run method based on the args arguments of argparse

Plugin Template

# path of this file: ~/koalak/wordlistools/plugins/myplugins.py
import itertools
from wordlistools import BaseTool


class MyTool(BaseTool):
    name = "myplugin"
    description = "Do nothing, return the same list"

    def init_parser(self):
        self.add_argument("wordlists", help="wordlist to return", nargs="+", stdin=True)

    def cmd(cls, args):
        return cls.run(*args.wordlists)

    def run(cls, *wordlists):
        wordlists = cls.normalize_wordlists(wordlists)
        for e in itertools.chain(*wordlists):
            yield e

If you want your plugins to handle stdin wordlists you have to add stdin=True in add_argument.

Release files for wordlistools 0.1.10

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

Source distribution (sdist)

Source distribution for wordlistools 0.1.10
File Size Uploaded
wordlistools-0.1.10.tar.gz 17.0 kB Details

Built distribution (wheel)

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

Total release size: 38.3 kB

Release files / wordlistools-0.1.10.tar.gz

Download URL wordlistools-0.1.10.tar.gz
Size 17.0 kB
Tags Source
SHA-256 checksum
How to use checksums
a85bf7712f9623d521efa65c15011a8af1640e25d4bec56068dc572fa1ece21c
BLAKE2b-256 checksum
How to use checksums
1e2f426b9751abe1858380cc111ea6b1bff92c49f3a92b6949a36fd37324e9f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.4.2 requests/2.31.0 setuptools/49.2.1 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10

Release files / wordlistools-0.1.10-py3-none-any.whl

Download URL wordlistools-0.1.10-py3-none-any.whl
Size 21.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f2e084a31a8a64282653c135f99af73d5a1bc44c368ff69125eef0158b842c7a
BLAKE2b-256 checksum
How to use checksums
0b526cc69c5c8acebcbe02534a1b8d5648e9cbd06a90299fceaebf6bd32d210d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.4.2 requests/2.31.0 setuptools/49.2.1 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10

Release history Release notifications | RSS feed

This release

0.1.10 This release

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

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