From 46e165df5e6c7d416729d3370b97dd4fc7e1fc60 Mon Sep 17 00:00:00 2001 From: antisnatchor Date: Thu, 6 Mar 2014 12:35:02 +0000 Subject: [PATCH] Added support for browser language detection. Also added a new entry in Browser Details and JS call beef.browser.getBRowserLanguage() --- core/main/client/browser.js | 13 +++++++++++++ core/main/handlers/browserdetails.rb | 4 ++++ extensions/admin_ui/controllers/modules/modules.rb | 1 + extensions/console/lib/shellinterface.rb | 1 + 4 files changed, 19 insertions(+) diff --git a/core/main/client/browser.js b/core/main/client/browser.js index c70f82e50..a0249934d 100644 --- a/core/main/client/browser.js +++ b/core/main/client/browser.js @@ -1819,6 +1819,7 @@ beef.browser = { var browser_name = beef.browser.getBrowserName(); var browser_version = beef.browser.getBrowserVersion(); var browser_reported_name = beef.browser.getBrowserReportedName(); + var browser_language = beef.browser.getBrowserLanguage(); var page_title = (document.title) ? document.title : "Unknown"; var page_uri = (document.location.href) ? document.location.href : "Unknown"; var page_referrer = (document.referrer) ? document.referrer : "Unknown"; @@ -1866,6 +1867,7 @@ beef.browser = { if (browser_name) details['BrowserName'] = browser_name; if (browser_version) details['BrowserVersion'] = browser_version; if (browser_reported_name) details['BrowserReportedName'] = browser_reported_name; + if (browser_language) details['BrowserLanguage'] = browser_language; if (page_title) details['PageTitle'] = page_title; if (page_uri) details['PageURI'] = page_uri; if (page_referrer) details['PageReferrer'] = page_referrer; @@ -2092,6 +2094,17 @@ beef.browser = { document.title = title; }, + /** + * Get the browser language + */ + getBrowserLanguage: function(){ + var l = 'Unknown'; + try{ + l = window.navigator.userLanguage || window.navigator.language; + }catch(e){} + return l; + }, + /** * A function that gets the max number of simultaneous connections the * browser can make per origin, or globally on all origin. diff --git a/core/main/handlers/browserdetails.rb b/core/main/handlers/browserdetails.rb index 314c01377..bfb5de244 100644 --- a/core/main/handlers/browserdetails.rb +++ b/core/main/handlers/browserdetails.rb @@ -146,6 +146,10 @@ module BeEF self.err_msg "Invalid browser string returned from the hook browser's initial connection." end + # get and store browser language + browser_lang = get_param(@data['results'], 'BrowserLanguage') + BD.set(session_id, 'BrowserLanguage', browser_lang) + # get and store the cookies cookies = get_param(@data['results'], 'Cookies') if BeEF::Filters.is_valid_cookies?(cookies) diff --git a/extensions/admin_ui/controllers/modules/modules.rb b/extensions/admin_ui/controllers/modules/modules.rb index a30d05a7a..7f6ca5d78 100644 --- a/extensions/admin_ui/controllers/modules/modules.rb +++ b/extensions/admin_ui/controllers/modules/modules.rb @@ -69,6 +69,7 @@ class Modules < BeEF::Extension::AdminUI::HttpController ['Browser', 'Browser Name', 'BrowserName'], ['Browser', 'Browser Version', 'BrowserVersion'], ['Browser', 'Browser UA String', 'BrowserReportedName'], + ['Browser', 'Browser Language', 'BrowserLanguage'], ['Browser', 'Browser Platform', 'BrowserPlatform'], ['Browser', 'Browser Plugins', 'BrowserPlugins'], ['Browser', 'Window Size', 'WindowSize'], diff --git a/extensions/console/lib/shellinterface.rb b/extensions/console/lib/shellinterface.rb index d59d2897e..56a69b3b2 100644 --- a/extensions/console/lib/shellinterface.rb +++ b/extensions/console/lib/shellinterface.rb @@ -285,6 +285,7 @@ class ShellInterface ['Browser', 'Browser Name', 'BrowserName'], ['Browser', 'Browser Version', 'BrowserVersion'], ['Browser', 'Browser UA String', 'BrowserReportedName'], + ['Browser', 'Browser Language', 'BrowserLanguage'], ['Browser', 'Browser Platform', 'BrowserPlatform'], ['Browser', 'Browser Plugins', 'BrowserPlugins'], ['Browser', 'Window Size', 'WindowSize'],