Skip to main content

Tools to play with wordlists

Project description

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.

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

wordlistools-0.1.7.tar.gz (17.3 kB view details)

Uploaded Source

Built Distribution

wordlistools-0.1.7-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

File details

Details for the file wordlistools-0.1.7.tar.gz.

File metadata

  • Download URL: wordlistools-0.1.7.tar.gz
  • Upload date:
  • Size: 17.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10

File hashes

Hashes for wordlistools-0.1.7.tar.gz
Algorithm Hash digest
SHA256 7b26a150f3778fb9bcd4995d7d042f8cd601f69236a764bf1fcc2ca1d71140de
MD5 3166ae833a8bf089d2dd959c23684cf6
BLAKE2b-256 f075e8000c8247c9d1c8bc07728ced491317282790531fecf2b98e3adc24ec37

See more details on using hashes here.

File details

Details for the file wordlistools-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: wordlistools-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 21.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10

File hashes

Hashes for wordlistools-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 8bee5811af60172d677f58943ac7128727ef9cd9847bcdb11e39dc9e5c8ce476
MD5 5eb8dda741b3957b3ffe46ebbc0d27b5
BLAKE2b-256 683cb9cc4fcc7b56f5c0783dbecbbfb0bd5309da301db24318187ed0b8afbf82

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page