Fix boolean option handling

git-svn-id: file:///home/svn/framework3/trunk@13976 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
HD Moore 2011-10-17 15:19:35 +00:00
parent 7dbf2e3fcd
commit d4fabf8872
1 changed files with 41 additions and 25 deletions

View File

@ -21,6 +21,22 @@ def usage(ropts)
end
opts = {}
opts[:blacklist] = ''
opts[:whitelist_ports] = ''
opts[:blacklist_ports] = ''
opts[:exploit_timeout] = 5
opts[:limit_sessions] = true
opts[:ignore_fragile_devices] = true
opts[:filter_by_os] = true
opts[:only_match] = false
opts[:match_vulns] = true
opts[:match_ports] = true
opts[:payload_method] = "auto"
opts[:payload_type] = "meterpreter"
opts[:payload_ports] = "4000-5000"
opts[:evasion_level_tcp] = 0
opts[:evasion_level_app] = 0
opts[:module_filter] = ''
# Parse script-specific options
parser = Msf::RPC::Client.option_parser(opts)
@ -58,28 +74,28 @@ parser.on("--exploit-timeout TIMEOUT (optional)") do |x|
opts[:exploit_timeout] = x
end
parser.on("--limit-sessions (optional)") do
opts[:limit_sessions] = true
parser.on("--limit-sessions (optional)") do |x|
opts[:limit_sessions] = (x =~ /^(y|t|1)/i ? true : false )
end
parser.on("--ignore-fragile-devices (optional)") do
opts[:ignore_fragile_devices] = true
parser.on("--ignore-fragile-devices (optional)") do |x|
opts[:ignore_fragile_devices] = (x =~ /^(y|t|1)/i ? true : false )
end
parser.on("--filter-by-os (optional)") do
opts[:filter_by_os] = true
parser.on("--filter-by-os (optional)") do |x|
opts[:filter_by_os] = (x =~ /^(y|t|1)/i ? true : false )
end
parser.on("--dry-run (optional)") do
opts[:only_match] = true
parser.on("--dry-run (optional)") do |x|
opts[:only_match] = (x =~ /^(y|t|1)/i ? true : false )
end
parser.on("--match-vulns (optional)") do
opts[:match_vulns] = true
parser.on("--match-vulns (optional)") do |x|
opts[:match_vulns] = (x =~ /^(y|t|1)/i ? true : false )
end
parser.on("--match-ports (optional)") do
opts[:match_ports] = true
parser.on("--match-ports (optional)") do |x|
opts[:match_ports] = (x =~ /^(y|t|1)/i ? true : false )
end
parser.on("--payload-method AUTO|REVERSE|BIND (optional)") do |x|
@ -130,19 +146,19 @@ speed = opts[:speed] || usage(parser)
blacklist = opts[:blacklist]
whitelist_ports = opts[:whitelist_ports]
blacklist_ports = opts[:blacklist_ports]
exploit_timeout = opts[:exploit_timeout] || 5
limit_sessions = opts[:limit_sessions] || false
ignore_fragile_devices = opts[:ignore_fragile_devices] || false
filter_by_os = opts[:filter_by_os] || false
only_match = opts[:only_match] || true #dry run
match_vulns = opts[:match_vulns] || true
match_ports = opts[:match_ports] || true
payload_method = opts[:payload_method] || "auto"
payload_type = opts[:payload_type] || "meterpreter"
payload_ports = opts[:payload_ports] || "4000-5000"
evasion_level_tcp = opts[:evasion_level_tcp] || 1
evasion_level_app = opts[:evasion_level_app] || 1
module_filter = opts[:module_filter] || ""
exploit_timeout = opts[:exploit_timeout]
limit_sessions = opts[:limit_sessions]
ignore_fragile_devices = opts[:ignore_fragile_devices]
filter_by_os = opts[:filter_by_os]
only_match = opts[:only_match]
match_vulns = opts[:match_vulns]
match_ports = opts[:match_ports]
payload_method = opts[:payload_method]
payload_type = opts[:payload_type]
payload_ports = opts[:payload_ports]
evasion_level_tcp = opts[:evasion_level_tcp]
evasion_level_app = opts[:evasion_level_app]
module_filter = opts[:module_filter]
#===
# Get the default user