Add platformjs to hook

This commit is contained in:
Brendan Coles
2019-02-27 06:46:21 +00:00
parent bc0b57c6f4
commit 4e31752626
5 changed files with 1292 additions and 6 deletions

View File

@@ -19,6 +19,19 @@ beef.browser = {
return navigator.userAgent;
},
/**
* Returns the underlying layout engine in use by the browser.
* @example: beef.browser.getBrowserEngine()
*/
getBrowserEngine: function() {
try {
var engine = platform.layout;
if (!!engine)
return engine;
} catch (e) {}
return 'unknown';
},
/**
* Returns true if Avant Browser.
* @example: beef.browser.isA()
@@ -2726,7 +2739,6 @@ beef.browser = {
* @example: beef.browser.getBrowserVersion()
*/
getBrowserVersion: function () {
if (this.isC5()) {
return '5'
}
@@ -3591,6 +3603,13 @@ beef.browser = {
}
; // Opera 12.xx
// platform.js
try {
var version = platform.version;
if (!!version)
return version;
} catch (e) {}
return 'UNKNOWN'; // Unknown UA
},
@@ -4211,6 +4230,7 @@ beef.browser = {
var browser_name = beef.browser.getBrowserName();
var browser_version = beef.browser.getBrowserVersion();
var browser_engine = beef.browser.getBrowserEngine();
var browser_reported_name = beef.browser.getBrowserReportedName();
var browser_language = beef.browser.getBrowserLanguage();
var page_title = (document.title) ? document.title : "Unknown";
@@ -4231,6 +4251,7 @@ beef.browser = {
var browser_plugins = beef.browser.getPlugins();
var date_stamp = new Date().toString();
var os_name = beef.os.getName();
var os_family = beef.os.getFamily();
var os_version = beef.os.getVersion();
var os_arch = beef.os.getArch();
var default_browser = beef.os.getDefaultBrowser();
@@ -4296,9 +4317,12 @@ beef.browser = {
if (browser_type) details['browser.type'] = browser_type;
if (browser_name) details['browser.name'] = browser_name;
if (browser_version) details['browser.version'] = browser_version;
if (browser_engine) details['browser.engine'] = browser_engine;
if (browser_reported_name) details['browser.name.reported'] = browser_reported_name;
if (browser_platform) details['browser.platform'] = browser_platform;
if (browser_language) details['browser.language'] = browser_language;
if (browser_plugins) details['browser.plugins'] = browser_plugins;
if (page_title) details['browser.window.title'] = page_title;
if (origin) details['browser.window.origin'] = origin;
if (page_hostname) details['browser.window.hostname'] = page_hostname;
@@ -4307,10 +4331,10 @@ beef.browser = {
if (page_referrer) details['browser.window.referrer'] = page_referrer;
if (window_width) details['browser.window.size.width'] = window_width;
if (window_height) details['browser.window.size.height'] = window_height;
if (browser_plugins) details['browser.plugins'] = browser_plugins;
if (date_stamp) details['browser.date.datestamp'] = date_stamp;
if (os_name) details['host.os.name'] = os_name;
if (os_family) details['host.os.family'] = os_family;
if (os_version) details['host.os.version'] = os_version;
if (os_arch) details['host.os.arch'] = os_arch;
@@ -4389,7 +4413,7 @@ beef.browser = {
var result = false;
try {
if (beef.browser.isIE()) {
if (beef.browser.isIE() || beef.browser.isEdge()) {
var slControl = new ActiveXObject('AgControl.AgControl');
result = true;
} else if (navigator.plugins["Silverlight Plug-In"]) {
@@ -4522,7 +4546,7 @@ beef.browser = {
var foxitplugin = false;
try {
if (beef.browser.isIE()) {
if (beef.browser.isIE() || beef.browser.isEdge()) {
var foxitControl = new ActiveXObject('FoxitReader.FoxitReaderCtl.1');
foxitplugin = true;
} else if (navigator.plugins['Foxit Reader Plugin for Mozilla']) {

File diff suppressed because it is too large Load Diff

View File

@@ -212,10 +212,39 @@ beef.os = {
return 'unknown';
},
/**
* Get OS architecture.
* This may not be the same as the browser arch or CPU arch.
* ie, 32bit OS on 64bit hardware
*/
getArch: function() {
return 'unknown';
var arch = 'unknown';
try {
var arch = platform.os.architecture;
if (!!arch)
return arch;
} catch (e) {}
return arch;
},
/**
* Get OS family
*/
getFamily: function() {
var family = 'unknown';
try {
var family = platform.os.family;
if (!!family)
return family;
} catch (e) {}
return arch;
},
/**
* Get OS name
*/
getVersion: function(){
//Windows
if(this.isWindows()) {

View File

@@ -234,6 +234,14 @@ module BeEF
self.err_msg "Invalid value for 'browser.name.reported' returned from the hook browser's initial connection."
end
# get and store browser engine
browser_engine = get_param(@data['results'], 'browser.engine')
if BeEF::Filters.is_valid_browserstring?(browser_engine)
BD.set(session_id, 'browser.engine', browser_engine)
else
self.err_msg "Invalid value for 'browser.engine' returned from the hook browser's initial connection."
end
# get and store browser language
browser_lang = get_param(@data['results'], 'browser.language')
BD.set(session_id, 'browser.language', browser_lang)
@@ -254,6 +262,14 @@ module BeEF
self.err_msg "Invalid operating system name returned from the hook browser's initial connection."
end
# get and store the OS family
os_family = get_param(@data['results'], 'host.os.family')
if BeEF::Filters.is_valid_osname?(os_family)
BD.set(session_id, 'host.os.family', os_family)
else
self.err_msg "Invalid value for 'host.os.family' returned from the hook browser's initial connection."
end
# get and store the OS version
# - without checks as it can be very different, for instance on linux/bsd)
os_version = get_param(@data['results'], 'host.os.version')

View File

@@ -21,7 +21,7 @@ module BeEF
beef_js_path = "#{$root_dir}/core/main/client/"
# @note External libraries (like jQuery) that are not evaluated with Eruby and possibly not obfuscated
ext_js_sub_files = %w(lib/jquery-1.12.4.min.js lib/jquery-migrate-1.4.1.js lib/evercookie.js lib/json2.js lib/mdetect.js lib/jquery.blockUI.js)
ext_js_sub_files = %w(lib/jquery-1.12.4.min.js lib/jquery-migrate-1.4.1.js lib/evercookie.js lib/json2.js lib/mdetect.js lib/platform.js lib/jquery.blockUI.js)
# @note BeEF libraries: need Eruby evaluation and obfuscation
beef_js_sub_files = %w(beef.js browser.js browser/cookie.js browser/popup.js session.js os.js hardware.js dom.js logger.js net.js updater.js encode/base64.js encode/json.js net/local.js init.js mitb.js geolocation.js net/dns.js net/connection.js net/cors.js net/requester.js net/xssrays.js net/portscanner.js are.js)