66 lines
1.5 KiB
Ruby
66 lines
1.5 KiB
Ruby
module Msf
|
|
module Scripts
|
|
module Meterpreter
|
|
module Common
|
|
|
|
#
|
|
# Commonly used methods and techniques for Meterpreter scripts
|
|
#
|
|
|
|
#
|
|
# These methods should only print output in the case of an error. All code should be tab indented
|
|
# All methods should follow the naming coventions below (separate words with "_", end queries with a ?, etc)
|
|
#
|
|
|
|
#Writes a given string to a file specified
|
|
def file_local_write2file(file2wrt, data2wrt)
|
|
if not ::File.exists?(file2wrt)
|
|
::FileUtils.mkdir_p(file2wrt)
|
|
else
|
|
output = ::File.open(file2wrt, "a")
|
|
data2wrt.each_line do |d|
|
|
output.puts(d)
|
|
end
|
|
output.close
|
|
end
|
|
end
|
|
#Returns a MD5 checksum of a given local file
|
|
def file_local_digestmd5(file2md5)
|
|
if not ::File.exists?(file2md5)
|
|
raise "File #{file2md5} does not exists!"
|
|
else
|
|
require 'digest/md5'
|
|
chksum = nil
|
|
chksum = Digest::MD5.hexdigest(::File.open(file2md5, "rb") { |f| f.read})
|
|
return chksum
|
|
end
|
|
end
|
|
#Returns a SHA1 checksum of a given local file
|
|
def file_local_digestsha1(file2sha1)
|
|
if not ::File.exists?(file2sha1)
|
|
raise "File #{file2sha1} does not exists!"
|
|
else
|
|
require 'digest/sha1'
|
|
chksum = nil
|
|
chksum = Digest::SHA1.hexdigest(::File.open(file2sha1, "rb") { |f| f.read})
|
|
return chksum
|
|
end
|
|
end
|
|
#Returns a SHA256 checksum of a given local file
|
|
def file_local_digestsha2(file2sha2)
|
|
if not ::File.exists?(file2sha2)
|
|
raise "File #{file2sha2} does not exists!"
|
|
else
|
|
require 'digest/sha2'
|
|
chksum = nil
|
|
chksum = Digest::SHA256.hexdigest(::File.open(file2sha2, "rb") { |f| f.read})
|
|
return chksum
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|