Before attacking any website, it’s critical to do good reconnaissance. A few minutes of recon can save you hours on a hack. Simply trying various attacks without first finding which attacks the site is vulnerable to is pure foolishness.
There are a number of tools and applications to find vulnerabilities in websites, but one of the simplest (and one of my favorites) is nikto.
This small and simple tool examines a website and reports to you the potential vulnerabilities that you could use to exploit or hack the site. In addition, it’s one of the most widely used website vulnerabilities tools in the industry and, in many circles, considered the industry standard.
Although this tool is extremely useful and effective, it is NOT stealthy. Any website with an IDS or other security measures in place will detect that you are scanning it. Originally designed for security testing, it was never meant to be stealthy.
Fire Up Kali & Open Nikto
Let’s fire up Kali and get started with Nikto. Once we have Kali up and running, go to Kali Linux -> Vulnerability Analysis -> Misc Scanners -> nikto, like in the screenshot below.
Although there are many options in using nikto, we will limit ourselves here to the basic syntax, such as this:
nikto -h <IP or hostname>
Scan the Web Server
Let’s start with a safe web server on our own network. In this case, I have started the HTTP service on another machine on my network. This machine, just the webserver, does not host a website. Let’s scan it for vulnerabilities by typing:
nikto -h 192.168.1.104
Nikto responds with a lot of information, as you can see below.
First, it tells us the server is Apache 2.2.14, probably on Ubuntu. It nailed this info and gave up more information on other potential vulnerabilities on this webserver.
Note near the bottom that it identifies some vulnerabilities with the OSVDB prefix. This is the Open Source Vulnerability Database. This is a database maintained of known vulnerabilities at www.osvdb.org and other databases I covered, such as SecurityFocus and Microsoft’s Technet.
Scan the Site
Let’s try another site. In an earlier tutorial, we hacked a web server named webscantest.com. Let’s see what nikto can tell us about this site.
nikto -h webscantest.com
Once again, it identifies the server (Apache) and then proceeds to identify numerous potential vulnerabilities pre-fixed with OSVDB. We can look at that website at www.osvdb.org to learn more about these vulnerabilities.
Now, let’s use this site to find information on one of the vulnerabilities identified by nikto as OSVDB-877. We can put that reference number into the search function, and it retrieves the following page.
Note, in the lower half of this page. There are cross-references to the various information sources about this vulnerability and references to tools and filters such as Nikto, Nessus, and Snort.
Scan WonderHowTo
Let’s scan a few more sites and see what it can tell us about these sites. Let’s see what we can find out about our website, www.zpenterprises.com.
nikto -h wonderhowto.com
As you can see, it tells us that WonderHowTo is using Microsoft’s IIS 8.5 as a web server and then lists numerous potential vulnerabilities.
However, any attempt to exploit the vulnerabilities listed will reveal that they’re all false positives, as WonderHowTo simply returns a harmless 404 page. This is because WonderHowTo is not built on PHP or asp as the noted exploits expect.
False positives like this can appear because the scan does not execute each possible vulnerability but rather scans to see if the server responds to known exploitable URLs without error.
Scan Facebook
Finally, let us point nikto at www.facebook.com.
nikto -h facebook.com
As you can see, Facebook is tightly secured with few vulnerabilities. As you can imagine, if Facebook weren’t secure, every script-kiddie on the planet would be hacking it to see who his true love is chatting with online.