diff --git a/core/main/handlers/browserdetails.rb b/core/main/handlers/browserdetails.rb index dabcf7091..b74bb0c86 100644 --- a/core/main/handlers/browserdetails.rb +++ b/core/main/handlers/browserdetails.rb @@ -180,7 +180,7 @@ module BeEF if config.get("beef.extension.network.enable") == true if proxy_server =~ /^([\d\.]+):([\d]+)$/ print_debug("Hooked browser [id:#{zombie.id}] is using a proxy [ip: #{$1}]") - BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => $1, :type => 'Proxy', :cid => 'init') + BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => $1, :type => 'Proxy') end end end @@ -357,7 +357,7 @@ module BeEF # add localhost as network host if config.get('beef.extension.network.enable') print_debug("Hooked browser has network interface 127.0.0.1") - BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => '127.0.0.1', :hostname => 'localhost', :os => BeEF::Core::Models::BrowserDetails.get(session_id, 'OsName'), :cid => 'init') + BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => '127.0.0.1', :hostname => 'localhost', :os => BeEF::Core::Models::BrowserDetails.get(session_id, 'OsName')) end # Autorun Rule Engine - Check if the hooked browser type/version and OS type/version match any Rule-sets diff --git a/extensions/network/models/network_host.rb b/extensions/network/models/network_host.rb index 3ac0dd7e6..732916e10 100644 --- a/extensions/network/models/network_host.rb +++ b/extensions/network/models/network_host.rb @@ -22,7 +22,6 @@ module BeEF property :type, String, :lazy => false # proxy, router, gateway, dns, etc property :os, String, :lazy => false property :mac, String, :lazy => false - property :cid, String, :lazy => false # command id or 'init' # # Stores a network host in the data store @@ -53,8 +52,7 @@ module BeEF :hostname => host[:hostname], :type => host[:type], :os => host[:os], - :mac => host[:mac], - :cid => host[:cid]) + :mac => host[:mac]) result = network_host.save (print_error "Failed to save network host"; return) if result.nil? diff --git a/extensions/network/models/network_service.rb b/extensions/network/models/network_service.rb index 733a2c4c7..aa2049dca 100644 --- a/extensions/network/models/network_service.rb +++ b/extensions/network/models/network_service.rb @@ -21,7 +21,6 @@ module BeEF property :ip, Text, :lazy => false property :port, String, :lazy => false property :type, String, :lazy => false - property :cid, String, :lazy => false # command id or 'init' # # Stores a network service in the data store @@ -34,8 +33,7 @@ module BeEF # store the returned network host details BeEF::Core::Models::NetworkHost.add( :hooked_browser_id => service[:hooked_browser_id], - :ip => service[:ip], - :cid => service[:cid]) + :ip => service[:ip]) # prevent duplicates return unless BeEF::Core::Models::NetworkService.all( @@ -51,8 +49,7 @@ module BeEF :proto => service[:proto], :ip => service[:ip], :port => service[:port], - :type => service[:type], - :cid => service[:cid]) + :type => service[:type]) result = network_service.save (print_error "Failed to save network service"; return) if result.nil? diff --git a/modules/exploits/router/asus_rt_series_get_info/module.rb b/modules/exploits/router/asus_rt_series_get_info/module.rb index 69c7b97c2..05cffbaf1 100644 --- a/modules/exploits/router/asus_rt_series_get_info/module.rb +++ b/modules/exploits/router/asus_rt_series_get_info/module.rb @@ -18,7 +18,6 @@ class Asus_rt_series_get_info < BeEF::Core::Command if configuration.get("beef.extension.network.enable") == true session_id = @datastore['beefhook'] - cid = @datastore['cid'].to_i # log the network hosts if @datastore['results'] =~ /ip=(.+)&clients=(.+)&wanip=(.+)&netmask=(.+)&gateway=(.+)&dns=(.+)/ @@ -31,8 +30,8 @@ class Asus_rt_series_get_info < BeEF::Core::Command if !ip.nil? && BeEF::Filters.is_valid_ip?(ip) print_debug("Hooked browser found Asus RT series router [ip: #{ip}]") - BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => ip, :type => 'Asus Router', :cid => cid) - BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => 'http', :ip => ip, :port => 80, :type => 'HTTP Server', :cid => cid) + BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => ip, :type => 'Asus Router') + BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => 'http', :ip => ip, :port => 80, :type => 'HTTP Server') end clients.scan(/([\d\.]+,[:\dA-F]{17})/).flatten.each do |client| next if client.nil? @@ -41,19 +40,19 @@ class Asus_rt_series_get_info < BeEF::Core::Command mac = $2 if BeEF::Filters.is_valid_ip?(ip) print_debug("Hooked browser found router client [ip: #{ip}, mac: #{mac}]") - BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => ip, :mac => mac, :cid => cid) + BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => ip, :mac => mac) end end end if !gateway.nil? && BeEF::Filters.is_valid_ip?(gateway) print_debug("Hooked browser found WAN gateway server [ip: #{gateway}]") - BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => gateway, :type => 'WAN Gateway', :cid => cid) + BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => gateway, :type => 'WAN Gateway') end if !dns_servers.nil? && dns_servers =~ /^([\d\. ]+)$/ dns_servers.split(/ /).uniq.each do |dns| if BeEF::Filters.is_valid_ip?(dns) print_debug("Hooked browser found DNS server [ip: #{dns}]") - BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => dns, :type => 'DNS Server', :cid => cid) + BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => dns, :type => 'DNS Server') end end end diff --git a/modules/host/detect_airdrone/module.rb b/modules/host/detect_airdrone/module.rb index de6fb222d..2894273f8 100644 --- a/modules/host/detect_airdrone/module.rb +++ b/modules/host/detect_airdrone/module.rb @@ -24,10 +24,9 @@ class Detect_airdrone < BeEF::Core::Command port = $3 session_id = @datastore['beefhook'] type = 'Airdrone' - cid = @datastore['cid'].to_i if BeEF::Filters.is_valid_ip?(ip) print_debug("Hooked browser found 'Airdrone' [proto: #{proto}, ip: #{ip}, port: #{port}]") - BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => type, :cid => cid) + BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => type) end end end diff --git a/modules/host/detect_cups/module.rb b/modules/host/detect_cups/module.rb index 6aa6f6d54..78c0362b3 100644 --- a/modules/host/detect_cups/module.rb +++ b/modules/host/detect_cups/module.rb @@ -24,10 +24,9 @@ class Detect_cups < BeEF::Core::Command port = $3 session_id = @datastore['beefhook'] type = 'CUPS' - cid = @datastore['cid'].to_i if BeEF::Filters.is_valid_ip?(ip) print_debug("Hooked browser found 'CUPS' [proto: #{proto}, ip: #{ip}, port: #{port}]") - BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => type, :cid => cid) + BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => type) end end end diff --git a/modules/host/get_internal_ip/module.rb b/modules/host/get_internal_ip/module.rb index 928e22e4f..6dfb9e09d 100755 --- a/modules/host/get_internal_ip/module.rb +++ b/modules/host/get_internal_ip/module.rb @@ -25,14 +25,13 @@ class Get_internal_ip < BeEF::Core::Command if configuration.get("beef.extension.network.enable") == true session_id = @datastore['beefhook'] - cid = @datastore['cid'].to_i # save the network host if @datastore['results'] =~ /^([\d\.]+)$/ 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, :cid => cid) + BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => ip) end end end diff --git a/modules/host/get_internal_ip_webrtc/module.rb b/modules/host/get_internal_ip_webrtc/module.rb index a9fe64659..440c8e433 100755 --- a/modules/host/get_internal_ip_webrtc/module.rb +++ b/modules/host/get_internal_ip_webrtc/module.rb @@ -13,7 +13,6 @@ class Get_internal_ip_webrtc < BeEF::Core::Command configuration = BeEF::Core::Configuration.instance if configuration.get("beef.extension.network.enable") == true session_id = @datastore['beefhook'] - cid = @datastore['cid'].to_i # save the network host if @datastore['results'] =~ /IP is ([\d\.,]+)/ ips = $1.to_s.split(/,/) @@ -24,7 +23,7 @@ class Get_internal_ip_webrtc < BeEF::Core::Command next if ip =~ /^0\.0\.0\.0$/ next unless 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, :os => os, :cid => cid) + BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => ip, :os => os) end end end diff --git a/modules/network/cross_origin_scanner/module.rb b/modules/network/cross_origin_scanner/module.rb index 91992ec2d..1361e3b9e 100644 --- a/modules/network/cross_origin_scanner/module.rb +++ b/modules/network/cross_origin_scanner/module.rb @@ -14,7 +14,6 @@ class Cross_origin_scanner < BeEF::Core::Command if configuration.get("beef.extension.network.enable") == true session_id = @datastore['beefhook'] - cid = @datastore['cid'].to_i # log the network service if @datastore['results'] =~ /ip=(.+)&port=([\d]+)&status/ @@ -24,7 +23,7 @@ class Cross_origin_scanner < BeEF::Core::Command type = 'HTTP Server (CORS)' if BeEF::Filters.is_valid_ip?(ip) print_debug("Hooked browser found HTTP server #{ip}:#{port}") - BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => type, :cid => cid) + BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => type) end end end diff --git a/modules/network/get_http_servers/module.rb b/modules/network/get_http_servers/module.rb index ff0cb4b69..fd1fe21d8 100644 --- a/modules/network/get_http_servers/module.rb +++ b/modules/network/get_http_servers/module.rb @@ -32,10 +32,9 @@ class Get_http_servers < BeEF::Core::Command port = $3 url = $4 session_id = @datastore['beefhook'] - cid = @datastore['cid'].to_i if !ip.nil? && BeEF::Filters.is_valid_ip?(ip) print_debug("Hooked browser found HTTP Server [proto: #{proto}, ip: #{ip}, port: #{port}]") - BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => "HTTP Server", :cid => cid) + BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => "HTTP Server") end end diff --git a/modules/network/identify_lan_subnets/module.rb b/modules/network/identify_lan_subnets/module.rb index a089d668c..27346b09f 100644 --- a/modules/network/identify_lan_subnets/module.rb +++ b/modules/network/identify_lan_subnets/module.rb @@ -28,7 +28,6 @@ class Identify_lan_subnets < BeEF::Core::Command if configuration.get("beef.extension.network.enable") == true session_id = @datastore['beefhook'] - cid = @datastore['cid'].to_i # log the network hosts if @datastore['results'] =~ /^hosts=([\d\.,]+)/ @@ -38,7 +37,7 @@ class Identify_lan_subnets < BeEF::Core::Command next unless ip.to_s =~ /^([\d\.]+)$/ next unless BeEF::Filters.is_valid_ip?(ip) print_debug("Hooked browser found host #{ip}") - BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => ip, :cid => cid) + BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => ip) end end end diff --git a/modules/network/internal_network_fingerprinting/module.rb b/modules/network/internal_network_fingerprinting/module.rb index acd9e5aa1..a7fdcf984 100644 --- a/modules/network/internal_network_fingerprinting/module.rb +++ b/modules/network/internal_network_fingerprinting/module.rb @@ -34,10 +34,9 @@ class Internal_network_fingerprinting < BeEF::Core::Command discovered = $4 url = $5 session_id = @datastore['beefhook'] - cid = @datastore['cid'].to_i if BeEF::Filters.is_valid_ip?(ip) print_debug("Hooked browser found '#{discovered}' [ip: #{ip}]") - BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => discovered, :cid => cid) + BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => discovered) end end diff --git a/modules/network/jslanscanner/module.rb b/modules/network/jslanscanner/module.rb index 42c424d2f..8e2e8153e 100644 --- a/modules/network/jslanscanner/module.rb +++ b/modules/network/jslanscanner/module.rb @@ -24,19 +24,17 @@ class Fingerprint_routers < BeEF::Core::Command port = $3 service = $4 session_id = @datastore['beefhook'] - cid = @datastore['cid'].to_i if BeEF::Filters.is_valid_ip?(ip) print_debug("Hooked browser found network service " + service + " [proto: #{proto}, ip: #{ip}, port: #{port}]") - BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => service, :cid => cid) + BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => service) end elsif @datastore['results'] =~ /^ip=(.+)&device=(.+)/ ip = $1 device = $2 session_id = @datastore['beefhook'] - cid = @datastore['cid'].to_i if BeEF::Filters.is_valid_ip?(ip) print_debug("Hooked browser found network device " + device + " [ip: #{ip}]") - BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => ip, :type => device, :cid => cid) + BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => ip, :type => device) end end end diff --git a/modules/network/ping_sweep/module.rb b/modules/network/ping_sweep/module.rb index 1879df51d..31d5a95df 100644 --- a/modules/network/ping_sweep/module.rb +++ b/modules/network/ping_sweep/module.rb @@ -31,14 +31,13 @@ class Ping_sweep < BeEF::Core::Command if configuration.get("beef.extension.network.enable") == true session_id = @datastore['beefhook'] - cid = @datastore['cid'].to_i # 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, :cid => cid) + BeEF::Core::Models::NetworkHost.add(:hooked_browser_id => session_id, :ip => ip) end end end diff --git a/modules/network/port_scanner/module.rb b/modules/network/port_scanner/module.rb index c3817109c..cd11cdc2e 100644 --- a/modules/network/port_scanner/module.rb +++ b/modules/network/port_scanner/module.rb @@ -38,10 +38,9 @@ class Port_scanner < BeEF::Core::Command service = $4 session_id = @datastore['beefhook'] proto = 'http' - cid = @datastore['cid'].to_i if BeEF::Filters.is_valid_ip?(ip) print_debug("Hooked browser found network service [ip: #{ip}, port: #{port}]") - BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => service, :cid => cid) + BeEF::Core::Models::NetworkService.add(:hooked_browser_id => session_id, :proto => proto, :ip => ip, :port => port, :type => service) end end diff --git a/test/unit/extensions/tc_network.rb b/test/unit/extensions/tc_network.rb index 21473722f..15769c931 100644 --- a/test/unit/extensions/tc_network.rb +++ b/test/unit/extensions/tc_network.rb @@ -36,7 +36,7 @@ class TC_Network < Test::Unit::TestCase # Tests procedure for properly adding new service def test_03_add_service_good assert_nothing_raised do - BeEF::Core::Models::NetworkService.add(:hooked_browser_id => '1234', :proto => 'http', :ip => '127.0.0.1', :port => 80, :type => 'Apache', :cid => 1) + BeEF::Core::Models::NetworkService.add(:hooked_browser_id => '1234', :proto => 'http', :ip => '127.0.0.1', :port => 80, :type => 'Apache') raise "Adding network service failed" if BeEF::Core::Models::NetworkService.all(:hooked_browser_id => '1234', :ip => '127.0.0.1').empty? end end