LAZYPARIAH is a simple and easily installable command-line tool written in pure Ruby that can be used during penetration tests and capture-the-flag (CTF) competitions to generate a range of reverse shell payloads on the fly.
The reverse shell payloads that LAZYPARIAH supports include (but are not limited to):
C binary payloads (compiled on the fly): c_binary
Ruby payloads: ruby, ruby_b64, ruby_hex, ruby_c
Powershell payloads: powershell_c, powershell_b64
Base64-encoded Python payloads: python_b64
Rust binary payloads (compiled on the fly): rust_binary
PHP scripts containing base64-encoded Python payloads called via the system() function: php_system_python_b64
Java classes (compiled on the fly): java_class
Perl payloads: perl, perl_b64, perl_hex, perl_c
Simple PHP payloads (targeting specific file descriptors): php_fd, php_fd_c, php_fd_tags
Dependencies
Ruby >= 2.7.1 (LAZYPARIAH has not been tested on previous versions of Ruby)
OpenJDK (Optional: Only required for java_class payloads.)
GCC (Optional: Only required for c_binary payloads.)
Rust (Optional: Only required for rust_binary payloads.)
Installation
LAZYPARIAH can be installed on most GNU/Linux and BSD systems using the RubyGems installer as follows:
gem install lazypariah
Usage
Usage: lazypariah [OPTIONS] <PAYLOAD TYPE> <ATTACKER HOST> <ATTACKER PORT>
Note: <ATTACKER HOST> may be an IPv4 address, IPv6 address or hostname.
Valid Options:
-h, --help Display help text and exit.
-l, --license Display license information and exit.
-u, --url URL-encode the payload.
-v, --version Display version information and exit.
-D, --fd INTEGER Specify the file descriptor used by the target for TCP. Required for certain payloads.
-P, --pv INTEGER Specify Python version for payload. Must be either 2 or 3. By default, no version is specified.
-N, --no-new-line Do not append a new-line character to the end of the payload.
--b64 Encode a c_binary, rust_binary or java_class payload in base-64.
--hex Encode a c_binary, rust_binary or java_class payload in hexadecimal.
--gzip Compress a c_binary, rust_binary or java_class payload using zlib.
--gzip_b64 Compress a c_binary, rust_binary or java_class payload using zlib and encode the result in base-64.
--gzip_hex Compress a c_binary, rust_binary or java_class payload using zlib and encode the result in hexadecimal.