mirror of
https://github.com/rapid7/metasploit-framework
synced 2024-11-05 14:57:30 +01:00
TODO update
git-svn-id: file:///home/svn/incoming/trunk@2882 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
parent
4400f659ec
commit
d07b602089
@ -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
|
||||
|
@ -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.
|
||||
#
|
||||
|
@ -1,3 +1,5 @@
|
||||
require 'rex/ui'
|
||||
|
||||
module Msf
|
||||
module Session
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user