ronin-brute is a micro-framework and tool for bruteforcing network services.
- Uses asynchronous I/O and fibers for concurrent bruteforcing.
- Supports defining new bruteforcer modules as plain old Ruby class.
- Supports builtin bruteforcers for:
- HTTP Basic-Auth
- HTTP login form
- FTP
- POP3
- IMAP
- MySQL
- PostgreSQL
- Telnet
- SSH
- Supports loading additional bruteforcer modules from Ruby files or from installed 3rd-party git repositories.
$ ronin-brute
Usage: ronin-brute [options] [COMMAND [ARGS...]]
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
help
list
run
show
List available bruteforcers:
$ ronin-brute list
ftp
http/basic_auth
http/login
imap
mysql
pop3
ssh
telnet
Install a 3rd-party repository of bruteforcers:
$ ronin-repos install /~https://github.com/user/bruteforcers.git
Print additional information about a specific bruteforcer:
$ ronin-brute show NAME
Run a bruteforcer against a host:
ronin-brute run ftp -U usernames.txt -P passwords.txt -p host=example.com
Start the bruteforceable http/basic_auth
docker
container in another terminal. The valid
credentials are admin
and password1234
.
Finds the first valid username and password:
require 'ronin/brute/builtin/http/basic_auth'
Ronin::Brute::HTTP::BasicAuth.find_first(
usernames: Wordlist.open('usernames.txt'),
passwords: Wordlist.open('passwords.txt'),
params: {
host: '0.0.0.0',
port: 8000
}
)
# => ["admin", "password1234"]
- Ruby >= 3.1.0
- async ~> 2.0
- async-io ~> 1.0
- async-http ~> 0.60
- net-telnet ~> 0.2
- net-ssh ~> 7.2
- db ~> 0.10
- db-mariadb ~> 0.10
- db-postgres ~> 0.7
- wordlist ~> 1.0
- ronin-support ~> 1.0
- ronin-core ~> 0.2
- ronin-repos ~> 0.1
$ gem install ronin-brute
gem 'ronin-brute', '~> 0.1'
gem.add_dependency 'ronin-brute', '~> 0.1'
- Fork It!
- Clone It!
cd ronin-brute/
./scripts/setup
git checkout -b my_feature
- Code It!
bundle exec rake spec
git push origin my_feature
Copyright (c) 2023-2024 Hal Brodigan (postmodern.mod3@gmail.com)
ronin-brute 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-brute 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-brute. If not, see https://www.gnu.org/licenses/.