1
mirror of https://github.com/rapid7/metasploit-framework synced 2024-11-05 14:57:30 +01:00

Get into the DANGER ZOOOOOOONE

This commit is contained in:
HD Moore 2017-03-31 12:26:42 -05:00
parent 6bcb9b523b
commit b5771b0f72
3 changed files with 1796 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,305 @@
LAWYER
GLASS
HUNT
UNDERSTANDING
RELATION
HORROR
CASH
TWO
WHEEL
COMPLAINT
RISK
BANANA
ANGEL
KANGAROO
BACON
TISSUE
TURTLENECK
DAUGHTER
SUGGESTION
WEAR
QUESTION
SOUTH
LENGTH
BONUS
STOCK
FEELING
BAND
HUSBAND
ADVERTISING
AUTHOR
GUEST
PROOF
FRUIT
GUARD
TOUCH
WILL
TOE
STRENGTH
DRESS
PLEASURE
ESTIMATE
OPPORTUNITY
NOTE
DIG
DISH
GROUP
STRUCTURE
MIND
EDITOR
ADVANTAGE
YOUNG
GAP
SERVE
VOICE
WAKE
DROP
CURRENCY
COMFORT
SPECIALIST
SCRATCH
MISSION
CARPET
INTERVIEW
SHOPPING
CONSIST
SINGLE
IMAGINATION
SPARE
COVER
EXAMINATION
ROUTINE
COLLAR
WALL
SWIM
ATTACK
SPIRITUAL
JURY
ROLE
DREAM
BREAK
LEG
TEACHER
SHOE
PANIC
DEPARTURE
VALUE
BONE
WAIT
AMOUNT
TOUR
STAND
TRUFFLE
ASSOCIATE
WEIRD
RING
BUILDING
ABROAD
ALTERNATIVE
DIFFICULTY
NASTY
SIGN
CLERK
PRESENT
STRETCH
CHILD
NOVEL
SHOWER
AD
ATTENTION
NEWS
GARAGE
BORDER
BASIS
PROCESS
TONIGHT
TRUTH
PERIOD
CATEGORY
APPOINTMENT
SPACE
MILK
DRUNK
MISTAKE
SYMPATHY
EFFORT
BUTTON
RED
CLASS
WAY
TOOTH
PHYSICS
BITTER
SITUATION
LAND
PEAK
BRUSH
SAIL
SOUP
VAST
RISE
INEVITABLE
CHAIN
PREPARATION
TOTAL
SPIRIT
ROAD
SINGER
FORCE
IMPLEMENT
MAIL
EVENING
TEMPERATURE
DEALER
ARRIVAL
TARGET
SHELTER
WASH
FOCUS
ASSUMPTION
INTENTION
ACCIDENT
HORSE
MONTH
MAN
PACKAGE
DEPRESSION
COOKIE
RESPOND
LEATHER
CATCH
CULTURE
TEACH
PRACTICE
SOFTWARE
COMFORTABLE
TEA
FINDING
ANSWER
WRITING
SEAT
DIFFERENCE
SICK
CRAZY
FLOW
ACCOUNT
MEMBER
COUNTY
INFORMATION
PART
CHECK
GOLF
RAIN
STUFF
CLUE
MASTER
REWARD
WHILE
OPTION
LUCK
DISCOUNT
POTENTIAL
FIGURE
DISPLAY
DESIGN
VALUABLE
COMMUNICATION
INSURANCE
PREFERENCE
SUBJECT
CLUB
OIL
BUNCH
GROWTH
IMPORTANCE
REGION
LOSS
BOYFRIEND
CONTEST
PLANE
DEBATE
ICE
NURSE
HOLD
GO
APPLICATION
SALT
PROTECTION
HEART
WEATHER
OVEN
JUDGMENT
IMPACT
MISS
CLIMATE
SEARCH
SON
ACT
STAGE
OFFER
POSSIBILITY
TRY
STUDIO
INCOME
SOURCE
BAG
PLACE
NOISE
NEGOTIATION
BUS
HALL
ASSISTANCE
MEDICINE
NOBODY
CHARITY
EMPLOY
WORLD
AFTERNOON
PHASE
RESEARCH
SALE
WINNER
CONTRACT
PULL
MAP
DESIGNER
MEMORY
BALANCE
MEDIUM
COFFEE
MALL
PHONE
KING
SCALE
THROAT
SUSPECT
QUANTITY
YARD
EXCHANGE
CHAMPIONSHIP
PONY
STREET
TIME
HOPE
YOU
NIGHT
QUARTER
REPLY
DRAG
MINUTE
SUPPORT
SUIT
SIR
BACKGROUND
MANNER
MANAGER
MATCH
GENERAL
TILL
EXPERT
TRANSPORTATION
DEFINITION
PLASTIC
CAKE
BUDDY
MINE

View File

@ -52,6 +52,7 @@ module Msf
@cache_payloads = nil @cache_payloads = nil
@previous_module = nil @previous_module = nil
@module_name_stack = [] @module_name_stack = []
@dangerzone_map = nil
end end
# #
@ -595,6 +596,9 @@ module Msf
return false return false
end end
# Divert logic for dangerzone mode
args = dangerzone_codename_to_module(args)
# Try to create an instance of the supplied module name # Try to create an instance of the supplied module name
mod_name = args[0] mod_name = args[0]
@ -873,9 +877,86 @@ module Msf
end end
end end
return dangerzone_modules_to_codenames(res.sort) if dangerzone_active?
return res.sort return res.sort
end end
#
# Convert squirrel names back to regular module names
#
def dangerzone_codename_to_module(args)
return args unless dangerzone_active? && args.length > 0 && args[0].length > 0
return args unless args[0] =~ /^[A-Z]/
args[0] = dangerzone_codename_to_module_name(args[0])
args
end
#
# Determine if dangerzone mode is active via date or environment variable
#
def dangerzone_active?
active = Time.now.strftime("%m%d") == "0401" || Rex::Compat.getenv('DANGERZONE').to_i > 0
if active && @dangerzone_map.nil?
dangerzone_build_map
end
active
end
#
# Convert module names to squirrel names
#
def dangerzone_modules_to_codenames(names)
(names + @dangerzone_map.keys.grep(/^[A-Z]+/)).sort
end
def dangerzone_codename_to_module_name(cname)
@dangerzone_map[cname] || cname
end
def dangerzone_module_name_to_codename(mname)
@dangerzone_map[mname] || mname
end
def dangerzone_build_map
return unless @dangerzone_map.nil?
@dangerzone_map = {}
res = []
%W{exploit auxiliary}.each do |mtyp|
mset = framework.modules.module_names(mtyp)
mset.each do |mref|
res << mtyp + '/' + mref
end
end
words_a = ::File.readlines(::File.join(
::Msf::Config.data_directory, "wordlists", "dangerzone_a.txt"
)).map{|line| line.strip.upcase}
words_b = ::File.readlines(::File.join(
::Msf::Config.data_directory, "wordlists", "dangerzone_b.txt"
)).map{|line| line.strip.upcase}
aidx = -1
bidx = -1
res.sort.each do |mname|
word_a = words_a[ (aidx += 1) % words_a.length ]
word_b = words_b[ (bidx += 1) % words_b.length ]
cname = word_a + word_b
while @dangerzone_map[cname]
aidx += 1
word_a = words_a[ (aidx += 1) % words_a.length ]
cname = word_a + word_b
end
@dangerzone_map[mname] = cname
@dangerzone_map[cname] = mname
end
end
# #
# Module list enumeration # Module list enumeration
# #