2019-04-08 17:10:08 -05:00
|
|
|
# -*- coding => binary -*-
|
|
|
|
|
|
|
|
|
|
require 'rex/text'
|
|
|
|
|
|
|
|
|
|
#
|
|
|
|
|
# This class provides methods for calculating, extracting, and parsing
|
|
|
|
|
# unique ID values used by payloads.
|
|
|
|
|
#
|
2019-07-17 14:13:42 -05:00
|
|
|
module Msf::Payload::Pingback
|
2019-04-08 17:10:08 -05:00
|
|
|
|
2019-07-26 14:51:44 -05:00
|
|
|
attr_accessor :pingback_uuid
|
|
|
|
|
|
2019-07-26 12:36:59 -05:00
|
|
|
# Generate a Pingback UUID and write it to the database
|
2019-07-18 15:44:20 -05:00
|
|
|
def generate_pingback_uuid
|
|
|
|
|
self.pingback_uuid ||= SecureRandom.uuid()
|
2019-07-29 11:55:51 -05:00
|
|
|
self.pingback_uuid.to_s.gsub!("-", "")
|
2019-07-22 13:59:57 -05:00
|
|
|
datastore['PingbackUUID'] = self.pingback_uuid
|
2019-07-29 11:55:51 -05:00
|
|
|
vprint_status("PingbackUUID = #{datastore['PingbackUUID']}")
|
2019-07-18 15:44:20 -05:00
|
|
|
if framework.db.active
|
2019-07-29 11:55:51 -05:00
|
|
|
vprint_status("Writing UUID #{datastore['PingbackUUID']} to database...")
|
2019-07-24 15:36:33 -05:00
|
|
|
framework.db.create_payload(name: datastore['PayloadUUIDName'],
|
2019-07-29 11:55:51 -05:00
|
|
|
uuid: datastore['PingbackUUID'],
|
2019-07-18 15:44:20 -05:00
|
|
|
description: 'pingback',
|
|
|
|
|
platform: platform.platforms.first.realname.downcase)
|
|
|
|
|
else
|
2019-07-24 15:36:33 -05:00
|
|
|
print_warning("Unable to save UUID #{datastore['PingbackUUID']} to database -- database support not active")
|
2019-07-18 15:44:20 -05:00
|
|
|
end
|
|
|
|
|
self.pingback_uuid
|
|
|
|
|
end
|
2019-04-08 17:10:08 -05:00
|
|
|
end
|