TODO update

git-svn-id: file:///home/svn/incoming/trunk@2882 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
Matt Miller 2005-09-24 18:02:24 +00:00
parent 4400f659ec
commit d07b602089
4 changed files with 30 additions and 9 deletions

View File

@ -1,14 +1,14 @@
- evasion class
- set_level(evlvl)
- high?
- medium?
X - evasion class
X - set_level(evlvl)
X - high?
X - medium?
- testing framework
- run all the exploits through all the diff payload handler permutations
- simulate clients for each different permutation
- seh exploit mixin
- generate padded registration records
- move jump around
- use multi-size jump
X - seh exploit mixin
X - generate padded registration records
X - move jump around
X - use multi-size jump
- return address pool
- exploits say what modules they have present
- target says what platform is being exploited

View File

@ -411,6 +411,18 @@ class Exploit < Msf::Module
end
end
#
# Returns the first compatible NOP generator for this exploit's payload
# instance.
#
def nop_generator
return nil if (!payload_instance)
payload_instance.compatible_nops.each { |nopname, nopmod|
return nopmod.new
}
end
#
# Generates a nop sled of a supplied length and returns it to the caller.
#

View File

@ -1,3 +1,5 @@
require 'rex/ui'
module Msf
module Session

View File

@ -26,13 +26,20 @@ class Seh
self.nop = nop
end
#
# Return the default evasion level for this subsystem.
#
def default_evasion_level
Rex::Evasion.get_subsys_level(EvasionName)
end
#
# Generates an SEH record using whatever evasion level is currently defined
# globally for this subsystem or using one that is supplied by the caller.
# If HIGH evasion is specified, a dynamic SEH record is generated.
# Otherwise, a static SEH record is generated.
#
def generate_seh_record(handler, evlvl = Rex::Evasion.get_subsys_level(EvasionName))
def generate_seh_record(handler, evlvl = default_evasion_level)
if (evlvl == EVASION_HIGH)
generate_dynamic_seh_record(handler)
else