module Ronin::CLI::PatternOptions
Adds pattern options to a command.
## Options
-N, --number Searches for all numbers -X, --hex-number Searches for all hexadecimal numbers -V, --version-number Searches for all version numbers -w, --word Searches for all words --mac-addr Searches for all MAC addresses -4, --ipv4-addr Searches for all IPv4 addresses -6, --ipv6-addr Searches for all IPv6 addresses -I, --ip Searches for all IP addresses -H, --host Searches for all host names -D, --domain Searches for all domain names --uri Searches for all URIs -U, --url Searches for all URLs --user-name Searches for all user names -E, --email-addr Searches for all email addresses --obfuscated-email-addr Searches for all obfuscated email addresses --phone-number Searches for all phone numbers --ssn Searches for all Social Security Numbers (SSNs) --amex-cc Searches for all AMEX Credit Card numbers --discover-cc Searches for all Discover Card numbers --mastercard-cc Searches for all MasterCard numbers --visa-cc Searches for all VISA Credit Card numbers --visa-mastercard-cc Searches for all VISA MasterCard numbers --cc Searches for all Credit Card numbers --file-name Searches for all file names --dir-name Searches for all directory names --relative-unix-path Searches for all relative UNIX paths --absolute-unix-path Searches for all absolute UNIX paths --unix-path Searches for all UNIX paths --relative-windows-path Searches for all relative Windows paths --absolute-windows-path Searches for all absolute Windows paths --windows-path Searches for all Windows paths --relative-path Searches for all relative paths --absolute-path Searches for all absolute paths -P, --path Searches for all paths --variable-name Searches for all variable names --function-name Searches for all function names --md5 Searches for all MD5 hashes --sha1 Searches for all SHA1 hashes --sha256 Searches for all SHA256 hashes --sha512 Searches for all SHA512 hashes --hash Searches for all hashes --ssh-private-key Searches for all SSH private key data --ssh-public-key Searches for all SSH public key data --private-key Searches for all private key data --rsa-public-key Searches for all RSA public key data --dsa-public-key Searches for all DSA public key data --ec-public-key Searches for all EC public key data --public-key Searches for all public key data --aws-access-key-id Searches for all AWS access key IDs --aws-secret-access-key Searches for all AWS secret access keys -A, --api-key Searches for all API keys --single-quoted-string Searches for all single-quoted strings --double-quoted-string Searches for all double-quoted strings -S, --string Searches for all quoted strings -B, --base64 Searches for all Base64 strings -e, --regexp /REGEXP/ Custom regular expression to search for
Attributes
pattern[R]
The pattern to search for.
@return [Regexp, nil]
Public Class Methods
define_credentials_options(command)
click to toggle source
Defines credentials pattern options.
@param [Class<Command>] command
The command including {PatternOptions}.
# File lib/ronin/cli/pattern_options.rb, line 415 def self.define_credentials_options(command) command.option :ssh_private_key, desc: 'Searches for all SSH private key data' do @pattern = SSH_PRIVATE_KEY end command.option :dsa_private_key, desc: 'Searches for all DSA private key data' do @pattern = DSA_PRIVATE_KEY end command.option :ec_private_key, desc: 'Searches for all EC private key data' do @pattern = EC_PRIVATE_KEY end command.option :rsa_private_key, desc: 'Searches for all RSA private key data' do @pattern = RSA_PRIVATE_KEY end command.option :private_key, short: '-K', desc: 'Searches for all private key data' do @pattern = PRIVATE_KEY end command.option :aws_access_key_id, desc: 'Searches for all AWS access key IDs' do @pattern = AWS_ACCESS_KEY_ID end command.option :aws_secret_access_key, desc: 'Searches for all AWS secret access keys' do @pattern = AWS_SECRET_ACCESS_KEY end command.option :api_key, short: '-A', desc: 'Searches for all API keys' do @pattern = API_KEY end end
define_crypto_options(command)
click to toggle source
Defines cryptographic pattern options.
@param [Class<Command>] command
The command including {PatternOptions}.
# File lib/ronin/cli/pattern_options.rb, line 379 def self.define_crypto_options(command) command.option :md5, desc: 'Searches for all MD5 hashes' do @pattern = MD5 end command.option :sha1, desc: 'Searches for all SHA1 hashes' do @pattern = SHA1 end command.option :sha256, desc: 'Searches for all SHA256 hashes' do @pattern = SHA256 end command.option :sha512, desc: 'Searches for all SHA512 hashes' do @pattern = SHA512 end command.option :hash, desc: 'Searches for all hashes' do @pattern = HASH end command.option :ssh_public_key, desc: 'Searches for all SSH public key data' do @pattern = SSH_PUBLIC_KEY end command.option :public_key, desc: 'Searches for all public key data' do @pattern = PUBLIC_KEY end end
define_file_system_options(command)
click to toggle source
Defines File System pattern options.
@param [Class<Command>] command
The command including {PatternOptions}.
# File lib/ronin/cli/pattern_options.rb, line 252 def self.define_file_system_options(command) command.option :file_name, desc: 'Searches for all file names' do @pattern = FILE_NAME end command.option :dir_name, desc: 'Searches for all directory names' do @pattern = DIR_NAME end command.option :relative_unix_path, desc: 'Searches for all relative UNIX paths' do @pattern = RELATIVE_UNIX_PATH end command.option :absolute_unix_path, desc: 'Searches for all absolute UNIX paths' do @pattern = ABSOLUTE_UNIX_PATH end command.option :unix_path, desc: 'Searches for all UNIX paths' do @pattern = UNIX_PATH end command.option :relative_windows_path, desc: 'Searches for all relative Windows paths' do @pattern = RELATIVE_WINDOWS_PATH end command.option :absolute_windows_path, desc: 'Searches for all absolute Windows paths' do @pattern = ABSOLUTE_WINDOWS_PATH end command.option :windows_path, desc: 'Searches for all Windows paths' do @pattern = WINDOWS_PATH end command.option :relative_path, desc: 'Searches for all relative paths' do @pattern = RELATIVE_PATH end command.option :absolute_path, desc: 'Searches for all absolute paths' do @pattern = ABSOLUTE_PATH end command.option :path, short: '-P', desc: 'Searches for all paths' do @pattern = PATH end end
define_language_options(command)
click to toggle source
Defines language pattern options.
@param [Class<Command>] command
The command including {PatternOptions}.
# File lib/ronin/cli/pattern_options.rb, line 140 def self.define_language_options(command) command.option :word, short: '-w', desc: 'Searches for all words' do @pattern = WORD end end
define_network_options(command)
click to toggle source
Defines network pattern options.
@param [Class<Command>] command
The command including {PatternOptions}.
# File lib/ronin/cli/pattern_options.rb, line 153 def self.define_network_options(command) command.option :mac_addr, desc: 'Searches for all MAC addresses' do @pattern = MAC_ADDR end command.option :ipv4_addr, short: '-4', desc: 'Searches for all IPv4 addresses' do @pattern = IPV4_ADDR end command.option :ipv6_addr, short: '-6', desc: 'Searches for all IPv6 addresses' do @pattern = IPV6_ADDR end command.option :ip, short: '-I', desc: 'Searches for all IP addresses' do @pattern = IP end command.option :host, short: '-H', desc: 'Searches for all host names' do @pattern = HOST_NAME end command.option :domain, short: '-D', desc: 'Searches for all domain names' do @pattern = DOMAIN end command.option :uri, desc: 'Searches for all URIs' do @pattern = URI end command.option :url, short: '-U', desc: 'Searches for all URLs' do @pattern = URL end end
define_numeric_options(command)
click to toggle source
Defines numeric pattern options.
@param [Class<Command>] command
The command including {PatternOptions}.
# File lib/ronin/cli/pattern_options.rb, line 117 def self.define_numeric_options(command) command.option :number, short: '-N', desc: 'Searches for all numbers' do @pattern = NUMBER end command.option :hex_number, short: '-X', desc: 'Searches for all hexadecimal numbers' do @pattern = HEX_NUMBER end command.option :version_number, short: '-V', desc: 'Searches for all version numbers' do @pattern = VERSION_NUMBER end end
define_pii_options(command)
click to toggle source
Defines PII pattern options.
@param [Class<Command>] command
The command including {PatternOptions}.
# File lib/ronin/cli/pattern_options.rb, line 199 def self.define_pii_options(command) command.option :user_name, desc: 'Searches for all user names' do @pattern = USER_NAME end command.option :email_addr, short: '-E', desc: 'Searches for all email addresses' do @pattern = EMAIL_ADDRESS end command.option :obfuscated_email_addr, desc: 'Searches for all obfuscated email addresses' do @pattern = OBFUSCATED_EMAIL_ADDRESS end command.option :phone_number, desc: 'Searches for all phone numbers' do @pattern = PHONE_NUMBER end command.option :ssn, desc: 'Searches for all Social Security Numbers (SSNs)' do @pattern = SSN end command.option :amex_cc, desc: 'Searches for all AMEX Credit Card numbers' do @pattern = AMEX_CC end command.option :discover_cc, desc: 'Searches for all Discover Card numbers' do @pattern = DISCOVER_CC end command.option :mastercard_cc, desc: 'Searches for all MasterCard numbers' do @pattern = MASTERCARD_CC end command.option :visa_cc, desc: 'Searches for all VISA Credit Card numbers' do @pattern = VISA_CC end command.option :visa_mastercard_cc, desc: 'Searches for all VISA MasterCard numbers' do @pattern = VISA_MASTERCARD_CC end command.option :cc, desc: 'Searches for all Credit Card numbers' do @pattern = CC end end
define_source_code_options(command)
click to toggle source
Defines source code pattern options.
@param [Class<Command>] command
The command including {PatternOptions}.
# File lib/ronin/cli/pattern_options.rb, line 305 def self.define_source_code_options(command) command.option :identifier, desc: 'Searches for all identifier names' do @pattern = IDENTIFIER end command.option :variable_name, desc: 'Searches for all variable names' do @pattern = VARIABLE_NAME end command.option :variable_assignment, desc: 'Searches for all variable assignments' do @pattern = VARIABLE_ASSIGNMENT end command.option :function_name, desc: 'Searches for all function names' do @pattern = FUNCTION_NAME end command.option :single_quoted_string, desc: 'Searches for all single-quoted strings' do @pattern = SINGLE_QUOTED_STRING end command.option :double_quoted_string, desc: 'Searches for all double-quoted strings' do @pattern = DOUBLE_QUOTED_STRING end command.option :string, short: '-S', desc: 'Searches for all quoted strings' do @pattern = STRING end command.option :base64, short: '-B', desc: 'Searches for all Base64 strings' do @pattern = BASE64 end command.option :c_comment, desc: 'Searches for all C comments' do @pattern = C_COMMENT end command.option :cpp_comment, desc: 'Searches for all C++ comments' do @pattern = CPP_COMMENT end command.option :java_comment, desc: 'Searches for all Java comments' do @pattern = JAVA_COMMENT end command.option :javascript_comment, desc: 'Searches for all JavaScript comments' do @pattern = JAVASCRIPT_COMMENT end command.option :shell_comment, desc: 'Searches for all Shell comments' do @pattern = SHELL_COMMENT end command.option :ruby_comment, desc: 'Searches for all Ruby comments' do @pattern = RUBY_COMMENT end command.option :python_comment, desc: 'Searches for all Python comments' do @pattern = PYTHON_COMMENT end command.option :comment, desc: 'Searches for all comments' do @pattern = COMMENT end end
included(command)
click to toggle source
Adds pattern options to the command.
@param [Class<Command>] command
The command including {PatternOptions}.
# File lib/ronin/cli/pattern_options.rb, line 94 def self.included(command) define_numeric_options(command) define_language_options(command) define_network_options(command) define_pii_options(command) define_file_system_options(command) define_source_code_options(command) define_crypto_options(command) define_credentials_options(command) command.option :regexp, short: '-e', value: {type: Regexp}, desc: 'Custom regular expression to search for' do |regexp| @pattern = regexp end end