Sunday 21 August 2011

Web Server[HTTP] Fingerprinting With httprint

Earlier I posted about web server fingerprinting using telnet however more sophisticated tools have been developed out there and one of them is httprint. httprint is a web server fingerprinting tool. It relies on web server characteristics to accurately identify web servers, despite the fact that they may have been obfuscated by changing the server banner strings, or by plug-ins such as mod_security or servermask. httprint can also be used to detect web enabled devices which do not have a server banner string, such as wireless access points, routers, switches, cable modems, etc. httprint uses text signature strings and it is very easy to add signatures to the signature database.

Features

-Identification of web servers despite the banner string and any other obfuscation. httprint can successfully identify the underlying web servers when their headers are mangled by either patching the binary, by modules such as mod_security.c or by commercial products such as ServerMask. Click here to see an example of how httprint detects disguised servers.

-Inventorying of web enabled devices such as printers, routers, switches, wireless access points, etc. Click on the sample HTML report.

-Customisable web server signature database. To add new signatures, simply cut and paste the httprint output against unknown servers into the signatures text file.

-Confidence Ratings. httprint now picks the best matches based on confidence ratings, derived using a fuzzy logic technique, instead of going by the highest weight. More details on the significance of confidence ratings can be found in section 8.4 of the Introduction to HTTP fingerprinting paper.

-Multi-threaded engine. httprint v301 is a complete re-write, featuring a multi-threaded scanner, to process multiple hosts in parallel. This greatly saves scanning time. *multi-threading is not yet supported in the FreeBSD version.

-SSL information gathering. httprint now gathers SSL certificate information, which helps you identify expired SSL certificates, ciphers used, certificate issuer, and other such SSL related details.

-Automatic SSL detection. httprint can detect if a port is SSL enabled or not, and can automatically switch to SSL connections when needed.

-Automatic traversal of HTTP 301 and 302 redirects. Many servers who have transferred their content to other servers send a default redirect response towards all HTTP requests. httprint now follows the redirection and fingerprints the new server pointed to. This feature is enabled by default and can be turned off, if needed.

-Ability to import web servers from nmap network scans. httprint can import nmap's xml output files.

-Reports in HTML, CSV and XML formats.

-Available on Linux, Mac OS X, FreeBSD (command line only) and Win32 (command line and GUI)

For more information and downloads, Check this link.

Also, if you want to learn more about webserver fingerprinting, I would highly recommend you to read this paper.