Table of Contents
A script to fetch, install, and search wordlist archives from websites offering wordlists with more than 6400 available wordlists!
This is a Rust rewrite of the original tool: wordlistctl
. The original tool was built in Python and suffered from the same pitfalls as many Python programs:
- Memory intensive
- Slow
- Hard to read and debug
- Excessively verbose
How to install and use this project
- Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Clone the repo
git clone https://github.com/Sable-20/rwordlistctl.git
- Move into directory
cd rwordlistctl
- Install the app
cargo install . --root /usr/local
- Copy config file to correct location
touch ~/.config/rwordlistctl/config.toml && cp config/config.toml ~/.config/rwordlistctl/config.toml
- Copy repository file to correct location
touch ~/.config/rwordlistctl/repo.toml && cp config/repo.toml ~/.config/rwordlsitctl/repo.toml
- Install from web
cargo install --git https://github.com/Sable-20/rwordlistctl.git --root /usr/local
- Install config files
touch ~/.config/rwordlistctl/repo.toml && touch ~/.config/rwordlistctl/config.toml && curl -o ~/.config/rwordlistctl/repo.toml https://raw.githubusercontent.com/Sable-20/rwordlistctl/master/config/repo.toml && curl -o ~/.config/rwordlistctl/config.toml https://raw.githubusercontent.com/Sable-20/rwordlistctl/master/config/config.toml
Simply run:
docker build -t <image-name> .
Once the binary is built, ensure that it is in your path by running rwordlistctl
or wordlistctl
(if you have aliased the command or have installed via pacman
where it is aliased automatically).
Once you know that the command is working you can run:
rwordlistctl [OPTIONS] [COMMAND]
The help is as follows:
--==[ rwordlistctl by Blackarch Linux ]==--
Rust rewrite of wordlistctl: Fetch, install and search wordlist archives from websites.
Usage: rwordlistctl [OPTIONS] [COMMAND]
Commands:
fetch
search
list
help Print this message or the help of the given subcommand(s)
Options:
-c, --config <CONFIG> Path to the configuration file [default: /usr/share/rwordlistctl/.config/config.toml]
-h, --help Print help
-V, --version Print version
Caution
DEPRECATION WARNING: Docker support is a non-goal and will not recieve attention, Dockerfiles will be removed in version 1.0.0
to be replaced by nix
generated Docker images
If you wish to load into a fresh shell within the docker container where the wordlists will be sandboxed and not be loaded onto your host system you may run:
docker run --rm -ti <image-name>
If you wish to connect the container to your host machine so that wordlists will be downloaded to your machine you may run:
docker run --rm -it --mount "type=bind,src=/usr/share/wordlists,target=/usr/share/wordlists" <image-name>
This will make it so that any wordlists downloaded in the container will also be downloaded into /usr/share/wordlists
!
From here refer back to running locally
For more examples, please refer to the Documentation
Below is the help for various commands and explanations for each/
--==[ rwordlistctl by Blackarch Linux ]==--
Usage: rwordlistctl.exe fetch [OPTIONS] --wordlist=<WORDLISTS>...
Options:
-d, --decompress Decompress and remove the archive file
-w, --workers=<COUNT> Number of download workers [default: 10]
-u, --user-agent=<USER_AGENT> User agent to use for fetching [default: rwordlistctl/0.1.0]
-b, --base-dir=<BASE_DIR> Base directory to store wordlists [default: /usr/share/wordlists]
-l, --wordlist=<WORDLISTS>... Wordlist to fetch
-g, --group=<GROUP>... Group of wordlists to fetch [possible values: usernames, passwords, discovery, fuzzing, misc]
-r, --regex Use regex to find wordlists with your search term contained within the name
-h, --help Print help
- Use mangen to generate man pages
- Implement multi threading in fetch properly
- Gracefully shut down on
Ctrl-C
- Replace all instances of
eyre!
with graceful shutdowns - Determine if
list
andsearch
are redundant and if we should remove - Implement both fetching by group and fetching by wordlist name with fetch command
- Implement custom config file (TOML format)
- Write tests
- Write proper documentation
- Implement proper workers
- Multi-language Documentation
- Chinese
- Spanish
- French
See the open issues for a full list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Important
Information below is critical to developers looking to contribute
While developing, in order to reduce errors such as "it worked on my machine" or "it works on my version of Rust" we kindly request that if possible, consider using nix
. nix
is a wonderful tool that allows for reproducible development and build environments where we can lock versions in easily. While Docker is an amazing tool and we will continue to support using Dockerfile
for builds and development until version 1.0.0
we will transition to using nix flakes
as they are generally more secure. Docker images will still be available however they will be generated by nix
's builtin tooling system for generated Docker images that are particularly compact.
Thank you for understanding that supporting Docker fully is a non-goal and will recieve minimal attention during this stage of development.
Distributed under the GPLv3 License. See LICENSE
for more information.
Project Link: https://github.com/Sable-20/rwordlistctl
Contact current maintainers here
@blackarch
team[@]blackarch[.]org
Use this space to list resources you find helpful and would like to give credit to. I've included a few of my favorites to kick things off!
- Major contributors
- Sable-20
- sepehrdaddev
- Blackarch contributors
Rust rewrite of original by Blackarch development team. Rewritten in Rust by Sable-20.
Script to fetch, install, update and search wordlist archives from websites offering wordlists with more than 6400 wordlists available.
In the latest version of the Blackarch Linux it has been added to /usr/share/wordlists/ directory.
pacman -S rwordlistctl