replace old rex::ui::text::table refs
everywhere we called the class we have now rewritten it to use the new namespace MS-1875bug/bundler_fix
parent
3f530f1896
commit
eb73a6914d
|
@ -46,7 +46,7 @@ class ReadableText
|
||||||
# @param h [String] the string to display as the table heading.
|
# @param h [String] the string to display as the table heading.
|
||||||
# @return [String] the string form of the table.
|
# @return [String] the string form of the table.
|
||||||
def self.dump_exploit_targets(mod, indent = '', h = nil)
|
def self.dump_exploit_targets(mod, indent = '', h = nil)
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => indent.length,
|
'Indent' => indent.length,
|
||||||
'Header' => h,
|
'Header' => h,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
@ -70,7 +70,7 @@ class ReadableText
|
||||||
# @param h [String] the string to display as the table heading.
|
# @param h [String] the string to display as the table heading.
|
||||||
# @return [String] the string form of the table.
|
# @return [String] the string form of the table.
|
||||||
def self.dump_exploit_target(mod, indent = '', h = nil)
|
def self.dump_exploit_target(mod, indent = '', h = nil)
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => indent.length,
|
'Indent' => indent.length,
|
||||||
'Header' => h,
|
'Header' => h,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
@ -92,7 +92,7 @@ class ReadableText
|
||||||
# @param h [String] the string to display as the table heading.
|
# @param h [String] the string to display as the table heading.
|
||||||
# @return [String] the string form of the table.
|
# @return [String] the string form of the table.
|
||||||
def self.dump_module_actions(mod, indent = '', h = nil)
|
def self.dump_module_actions(mod, indent = '', h = nil)
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => indent.length,
|
'Indent' => indent.length,
|
||||||
'Header' => h,
|
'Header' => h,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
@ -116,7 +116,7 @@ class ReadableText
|
||||||
# @param h [String] the string to display as the table heading.
|
# @param h [String] the string to display as the table heading.
|
||||||
# @return [String] the string form of the table.
|
# @return [String] the string form of the table.
|
||||||
def self.dump_module_action(mod, indent = '', h = nil)
|
def self.dump_module_action(mod, indent = '', h = nil)
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => indent.length,
|
'Indent' => indent.length,
|
||||||
'Header' => h,
|
'Header' => h,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
@ -139,7 +139,7 @@ class ReadableText
|
||||||
# @param h [String] the string to display as the table heading.
|
# @param h [String] the string to display as the table heading.
|
||||||
# @return [String] the string form of the table.
|
# @return [String] the string form of the table.
|
||||||
def self.dump_compatible_payloads(exploit, indent = '', h = nil)
|
def self.dump_compatible_payloads(exploit, indent = '', h = nil)
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => indent.length,
|
'Indent' => indent.length,
|
||||||
'Header' => h,
|
'Header' => h,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
@ -390,7 +390,7 @@ class ReadableText
|
||||||
# @param missing [Boolean] dump only empty required options.
|
# @param missing [Boolean] dump only empty required options.
|
||||||
# @return [String] the string form of the information.
|
# @return [String] the string form of the information.
|
||||||
def self.dump_options(mod, indent = '', missing = false)
|
def self.dump_options(mod, indent = '', missing = false)
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => indent.length,
|
'Indent' => indent.length,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
[
|
[
|
||||||
|
@ -419,7 +419,7 @@ class ReadableText
|
||||||
# @param indent [String] the indentation to use.
|
# @param indent [String] the indentation to use.
|
||||||
# @return [String] the string form of the information.
|
# @return [String] the string form of the information.
|
||||||
def self.dump_advanced_options(mod, indent = '')
|
def self.dump_advanced_options(mod, indent = '')
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => indent.length,
|
'Indent' => indent.length,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
[
|
[
|
||||||
|
@ -444,7 +444,7 @@ class ReadableText
|
||||||
# @param indent [String] the indentation to use.
|
# @param indent [String] the indentation to use.
|
||||||
# @return [String] the string form of the information.
|
# @return [String] the string form of the information.
|
||||||
def self.dump_evasion_options(mod, indent = '')
|
def self.dump_evasion_options(mod, indent = '')
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => indent.length,
|
'Indent' => indent.length,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
[
|
[
|
||||||
|
@ -490,7 +490,7 @@ class ReadableText
|
||||||
# @param col [Integer] the column width.
|
# @param col [Integer] the column width.
|
||||||
# @return [String] the formatted DataStore contents.
|
# @return [String] the formatted DataStore contents.
|
||||||
def self.dump_datastore(name, ds, indent = DefaultIndent, col = DefaultColumnWrap)
|
def self.dump_datastore(name, ds, indent = DefaultIndent, col = DefaultColumnWrap)
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => indent,
|
'Indent' => indent,
|
||||||
'Header' => name,
|
'Header' => name,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
@ -529,7 +529,7 @@ class ReadableText
|
||||||
columns << 'Information'
|
columns << 'Information'
|
||||||
columns << 'Connection'
|
columns << 'Connection'
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => indent,
|
'Indent' => indent,
|
||||||
'Header' => "Active sessions",
|
'Header' => "Active sessions",
|
||||||
'Columns' => columns)
|
'Columns' => columns)
|
||||||
|
@ -653,7 +653,7 @@ class ReadableText
|
||||||
columns += [ "URIPATH", "Start Time", "Handler opts" ]
|
columns += [ "URIPATH", "Start Time", "Handler opts" ]
|
||||||
end
|
end
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => indent,
|
'Indent' => indent,
|
||||||
'Header' => "Jobs",
|
'Header' => "Jobs",
|
||||||
'Columns' => columns
|
'Columns' => columns
|
||||||
|
|
|
@ -517,7 +517,7 @@ module Msf
|
||||||
# As an user, you shouldn't be using any of these paths anyway.
|
# As an user, you shouldn't be using any of these paths anyway.
|
||||||
columns.delete('Path') if !datastore['VERBOSE']
|
columns.delete('Path') if !datastore['VERBOSE']
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => 'Exploits',
|
'Header' => 'Exploits',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => columns
|
'Columns' => columns
|
||||||
|
@ -625,7 +625,7 @@ module Msf
|
||||||
# @return [void]
|
# @return [void]
|
||||||
def show_exploit_list(ip, tag, current_exploit_list)
|
def show_exploit_list(ip, tag, current_exploit_list)
|
||||||
order = 1
|
order = 1
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => '',
|
'Header' => '',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Order', 'IP', 'Exploit']
|
'Columns' => ['Order', 'IP', 'Exploit']
|
||||||
|
|
|
@ -702,7 +702,7 @@ module Exploit::Remote::MSSQL
|
||||||
|
|
||||||
if(info[:rows] and not info[:rows].empty?)
|
if(info[:rows] and not info[:rows].empty?)
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Header' => "",
|
'Header' => "",
|
||||||
'Columns' => info[:colnames],
|
'Columns' => info[:colnames],
|
||||||
|
|
|
@ -184,7 +184,7 @@ module Exploit::Remote::Postgres
|
||||||
|
|
||||||
# If resp is not actually a Connection::Result object, then return
|
# If resp is not actually a Connection::Result object, then return
|
||||||
# :error (but not an actual Exception, that's up to the caller.
|
# :error (but not an actual Exception, that's up to the caller.
|
||||||
# Otherwise, create a rowset using Rex::Ui::Text::Table (if there's
|
# Otherwise, create a rowset using Rex::Text::Table (if there's
|
||||||
# more than 0 rows) and return :complete.
|
# more than 0 rows) and return :complete.
|
||||||
def postgres_print_reply(resp=nil,sql=nil)
|
def postgres_print_reply(resp=nil,sql=nil)
|
||||||
ip = datastore['RHOST']
|
ip = datastore['RHOST']
|
||||||
|
@ -194,7 +194,7 @@ module Exploit::Remote::Postgres
|
||||||
if resp.rows and resp.fields
|
if resp.rows and resp.fields
|
||||||
print_status "#{ip}:#{port} Rows Returned: #{resp.rows.size}" if verbose
|
print_status "#{ip}:#{port} Rows Returned: #{resp.rows.size}" if verbose
|
||||||
if resp.rows.size > 0
|
if resp.rows.size > 0
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => 4,
|
'Indent' => 4,
|
||||||
'Header' => "Query Text: '#{sql}'",
|
'Header' => "Query Text: '#{sql}'",
|
||||||
'Columns' => resp.fields.map {|x| x.name}
|
'Columns' => resp.fields.map {|x| x.name}
|
||||||
|
|
|
@ -164,7 +164,7 @@ module Exploit::Remote::WinRM
|
||||||
rows << row_data
|
rows << row_data
|
||||||
end
|
end
|
||||||
columns.uniq!
|
columns.uniq!
|
||||||
response_data = Rex::Ui::Text::Table.new(
|
response_data = Rex::Text::Table.new(
|
||||||
'Header' => "#{datastore['WQL']} (#{rhost})",
|
'Header' => "#{datastore['WQL']} (#{rhost})",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => columns
|
'Columns' => columns
|
||||||
|
|
|
@ -423,7 +423,7 @@ class Db
|
||||||
end
|
end
|
||||||
|
|
||||||
# If we got here, we're searching. Delete implies search
|
# If we got here, we're searching. Delete implies search
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
{
|
{
|
||||||
'Header' => "Hosts",
|
'Header' => "Hosts",
|
||||||
'Columns' => col_names,
|
'Columns' => col_names,
|
||||||
|
@ -650,7 +650,7 @@ class Db
|
||||||
if col_search
|
if col_search
|
||||||
col_names = col_search
|
col_names = col_search
|
||||||
end
|
end
|
||||||
tbl = Rex::Ui::Text::Table.new({
|
tbl = Rex::Text::Table.new({
|
||||||
'Header' => "Services",
|
'Header' => "Services",
|
||||||
'Columns' => ['host'] + col_names,
|
'Columns' => ['host'] + col_names,
|
||||||
})
|
})
|
||||||
|
@ -1029,7 +1029,7 @@ class Db
|
||||||
'Columns' => cred_table_columns
|
'Columns' => cred_table_columns
|
||||||
}
|
}
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(tbl_opts)
|
tbl = Rex::Text::Table.new(tbl_opts)
|
||||||
|
|
||||||
::ActiveRecord::Base.connection_pool.with_connection {
|
::ActiveRecord::Base.connection_pool.with_connection {
|
||||||
query = Metasploit::Credential::Core.where( workspace_id: framework.db.workspace )
|
query = Metasploit::Credential::Core.where( workspace_id: framework.db.workspace )
|
||||||
|
@ -1341,7 +1341,7 @@ class Db
|
||||||
end
|
end
|
||||||
|
|
||||||
# Now display them
|
# Now display them
|
||||||
csv_table = Rex::Ui::Text::Table.new(
|
csv_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Notes',
|
'Header' => 'Notes',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Time', 'Host', 'Service', 'Port', 'Protocol', 'Type', 'Data']
|
'Columns' => ['Time', 'Host', 'Service', 'Port', 'Protocol', 'Type', 'Data']
|
||||||
|
@ -1501,7 +1501,7 @@ class Db
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new({
|
tbl = Rex::Text::Table.new({
|
||||||
'Header' => "Loot",
|
'Header' => "Loot",
|
||||||
'Columns' => [ 'host', 'service', 'type', 'name', 'content', 'info', 'path' ],
|
'Columns' => [ 'host', 'service', 'type', 'name', 'content', 'info', 'path' ],
|
||||||
})
|
})
|
||||||
|
|
|
@ -9,7 +9,7 @@ module Console
|
||||||
# Console table display wrapper that allows for stylized tables
|
# Console table display wrapper that allows for stylized tables
|
||||||
#
|
#
|
||||||
###
|
###
|
||||||
class Table < Rex::Ui::Text::Table
|
class Table < Rex::Text::Table
|
||||||
|
|
||||||
#
|
#
|
||||||
# Default table styles.
|
# Default table styles.
|
||||||
|
|
|
@ -88,7 +88,7 @@ class GPP
|
||||||
def self.create_tables(results, filetype, domain=nil, dc=nil)
|
def self.create_tables(results, filetype, domain=nil, dc=nil)
|
||||||
tables = []
|
tables = []
|
||||||
results.each do |result|
|
results.each do |result|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => 'Group Policy Credential Info',
|
'Header' => 'Group Policy Credential Info',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'SortIndex' => -1,
|
'SortIndex' => -1,
|
||||||
|
|
|
@ -146,7 +146,7 @@ class Unattend
|
||||||
|
|
||||||
def self.create_table(results)
|
def self.create_table(results)
|
||||||
return nil if results.nil? or results.empty?
|
return nil if results.nil? or results.empty?
|
||||||
table = Rex::Ui::Text::Table.new({
|
table = Rex::Text::Table.new({
|
||||||
'Header' => 'Unattend Credentials',
|
'Header' => 'Unattend Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Type', 'Domain', 'Username', 'Password', 'Groups']
|
'Columns' => ['Type', 'Domain', 'Username', 'Password', 'Groups']
|
||||||
|
|
|
@ -263,7 +263,7 @@ module Analyze
|
||||||
end
|
end
|
||||||
|
|
||||||
def table(name, cols)
|
def table(name, cols)
|
||||||
Rex::Ui::Text::Table.new(
|
Rex::Text::Table.new(
|
||||||
'Header' => name,
|
'Header' => name,
|
||||||
'Columns' => cols
|
'Columns' => cols
|
||||||
)
|
)
|
||||||
|
|
|
@ -379,15 +379,15 @@ end
|
||||||
class ProcessList < Array
|
class ProcessList < Array
|
||||||
|
|
||||||
#
|
#
|
||||||
# Create a Rex::Ui::Text::Table out of the processes stored in this list
|
# Create a Rex::Text::Table out of the processes stored in this list
|
||||||
#
|
#
|
||||||
# +opts+ is passed on to Rex::Ui::Text::Table.new, mostly unmolested
|
# +opts+ is passed on to Rex::Text::Table.new, mostly unmolested
|
||||||
#
|
#
|
||||||
# Note that this output is affected by Rex::Post::Meterpreter::Client#unicode_filter_encode
|
# Note that this output is affected by Rex::Post::Meterpreter::Client#unicode_filter_encode
|
||||||
#
|
#
|
||||||
def to_table(opts={})
|
def to_table(opts={})
|
||||||
if empty?
|
if empty?
|
||||||
return Rex::Ui::Text::Table.new(opts)
|
return Rex::Text::Table.new(opts)
|
||||||
end
|
end
|
||||||
|
|
||||||
cols = [ "PID", "PPID", "Name", "Arch", "Session", "User", "Path" ]
|
cols = [ "PID", "PPID", "Name", "Arch", "Session", "User", "Path" ]
|
||||||
|
@ -403,7 +403,7 @@ class ProcessList < Array
|
||||||
'Columns' => cols
|
'Columns' => cols
|
||||||
}.merge(opts)
|
}.merge(opts)
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(opts)
|
tbl = Rex::Text::Table.new(opts)
|
||||||
each { |process|
|
each { |process|
|
||||||
tbl << cols.map { |c|
|
tbl << cols.map { |c|
|
||||||
col = c.downcase
|
col = c.downcase
|
||||||
|
|
|
@ -111,7 +111,7 @@ class Console::CommandDispatcher::Android
|
||||||
header << " at #{time.strftime('%Y-%m-%d %H:%M:%S')}"
|
header << " at #{time.strftime('%Y-%m-%d %H:%M:%S')}"
|
||||||
end
|
end
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => header,
|
'Header' => header,
|
||||||
'SortIndex' => 0,
|
'SortIndex' => 0,
|
||||||
'Columns' => result[:headers],
|
'Columns' => result[:headers],
|
||||||
|
@ -616,7 +616,7 @@ class Console::CommandDispatcher::Android
|
||||||
result = client.android.sqlite_query(database, query, writeable)
|
result = client.android.sqlite_query(database, query, writeable)
|
||||||
unless writeable
|
unless writeable
|
||||||
header = "#{query} on database file #{database}"
|
header = "#{query} on database file #{database}"
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => header,
|
'Header' => header,
|
||||||
'Columns' => result[:columns],
|
'Columns' => result[:columns],
|
||||||
'Indent' => 0
|
'Indent' => 0
|
||||||
|
|
|
@ -182,7 +182,7 @@ class Console::CommandDispatcher::Core
|
||||||
|
|
||||||
case mode
|
case mode
|
||||||
when :list
|
when :list
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Indent' => 4,
|
'Indent' => 4,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
[
|
[
|
||||||
|
@ -732,7 +732,7 @@ class Console::CommandDispatcher::Core
|
||||||
end
|
end
|
||||||
|
|
||||||
# next draw up a table of transport entries
|
# next draw up a table of transport entries
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'SortIndex' => 0, # sort by ID
|
'SortIndex' => 0, # sort by ID
|
||||||
'Indent' => 4,
|
'Indent' => 4,
|
||||||
'Columns' => columns)
|
'Columns' => columns)
|
||||||
|
|
|
@ -294,7 +294,7 @@ class Console::CommandDispatcher::Extapi::Adsi
|
||||||
|
|
||||||
objects = client.extapi.adsi.domain_query(domain, filter, max_results, page_size, args)
|
objects = client.extapi.adsi.domain_query(domain, filter, max_results, page_size, args)
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => "#{domain} Objects",
|
'Header' => "#{domain} Objects",
|
||||||
'Indent' => 0,
|
'Indent' => 0,
|
||||||
'SortIndex' => 0,
|
'SortIndex' => 0,
|
||||||
|
|
|
@ -86,7 +86,7 @@ class Console::CommandDispatcher::Extapi::Service
|
||||||
|
|
||||||
services = client.extapi.service.enumerate
|
services = client.extapi.service.enumerate
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => 'Service List',
|
'Header' => 'Service List',
|
||||||
'Indent' => 0,
|
'Indent' => 0,
|
||||||
'SortIndex' => 3,
|
'SortIndex' => 3,
|
||||||
|
|
|
@ -82,7 +82,7 @@ class Console::CommandDispatcher::Extapi::Window
|
||||||
|
|
||||||
header = parent_window ? "Child windows of #{parent_window}" : "Top-level windows"
|
header = parent_window ? "Child windows of #{parent_window}" : "Top-level windows"
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => header,
|
'Header' => header,
|
||||||
'Indent' => 0,
|
'Indent' => 0,
|
||||||
'SortIndex' => 0,
|
'SortIndex' => 0,
|
||||||
|
|
|
@ -75,7 +75,7 @@ class Console::CommandDispatcher::Extapi::Wmi
|
||||||
objects = client.extapi.wmi.query(query, root)
|
objects = client.extapi.wmi.query(query, root)
|
||||||
|
|
||||||
if objects
|
if objects
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => query,
|
'Header' => query,
|
||||||
'Indent' => 0,
|
'Indent' => 0,
|
||||||
'SortIndex' => 0,
|
'SortIndex' => 0,
|
||||||
|
|
|
@ -259,7 +259,7 @@ class Console::CommandDispatcher::Kiwi
|
||||||
fields = ['Server', 'Client', 'Start', 'End', 'Max Renew', 'Flags']
|
fields = ['Server', 'Client', 'Start', 'End', 'Max Renew', 'Flags']
|
||||||
fields << 'Export Path' if export
|
fields << 'Export Path' if export
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => 'Kerberos Tickets',
|
'Header' => 'Kerberos Tickets',
|
||||||
'Indent' => 0,
|
'Indent' => 0,
|
||||||
'SortIndex' => 0,
|
'SortIndex' => 0,
|
||||||
|
@ -335,7 +335,7 @@ class Console::CommandDispatcher::Kiwi
|
||||||
|
|
||||||
if results.length > 0
|
if results.length > 0
|
||||||
results.each do |r|
|
results.each do |r|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => "#{r[:desc]} - #{r[:guid]}",
|
'Header' => "#{r[:desc]} - #{r[:guid]}",
|
||||||
'Indent' => 0,
|
'Indent' => 0,
|
||||||
'SortIndex' => 0,
|
'SortIndex' => 0,
|
||||||
|
@ -471,7 +471,7 @@ protected
|
||||||
print_status("Retrieving #{provider} credentials")
|
print_status("Retrieving #{provider} credentials")
|
||||||
accounts = method.call
|
accounts = method.call
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => "#{provider} credentials",
|
'Header' => "#{provider} credentials",
|
||||||
'Indent' => 0,
|
'Indent' => 0,
|
||||||
'SortIndex' => 0,
|
'SortIndex' => 0,
|
||||||
|
|
|
@ -228,7 +228,7 @@ class Console::CommandDispatcher::Lanattacks::Dhcp
|
||||||
|
|
||||||
log = client.lanattacks.dhcp.log
|
log = client.lanattacks.dhcp.log
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => 'DHCP Server Log',
|
'Header' => 'DHCP Server Log',
|
||||||
'Indent' => 0,
|
'Indent' => 0,
|
||||||
'SortIndex' => 0,
|
'SortIndex' => 0,
|
||||||
|
|
|
@ -95,7 +95,7 @@ class Console::CommandDispatcher::Mimikatz
|
||||||
print_status("Retrieving #{provider} credentials")
|
print_status("Retrieving #{provider} credentials")
|
||||||
accounts = method.call
|
accounts = method.call
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => "#{provider} credentials",
|
'Header' => "#{provider} credentials",
|
||||||
'Indent' => 0,
|
'Indent' => 0,
|
||||||
'SortIndex' => 4,
|
'SortIndex' => 4,
|
||||||
|
|
|
@ -184,7 +184,7 @@ class Console::CommandDispatcher::Stdapi::Fs
|
||||||
|
|
||||||
mounts = client.fs.mount.show_mount
|
mounts = client.fs.mount.show_mount
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => 'Mounts / Drives',
|
'Header' => 'Mounts / Drives',
|
||||||
'Indent' => 0,
|
'Indent' => 0,
|
||||||
'SortIndex' => 0,
|
'SortIndex' => 0,
|
||||||
|
@ -482,7 +482,7 @@ class Console::CommandDispatcher::Stdapi::Fs
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => "Listing: #{path}",
|
'Header' => "Listing: #{path}",
|
||||||
'SortIndex' => columns.index(sort),
|
'SortIndex' => columns.index(sort),
|
||||||
'SortOrder' => order,
|
'SortOrder' => order,
|
||||||
|
|
|
@ -155,7 +155,7 @@ class Console::CommandDispatcher::Stdapi::Net
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => 'Connection list',
|
'Header' => 'Connection list',
|
||||||
'Indent' => 4,
|
'Indent' => 4,
|
||||||
'Columns' => [
|
'Columns' => [
|
||||||
|
@ -206,7 +206,7 @@ class Console::CommandDispatcher::Stdapi::Net
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => 'ARP cache',
|
'Header' => 'ARP cache',
|
||||||
'Indent' => 4,
|
'Indent' => 4,
|
||||||
'Columns' => [
|
'Columns' => [
|
||||||
|
@ -280,7 +280,7 @@ class Console::CommandDispatcher::Stdapi::Net
|
||||||
routes = client.net.config.routes
|
routes = client.net.config.routes
|
||||||
|
|
||||||
# IPv4
|
# IPv4
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => 'IPv4 network routes',
|
'Header' => 'IPv4 network routes',
|
||||||
'Indent' => 4,
|
'Indent' => 4,
|
||||||
'Columns' => [
|
'Columns' => [
|
||||||
|
@ -304,7 +304,7 @@ class Console::CommandDispatcher::Stdapi::Net
|
||||||
end
|
end
|
||||||
|
|
||||||
# IPv6
|
# IPv6
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => 'IPv6 network routes',
|
'Header' => 'IPv6 network routes',
|
||||||
'Indent' => 4,
|
'Indent' => 4,
|
||||||
'Columns' => [
|
'Columns' => [
|
||||||
|
@ -412,7 +412,7 @@ class Console::CommandDispatcher::Stdapi::Net
|
||||||
case args.shift
|
case args.shift
|
||||||
when 'list'
|
when 'list'
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => 'Active Port Forwards',
|
'Header' => 'Active Port Forwards',
|
||||||
'Indent' => 3,
|
'Indent' => 3,
|
||||||
'SortIndex' => -1,
|
'SortIndex' => -1,
|
||||||
|
@ -616,7 +616,7 @@ class Console::CommandDispatcher::Stdapi::Net
|
||||||
|
|
||||||
response = client.net.resolve.resolve_hosts(hostnames, family)
|
response = client.net.resolve.resolve_hosts(hostnames, family)
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => 'Host resolutions',
|
'Header' => 'Host resolutions',
|
||||||
'Indent' => 4,
|
'Indent' => 4,
|
||||||
'SortIndex' => 0,
|
'SortIndex' => 0,
|
||||||
|
|
|
@ -297,7 +297,7 @@ class Console::CommandDispatcher::Stdapi::Sys
|
||||||
if vars.length == 0
|
if vars.length == 0
|
||||||
print_error("None of the specified environment variables were found/set.")
|
print_error("None of the specified environment variables were found/set.")
|
||||||
else
|
else
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => 'Environment Variables',
|
'Header' => 'Environment Variables',
|
||||||
'Indent' => 0,
|
'Indent' => 0,
|
||||||
'SortIndex' => 1,
|
'SortIndex' => 1,
|
||||||
|
|
|
@ -187,7 +187,7 @@ class Console::CommandDispatcher::Stdapi::Ui
|
||||||
|
|
||||||
desktops = client.ui.enum_desktops
|
desktops = client.ui.enum_desktops
|
||||||
|
|
||||||
desktopstable = Rex::Ui::Text::Table.new(
|
desktopstable = Rex::Text::Table.new(
|
||||||
'Header' => "Desktops",
|
'Header' => "Desktops",
|
||||||
'Indent' => 4,
|
'Indent' => 4,
|
||||||
'Columns' => [ "Session",
|
'Columns' => [ "Session",
|
||||||
|
|
|
@ -25,7 +25,7 @@ class RopBase
|
||||||
@gadgets = gadgets
|
@gadgets = gadgets
|
||||||
end
|
end
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => "#{@file} ROP Gadgets",
|
'Header' => "#{@file} ROP Gadgets",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -161,7 +161,7 @@ class Result
|
||||||
unless supports_ssl?
|
unless supports_ssl?
|
||||||
return "Server does not appear to support SSL on this port!"
|
return "Server does not appear to support SSL on this port!"
|
||||||
end
|
end
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => 'SSL Ciphers',
|
'Header' => 'SSL Ciphers',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Status', 'Weak', 'SSL Version', 'Key Length', 'Cipher'],
|
'Columns' => ['Status', 'Weak', 'SSL Version', 'Key Length', 'Cipher'],
|
||||||
|
|
|
@ -80,7 +80,7 @@ Windows and Linux.
|
||||||
end
|
end
|
||||||
|
|
||||||
if res && res.code == 200 && !res.body.empty?
|
if res && res.code == 200 && !res.body.empty?
|
||||||
cred_table = Rex::Ui::Text::Table.new(
|
cred_table = Rex::Text::Table.new(
|
||||||
'Header' => 'WebNMS Login Credentials',
|
'Header' => 'WebNMS Login Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -97,7 +97,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
end
|
end
|
||||||
|
|
||||||
# Create table for report
|
# Create table for report
|
||||||
windows_domain_login_table = Rex::Ui::Text::Table.new(
|
windows_domain_login_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Windows Domain Accounts',
|
'Header' => 'Windows Domain Accounts',
|
||||||
'Ident' => 1,
|
'Ident' => 1,
|
||||||
'Columns' => ['name']
|
'Columns' => ['name']
|
||||||
|
|
|
@ -84,7 +84,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
print_good("#{domain_users.length} user accounts, groups, and computer accounts were found.")
|
print_good("#{domain_users.length} user accounts, groups, and computer accounts were found.")
|
||||||
|
|
||||||
# Create table for report
|
# Create table for report
|
||||||
windows_domain_login_table = Rex::Ui::Text::Table.new(
|
windows_domain_login_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Windows Domain Accounts',
|
'Header' => 'Windows Domain Accounts',
|
||||||
'Ident' => 1,
|
'Ident' => 1,
|
||||||
'Columns' => ['name']
|
'Columns' => ['name']
|
||||||
|
|
|
@ -356,7 +356,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
end
|
end
|
||||||
|
|
||||||
# CREATE TABLE TO STORE SQL SERVER DATA LOOT
|
# CREATE TABLE TO STORE SQL SERVER DATA LOOT
|
||||||
sql_data_tbl = Rex::Ui::Text::Table.new(
|
sql_data_tbl = Rex::Text::Table.new(
|
||||||
'Header' => 'SQL Server Data',
|
'Header' => 'SQL Server Data',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Server', 'Database', 'Schema', 'Table', 'Column', 'Data Type', 'Sample Data', 'Row Count']
|
'Columns' => ['Server', 'Database', 'Schema', 'Table', 'Column', 'Data Type', 'Sample Data', 'Row Count']
|
||||||
|
|
|
@ -151,7 +151,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
print_good("#{@users.length} users found!")
|
print_good("#{@users.length} users found!")
|
||||||
end
|
end
|
||||||
|
|
||||||
users_table = Rex::Ui::Text::Table.new(
|
users_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Advantech WebAccess Users',
|
'Header' => 'Advantech WebAccess Users',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Username', 'Encrypted Password', 'Key', 'Recovered password', 'Origin']
|
'Columns' => ['Username', 'Encrypted Password', 'Key', 'Recovered password', 'Origin']
|
||||||
|
|
|
@ -150,7 +150,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
end
|
end
|
||||||
|
|
||||||
def grab
|
def grab
|
||||||
logins = Rex::Ui::Text::Table.new(
|
logins = Rex::Text::Table.new(
|
||||||
'Header' => "Schneider Modicon Quantum services, usernames, and passwords",
|
'Header' => "Schneider Modicon Quantum services, usernames, and passwords",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ["Service", "User Name", "Password"]
|
'Columns' => ["Service", "User Name", "Password"]
|
||||||
|
|
|
@ -66,7 +66,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
print_status("Listing \\\\#{datastore['RHOST']}\\#{datastore['SMBSHARE']}\\#{datastore['RPATH']}'...")
|
print_status("Listing \\\\#{datastore['RHOST']}\\#{datastore['SMBSHARE']}\\#{datastore['RPATH']}'...")
|
||||||
end
|
end
|
||||||
listing = self.simple.client.find_first("\\#{datastore['RPATH']}\\*")
|
listing = self.simple.client.find_first("\\#{datastore['RPATH']}\\*")
|
||||||
directory = Rex::Ui::Text::Table.new(
|
directory = Rex::Text::Table.new(
|
||||||
'Header' => "Directory Listing of \\\\#{datastore['RHOST']}\\#{datastore['SMBSHARE']}\\#{datastore['RPATH']}",
|
'Header' => "Directory Listing of \\\\#{datastore['RHOST']}\\#{datastore['SMBSHARE']}\\#{datastore['RPATH']}",
|
||||||
'Indent' => 2,
|
'Indent' => 2,
|
||||||
'SortIndex' => 2,
|
'SortIndex' => 2,
|
||||||
|
|
|
@ -32,7 +32,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
|
|
||||||
return unless res && res.code == 200
|
return unless res && res.code == 200
|
||||||
|
|
||||||
waps = Rex::Ui::Text::Table.new(
|
waps = Rex::Text::Table.new(
|
||||||
'Header' => 'Wireless Access Points',
|
'Header' => 'Wireless Access Points',
|
||||||
'Columns' => [
|
'Columns' => [
|
||||||
'BSSID',
|
'BSSID',
|
||||||
|
|
|
@ -222,7 +222,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
headerlen = makeword(f.read(2))
|
headerlen = makeword(f.read(2))
|
||||||
f.seek(userentryptr + 40) # sorry decimal
|
f.seek(userentryptr + 40) # sorry decimal
|
||||||
entrylen = makeword(f.read(2)) # sorry this is decimal
|
entrylen = makeword(f.read(2)) # sorry this is decimal
|
||||||
logins = Rex::Ui::Text::Table.new(
|
logins = Rex::Text::Table.new(
|
||||||
'Header' => "D20 usernames, passwords, and account levels\n(use for TELNET authentication)",
|
'Header' => "D20 usernames, passwords, and account levels\n(use for TELNET authentication)",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ["Type", "User Name", "Password"])
|
'Columns' => ["Type", "User Name", "Password"])
|
||||||
|
|
|
@ -192,7 +192,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
print_warning("No credentials collected.")
|
print_warning("No credentials collected.")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
cred_table = Rex::Ui::Text::Table.new(
|
cred_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Dolibarr User Credentials',
|
'Header' => 'Dolibarr User Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Username', 'Password', 'Admin', 'E-mail']
|
'Columns' => ['Username', 'Password', 'Admin', 'E-mail']
|
||||||
|
|
|
@ -98,7 +98,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
cred_table = Rex::Ui::Text::Table.new(
|
cred_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Network Shutdown Module Credentials',
|
'Header' => 'Network Shutdown Module Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Username', 'Password']
|
'Columns' => ['Username', 'Password']
|
||||||
|
|
|
@ -90,7 +90,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
cred_table = Rex::Ui::Text::Table.new(
|
cred_table = Rex::Text::Table.new(
|
||||||
'Header' => 'ManageEngine EventLog Analyzer Managed Devices Credentials',
|
'Header' => 'ManageEngine EventLog Analyzer Managed Devices Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -142,7 +142,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
cred_table = Rex::Ui::Text::Table.new(
|
cred_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Domain Controllers Credentials',
|
'Header' => 'Domain Controllers Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Domain Controller', 'Username', 'Password']
|
'Columns' => ['Domain Controller', 'Username', 'Password']
|
||||||
|
|
|
@ -134,7 +134,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
return if keys.size == 0
|
return if keys.size == 0
|
||||||
|
|
||||||
data = data_for_keys(keys)
|
data = data_for_keys(keys)
|
||||||
result_table = Rex::Ui::Text::Table.new(
|
result_table = Rex::Text::Table.new(
|
||||||
'Header' => "Keys/Values Found for #{peer}",
|
'Header' => "Keys/Values Found for #{peer}",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => [ 'Key', 'Value' ]
|
'Columns' => [ 'Key', 'Value' ]
|
||||||
|
|
|
@ -144,7 +144,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
end
|
end
|
||||||
|
|
||||||
# Save the results to this table
|
# Save the results to this table
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => 'Search Results',
|
'Header' => 'Search Results',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['IP:Port', 'City', 'Country', 'Hostname']
|
'Columns' => ['IP:Port', 'City', 'Country', 'Hostname']
|
||||||
|
|
|
@ -189,7 +189,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
count_users = data.to_i
|
count_users = data.to_i
|
||||||
print_good("#{count_users} users found. Collecting credentials...")
|
print_good("#{count_users} users found. Collecting credentials...")
|
||||||
|
|
||||||
users_table = Rex::Ui::Text::Table.new(
|
users_table = Rex::Text::Table.new(
|
||||||
'Header' => 'vBulletin Users',
|
'Header' => 'vBulletin Users',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Username', 'Password Hash', 'Salt']
|
'Columns' => ['Username', 'Password Hash', 'Salt']
|
||||||
|
|
|
@ -91,7 +91,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
:info => "#{WDS_CONST::WDSCP_RPC_UUID} v1.0 Windows Deployment Services"
|
:info => "#{WDS_CONST::WDSCP_RPC_UUID} v1.0 Windows Deployment Services"
|
||||||
)
|
)
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new({
|
table = Rex::Text::Table.new({
|
||||||
'Header' => 'Windows Deployment Services',
|
'Header' => 'Windows Deployment Services',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Architecture', 'Type', 'Domain', 'Username', 'Password']
|
'Columns' => ['Architecture', 'Type', 'Domain', 'Username', 'Password']
|
||||||
|
|
|
@ -88,7 +88,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
def show_results(target_host)
|
def show_results(target_host)
|
||||||
print_good("#{rhost}:#{rport} JBoss application server found")
|
print_good("#{rhost}:#{rport} JBoss application server found")
|
||||||
|
|
||||||
req_table = Rex::Ui::Text::Table.new(
|
req_table = Rex::Text::Table.new(
|
||||||
'Header' => 'JBoss application server requests',
|
'Header' => 'JBoss application server requests',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Client', 'Vhost target', 'Request']
|
'Columns' => ['Client', 'Vhost target', 'Request']
|
||||||
|
|
|
@ -93,7 +93,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
workspace_id: myworkspace_id
|
workspace_id: myworkspace_id
|
||||||
}
|
}
|
||||||
|
|
||||||
cred_table = Rex::Ui::Text::Table.new(
|
cred_table = Rex::Text::Table.new(
|
||||||
'Header' => 'ManageEngine DeviceExpert User Credentials',
|
'Header' => 'ManageEngine DeviceExpert User Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -128,7 +128,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
sock.put(DDNS)
|
sock.put(DDNS)
|
||||||
return unless (response = sock.get_once)
|
return unless (response = sock.get_once)
|
||||||
data = response.split(/&&[0-1]&&/)
|
data = response.split(/&&[0-1]&&/)
|
||||||
ddns_table = Rex::Ui::Text::Table.new(
|
ddns_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Dahua DDNS Settings',
|
'Header' => 'Dahua DDNS Settings',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Peer', 'DDNS Service', 'DDNS Server', 'DDNS Port', 'Domain', 'Username', 'Password']
|
'Columns' => ['Peer', 'DDNS Service', 'DDNS Server', 'DDNS Port', 'Domain', 'Username', 'Password']
|
||||||
|
@ -186,7 +186,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
connect
|
connect
|
||||||
sock.put(CHANNELS)
|
sock.put(CHANNELS)
|
||||||
data = sock.get_once.split('&&')
|
data = sock.get_once.split('&&')
|
||||||
channels_table = Rex::Ui::Text::Table.new(
|
channels_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Dahua Camera Channels',
|
'Header' => 'Dahua Camera Channels',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['ID', 'Peer', 'Channels']
|
'Columns' => ['ID', 'Peer', 'Channels']
|
||||||
|
@ -206,7 +206,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
return unless (response = sock.get_once)
|
return unless (response = sock.get_once)
|
||||||
data = response.split('&&')
|
data = response.split('&&')
|
||||||
usercount = 0
|
usercount = 0
|
||||||
users_table = Rex::Ui::Text::Table.new(
|
users_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Dahua Users Hashes and Rights',
|
'Header' => 'Dahua Users Hashes and Rights',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Peer', 'Username', 'Password Hash', 'Groups', 'Permissions', 'Description']
|
'Columns' => ['Peer', 'Username', 'Password Hash', 'Groups', 'Permissions', 'Description']
|
||||||
|
@ -237,7 +237,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
sock.put(GROUPS)
|
sock.put(GROUPS)
|
||||||
return unless (response = sock.get_once)
|
return unless (response = sock.get_once)
|
||||||
data = response.split('&&')
|
data = response.split('&&')
|
||||||
groups_table = Rex::Ui::Text::Table.new(
|
groups_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Dahua groups',
|
'Header' => 'Dahua groups',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['ID', 'Peer', 'Group']
|
'Columns' => ['ID', 'Peer', 'Group']
|
||||||
|
|
|
@ -50,7 +50,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
return if maps.empty?
|
return if maps.empty?
|
||||||
vprint_good("Found #{maps.size} programs available")
|
vprint_good("Found #{maps.size} programs available")
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => "SunRPC Programs for #{ip}",
|
'Header' => "SunRPC Programs for #{ip}",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => %w(Name Number Version Port Protocol)
|
'Columns' => %w(Name Number Version Port Protocol)
|
||||||
|
|
|
@ -110,7 +110,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
:proto => 'tcp'
|
:proto => 'tcp'
|
||||||
)
|
)
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => 'MS SQL Server Hashes',
|
'Header' => 'MS SQL Server Hashes',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Username', 'Hash']
|
'Columns' => ['Username', 'Hash']
|
||||||
|
|
|
@ -177,7 +177,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
end
|
end
|
||||||
|
|
||||||
# Create a table to store data
|
# Create a table to store data
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => 'MysQL Server Hashes',
|
'Header' => 'MysQL Server Hashes',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Username', 'Hash']
|
'Columns' => ['Username', 'Hash']
|
||||||
|
|
|
@ -55,7 +55,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => 'Oracle Server Hashes',
|
'Header' => 'Oracle Server Hashes',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Username', 'Hash']
|
'Columns' => ['Username', 'Hash']
|
||||||
|
|
|
@ -94,7 +94,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => 'Postgres Server Hashes',
|
'Header' => 'Postgres Server Hashes',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Username', 'Hash']
|
'Columns' => ['Username', 'Hash']
|
||||||
|
|
|
@ -321,7 +321,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
write = false
|
write = false
|
||||||
|
|
||||||
# Creating a separate file for each IP address's results.
|
# Creating a separate file for each IP address's results.
|
||||||
detailed_tbl = Rex::Ui::Text::Table.new(
|
detailed_tbl = Rex::Text::Table.new(
|
||||||
'Header' => "Spidered results for #{ip}.",
|
'Header' => "Spidered results for #{ip}.",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => [ 'IP Address', 'Type', 'Share', 'Path', 'Name', 'Created', 'Accessed', 'Written', 'Changed', 'Size' ]
|
'Columns' => [ 'IP Address', 'Type', 'Share', 'Path', 'Name', 'Created', 'Accessed', 'Written', 'Changed', 'Size' ]
|
||||||
|
@ -368,7 +368,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
header << "\\#{x.sub("C$","C$\\")}" if simple.client.default_name
|
header << "\\#{x.sub("C$","C$\\")}" if simple.client.default_name
|
||||||
header << subdirs[0]
|
header << subdirs[0]
|
||||||
|
|
||||||
pretty_tbl = Rex::Ui::Text::Table.new(
|
pretty_tbl = Rex::Text::Table.new(
|
||||||
'Header' => header,
|
'Header' => header,
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => [ 'Type', 'Name', 'Created', 'Accessed', 'Written', 'Changed', 'Size' ]
|
'Columns' => [ 'Type', 'Name', 'Created', 'Accessed', 'Written', 'Changed', 'Size' ]
|
||||||
|
|
|
@ -67,7 +67,7 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
when :error
|
when :error
|
||||||
print_error "An error occured while trying to enumerate the permissions on #{ip}"
|
print_error "An error occured while trying to enumerate the permissions on #{ip}"
|
||||||
else
|
else
|
||||||
tmp_perms = Rex::Ui::Text::Table.new(
|
tmp_perms = Rex::Text::Table.new(
|
||||||
'Header' => "Permissions for VMWare #{ip}",
|
'Header' => "Permissions for VMWare #{ip}",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Name', 'IsAGroup', 'Role', 'Role Summary']
|
'Columns' => ['Name', 'IsAGroup', 'Role', 'Role Summary']
|
||||||
|
|
|
@ -40,12 +40,12 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
if vim_do_login(datastore['USERNAME'], datastore['PASSWORD']) == :success
|
if vim_do_login(datastore['USERNAME'], datastore['PASSWORD']) == :success
|
||||||
# Get local Users and Groups
|
# Get local Users and Groups
|
||||||
user_list = vim_get_user_list(nil)
|
user_list = vim_get_user_list(nil)
|
||||||
tmp_users = Rex::Ui::Text::Table.new(
|
tmp_users = Rex::Text::Table.new(
|
||||||
'Header' => "Users for server #{ip}",
|
'Header' => "Users for server #{ip}",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Name', 'Description']
|
'Columns' => ['Name', 'Description']
|
||||||
)
|
)
|
||||||
tmp_groups = Rex::Ui::Text::Table.new(
|
tmp_groups = Rex::Text::Table.new(
|
||||||
'Header' => "Groups for server #{ip}",
|
'Header' => "Groups for server #{ip}",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Name', 'Description']
|
'Columns' => ['Name', 'Description']
|
||||||
|
@ -85,13 +85,13 @@ class MetasploitModule < Msf::Auxiliary
|
||||||
else
|
else
|
||||||
# Enumerate Domain Users and Groups
|
# Enumerate Domain Users and Groups
|
||||||
esx_domains.each do |domain|
|
esx_domains.each do |domain|
|
||||||
tmp_dusers = Rex::Ui::Text::Table.new(
|
tmp_dusers = Rex::Text::Table.new(
|
||||||
'Header' => "Users for domain #{domain}",
|
'Header' => "Users for domain #{domain}",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Name', 'Description']
|
'Columns' => ['Name', 'Description']
|
||||||
)
|
)
|
||||||
|
|
||||||
tmp_dgroups = Rex::Ui::Text::Table.new(
|
tmp_dgroups = Rex::Text::Table.new(
|
||||||
'Header' => "Groups for domain #{domain}",
|
'Header' => "Groups for domain #{domain}",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Name', 'Description']
|
'Columns' => ['Name', 'Description']
|
||||||
|
|
|
@ -111,7 +111,7 @@ class MetasploitModule < Msf::Exploit::Remote
|
||||||
master..sysservers where dataaccess=1 and srvname!=@@servername and srvproduct = 'SQL Server')as linkcount"
|
master..sysservers where dataaccess=1 and srvname!=@@servername and srvproduct = 'SQL Server')as linkcount"
|
||||||
|
|
||||||
# Create loot table to store configuration information from crawled database server links
|
# Create loot table to store configuration information from crawled database server links
|
||||||
linked_server_table = Rex::Ui::Text::Table.new(
|
linked_server_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Linked Server Table',
|
'Header' => 'Linked Server Table',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['db_server', 'db_version', 'db_os', 'link_server', 'link_user', 'link_privilege', 'link_version', 'link_os','link_state']
|
'Columns' => ['db_server', 'db_version', 'db_os', 'link_server', 'link_user', 'link_privilege', 'link_version', 'link_os','link_state']
|
||||||
|
|
|
@ -52,7 +52,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
def extract_all_creds
|
def extract_all_creds
|
||||||
tbl = Rex::Ui::Text::Table.new({
|
tbl = Rex::Text::Table.new({
|
||||||
'Header' => '802-11-wireless-security',
|
'Header' => '802-11-wireless-security',
|
||||||
'Columns' => ['AccessPoint-Name', 'PSK'],
|
'Columns' => ['AccessPoint-Name', 'PSK'],
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
|
|
|
@ -29,7 +29,7 @@ class MetasploitModule < Msf::Post
|
||||||
# where we'll store hashes of found credentials while parsing. reporting is done at the end.
|
# where we'll store hashes of found credentials while parsing. reporting is done at the end.
|
||||||
creds = []
|
creds = []
|
||||||
# A table to store the found credentials for loot storage afterward
|
# A table to store the found credentials for loot storage afterward
|
||||||
cred_table = Rex::Ui::Text::Table.new(
|
cred_table = Rex::Text::Table.new(
|
||||||
'Header' => "mount.cifs credentials",
|
'Header' => "mount.cifs credentials",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -85,7 +85,7 @@ class MetasploitModule < Msf::Post
|
||||||
# Extracts client, server, secret, and IP addresses
|
# Extracts client, server, secret, and IP addresses
|
||||||
#
|
#
|
||||||
def extract_secrets(data)
|
def extract_secrets(data)
|
||||||
tbl = Rex::Ui::Text::Table.new({
|
tbl = Rex::Text::Table.new({
|
||||||
'Header' => 'PPTPd chap-secrets',
|
'Header' => 'PPTPd chap-secrets',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Client', 'Server', 'Secret', 'IP']
|
'Columns' => ['Client', 'Server', 'Secret', 'IP']
|
||||||
|
|
|
@ -81,7 +81,7 @@ class MetasploitModule < Msf::Post
|
||||||
print_status("#{rhost} - SHA1: #{sha1}") unless sha1.blank?
|
print_status("#{rhost} - SHA1: #{sha1}") unless sha1.blank?
|
||||||
print_status("#{rhost} - SHA256: #{sha256}") unless sha256.blank?
|
print_status("#{rhost} - SHA256: #{sha256}") unless sha256.blank?
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => "Analysis Report: #{filename} (#{res['positives']} / #{res['total']}): #{res['sha256']}",
|
'Header' => "Analysis Report: #{filename} (#{res['positives']} / #{res['total']}): #{res['sha256']}",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Antivirus', 'Detected', 'Version', 'Result', 'Update']
|
'Columns' => ['Antivirus', 'Detected', 'Version', 'Result', 'Update']
|
||||||
|
|
|
@ -112,7 +112,7 @@ class MetasploitModule < Msf::Post
|
||||||
# New config file parse function
|
# New config file parse function
|
||||||
def parse_new_config_file(raw_xml)
|
def parse_new_config_file(raw_xml)
|
||||||
|
|
||||||
db_table = Rex::Ui::Text::Table.new(
|
db_table = Rex::Text::Table.new(
|
||||||
'Header' => "DbVisualizer Databases",
|
'Header' => "DbVisualizer Databases",
|
||||||
'Indent' => 2,
|
'Indent' => 2,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
@ -219,7 +219,7 @@ class MetasploitModule < Msf::Post
|
||||||
# New config file parse function
|
# New config file parse function
|
||||||
def parse_old_config_file(raw_xml)
|
def parse_old_config_file(raw_xml)
|
||||||
|
|
||||||
db_table = Rex::Ui::Text::Table.new(
|
db_table = Rex::Text::Table.new(
|
||||||
'Header' => 'DbVisualizer Databases',
|
'Header' => 'DbVisualizer Databases',
|
||||||
'Indent' => 2,
|
'Indent' => 2,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -26,7 +26,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
def run
|
def run
|
||||||
# A table to store the found credentials.
|
# A table to store the found credentials.
|
||||||
cred_table = Rex::Ui::Text::Table.new(
|
cred_table = Rex::Text::Table.new(
|
||||||
'Header' => ".fetchmailrc credentials",
|
'Header' => ".fetchmailrc credentials",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -663,7 +663,7 @@ Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||||
file_rm(@paths['loot'])
|
file_rm(@paths['loot'])
|
||||||
|
|
||||||
# Create table to store
|
# Create table to store
|
||||||
cred_table = Rex::Ui::Text::Table.new(
|
cred_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Firefox Credentials',
|
'Header' => 'Firefox Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns'=>
|
'Columns'=>
|
||||||
|
|
|
@ -376,7 +376,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
# Print all extracted LastPass data
|
# Print all extracted LastPass data
|
||||||
def print_lastpass_data(account_map)
|
def print_lastpass_data(account_map)
|
||||||
lastpass_data_table = Rex::Ui::Text::Table.new(
|
lastpass_data_table = Rex::Text::Table.new(
|
||||||
'Header' => "LastPass Accounts",
|
'Header' => "LastPass Accounts",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => %w(Account LP_Username LP_Password LP_2FA LP_Key)
|
'Columns' => %w(Account LP_Username LP_Password LP_2FA LP_Key)
|
||||||
|
@ -662,7 +662,7 @@ class MetasploitModule < Msf::Post
|
||||||
account_map.each_pair do |account, browser_map|
|
account_map.each_pair do |account, browser_map|
|
||||||
browser_map.each_pair do |browser, lp_data|
|
browser_map.each_pair do |browser, lp_data|
|
||||||
lp_data['lp_creds'].each_pair do |username, user_data|
|
lp_data['lp_creds'].each_pair do |username, user_data|
|
||||||
lastpass_vault_data_table = Rex::Ui::Text::Table.new(
|
lastpass_vault_data_table = Rex::Text::Table.new(
|
||||||
'Header' => "Decrypted vault from #{username}",
|
'Header' => "Decrypted vault from #{username}",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => %w(URL Username Password)
|
'Columns' => %w(URL Username Password)
|
||||||
|
|
|
@ -25,7 +25,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
def run
|
def run
|
||||||
# A table to store the found credentials.
|
# A table to store the found credentials.
|
||||||
cred_table = Rex::Ui::Text::Table.new(
|
cred_table = Rex::Text::Table.new(
|
||||||
'Header' => ".netrc credentials",
|
'Header' => ".netrc credentials",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -66,7 +66,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
# Store the creds to
|
# Store the creds to
|
||||||
def parse_creds(f)
|
def parse_creds(f)
|
||||||
cred_table = Rex::Ui::Text::Table.new(
|
cred_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Postgres Data',
|
'Header' => 'Postgres Data',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Host', 'Port', 'DB', 'User', 'Password']
|
'Columns' => ['Host', 'Port', 'DB', 'User', 'Password']
|
||||||
|
|
|
@ -130,7 +130,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
data = ""
|
data = ""
|
||||||
credentials = Rex::Ui::Text::Table.new(
|
credentials = Rex::Text::Table.new(
|
||||||
'Header' => "Pidgin Credentials",
|
'Header' => "Pidgin Credentials",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
@ -143,7 +143,7 @@ class MetasploitModule < Msf::Post
|
||||||
"Port"
|
"Port"
|
||||||
])
|
])
|
||||||
|
|
||||||
buddylists = Rex::Ui::Text::Table.new(
|
buddylists = Rex::Text::Table.new(
|
||||||
'Header' => "Pidgin Contact List",
|
'Header' => "Pidgin Contact List",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -33,7 +33,7 @@ class MetasploitModule < Msf::Post
|
||||||
vprint_status('No Reminna credentials collected')
|
vprint_status('No Reminna credentials collected')
|
||||||
else
|
else
|
||||||
vprint_good("Collected #{creds.size} sets of Remmina credentials")
|
vprint_good("Collected #{creds.size} sets of Remmina credentials")
|
||||||
cred_table = Rex::Ui::Text::Table.new(
|
cred_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Remmina Credentials',
|
'Header' => 'Remmina Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => %w(Host Port Service User Password)
|
'Columns' => %w(Host Port Service User Password)
|
||||||
|
|
|
@ -61,7 +61,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
response = client.net.resolve.resolve_hosts(hosts, family)
|
response = client.net.resolve.resolve_hosts(hosts, family)
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Indent' => 0,
|
'Indent' => 0,
|
||||||
'SortIndex' => -1,
|
'SortIndex' => -1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -42,7 +42,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
def dump_rsync_secrets(config_file)
|
def dump_rsync_secrets(config_file)
|
||||||
vprint_status("Attempting to get RSYNC creds from #{config_file}")
|
vprint_status("Attempting to get RSYNC creds from #{config_file}")
|
||||||
creds_table = Rex::Ui::Text::Table.new(
|
creds_table = Rex::Text::Table.new(
|
||||||
'Header' => "RSYNC credentials from #{config_file}",
|
'Header' => "RSYNC credentials from #{config_file}",
|
||||||
'Columns' => %w(Username Password Module)
|
'Columns' => %w(Username Password Module)
|
||||||
)
|
)
|
||||||
|
|
|
@ -165,7 +165,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
# Create a rex table to store our data
|
# Create a rex table to store our data
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => 'Thunderbird login data',
|
'Header' => 'Thunderbird login data',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -157,7 +157,7 @@ class MetasploitModule < Msf::Post
|
||||||
# Runs the module
|
# Runs the module
|
||||||
#
|
#
|
||||||
def run
|
def run
|
||||||
cred_tbl = Rex::Ui::Text::Table.new({
|
cred_tbl = Rex::Text::Table.new({
|
||||||
'Header' => 'Credentials',
|
'Header' => 'Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Domain', 'Username', 'Password']
|
'Columns' => ['Domain', 'Username', 'Password']
|
||||||
|
|
|
@ -271,7 +271,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
|
|
||||||
def run
|
def run
|
||||||
@credentials = Rex::Ui::Text::Table.new(
|
@credentials = Rex::Text::Table.new(
|
||||||
'Header' => "MSCACHE Credentials",
|
'Header' => "MSCACHE Credentials",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -290,7 +290,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
# Report / Show findings
|
# Report / Show findings
|
||||||
@credentials = Rex::Ui::Text::Table.new(
|
@credentials = Rex::Text::Table.new(
|
||||||
'Header' => "BulletProof FTP Client Bookmarks",
|
'Header' => "BulletProof FTP Client Bookmarks",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -123,13 +123,13 @@ class MetasploitModule < Msf::Post
|
||||||
#
|
#
|
||||||
def do_report(data)
|
def do_report(data)
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => 'DynDNS Client Data',
|
'Header' => 'DynDNS Client Data',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['Field', 'Value']
|
'Columns' => ['Field', 'Value']
|
||||||
)
|
)
|
||||||
|
|
||||||
creds = Rex::Ui::Text::Table.new(
|
creds = Rex::Text::Table.new(
|
||||||
'Header' => 'DynDNS Credentials',
|
'Header' => 'DynDNS Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => ['User', 'Password']
|
'Columns' => ['User', 'Password']
|
||||||
|
|
|
@ -75,11 +75,11 @@ class MetasploitModule < Msf::Post
|
||||||
# the database if datastore option STORE_DB is true.
|
# the database if datastore option STORE_DB is true.
|
||||||
#
|
#
|
||||||
# @param [Array<Array<Hash>>] the LDAP query results to parse
|
# @param [Array<Array<Hash>>] the LDAP query results to parse
|
||||||
# @return [Rex::Ui::Text::Table] the table containing all the result data
|
# @return [Rex::Text::Table] the table containing all the result data
|
||||||
def parse_results(results)
|
def parse_results(results)
|
||||||
laps_results = []
|
laps_results = []
|
||||||
# Results table holds raw string data
|
# Results table holds raw string data
|
||||||
results_table = Rex::Ui::Text::Table.new(
|
results_table = Rex::Text::Table.new(
|
||||||
'Header' => 'Local Administrator Password Solution (LAPS) Results',
|
'Header' => 'Local Administrator Password Solution (LAPS) Results',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'SortIndex' => -1,
|
'SortIndex' => -1,
|
||||||
|
|
|
@ -73,7 +73,7 @@ class MetasploitModule < Msf::Post
|
||||||
username = registry_getvaldata("HKCU\\Software\\Google\\Picasa\\Picasa2\\Preferences\\", 'GaiaEmail') || ''
|
username = registry_getvaldata("HKCU\\Software\\Google\\Picasa\\Picasa2\\Preferences\\", 'GaiaEmail') || ''
|
||||||
password = registry_getvaldata("HKCU\\Software\\Google\\Picasa\\Picasa2\\Preferences\\", 'GaiaPass') || ''
|
password = registry_getvaldata("HKCU\\Software\\Google\\Picasa\\Picasa2\\Preferences\\", 'GaiaPass') || ''
|
||||||
|
|
||||||
credentials = Rex::Ui::Text::Table.new(
|
credentials = Rex::Text::Table.new(
|
||||||
'Header' => "Picasa Credentials",
|
'Header' => "Picasa Credentials",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -103,7 +103,7 @@ class MetasploitModule < Msf::Post
|
||||||
def get_filezilla_creds(paths)
|
def get_filezilla_creds(paths)
|
||||||
fs_xml = "" # FileZilla Server.xml - Settings for the local install
|
fs_xml = "" # FileZilla Server.xml - Settings for the local install
|
||||||
fsi_xml = "" # FileZilla Server Interface.xml - Last server used with the interface
|
fsi_xml = "" # FileZilla Server Interface.xml - Last server used with the interface
|
||||||
credentials = Rex::Ui::Text::Table.new(
|
credentials = Rex::Text::Table.new(
|
||||||
'Header' => "FileZilla FTP Server Credentials",
|
'Header' => "FileZilla FTP Server Credentials",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
@ -115,7 +115,7 @@ class MetasploitModule < Msf::Post
|
||||||
"SSL"
|
"SSL"
|
||||||
])
|
])
|
||||||
|
|
||||||
permissions = Rex::Ui::Text::Table.new(
|
permissions = Rex::Text::Table.new(
|
||||||
'Header' => "FileZilla FTP Server Permissions",
|
'Header' => "FileZilla FTP Server Permissions",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
@ -135,7 +135,7 @@ class MetasploitModule < Msf::Post
|
||||||
"Home"
|
"Home"
|
||||||
])
|
])
|
||||||
|
|
||||||
configuration = Rex::Ui::Text::Table.new(
|
configuration = Rex::Text::Table.new(
|
||||||
'Header' => "FileZilla FTP Server Configuration",
|
'Header' => "FileZilla FTP Server Configuration",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
@ -150,7 +150,7 @@ class MetasploitModule < Msf::Post
|
||||||
"SSL Key Password"
|
"SSL Key Password"
|
||||||
])
|
])
|
||||||
|
|
||||||
lastserver = Rex::Ui::Text::Table.new(
|
lastserver = Rex::Text::Table.new(
|
||||||
'Header' => "FileZilla FTP Last Server",
|
'Header' => "FileZilla FTP Last Server",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -32,7 +32,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
def run
|
def run
|
||||||
creds = Rex::Ui::Text::Table.new(
|
creds = Rex::Text::Table.new(
|
||||||
'Header' => 'Internet Downloader Manager Credentials',
|
'Header' => 'Internet Downloader Manager Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -140,7 +140,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
def report(users)
|
def report(users)
|
||||||
credentials = Rex::Ui::Text::Table.new(
|
credentials = Rex::Text::Table.new(
|
||||||
'Header' => 'Ipswitch iMail User Credentials',
|
'Header' => 'Ipswitch iMail User Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -37,7 +37,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
def run
|
def run
|
||||||
|
|
||||||
creds = Rex::Ui::Text::Table.new(
|
creds = Rex::Text::Table.new(
|
||||||
'Header' => 'IMVU Credentials',
|
'Header' => 'IMVU Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>[
|
'Columns' =>[
|
||||||
|
|
|
@ -42,7 +42,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
def parse_txt(file)
|
def parse_txt(file)
|
||||||
begin
|
begin
|
||||||
creds = Rex::Ui::Text::Table.new(
|
creds = Rex::Text::Table.new(
|
||||||
'Header' => 'Meebo Instant Messenger Credentials',
|
'Header' => 'Meebo Instant Messenger Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -29,7 +29,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
def run
|
def run
|
||||||
creds = Rex::Ui::Text::Table.new(
|
creds = Rex::Text::Table.new(
|
||||||
'Header' => 'Nimbuzz Instant Messenger Credentials',
|
'Header' => 'Nimbuzz Instant Messenger Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -76,7 +76,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
def run
|
def run
|
||||||
print_status("Checking All Users...")
|
print_status("Checking All Users...")
|
||||||
creds_tbl = Rex::Ui::Text::Table.new(
|
creds_tbl = Rex::Text::Table.new(
|
||||||
'Header' => 'RazorSQL User Credentials',
|
'Header' => 'RazorSQL User Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -76,7 +76,7 @@ class MetasploitModule < Msf::Post
|
||||||
vprint_error("LiveSSP credentials not present")
|
vprint_error("LiveSSP credentials not present")
|
||||||
end
|
end
|
||||||
|
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => "Windows SSO Credentials",
|
'Header' => "Windows SSO Credentials",
|
||||||
'Indent' => 0,
|
'Indent' => 0,
|
||||||
'SortIndex' => 0,
|
'SortIndex' => 0,
|
||||||
|
|
|
@ -54,7 +54,7 @@ class MetasploitModule < Msf::Post
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
creds = Rex::Ui::Text::Table.new(
|
creds = Rex::Text::Table.new(
|
||||||
'Header' => 'Trillian versions 4-5 Instant Messenger Credentials',
|
'Header' => 'Trillian versions 4-5 Instant Messenger Credentials',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -17,7 +17,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
def run
|
def run
|
||||||
rtable = Rex::Ui::Text::Table.new(
|
rtable = Rex::Text::Table.new(
|
||||||
'Header' => 'DNS Cached Entries',
|
'Header' => 'DNS Cached Entries',
|
||||||
'Indent' => 3,
|
'Indent' => 3,
|
||||||
'Columns' => ['TYPE', 'DOMAIN']
|
'Columns' => ['TYPE', 'DOMAIN']
|
||||||
|
|
|
@ -53,7 +53,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
# Results table holds raw string data
|
# Results table holds raw string data
|
||||||
results_table = Rex::Ui::Text::Table.new(
|
results_table = Rex::Text::Table.new(
|
||||||
'Header' => 'BitLocker Recovery Passwords',
|
'Header' => 'BitLocker Recovery Passwords',
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'SortIndex' => -1,
|
'SortIndex' => -1,
|
||||||
|
|
|
@ -71,7 +71,7 @@ class MetasploitModule < Msf::Post
|
||||||
return if q.nil? or q[:results].empty?
|
return if q.nil? or q[:results].empty?
|
||||||
|
|
||||||
# Results table holds raw string data
|
# Results table holds raw string data
|
||||||
results_table = Rex::Ui::Text::Table.new(
|
results_table = Rex::Text::Table.new(
|
||||||
'Header' => "Domain Computers",
|
'Header' => "Domain Computers",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'SortIndex' => -1,
|
'SortIndex' => -1,
|
||||||
|
|
|
@ -69,10 +69,10 @@ class MetasploitModule < Msf::Post
|
||||||
# the database.
|
# the database.
|
||||||
#
|
#
|
||||||
# @param [Array<Array<Hash>>] the LDAP query results to parse
|
# @param [Array<Array<Hash>>] the LDAP query results to parse
|
||||||
# @return [Rex::Ui::Text::Table] the table containing all the result data
|
# @return [Rex::Text::Table] the table containing all the result data
|
||||||
def parse_results(results)
|
def parse_results(results)
|
||||||
# Results table holds raw string data
|
# Results table holds raw string data
|
||||||
results_table = Rex::Ui::Text::Table.new(
|
results_table = Rex::Text::Table.new(
|
||||||
'Header' => "Domain Groups",
|
'Header' => "Domain Groups",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'SortIndex' => -1,
|
'SortIndex' => -1,
|
||||||
|
|
|
@ -75,7 +75,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
# Takes the results of LDAP query, parses them into a table
|
# Takes the results of LDAP query, parses them into a table
|
||||||
def parse_results(results)
|
def parse_results(results)
|
||||||
results_table = Rex::Ui::Text::Table.new(
|
results_table = Rex::Text::Table.new(
|
||||||
'Header' => "Groups with Managers",
|
'Header' => "Groups with Managers",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'SortIndex' => -1,
|
'SortIndex' => -1,
|
||||||
|
|
|
@ -74,7 +74,7 @@ class MetasploitModule < Msf::Post
|
||||||
fields << "Host"
|
fields << "Host"
|
||||||
|
|
||||||
# Results table holds raw string data
|
# Results table holds raw string data
|
||||||
results_table = Rex::Ui::Text::Table.new(
|
results_table = Rex::Text::Table.new(
|
||||||
'Header' => "Service Principal Names",
|
'Header' => "Service Principal Names",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'SortIndex' => -1,
|
'SortIndex' => -1,
|
||||||
|
|
|
@ -53,7 +53,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
# Results table holds raw string data
|
# Results table holds raw string data
|
||||||
results_table = Rex::Ui::Text::Table.new(
|
results_table = Rex::Text::Table.new(
|
||||||
'Header' => "Domain Users",
|
'Header' => "Domain Users",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'SortIndex' => -1,
|
'SortIndex' => -1,
|
||||||
|
|
|
@ -105,12 +105,12 @@ class MetasploitModule < Msf::Post
|
||||||
# the database.
|
# the database.
|
||||||
#
|
#
|
||||||
# @param [Array<Array<Hash>>] the LDAP query results to parse
|
# @param [Array<Array<Hash>>] the LDAP query results to parse
|
||||||
# @return [Rex::Ui::Text::Table] the table containing all the result data
|
# @return [Rex::Text::Table] the table containing all the result data
|
||||||
def parse_results(results)
|
def parse_results(results)
|
||||||
domain = datastore['DOMAIN'] || get_domain
|
domain = datastore['DOMAIN'] || get_domain
|
||||||
domain_ip = client.net.resolve.resolve_host(domain)[:ip]
|
domain_ip = client.net.resolve.resolve_host(domain)[:ip]
|
||||||
# Results table holds raw string data
|
# Results table holds raw string data
|
||||||
results_table = Rex::Ui::Text::Table.new(
|
results_table = Rex::Text::Table.new(
|
||||||
'Header' => "Domain Users",
|
'Header' => "Domain Users",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'SortIndex' => -1,
|
'SortIndex' => -1,
|
||||||
|
|
|
@ -23,7 +23,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
def app_list
|
def app_list
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => "Installed Applications",
|
'Header' => "Installed Applications",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -99,7 +99,7 @@ class MetasploitModule < Msf::Post
|
||||||
print_status("No #{exclusion_type} exclusions for #{product}")
|
print_status("No #{exclusion_type} exclusions for #{product}")
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
table = Rex::Ui::Text::Table.new(
|
table = Rex::Text::Table.new(
|
||||||
'Header' => "#{product} excluded #{exclusion_type.pluralize}",
|
'Header' => "#{product} excluded #{exclusion_type.pluralize}",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' => [ exclusion_type.capitalize ]
|
'Columns' => [ exclusion_type.capitalize ]
|
||||||
|
|
|
@ -131,7 +131,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
def process_files(username)
|
def process_files(username)
|
||||||
secrets = ""
|
secrets = ""
|
||||||
decrypt_table = Rex::Ui::Text::Table.new(
|
decrypt_table = Rex::Text::Table.new(
|
||||||
"Header" => "Decrypted data",
|
"Header" => "Decrypted data",
|
||||||
"Indent" => 1,
|
"Indent" => 1,
|
||||||
"Columns" => ["Name", "Decrypted Data", "Origin"]
|
"Columns" => ["Name", "Decrypted Data", "Origin"]
|
||||||
|
|
|
@ -76,7 +76,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
def list_computers(domain,hosts)
|
def list_computers(domain,hosts)
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => "List of Domain Hosts for the primary Domain.",
|
'Header' => "List of Domain Hosts for the primary Domain.",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -56,7 +56,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
print_status("Done, Databases Found.")
|
print_status("Done, Databases Found.")
|
||||||
|
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => "Installed Databases",
|
'Header' => "Installed Databases",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -28,7 +28,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
def list
|
def list
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => "Device Information",
|
'Header' => "Device Information",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
|
@ -93,7 +93,7 @@ class MetasploitModule < Msf::Post
|
||||||
|
|
||||||
# List Tokens precent on the domain
|
# List Tokens precent on the domain
|
||||||
def list_tokens(domain,dom_admins)
|
def list_tokens(domain,dom_admins)
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => "Impersonation Tokens with Domain Context",
|
'Header' => "Impersonation Tokens with Domain Context",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
@ -161,7 +161,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
def list_group_members(domain,dom_admins)
|
def list_group_members(domain,dom_admins)
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => "Account in Local Groups with Domain Context",
|
'Header' => "Account in Local Groups with Domain Context",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
@ -210,7 +210,7 @@ class MetasploitModule < Msf::Post
|
||||||
end
|
end
|
||||||
|
|
||||||
def list_processes(domain,dom_admins)
|
def list_processes(domain,dom_admins)
|
||||||
tbl = Rex::Ui::Text::Table.new(
|
tbl = Rex::Text::Table.new(
|
||||||
'Header' => "Processes under Domain Context",
|
'Header' => "Processes under Domain Context",
|
||||||
'Indent' => 1,
|
'Indent' => 1,
|
||||||
'Columns' =>
|
'Columns' =>
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue