59 lines
1.5 KiB
Ruby
59 lines
1.5 KiB
Ruby
module MsfTest
|
|
module MeterpreterSpecHelper
|
|
|
|
def self.included(base)
|
|
base.class_eval do
|
|
|
|
def generic_failure_strings
|
|
['fail', 'error', 'exception']
|
|
end
|
|
|
|
def generic_failure_exception_strings
|
|
['nserror.dll', 'tiki-error.php','tiki-error_simple.php','tiki-rss_error.php'] ##ugh, this is dependent on the target
|
|
end
|
|
|
|
def hlp_run_command_check_output(name,command,success_strings=[],fail_strings=[], fail_exception_strings=[])
|
|
|
|
fail_strings = fail_strings | generic_failure_strings
|
|
fail_exception_strings = fail_exception_strings | generic_failure_exception_strings
|
|
|
|
temp_command_file = "#{@output_directory}/#{name}"
|
|
|
|
command_output = Rex::Ui::Text::Output::File.new(temp_command_file)
|
|
@session.init_ui(@input, command_output)
|
|
|
|
command_output.print_line("meterpreter_functional_test_start")
|
|
|
|
if @verbose
|
|
puts "Running Command: " + command
|
|
end
|
|
|
|
@session.run_cmd(command)
|
|
command_output.print_line("meterpreter_functional_test_end")
|
|
data = hlp_file_to_string(temp_command_file)
|
|
|
|
data.should contain_a_complete_test
|
|
data.should contain_all_successes
|
|
data.should contain_no_failures_except
|
|
end
|
|
|
|
def hlp_file_to_string(filename)
|
|
data = ""
|
|
f = File.open(filename, "r")
|
|
f.each_line do |line|
|
|
data += line
|
|
end
|
|
return data
|
|
end
|
|
|
|
def hlp_string_to_file(string, filepath)
|
|
# Create a new file and write to it
|
|
File.open(filepath, 'w') do |f2|
|
|
f2.puts string
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|