Add detection for WebGL support to BrowserDetails

This commit is contained in:
Brendan Coles
2017-05-13 06:36:58 +00:00
parent 2c43328614
commit 7ef36039a4
3 changed files with 20 additions and 1 deletions

View File

@@ -2943,6 +2943,7 @@ beef.browser = {
var has_googlegears = (beef.browser.hasGoogleGears()) ? "Yes" : "No";
var has_web_socket = (beef.browser.hasWebSocket()) ? "Yes" : "No";
var has_web_worker = (beef.browser.hasWebWorker()) ? "Yes" : "No";
var has_web_gl = (beef.browser.hasWebGL()) ? "Yes" : "No";
var has_webrtc = (beef.browser.hasWebRTC()) ? "Yes" : "No";
var has_activex = (beef.browser.hasActiveX()) ? "Yes" : "No";
var has_quicktime = (beef.browser.hasQuickTime()) ? "Yes" : "No";
@@ -2984,6 +2985,7 @@ beef.browser = {
if (has_phonegap) details['HasPhonegap'] = has_phonegap;
if (has_web_socket) details['HasWebSocket'] = has_web_socket;
if (has_web_worker) details['HasWebWorker'] = has_web_worker;
if (has_web_gl) details['HasWebGL'] = has_web_gl;
if (has_googlegears) details['HasGoogleGears'] = has_googlegears;
if (has_webrtc) details['HasWebRTC'] = has_webrtc;
if (has_activex) details['HasActiveX'] = has_activex;
@@ -3098,6 +3100,22 @@ beef.browser = {
return (typeof(Worker) !== "undefined");
},
/**
* Checks if the zombie has WebGL enabled.
* @return: {Boolean} true or false.
*
* @from: https://github.com/idofilin/webgl-by-example/blob/master/detect-webgl/detect-webgl.js
* */
hasWebGL: function () {
try {
var canvas = document.createElement("canvas");
var gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
return !!(gl && gl instanceof WebGLRenderingContext);
} catch(e) {
return false;
}
},
/**
* Checks if the zombie has Google Gears installed.
* @return: {Boolean} true or false.

View File

@@ -320,7 +320,7 @@ module BeEF
# get and store the yes|no value for browser components
components = [
'VBScriptEnabled', 'HasFlash', 'HasPhonegap', 'HasGoogleGears',
'HasWebSocket', 'HasWebWorker', 'HasWebRTC', 'HasActiveX',
'HasWebSocket', 'HasWebWorker', 'HasWebGL', 'HasWebRTC', 'HasActiveX',
'HasQuickTime', 'HasRealPlayer', 'HasWMP'
]
components.each do |k|

View File

@@ -85,6 +85,7 @@ class Modules < BeEF::Extension::AdminUI::HttpController
['Browser Components', 'Google Gears', 'HasGoogleGears'],
['Browser Components', 'Web Sockets', 'HasWebSocket'],
['Browser Components', 'Web Workers', 'HasWebWorker'],
['Browser Components', 'WebGL', 'HasWebGL'],
['Browser Components', 'QuickTime', 'HasQuickTime'],
['Browser Components', 'RealPlayer', 'HasRealPlayer'],
['Browser Components', 'Windows Media Player','HasWMP'],