class Penkit::CLI

Public Instance Methods

curl(*args) click to toggle source
# File lib/penkit/cli/tools.rb, line 6
def curl(*args)
  docker.run("cli:net", "curl", *args)
end
ftp(*args) click to toggle source
# File lib/penkit/cli/tools.rb, line 11
def ftp(*args)
  docker.run("cli:net", "lftp", *args)
end
metasploit(*args) click to toggle source
# File lib/penkit/cli/tools.rb, line 16
def metasploit(*args)
  docker.run("cli:metasploit", *args)
end
netcat(*args) click to toggle source
# File lib/penkit/cli/tools.rb, line 21
def netcat(*args)
  docker.run("cli:net", "nc", *args)
end
nmap(*args) click to toggle source
# File lib/penkit/cli/tools.rb, line 28
def nmap(*args)
  docker.run("cli:net", "nmap", *args)
end
ping(*args) click to toggle source
# File lib/penkit/cli/tools.rb, line 33
def ping(*args)
  docker.run("cli:net", "ping", *args)
end
ps(*args) click to toggle source
# File lib/penkit/cli/container/ps.rb, line 4
def ps(*args)
  docker.ps(*args)
end
pull(image) click to toggle source
# File lib/penkit/cli/container/pull.rb, line 4
def pull(image)
  docker.pull(image)
end
rm(*containers) click to toggle source
# File lib/penkit/cli/container/rm.rb, line 5
def rm(*containers)
  if containers.any?
    docker.rm(*containers)
  else
    rm_all
  end
end
rpcinfo(*args) click to toggle source
# File lib/penkit/cli/tools.rb, line 38
def rpcinfo(*args)
  docker.run("cli:net", "rpcinfo", *args)
end
showmount(*args) click to toggle source
# File lib/penkit/cli/tools.rb, line 43
def showmount(*args)
  docker.run("cli:net", "showmount", *args)
end
smbclient(*args) click to toggle source
# File lib/penkit/cli/tools.rb, line 48
def smbclient(*args)
  docker.run("cli:net", "smbclient", *args)
end
sqlmap(*args) click to toggle source
# File lib/penkit/cli/tools.rb, line 53
def sqlmap(*args)
  docker.run("cli:sqlmap", *args)
end
start(image) click to toggle source
# File lib/penkit/cli/container/start.rb, line 5
def start(image)
  puts "Pulling latest image..."
  docker.pull(image, quiet: true) # Quietly updates the image
  if has_config?(image)
    opts = options.dup
    opts[:name] ||= unique_name(image)
    docker_compose.up(image, opts)
  else
    docker.start(image, options.dup)
  end
end
stop(*containers) click to toggle source
# File lib/penkit/cli/container/stop.rb, line 5
def stop(*containers)
  if containers.any?
    docker.stop(*containers)
  else
    stop_all
  end
end
version() click to toggle source
# File lib/penkit/cli/penkit.rb, line 15
def version
  puts VERSION
end
wget(*args) click to toggle source
# File lib/penkit/cli/tools.rb, line 58
def wget(*args)
  docker.run("cli:net", "wget", *args)
end
wpscan(*args) click to toggle source
# File lib/penkit/cli/tools.rb, line 63
def wpscan(*args)
  docker.run("cli:wpscan", *args)
end

Private Instance Methods

rm_all() click to toggle source
# File lib/penkit/cli/container/rm.rb, line 15
def rm_all
  containers = docker.find_all_containers
  docker.rm(*containers) if rm_all?(containers)
end
rm_all?(containers) click to toggle source
# File lib/penkit/cli/container/rm.rb, line 20
def rm_all?(containers)
  return true if options[:force]
  return false if containers.size == 0
  message = "Are you sure you want to remove %d %s? [y/N]"
  word = containers.size > 1 ? "containers" : "container"
  ask(message % [containers.size, word]) == "y"
end
stop_all() click to toggle source
# File lib/penkit/cli/container/stop.rb, line 15
def stop_all
  containers = docker.find_running_containers
  docker.stop(*containers) if stop_all?(containers)
end
stop_all?(containers) click to toggle source
# File lib/penkit/cli/container/stop.rb, line 20
def stop_all?(containers)
  return true if options[:force]
  return false if containers.size == 0
  message = "Are you sure you want to stop %d %s? [y/N]"
  word = containers.size > 1 ? "containers" : "container"
  ask(message % [containers.size, word]) == "y"
end