Path: blob/master/lib/msf/core/exploit/jsobfu.rb
19721 views
# -*- coding: binary -*-12require 'rex/exploitation/jsobfu'34module Msf5module Exploit::JSObfu67def initialize(info={})8super9register_advanced_options([10OptInt.new('JsObfuscate', [false, "Number of times to obfuscate JavaScript", 0]),11OptString.new('JsIdentifiers', [false, "Identifiers to preserve for JsObfu"])12], Exploit::JSObfu)13end1415#16# Returns an JSObfu object. A wrapper of ::Rex::Exploitation::JSObfu.new(js).obfuscate17#18# @param js [String] JavaScript code19# @param opts [Hash] obfuscation options20# * :iterations [FixNum] Number of times to obfuscate21# * :preserved_identifiers [Array] An array of identifiers to preserve during obfuscation22# @return [::Rex::Exploitation::JSObfu]23#24def js_obfuscate(js, opts={})25iterations = (opts[:iterations] || datastore['JsObfuscate']).to_i26identifiers = opts[:preserved_identifiers].blank? ? (datastore['JsIdentifiers'] || '').split(',') : opts[:preserved_identifiers]27obfu = ::Rex::Exploitation::JSObfu.new(js)28obfu_opts = {}29obfu_opts.merge!(iterations: iterations)30obfu_opts.merge!(preserved_identifiers: identifiers)3132obfu.obfuscate(obfu_opts)33obfu34end3536end37end383940