diff --git a/extensions/qrcode/config.yaml b/extensions/qrcode/config.yaml new file mode 100644 index 000000000..f0b83a3cf --- /dev/null +++ b/extensions/qrcode/config.yaml @@ -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: + extension: + qrcode: + name: 'QR Code Generator' + enable: false + authors: ["xntrik"] + target: ["/demos/basic.html"] + qrsize: "300x300" + diff --git a/extensions/qrcode/extension.rb b/extensions/qrcode/extension.rb new file mode 100644 index 000000000..920b85069 --- /dev/null +++ b/extensions/qrcode/extension.rb @@ -0,0 +1,30 @@ +# +# 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. +# +module BeEF +module Extension +module Qrcode + + extend BeEF::API::Extension + + @short_name = 'qrcode' + @full_name = 'QR Code Generator' + @description = 'This extension prints out a link to a QR Code which can be used to hook browsers into BeEF' + +end +end +end + +require 'extensions/qrcode/qrcode' \ No newline at end of file diff --git a/extensions/qrcode/qrcode.rb b/extensions/qrcode/qrcode.rb new file mode 100644 index 000000000..433aa6960 --- /dev/null +++ b/extensions/qrcode/qrcode.rb @@ -0,0 +1,45 @@ +# +# 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. +# +module BeEF +module Extension +module Qrcode + + module QrcodeGenerator + + BeEF::API::Registrar.instance.register(BeEF::Extension::Qrcode::QrcodeGenerator, BeEF::API::Server, 'pre_http_start') + + def self.pre_http_start(http_hook_server) + require 'uri' + + configuration = BeEF::Core::Configuration.instance + BeEF::Extension::Console::Banners.interfaces.each do |int| + print_success "QRCode images available for interface: #{int}" + data = "" + configuration.get("beef.extension.qrcode.target").each do |target| + url = "http://#{int}:#{configuration.get("beef.http.port")}#{target}" + url = URI.escape(url,Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")) + data += "https://chart.googleapis.com/chart?cht=qr&chs=#{configuration.get("beef.extension.qrcode.qrsize")}&chl=#{url}\n" + end + print_more data + end + end + + end + + +end +end +end