Nikto (http://cirt.net/nikto2) is an Open Source web scanner that checks for several different types of vulnerabilities, including:
- Over 6400 potentially dangerous files/CGIs
- Outdated versions of over 1000 servers
- Version specific problems for over 270 servers
Nikto was developed by a friend of mine, Chris Sullo (@chrissullo) and now is maintained by Sullo and David Lodge. Version 2.1.3 was released in February of this year after getting back from a lengthy tour of european pubs, or so I am told.
I personally still use Nikto on all of my assessments, as it provides a good supplement to other automated scanning tools. To help automate the process of scanning hundreds of web servers, I wrote a simple python script that takes a specially formatted host file (ip address or hostname,port) and runs Nikto continuously against them. doNikto generates separate HTML output files for each line in the host file (Nikto_IP/Hostname_Port.html) in the current directory.
To get doNikto running on your system, simply make sure you have Python installed on your system. Snow Leopard and Ubuntu users, you’re good. Windows users, check out http://python.org. I recommend installing the latest release of Python 2 (currently 2.6.6).
Once you have Python installed, and of course Nikto, download doNikto.py here and install it in same directory as nikto.pl. You can invoke doNikto by simply typing;
or you can type:
chmod +x doNikto.py
and call it via
Once you have doNikto all setup, it is pretty straight forward to use:
Old-Trafford:nikto-2.1.3 jmorehouse$ ./doNikto.pyUSAGE:python donikto.py [Host File]Host file should be in IP,Port format, with one host per line.(e.g. 192.168.1.1,80)
So a sample host file would look something like:
Finally, you can ctrl-break (ctrl+c) doNikto to skip hung servers and proceed to the next server in the host file.
That’s all there is. Pretty straightforward and something I find useful on a regular basis. Let me know if you have any issues or suggestions and enjoy!