Nikto is a widely-used open-source web server scanner that performs comprehensive tests against web servers to detect vulnerabilities, misconfigurations, and other security issues.

It is designed for security professionals to identify potential security problems in web servers and web applications.
Key Features of Nikto:
- Comprehensive Testing:
- Scans for over 6,700 potentially dangerous files/CGIs.
- Detects outdated server software versions.
- Checks for specific version-related problems on over 1,250 servers.
- Performs checks for server configuration issues, such as multiple index files and HTTP server options.
- Open Source:
- Free to use and modify.
- Community-driven with regular updates and new vulnerability checks.
- Ease of Use:
- Command-line interface, making it easy to integrate into scripts and automated testing frameworks.
- Simple and straightforward to run basic scans.
- Plugins and Extensibility:
- Supports custom plugins and databases for tailored scans.
- Users can write their own plugins to extend its capabilities.
- Output and Reporting:
- Generates detailed reports in multiple formats (e.g., plain text, HTML, XML).
- Can integrate with other tools and workflows for enhanced analysis and reporting.
- Proxy Support:
- Can scan through an HTTP proxy, providing flexibility in various network environments.
Common Use Cases:
- Web Server Vulnerability Assessment:
- Identify common vulnerabilities in web servers, such as outdated software, exposed files, and misconfigurations.
- Compliance Audits:
- Assist in ensuring web servers meet security compliance standards by identifying known issues.
- Penetration Testing:
- Used by penetration testers to gather initial reconnaissance on web servers and identify low-hanging fruit vulnerabilities.
- Routine Security Checks:
- Regularly scan web servers to ensure they remain secure and up-to-date with the latest security practices.
Basic Usage:
Running a basic Nikto scan is straightforward. Here’s how you can perform a simple scan against a target web server:
- Install Nikto:
-
- Ensure you have Perl installed on your system.
-
- Download and install Nikto from the official GitHub repository or package manager.
git clone https://github.com/sullo/nikto.git cd nikto/program
- Run a Basic Scan:
- Execute the following command to start a scan against a target web server:
perl nikto.pl -h http://example.com
This command will scan the specified target (
http://example.com
) for vulnerabilities and common issues.
- Execute the following command to start a scan against a target web server:
- Specify Ports and Protocols:
- You can specify different ports and protocols as needed:
perl nikto.pl -h http://example.com -p 8080
- You can specify different ports and protocols as needed:
- Save Scan Results:
- Save the scan results to a file for later analysis:
perl nikto.pl -h http://example.com -o results.txt
- Save the scan results to a file for later analysis:
- Advanced Options:
- Use additional options for more targeted scans:
perl nikto.pl -h http://example.com -Tuning 1 2 3 -Plugins plugin_name
- Use additional options for more targeted scans:
Example Command:
Here’s an example command that performs a comprehensive scan and outputs the results in HTML format:
perl nikto.pl -h http://example.com -o scan_results.html -Format html
Best Practices:
- Regular Scanning: Regularly scan your web servers to catch new vulnerabilities and issues as they arise.
- Automated Integration: Integrate Nikto scans into your continuous integration/continuous deployment (CI/CD) pipelines for automated security checks.
- Combine with Other Tools: Use Nikto alongside other vulnerability scanners and security tools to get a comprehensive view of your security posture.
- Stay Updated: Keep Nikto and its databases updated to ensure you have the latest vulnerability checks.
Nikto is a valuable tool in a cybersecurity professional’s arsenal, providing a quick and effective way to identify common security issues in web servers and applications.