/ronin-wordlists

A library and tool for managing wordlists.

Primary LanguageRubyGNU Lesser General Public License v3.0LGPL-3.0

ronin-wordlists

CI Code Climate

Description

ronin-wordlists is a library and tool for managing wordlists. ronin-wordlists can install and update wordlists, and contains a curated list of popular wordlists and their download URLs.

Features

  • Installs, updates, and manages wordlist files and Git repositories.
  • Contains a curated list of popular wordlists and their download URLs.
  • Allows looking wordlists up by name, instead of explicit path.
  • Supports searching for wordlists in /usr/share/wordlists (Kali Linux), /usr/local/wordlists, and ~/.cache/ronin-wordlists/wordlists directories.

Synopsis

$ ronin-wordlists
Usage: ronin-wordlists [options]

Options:
    -V, --version                    Prints the version and exits
    -h, --help                       Print help information

Arguments:
    [COMMAND]                        The command name to run
    [ARGS ...]                       Additional arguments for the command

Commands:
    completion
    download, install
    help
    list, ls
    purge
    remove, rm
    search
    update, up

List popular wordlists available for download or installation:

$ ronin-wordlists search
[ alexa-top-1000 ]

  * URL: https://github.com/urbanadventurer/WhatWeb/blob/master/plugin-development/alexa-top-1000.txt
  * Categories: dns, domains
  * Summary: The Alexa Top 1000 domain names.

[ subdomains ]

  * URL: https://raw.githubusercontent.com/rbsec/dnscan/master/subdomains.txt
  * Categories: dns, subdomains
  * Summary: List of common subdomain names used by the dnscan util.

...

Download a known wordlist:

ronin-wordlists download rockyou

Download a wordlist from a URL:

ronin-wordlists download https://example.com/path/to/wordlist.gz

Update all downloaded wordlists:

ronin-wordlists update

Update a specific wordlist:

ronin-wordlists update SecLists

Examples

Open a wordlist by name:

require 'ronin/wordlists'

wordlist = Ronin::Wordlists.open('alexa-top-1000')
# =>
# #<Wordlist::File:0x00007f7b548bf840                     
#  @format=:txt,                                          
#  @path="/home/ronin/.cache/ronin-wordlists/wordlists/alexa-top-1000.txt">

wordlist.each do |word|
  # ...
end

Download a custom wordlist into ~/.cache/ronin-wordlists/wordlists:

Ronin::Wordlists.download('https://...')

List installed wordlists:

Ronin::Wordlists.list
# =>  #<Set: {"alexa-top-1000.txt", "rockyou.txt", ...}>

Requirements

Install

gem install ronin-wordlists

Gemfile

gem 'ronin-wordlists', '~> 0.1'

gemspec

gem.add_dependency 'ronin-wordlists', '~> 0.1'

Development

  1. Fork It!
  2. Clone It!
  3. cd ronin-wordlists/
  4. ./scripts/setup
  5. git checkout -b my_feature
  6. Code It!
  7. bundle exec rake spec
  8. git push origin my_feature

License

Copyright (c) 2023-2024 Hal Brodigan (postmodern.mod3@gmail.com)

ronin-wordlists is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ronin-wordlists is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with ronin-wordlists. If not, see https://www.gnu.org/licenses/.