109 lines
3.0 KiB
JavaScript
109 lines
3.0 KiB
JavaScript
var enumerated_hosts = []
|
|
|
|
var red = "\033[31m",
|
|
yellow = "\033[33m",
|
|
green = "\033[32m",
|
|
bold = "\033[1;37m",
|
|
reset = "\033[0m"
|
|
|
|
function configure() {
|
|
if ( !readFile( env("enumerate.hosts.output") ) ) {
|
|
log_info("(" + green + "enumerate.hosts" + reset + ") " + bold + "enumerate.hosts.output" + reset + " file was not found, creating one ...")
|
|
writeFile( env("enumerate.hosts.output"), "" )
|
|
}
|
|
|
|
if ( !readFile( env("events.stream.output") ) ) {
|
|
log_error("Error: " + bold + "events.stream.output" + reset + " file not found (got " + env("events.stream.output") + ")")
|
|
}
|
|
}
|
|
|
|
function extractHosts() {
|
|
logs = readFile( env("events.stream.output") ).split("\n")
|
|
extracted_hosts = []
|
|
|
|
for (var i = 0; i < logs.length; i++) {
|
|
if ( logs[i].match(/\[.*?net\.sniff.*?\]/i) ) {
|
|
host = logs[i].replace(/.*\033\[33m(https:\/\/|)(.*?)\033\[0m.*/g, "$2")
|
|
extracted_hosts.indexOf(host) == -1 ? extracted_hosts.push(host) : ""
|
|
}
|
|
}
|
|
|
|
return extracted_hosts
|
|
}
|
|
|
|
function compareHosts(old_hosts, new_hosts) {
|
|
difference = []
|
|
|
|
for (var i = 0; i < new_hosts.length; i++) {
|
|
old_hosts.indexOf(new_hosts[i]) == -1 ? difference.push(new_hosts[i]) : ""
|
|
}
|
|
|
|
return difference
|
|
}
|
|
|
|
function saveHosts(new_hosts) {
|
|
saved_hosts = readFile( env("enumerate.hosts.output") ).split("\n")
|
|
|
|
for (var i = 0; i < new_hosts.length; i++) {
|
|
saved_hosts.indexOf(new_hosts[i]) == -1 ? saved_hosts.push(new_hosts[i]) : ""
|
|
}
|
|
|
|
writeFile( env("enumerate.hosts.output"), saved_hosts.join("\n") )
|
|
}
|
|
|
|
function printHosts(hosts) {
|
|
if (hosts.length != 0) {
|
|
log_string = ""
|
|
|
|
for (var i = 0; i < hosts.length; i++) {
|
|
log_string += " " + yellow + hosts[i] + reset + "\n"
|
|
enumerated_hosts.indexOf(hosts[i]) == -1 ? enumerated_hosts.push(hosts[i]) : ""
|
|
}
|
|
|
|
console.log("\n" + log_string)
|
|
} else {
|
|
console.log("\n No hosts to display.\n")
|
|
}
|
|
}
|
|
|
|
function onCommand(cmd) {
|
|
if (cmd == "enumerate.hosts.all") {
|
|
saved_hosts = readFile( env("enumerate.hosts.output") ).split("\n")
|
|
printHosts(saved_hosts)
|
|
return true
|
|
}
|
|
|
|
if (cmd == "enumerate.hosts.new") {
|
|
new_hosts = compareHosts( enumerated_hosts, extractHosts() )
|
|
printHosts(new_hosts)
|
|
return true
|
|
}
|
|
|
|
if ( cmd.match(/^enumerate\.hosts\.regexp ./) ) {
|
|
regexp = new RegExp( cmd.replace("enumerate.hosts.regexp ", "") )
|
|
saved_hosts = readFile( env("enumerate.hosts.output") ).split("\n")
|
|
found_hosts = []
|
|
|
|
for (var i = 0; i < saved_hosts.length; i++) {
|
|
saved_hosts[i].match(regexp) ? found_hosts.push(saved_hosts[i]) : ""
|
|
}
|
|
|
|
printHosts(found_hosts)
|
|
return true
|
|
}
|
|
|
|
if (cmd == "enumerate.hosts.save") {
|
|
saveHosts( extractHosts() )
|
|
return true
|
|
}
|
|
}
|
|
|
|
function onLoad() {
|
|
console.log("\n" + bold + " Commands" + reset + "\n")
|
|
console.log(" " + yellow + "enumerate.hosts.all" + reset + " : Enumerate all hosts.")
|
|
console.log(" " + yellow + "enumerate.hosts.new" + reset + " : Enumerate new hosts.")
|
|
console.log(" " + yellow + "enumerate.hosts.regexp" + reset + " : Enumerate hosts with regexp value.\n")
|
|
configure()
|
|
log_info("(" + green + "enumerate.hosts" + reset + ") Module successfully loaded.")
|
|
}
|