payload info can now be target specific
git-svn-id: file:///home/svn/incoming/trunk@2923 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
parent
aeb6e66e67
commit
ccd1e8f10a
|
@ -7,15 +7,15 @@ X - pivoting
|
|||
X - portfwd command
|
||||
- networking
|
||||
X - switch board routing table for pivoting
|
||||
- meterpreter 'comm' support
|
||||
X - meterpreter 'comm' support
|
||||
- proxy 'comm' support
|
||||
- asm
|
||||
- block dependencies (req'd for shikata)
|
||||
- block permutation generation (req'd for shikata)
|
||||
- text
|
||||
- create_pattern, pattern_offset
|
||||
- base64
|
||||
- consider extending String
|
||||
X - create_pattern, pattern_offset
|
||||
X - base64
|
||||
X - consider extending String
|
||||
- framework-core
|
||||
- modules
|
||||
- reloading
|
||||
|
@ -25,7 +25,7 @@ X - switch board routing table for pivoting
|
|||
- meta information
|
||||
- stager/stage calling conventions
|
||||
- stack requirements
|
||||
- make payload prepend target specific
|
||||
X - make payload prepend target specific
|
||||
- sessions
|
||||
- logging session activity
|
||||
- handler sharing
|
||||
|
|
|
@ -339,8 +339,12 @@ class Exploit < Msf::Module
|
|||
# and platform if it's a multi exploit.
|
||||
#
|
||||
def payload_prepend(payload_module)
|
||||
if (target and target['PayloadPrepend'])
|
||||
target['PayloadPrepend']
|
||||
else
|
||||
payload_info['Prepend'] || ''
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
# Return any text that should be appended to the payload. The payload
|
||||
|
@ -348,8 +352,12 @@ class Exploit < Msf::Module
|
|||
# and platform if it's a multi exploit.
|
||||
#
|
||||
def payload_append(payload_module)
|
||||
if (target and target['PayloadAppend'])
|
||||
target['PayloadAppend']
|
||||
else
|
||||
payload_info['Append'] || ''
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
# Return any text that should be prepended to the encoder of the payload.
|
||||
|
@ -357,30 +365,44 @@ class Exploit < Msf::Module
|
|||
# at architecture and platform if it's a multi exploit.
|
||||
#
|
||||
def payload_prepend_encoder(payload_module)
|
||||
if (target and target['PayloadEncoder'])
|
||||
target['PayloadEncoder']
|
||||
else
|
||||
payload_info['PrependEncoder'] || ''
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
# Maximum number of nops to use as a hint to the framework.
|
||||
# Nil signifies that the framework should decide.
|
||||
#
|
||||
def payload_max_nops
|
||||
if (target and target['PayloadMaxNops'])
|
||||
target['PayloadMaxNops']
|
||||
else
|
||||
payload_info['MaxNops'] || nil
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
# Minimum number of nops to use as a hint to the framework.
|
||||
# Nil snigifies that the framework should decide.
|
||||
#
|
||||
def payload_min_nops
|
||||
if (target and target['PayloadMinNops'])
|
||||
target['PayloadMinNops']
|
||||
else
|
||||
payload_info['MinNops'] || nil
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
# Returns the maximum amount of room the exploit has for a payload.
|
||||
#
|
||||
def payload_space
|
||||
if (payload_info['Space'])
|
||||
if (target and target['PayloadSpace'])
|
||||
target['PayloadSpace']
|
||||
elsif (payload_info['Space'])
|
||||
payload_info['Space'].to_i
|
||||
else
|
||||
nil
|
||||
|
|
|
@ -21,6 +21,16 @@ module Comm
|
|||
raise NotImplementedError
|
||||
end
|
||||
|
||||
#
|
||||
# Indicates whether or not this comm can be chained with other chainable
|
||||
# comms. This is particularly important for things like Proxy Comms that
|
||||
# can be proxied through one another. The semantics of this are currently
|
||||
# undefined and will probably need some more thought.
|
||||
#
|
||||
def chainable?
|
||||
false
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue