2014-08-18 16:31:36 +00:00
|
|
|
# -*- coding:binary -*-
|
|
|
|
require 'spec_helper'
|
|
|
|
|
|
|
|
require 'rex/exploitation/encryptjs'
|
|
|
|
|
|
|
|
describe Rex::Exploitation::EncryptJS do
|
|
|
|
|
|
|
|
let(:code) { "var test = 'metasploit';" }
|
2014-08-18 16:43:54 +00:00
|
|
|
let(:key) { 'secret' }
|
|
|
|
let(:signature) { 'metasploit' }
|
|
|
|
let(:loader_signature) { 'location.search.substring(1);' }
|
2014-08-18 16:31:36 +00:00
|
|
|
let(:loader_key_words) { ['exploit', 'encoded', 'pass', 'decoded'] }
|
|
|
|
|
|
|
|
describe "Rex::Exploitation::EncryptJS.encrypt" do
|
|
|
|
it "returns an String" do
|
|
|
|
expect(Rex::Exploitation::EncryptJS.encrypt(code, key)).to be_an(String)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "returns the JavaScript loader code" do
|
|
|
|
expect(Rex::Exploitation::EncryptJS.encrypt(code, key)).to include(loader_signature)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "encrypts the code" do
|
|
|
|
expect(Rex::Exploitation::EncryptJS.encrypt(code, key)).to_not include(signature)
|
|
|
|
end
|
|
|
|
|
|
|
|
it "obfuscates the loader" do
|
|
|
|
loader_key_words.each do |key_word|
|
|
|
|
expect(Rex::Exploitation::EncryptJS.encrypt(code, key)).to_not include(key_word)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|