Nessus users have a wide range of powerful options whose functionality is critical to a successful vulnerability scan, but whose meaning may not be completely clear. An example of this is the “Thorough tests” option. There is more to this option than meets the eye and knowing how to properly use it will help you customize your scan policies to your specific needs. By default, this option is disabled; however, of the more than 34,000 plugins available with Nessus, over 900 behave differently if this option is enabled. This blog describes what the feature does and provides some examples of where the option should or should not be used.
The “Thorough tests” option is located in the scan policy “Preferences” section of the Nessus 4.x web interface. Within this section choose the “Plugin” dropdown and select “Global variable settings”:
To use this option, click on the “Thorough tests (slow)” checkbox, which will trigger the “thorough_tests” keyword within the Nessus plugin script files (.nasl). The following sections describe its functionality.
Enables More Complete Checks
The main advantage, of course, is a more thorough vulnerability scan. Since not all Nessus scans require a full plugin run, certain plugins will not run unless “Thorough tests” is enabled. For example, some of the web application specific tests, available through the built-in Web Application functionality of Nessus, require both this option and “Enable CGI scanning” to complete.
Enables Multiple Matches
The “Thorough Tests” option causes some plugins to continue searching for multiple matches rather than stopping after the first one. For example, the Joomla_components_controller_lfi.nasl script tests for a local file inclusion issue affecting various components of Joomla!. Normally, the plugin will stop checking after it finds the first affected component. If you have multiple components that are affected, that means you will have to scan and then patch, scan again, patch a second component, scan yet again, patch a third component... if the “Thorough tests” option is enabled, Nessus will check for each possible issue and report them as a group, saving time and effort.
Looks for Services on “non-standard” Ports
Nessus’ generic service tests do look for services listening on non-standard ports without “Thorough tests” being enabled. However, additional specific service-related tests, such as oracle_detect.nbin and rmiregistry_detect.nasl, will only look at well-known ports by default. To probe even more non-standard ports for these specific service-related tests, the “Thorough tests” option must be enabled. Use of the “Thorough tests” option is critical in environments where non-standard ports are in use.
To enable this option while not running the tests against non-standard ports at the same time, disable the "Probe services on every port" global settings option. This will leverage the benefits of “Thorough tests” without the added traffic of scanning against non-standard ports.
Checks Locations Not Searched During a Regular Scan
Some tests, such as the Google Chrome detection plugin, will check the system registry for settings not tied to a particular user by default. This can pose a problem on multi-user systems since Google Chrome does a user-based install and only stores information in user-specific locations within the registry. Enabling “Thorough tests” causes this plugin to scan users’ directories and provides a much higher rate of detection.
Of course, there can be disadvantages to using the “Thorough Tests” option. As the name implies, a “Thorough tests” scan is more comprehensive than a standard scan and can take much longer to run. In addition, the added tests performed by this option can have a risk of adversely affecting fragile hosts or services. Where scan timeframes are less of an issue and target stability is certain, the benefit of using this option outweighs the drawbacks. The most important factors to take into account when determining whether to use “Thorough tests” are how well you know the targets and what you want the scan to accomplish. If the goal of the scan is to perform a port sweep or determine the Windows patch level of known hosts, then the “Thorough tests” option is probably not suitable. On the other hand, with a web application scan audit or similar “black-box” type audit, it can be just the ticket.