Sha256: 0340c38eb0cd26e873f03ca39127d465414da544c36d10b2672be44acde01f9a

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

require 'lacewing'

module Lacewing
  class Cli
    def self.start(opts = {})
      puts opts
      $prompt = TTY::Prompt.new
      Lacewing::Cli.show_hello(opts)
      Lacewing::Scans.subdomains unless opts[:no_subdomains]
      Lacewing::Cli.narrow?
      Lacewing::Scans.nmap unless opts[:no_nmap]
      loop do
        Lacewing::Cli.exploit_menu
      end
    end

    def self.show_hello(opts)
      puts Lacewing::PROMPT + "Hi there #{opts[:name] || ENV['USERNAME']}!"
      $target = opts[:target] || $prompt.ask('What website would you like to research? ')
      puts "Using #{$target.green} as a target."
    end

    def self.narrow?
      narrow = $prompt.yes?('Would you like to change your target to a subdomain?')
      $target = $prompt.ask("What's your new target? (*.#{$target})") if narrow
    end

    def self.exploit_menu
      opts = ['LFI', 'RCE', 'XSS', 'Code Injection', 'Reverse Shell', 'SQL Injection']
      opt = $prompt.select(Lacewing::PROMPT + 'What vulnerability would you like to use?', opts)

      case opt
      when 'LFI'
        Lacewing::Exploits.lfi
      when 'RCE'
        Lacewing::Exploits.rce
      when 'XSS'
        Lacewing::Exploits.xss
      when 'Code Injection'
        Lacewing::Exploits.code_injection
      when 'Reverse Shell'
        Lacewing::Exploits.reverse_shell
      when 'SQL Injection'
        Lacewing::Exploits.sqli
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
lacewing-0.1.0 lib/lacewing/cli.rb