Performs brute force password auditing against http form-based authentication.
This script uses the unpwdb and brute libraries to perform password guessing. Any successful guesses are stored in the nmap registry, under the nmap.registry.credentials.http key for other scripts to use.
The script automatically attempts to discover the form field names to use in order to perform password guessing. If it fails doing so the form parameters can be supplied using the uservar and passvar arguments.
After attempting to authenticate using a HTTP POST request the script analyzes the response and attempt to determine whether authentication was successful or not. The script analyzes this by checking the response using the following rules: 1. If the response was empty the authentication was successful 2. If the response contains the message passed in the onsuccess argument the authentication was successful 3. If no onsuccess argument was passed, and if the response does not contain the message passed in the onfailure argument the authentication was successful 4. If neither the onsuccess or onfailure argument was passed and the response does not contain a password form field authentication was successful 5. Authentication failed
points to the path protected by authentication
(optional) sets the message to expect on unsuccessful authentication
sets the http-variable name that holds the password used to authenticate. A simple autodetection of this variable is attempted.
(optional) sets the message to expect on successful authentication
(optional) sets the http-variable name that holds the username used to authenticate. A simple autodetection of this variable is attempted.
sets the host header in case of virtual hosting
passdb, unpwdb.passlimit, unpwdb.timelimit, unpwdb.userlimit, userdbSee the documentation for the unpwdb library.
http.max-cache-size, http.max-pipeline, http.pipeline, http.useragentSee the documentation for the http library.
smbdomain, smbhash, smbnoguest, smbpassword, smbtype, smbusernameSee the documentation for the smbauth library.
nmap --script http-form-brute -p 80 <host>
PORT STATE SERVICE REASON 80/tcp open http syn-ack | http-brute: | Accounts | Patrik Karlsson:secret => Login correct | Statistics |_ Perfomed 60023 guesses in 467 seconds, average tps: 138
Author: Patrik Karlsson
License: Same as Nmap--See http://nmap.org/book/man-legal.html