In an age where cyber threats are increasingly prevalent, safeguarding your websites and web servers is of paramount importance. One effective tool that can help you in this endeavor is Nikto, an open-source web server scanner designed to uncover vulnerabilities and security weaknesses. This section of the blog post will guide you through the process of scanning vulnerabilities of websites using Nikto in a Linux environment.
What is Nikto?
Nikto is an open source web server scanner that scans multiple web servers for vulnerabilities. Nikto is a powerful open source web server scanner that scans multiple web servers for potential vulnerabilities. It is often used by security professionals to evaluate the security of websites and web applications and has been widely accepted in the cybersecurity world.
Features:
- SSL, HTTP, and Proxy support
- Cookies support
- Outputs in plain text, HTML or CSV
- specific server software checks
Installation of Nikto
Before you can start scanning websites, you need to install Nikto on your Linux system. The installation process can vary depending on your specific distribution, but it’s generally straightforward. Ensure that you have Perl installed as Nikto relies on it. Installation instructions can be found below .
Nikto comes pre-installed on Kali Linux machines. You can find it in the Vulnerability Analysis menu or by typing in the terminal.
Arch Linux
pacman -S nikto
Debian
sudo apt update
sudo apt install nikto
Scanning Websites with Nikto
Once Nikto is installed, you’re ready to scan websites for vulnerabilities. Here’s a step-by-step guide:
- Open a Terminal: Launch a terminal on your Linux system.
- Run Nikto: To scan a website, use the following command:
nikto -h <target_website>
Replace <target_website>
with the URL of the website you want to scan. For example:
nikto -h https://example.com
- Initiate the Scan: Press Enter, and Nikto will start scanning the specified website.
- Review the Results: After the scan is complete, Nikto will generate a detailed report highlighting any vulnerabilities or issues it has identified.
To scan an SSL-enabled website, Run the following command:
nikto -h <host_name> -ssl
nikto -h <ip_address or host_name> -port <port_number>
nikto -h example.com -output /path/to/file.name
Understanding Nikto’s Output
Nikto’s report is comprehensive and provides valuable insights into the security status of the scanned website. Here are some key points to understand in the report:
- Scanning Summary: The report begins with a summary of the scan, including the number of tests performed and the time it took.
- Server Information: Nikto provides information about the web server, including its version and any interesting findings.
- Vulnerabilities: Nikto categorizes vulnerabilities by type, such as known vulnerabilities, potential issues, and informational findings. It offers a severity level for each identified vulnerability.
- Recommendations: The report often includes suggestions for mitigating the identified vulnerabilities or improving the website’s security.
Customizing Nikto Scans
Nikto is highly customizable, allowing you to tailor scans to your specific needs. You can use various flags and options to refine your scans. Some common customization options include:
- Custom Plugins: You can create custom plugins to expand Nikto’s functionality and add checks specific to your environment.
- Scan Ports: Nikto can scan on different ports, which is useful when dealing with non-standard web server configurations.
- Authentication: If your website requires authentication, you can provide credentials to Nikto for a more thorough scan.
Automating Nikto Scans
For frequent vulnerability assessments, automation is key. You can schedule Nikto scans using tools like Cron on Linux, ensuring regular checks for vulnerabilities without manual intervention.