Resolve #3870, reinstance creds -R
parent
aef8c702d7
commit
dccd21a559
|
@ -677,6 +677,7 @@ class Db
|
||||||
print_line " -s <svc names> List creds matching comma-separated service names"
|
print_line " -s <svc names> List creds matching comma-separated service names"
|
||||||
print_line " -u,--user <regex> List users that match this regex"
|
print_line " -u,--user <regex> List users that match this regex"
|
||||||
print_line " -t,--type <type> List creds that match the following types: (password,ntlm,hash)"
|
print_line " -t,--type <type> List creds that match the following types: (password,ntlm,hash)"
|
||||||
|
print_line " -R,--rhosts Set RHOSTS from the results of the search"
|
||||||
|
|
||||||
print_line
|
print_line
|
||||||
print_line "Examples, listing:"
|
print_line "Examples, listing:"
|
||||||
|
@ -762,6 +763,9 @@ class Db
|
||||||
host_ranges = []
|
host_ranges = []
|
||||||
port_ranges = []
|
port_ranges = []
|
||||||
svcs = []
|
svcs = []
|
||||||
|
rhosts = []
|
||||||
|
|
||||||
|
set_rhosts = false
|
||||||
|
|
||||||
#cred_table_columns = [ 'host', 'port', 'user', 'pass', 'type', 'proof', 'active?' ]
|
#cred_table_columns = [ 'host', 'port', 'user', 'pass', 'type', 'proof', 'active?' ]
|
||||||
cred_table_columns = [ 'host', 'service', 'public', 'private', 'realm', 'private_type' ]
|
cred_table_columns = [ 'host', 'service', 'public', 'private', 'realm', 'private_type' ]
|
||||||
|
@ -808,6 +812,8 @@ class Db
|
||||||
end
|
end
|
||||||
when "-d"
|
when "-d"
|
||||||
mode = :delete
|
mode = :delete
|
||||||
|
when '-R', '--rhosts'
|
||||||
|
set_rhosts = true
|
||||||
else
|
else
|
||||||
# Anything that wasn't an option is a host to search for
|
# Anything that wasn't an option is a host to search for
|
||||||
unless (arg_host_range(arg, host_ranges))
|
unless (arg_host_range(arg, host_ranges))
|
||||||
|
@ -879,6 +885,7 @@ class Db
|
||||||
core.private ? core.private.class.model_name.human : "",
|
core.private ? core.private.class.model_name.human : "",
|
||||||
]
|
]
|
||||||
else
|
else
|
||||||
|
rhosts = []
|
||||||
core.logins.each do |login|
|
core.logins.each do |login|
|
||||||
if svcs.present? && !svcs.include?(login.service.name)
|
if svcs.present? && !svcs.include?(login.service.name)
|
||||||
next
|
next
|
||||||
|
@ -896,6 +903,7 @@ class Db
|
||||||
next
|
next
|
||||||
end
|
end
|
||||||
row = [ login.service.host.address ]
|
row = [ login.service.host.address ]
|
||||||
|
rhosts << login.service.host.address
|
||||||
if login.service.name.present?
|
if login.service.name.present?
|
||||||
row << "#{login.service.port}/#{login.service.proto} (#{login.service.name})"
|
row << "#{login.service.port}/#{login.service.proto} (#{login.service.name})"
|
||||||
else
|
else
|
||||||
|
@ -925,6 +933,7 @@ class Db
|
||||||
print_status("Wrote creds to #{output_file}")
|
print_status("Wrote creds to #{output_file}")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
set_rhosts_from_addrs(rhosts.uniq) if set_rhosts
|
||||||
print_status("Deleted #{delete_count} creds") if delete_count > 0
|
print_status("Deleted #{delete_count} creds") if delete_count > 0
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue