Skip to content

Commit e896576

Browse files
committed
Land 9207, Expose more uuid attributes
2 parents 174d0d4 + 70ec576 commit e896576

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

lib/msf/base/serializer/readable_text.rb

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -634,7 +634,6 @@ def self.dump_sessions_verbose(framework, opts={})
634634
sess_via = session.via_exploit.to_s
635635
sess_type = session.type.to_s
636636
sess_uuid = session.payload_uuid.to_s
637-
sess_puid = session.payload_uuid.respond_to?(:puid_hex) ? session.payload_uuid.puid_hex : nil
638637
sess_luri = session.exploit_datastore['LURI'] || "" if session.exploit_datastore
639638
sess_enc = false
640639
if session.respond_to?(:tlv_enc_key) && session.tlv_enc_key && session.tlv_enc_key[:key]
@@ -652,10 +651,10 @@ def self.dump_sessions_verbose(framework, opts={})
652651
sess_checkin = "#{(Time.now.to_i - session.last_checkin.to_i)}s ago @ #{session.last_checkin.to_s}"
653652
end
654653

655-
if session.payload_uuid.respond_to?(:puid_hex) && (uuid_info = framework.uuid_db[sess_puid])
654+
if session.payload_uuid.registered
656655
sess_registration = "Yes"
657-
if uuid_info['name']
658-
sess_registration << " - Name=\"#{uuid_info['name']}\""
656+
if session.payload_uuid.name
657+
sess_registration << " - Name=\"#{session.payload_uuid.name}\""
659658
end
660659
end
661660

lib/msf/core/handler.rb

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,16 @@ def create_session(conn, opts={})
222222
s.set_from_exploit(assoc_exploit)
223223

224224
# Pass along any associated payload uuid if specified
225-
s.payload_uuid = opts[:payload_uuid] if opts[:payload_uuid]
225+
if opts[:payload_uuid]
226+
s.payload_uuid = opts[:payload_uuid]
227+
if s.payload_uuid.respond_to?(:puid_hex) && (uuid_info = framework.uuid_db[s.payload_uuid.puid_hex])
228+
s.payload_uuid.registered = true
229+
s.payload_uuid.name = uuid_info['name']
230+
s.payload_uuid.timestamp = uuid_info['timestamp']
231+
else
232+
s.payload_uuid.registered = false
233+
end
234+
end
226235

227236
# If the session is valid, register it with the framework and
228237
# notify any waiters we may have.

lib/msf/core/payload/uuid.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,10 @@ def initialize(opts=nil)
254254
self.xor1 = opts[:xor1]
255255
self.xor2 = opts[:xor2]
256256

257+
self.timestamp = nil
258+
self.name = nil
259+
self.registered = false
260+
257261
if opts[:seed]
258262
self.puid = self.class.seed_to_puid(opts[:seed])
259263
end
@@ -367,6 +371,10 @@ def xor_reset
367371
self
368372
end
369373

374+
attr_accessor :registered
375+
attr_accessor :timestamp
376+
attr_accessor :name
377+
370378
attr_reader :arch
371379
attr_reader :platform
372380

0 commit comments

Comments
 (0)