Ronin, The Ruby Platform For Vulnerability Research And Exploit Development
Ronin Exploits is a Ruby library for Ronin that provides exploitation and payload crafting functionality.
Ronin is a Ruby platform for vulnerability research and exploit development. Ronin allows for the rapid development and distribution of code, Exploits, Payloads, Scanners, etc, via Repositories.
Console
Ronin provides users with a powerful Ruby Console, pre-loaded with powerful convenience methods. In the Console one can work with data and automate complex tasks, with greater ease than the command-line.
>> File.read('data').base64_decode
Database
Ronin ships with a preconfigured Database, that one can interact with from Ruby, without having to write any SQL.
>> HostName.tld('eu').urls.with_query_param('id')
Repositories
Ronin provides a Repository system, allowing users to organize and share miscallaneous Data, Code, Exploits, Payloads, Scanners, etc.
$ ronin install git://github.com/user/myexploits.git
Libraries
Ronin provides libraries with additional functionality, such as Exploitation and Scanning:
$ gem install ronin-exploits
Install
Install Ronin using RubyGems:
$ gem install ronin
Install Ronin on Debian, Ubuntu, Fedora or Mac OS X.
Synopsis
Generate a skeleton exploit, with some custom information:
$ ronin-gen exploit example_exploit.rb \
--name Example --arch i686 --os Linux --product "Example Product" \
--status proven \
--authors Postmodern --description "This is an example."
To generate other types of exploits specify one of the following:
local_exploit
remote_exploit
remote_tcp_exploit
remote_udp_exploit
ftp_exploit
http_exploit
web_exploit
Generate a skeleton payload, with some custom information:
$ ronin-gen payload example_payload.rb \
--name Example --arch i686 --os Linux \
--authors Postmodern --description "This is an example."
To generate other types of payloads specify one of the following:
binary_payload
shellcode
nops
List available exploits:
$ ronin-exploits
Print information about an exploit:
$ ronin-exploits -n NAME -v
Build and deploy an exploit:
$ ronin-exploit -n NAME --host example.com --port 9999
Load an exploit from a file, then build and deploy it:
$ ronin-exploit -f FILE --host example.com --port 9999
Build and deploy an exploit, with a payload:
$ ronin-exploit -n NAME --host example.com --port 9999 -P PAYLOAD_NAME
Build and deploy an exploit, with a raw payload:
$ ronin-exploit -n NAME --host example.com --port 9999 --raw-payload \
`echo -en "\x66\x31\xc0\xfe\xc0\xb3\xff\xcd\x80"`
List available payloads:
$ ronin-payloads
Print information about a payload:
$ ronin-payloads -n NAME -v
Build and output a payload:
$ ronin-payload NAME
Build and output a raw unescaped payload:
$ ronin-payload NAME --raw
Load a payload from a file, then build and output it:
$ ronin-payload -f FILE
See more Examples
Download