ronin-repos
Description
ronin-repos provides a repository system for installing, managing, and accessing third-party git repositories, that can contain additional Ruby code or other data.
Third-party git repositories can be used to extend parts of Ronin. Other Ronin libraries can then list and load additional third-party Ruby classes from specific directories within the installed third-party repos:
exploits/
- may contain additional exploits for ronin-exploits.payloads/
- may contain additional payloads for ronin-payloads.
tl;dr ronin-repos is essentially a decentralized plugin system for Ronin using git repos.
ronin-repos is part of the ronin-rb project, a toolkit for security research and development.
Features
- Supports installing any Git repository.
- Manages installed repositories.
- Has 85% documentation coverage.
- Has 100% test coverage.
Synopsis
Usage: ronin-repos [options] [COMMAND [ARGS...]]
Options:
-h, --help Print help information
Arguments:
[COMMAND] The command name to run
[ARGS ...] Additional arguments for the command
Commands:
completion
help
install
list, ls
new
purge
remove, rm
show, info
update, up
Install a repository:
$ ronin-repos install https://github.com/...
List installed Repositories:
$ ronin-repos ls
Update all installed Repositories:
$ ronin-repos update
Update a specific Repositories:
$ ronin-repos update NAME
Uninstall a specific Repositories:
$ ronin-repos rm repo-name
Delete all repositories:
$ ronin-repos purge
Generate your own repo:
$ ronin-repos new my-repo
$ git remote add origin git@github.com:user/my-repo.git
$ git push -u origin main
Examples
require 'ronin/repos'
Ronin::Repos.find_file('wordlists/wordlist.txt')
# => "/home/user/.cache/ronin-repos/foo-repo/wordlists/wordlist.txt"
Rnnin::Repos.glob("wordlists/*.txt")
# => ["/home/user/.cache/ronin-repos/foo-repo/wordlists/cities.txt",
# "/home/user/.cache/ronin-repos/foo-repo/wordlists/states.txt",
# "/home/user/.cache/ronin-repos/bar-repo/wordlists/bands.txt",
# "/home/user/.cache/ronin-repos/bar-repo/wordlists/beers.txt"]
Requirements
- Ruby >= 3.0.0
- ronin-core ~> 0.2
Install
$ gem install ronin-repos
Gemfile
gem 'ronin-repos', '~> 0.1'
Development
- Fork It!
- Clone It!
cd ronin-repos
./scripts/server
git checkout -b my_feature
- Code It!
bundle exec rake spec
git push origin my_feature
License
Copyright (c) 2021-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
ronin-repos 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-repos 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-repos. If not, see https://www.gnu.org/licenses/.