###############################################################################
# OpenVAS Vulnerability Test
# $Id: gb_nmap_http_brute_net.nasl 5505 2017-03-07 10:00:18Z teissa $
#
# Autogenerated NSE wrapper
#
# Authors:
# NSE-Script: Patrik Karlsson
# NASL-Wrapper: autogenerated
#
# Copyright:
# NSE-Script: The Nmap Security Scanner (http://nmap.org)
# Copyright (C) 2011 Greenbone Networks GmbH, http://www.greenbone.net
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
# (or any later version), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
###############################################################################
tag_summary = "Performs brute force password auditing against http basic authentication.
SYNTAX:
brute.firstonly: stop guessing after first password is found
(default: false)
brute.unique: make sure that each password is only guessed once
(default: true)
http-brute.hostname: sets the host header in case of virtual hosting
http.pipeline: If set, it represents the number of HTTP requests that'll be
pipelined (ie, sent in a single request). This can be set low to make
debugging easier, or it can be set high to test how a server reacts (its
chosen max is ignored).
brute.mode: can be user, pass or creds and determines what mode to run
the engine in.
- user - the unpwdb library is used to guess passwords, every password
password is tried for each user. (The user iterator is in the
outer loop)
- pass - the unpwdb library is used to guess passwords, each password
is tried for every user. (The password iterator is in the
outer loop)
- creds- a set of credentials (username and password pairs) are
guessed against the service. This allows for lists of known
or common username and password combinations to be tested.
If no mode is specified and the script has not added any custom
iterator the pass mode will be enabled.
brute.passonly: iterate over passwords only for services that provide
only a password for authentication. (default: false)
http-brute.path: points to the path protected by authentication
brute.useraspass: guess the username as password for each user
(default: true)
http-brute.method: sets the HTTP method to use (default 'GET')
brute.credfile: a file containing username and password pairs delimited
by '/'
http.useragent: The value of the User-Agent header field sent with
requests. By default it is
''Mozilla/5.0 (compatible; Nmap Scripting Engine; http://nmap.org/book/nse.html)''.
A value of the empty string disables sending the User-Agent header field.
brute.retries: the number of times to retry if recoverable failures
occurs. (default: 3)
brute.threads: the number of initial worker threads, the number of
active threads will be automatically adjusted.
brute.delay: the number of seconds to wait between guesses (default: 0)
http-max-cache-size: The maximum memory size (in bytes) of the cache.";
if(description)
{
script_id(104005);
script_version("$Revision: 5505 $");
script_tag(name:"last_modification", value:"$Date: 2017-03-07 11:00:18 +0100 (Tue, 07 Mar 2017) $");
script_tag(name:"creation_date", value:"2011-06-01 16:32:46 +0200 (Wed, 01 Jun 2011)");
script_tag(name:"cvss_base", value:"7.5");
script_tag(name:"cvss_base_vector", value:"AV:N/AC:L/Au:N/C:P/I:P/A:P");
script_name("Nmap NSE net: http-brute");
script_category(ACT_INIT);
script_tag(name:"qod_type", value:"remote_analysis");
script_copyright("NSE-Script: The Nmap Security Scanner; NASL-Wrapper: Greenbone Networks GmbH");
script_family("Nmap NSE net");
script_dependencies("nmap_nse_net.nasl");
script_mandatory_keys("Tools/Launch/nmap_nse_net");
script_add_preference(name:"brute.firstonly", value:"", type:"entry");
script_add_preference(name:"brute.unique", value:"", type:"entry");
script_add_preference(name:"http-brute.hostname", value:"", type:"entry");
script_add_preference(name:"http.pipeline", value:"", type:"entry");
script_add_preference(name:"brute.mode", value:"", type:"entry");
script_add_preference(name:"brute.passonly", value:"", type:"entry");
script_add_preference(name:"http-brute.path", value:"", type:"entry");
script_add_preference(name:"brute.useraspass", value:"", type:"entry");
script_add_preference(name:"http-brute.method", value:"", type:"entry");
script_add_preference(name:"brute.credfile", value:"", type:"entry");
script_add_preference(name:"http.useragent", value:"", type:"entry");
script_add_preference(name:"brute.retries", value:"", type:"entry");
script_add_preference(name:"brute.threads", value:"", type:"entry");
script_add_preference(name:"brute.delay", value:"", type:"entry");
script_add_preference(name:"http-max-cache-size", value:"", type:"entry");
script_tag(name : "summary" , value : tag_summary);
exit(0);
}
include("nmap.inc");
# The corresponding NSE script does't belong to the 'safe' category
if (safe_checks()) exit(0);
phase = 0;
if (defined_func("scan_phase")) {
phase = scan_phase();
}
if (phase == 1) {
# Get the preferences
argv = make_array();
pref = script_get_preference("brute.firstonly");
if (!isnull(pref) && pref != "") {
argv["brute.firstonly"] = string('"', pref, '"');
}
pref = script_get_preference("brute.unique");
if (!isnull(pref) && pref != "") {
argv["brute.unique"] = string('"', pref, '"');
}
pref = script_get_preference("http-brute.hostname");
if (!isnull(pref) && pref != "") {
argv["http-brute.hostname"] = string('"', pref, '"');
}
pref = script_get_preference("http.pipeline");
if (!isnull(pref) && pref != "") {
argv["http.pipeline"] = string('"', pref, '"');
}
pref = script_get_preference("brute.mode");
if (!isnull(pref) && pref != "") {
argv["brute.mode"] = string('"', pref, '"');
}
pref = script_get_preference("brute.passonly");
if (!isnull(pref) && pref != "") {
argv["brute.passonly"] = string('"', pref, '"');
}
pref = script_get_preference("http-brute.path");
if (!isnull(pref) && pref != "") {
argv["http-brute.path"] = string('"', pref, '"');
}
pref = script_get_preference("brute.useraspass");
if (!isnull(pref) && pref != "") {
argv["brute.useraspass"] = string('"', pref, '"');
}
pref = script_get_preference("http-brute.method");
if (!isnull(pref) && pref != "") {
argv["http-brute.method"] = string('"', pref, '"');
}
pref = script_get_preference("brute.credfile");
if (!isnull(pref) && pref != "") {
argv["brute.credfile"] = string('"', pref, '"');
}
pref = script_get_preference("http.useragent");
if (!isnull(pref) && pref != "") {
argv["http.useragent"] = string('"', pref, '"');
}
pref = script_get_preference("brute.retries");
if (!isnull(pref) && pref != "") {
argv["brute.retries"] = string('"', pref, '"');
}
pref = script_get_preference("brute.threads");
if (!isnull(pref) && pref != "") {
argv["brute.threads"] = string('"', pref, '"');
}
pref = script_get_preference("brute.delay");
if (!isnull(pref) && pref != "") {
argv["brute.delay"] = string('"', pref, '"');
}
pref = script_get_preference("http-max-cache-size");
if (!isnull(pref) && pref != "") {
argv["http-max-cache-size"] = string('"', pref, '"');
}
nmap_nse_register(script:"http-brute", args:argv);
} else if (phase == 2) {
res = nmap_nse_get_results(script:"http-brute");
foreach portspec (keys(res)) {
output_banner = 'Result found by Nmap Security Scanner (http-brute.nse) http://nmap.org:\n\n';
if (portspec == "0") {
security_message(data:output_banner + res[portspec], port:0);
} else {
v = split(portspec, sep:"/", keep:0);
proto = v[0];
port = v[1];
security_message(data:output_banner + res[portspec], port:port, protocol:proto);
}
}
}
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation