Methods

Class/Module Index [+]

Quicksearch

Rex::Payloads::Win32::Kernel

Public Class Methods

construct(opts = {}) click to toggle source

Constructs a kernel-mode payload using the supplied options. The options can be:

Recovery : The recovery method to use, such as 'spin'. Stager : The stager method to use, such as 'sud_syscall_hook'. RecoveryStub : The recovery stub that should be used, if any. UserModeStub : The user-mode payload to execute, if any. KernelModeStub: The kernel-mode payload to execute, if any.

# File lib/rex/payloads/win32/kernel.rb, line 22
def self.construct(opts = {})
        payload = nil

        # Generate the recovery stub
        if opts['Recovery'] and Kernel::Recovery.respond_to?(opts['Recovery'])
                opts['RecoveryStub'] = Kernel::Recovery.send(opts['Recovery'], opts)
        end

        # Append supplied recovery stub information in case there is some
        # context specific recovery that must be done.
        if opts['AppendRecoveryStub']
                opts['RecoveryStub'] = (opts['RecoveryStub'] || '') + opts['AppendRecoveryStub']
        end

        # Generate the stager
        if opts['Stager'] and Kernel::Stager.respond_to?(opts['Stager'])
                payload = Kernel::Stager.send(opts['Stager'], opts)
        # Or, generate the migrator
        elsif opts['Migrator'] and Kernel::Migration.respond_to?(opts['Migrator'])
                payload = Kernel::Migration.send(opts['Migrator'], opts)
        else
                raise ArgumentError, "A stager or a migrator must be specified."
        end

        payload
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.