Hunting For Shellshock Using Nessus
The best way to test for the Shellshock vulnerability is to do a credentialed local check against the Unix/Linux distribution. Nessus contains a number of plugins that make sure the operating system is patched. Nessus also has a plugin that performs a local test by invoking Bash, which covers just about any Unix/Linux platform available.
Note
You can find more information about how Tenable products detect the Shellshock vulnerability on our Shellshock microsite which includes a list of relevant Nessus plugins, Log Correlation Engine (LCE) indicators and SecurityCenter CV Dashboards.There are several different attack vectors associated with the Shellshock vulnerability, each unique to a particular environment. The most prevalent attack vector is through a web server hosting a script in /cgi-bin or via Server Side Includes. Nessus checks for various patterns against the remote host's CGI script parameters.
The best way to test for the Shellshock vulnerability is to do a credentialed local check against the Unix/Linux distribution
For the remote web server Shellshock vulnerability check to work, the web page must link to a shell script available through CGI. If you’ve created an unpublished CGI, one that is not linked to from anywhere on the web site, it will be missed since the existence of the script is hidden from the scanner.
Evasive threats
There are variations of the initial Shellshock attack vector which evade the first patch releases. This area is still very much in flux, and not all patterns allow for a truly good remote check to be successful. Tenable’s research team is actively testing new attack patterns and developing checks. Once new attack vectors are stabilized, existing plugins will be updated. Currently Nessus uses the publish method of "() { unused; };" published initially. Our research team is also looking for additional attack vectors through SIP, SMTP, FTP and TELNET. As time goes by, it's likely that other attack vectors will be found, and we will work hard to keep Nessus plugins updated.
Targeting the Internet of Things
Several comments have been made about the impact of the Shellshock vulnerability on embedded systems, or the “Internet of Things.” In my extensive research on this topic and embedded systems architecture, I’ve found that most embedded Linux platforms use BusyBox. BusyBox “combines tiny versions of many common UNIX utilities into a single small executable.” By default BusyBox uses a shell called “ash” which is not the same codebase as Bash where the Shellshock vulnerability lives. While many are stating that embedded systems are not vulnerable, this is not entirely true. Embedded system platforms are highly extensible, which means that the developers could choose to include Bash in their implementations. Several embedded platforms have already issued patches, and some systems are already being reported as vulnerable to Shellshock.
Discovery
As the underlying vulnerability associated with Shellshock is in Bash, you must be able to identify systems running this software, and to discover the vulnerability on a wide variety of operating systems and devices. Tenable is best positioned to help you achieve a vulnerability management program which can accurately and continuously identify vulnerabilities such as Shellshock in your environment. Relying on Nessus, the world’s most deployed vulnerability scanner, you will be able to discover this vulnerability, use the information to remediate, and be certain that your systems stay safe.
Related Articles
- Internet of Things
- Nessus
- Plugins