Required Gems
I’d like to list all external gems that might be used in this book. This list will be updated once a new gem is required.
Note that you don’t need to install them all unless you specifically need them.
Main Gems
- Pry - An IRB alternative and runtime developer console.
- pry-doc - Pry Doc is a Pry REPL plugin. Extending documentation support for the REPL by improving the
show-doc & show-source commands.
pry-byebug - Combine ‘pry’ with ‘byebug’. Adds ‘step’, ‘next’, ‘finish’, ‘continue’ and ‘break’ commands to control execution.
gem install pry
gem install pry-doc
gem install pry-byebug
To run pry with best appearance
pry --simple-prompt
Note: Most of our examples will be executed on pry so please consider it as main part of our environment. Otherwise, when you see
#!/usr/bin/env ruby, it means a file script to execute.
Module Gems
Due the demand of wrapping all required gems into one gem, we’ve created hacker-gems which installs all the below gems at one time.
gem install hacker-gems
You might need to install some packages beforehand to avoid any errors of missing libraries.
sudo apt-get install build-essential libreadline-dev libssl-dev libpq5 libpq-dev libreadline5 libsqlite3-dev libpcap-dev git-core autoconf postgresql pgadmin3 curl zlib1g-dev libxml2-dev libxslt1-dev vncviewer libyaml-dev curl nmap
Module 0x1 | Basic Ruby Kung Fu
- colorize - Extends String class or add a ColorizedString with methods to set text color, background.
Module 0x2 | System Kung Fu
- virustotal - A script for automating virustotal.com queries.
- uirusu - A tool and REST library for interacting with Virustotal.org.
- clipboard - Lets you access the clipboard on Linux, MacOS, Windows, and Cygwin.
Extra gems
Useful gems to build command line applications
- tty-prompt - A beautiful and powerful interactive command line prompt.
- Thor - Create a command-suite app simply and easily, as well as Rails generators.
- GLI - Create awesome, polished command suites without a lot of code.
- Slop - Create simple command-line apps with a syntax similar to trollop.
- Highline - handle user input and output via a “Q&A” style API, including type conversions and validation.
- Escort - A library that makes building command-line apps in ruby so easy, you’ll feel like an expert is guiding you through it.
- commander - The complete solution for Ruby command-line executables.
Module 0x3 | Network Kung Fu
- geoip - searches a GeoIP database host or IP address, returns the country, city, ISP and location.
- net-ping - A ping interface. Includes TCP, HTTP, LDAP, ICMP, UDP, WMI (for Windows).
- ruby-nmap - A Ruby interface to Nmap, the exploration tool and security / port scanner.
- ronin-scanners - A library for Ronin that provides Ruby interfaces to various third-party security scanners.
- net-dns - A pure Ruby DNS library, with a clean OO interface and an extensible API.
- snmp - A Ruby implementation of SNMP (the Simple Network Management Protocol).
- net-ssh - A pure-Ruby implementation of the SSH2 client protocol.
- net-scp - A pure Ruby implementation of the SCP client protocol.
- ftpd - A pure Ruby FTP server library. It supports implicit and explicit TLS, IPV6, passive and active mode.
- packetfu - A mid-level packet manipulation library for Ruby.
- packetgen - Ruby library to easily generate and capture network packets.
Module 0x4 | Web Kung Fu
- net-http-digest_auth - An implementation of RFC 2617 - Digest Access Authentication.
- ruby-ntlm - NTLM implementation for Ruby.
- activerecord - Databases on Rails. Build a persistent domain model by mapping database tables to Ruby.
- tiny_tds - TinyTDS - A modern, simple and fast FreeTDS library for Ruby using DB-Library.
- activerecord-sqlserver-adapter.
- activerecord-oracle_enhanced-adapter.
- buby - a mashup of JRuby with the popular commercial web security testing tool Burp Suite from PortSwigger.
- wasabi - A simple WSDL parser.
- savon - Heavy metal SOAP client.
- httpclient - gives something like the functionality of libwww-perl (LWP) in Ruby.
- nokogiri - An HTML, XML, SAX, and Reader parser.
- twitter - A Ruby interface to the Twitter API.
- selenium-webdriver - A tool for writing automated tests of websites. It aims to mimic the behaviour of a real user.
- watir-webdriver - WebDriver-backed Watir.
- coffee-script - Ruby CoffeeScript is a bridge to the JS CoffeeScript compiler.
- opal - Ruby runtime and core library for JavaScript.
Extra gems
Useful gems to deal with web:
- Mechanize - a ruby library that makes automated web interaction easy.
- HTTP.rb - Fast, Elegant HTTP client for ruby.
- RestClient - A class and executable for interacting with RESTful web services.
- httparty - Makes http fun! Also, makes consuming restful web services dead easy.
- websocket - Universal Ruby library to handle WebSocket protocol.
Module 0x5 | Exploitation Kung Fu
- metasm - A cross-architecture assembler, disassembler, linker, and debugger.
Module 0x6 | Forensic Kung Fu
- metasm - A cross-architecture assembler, disassembler, linker, and debugger.