nessusrc
I was given a nessusrc file to run with and not much explanation. I was able to successfully run a few scans, but nothing too exciting came from them. I thought (naively) that if I were to install some vulnerable webapps on the VM (Mutillidae or Damn Vulnerable Web App) I would get some more interesting results; of course I was wrong. I figured it probably had something to do with the plugins that were running and other settings defined in the nessusrc file, so this is my attempt at explaining what I find.
Renaud was kind enough to reply to someone else’s question on the same topic. He described the sections of the nessusrc file as follows:
SERVER_PREFS: these are the options which are sent back to the nessus daemon. They are all documented on the nessusd side – see /usr/local/etc/nessus/nessusd.conf
SCANNER_SET: the list of port scanners that are enabled by the user. You can merge this section within PLUGIN_SET, because scanners are plugins
PLUGIN_SET (currently absent in my file): the list of plugins which are enabled/disabled. The format is <id> = [yes|no].
SERVER_INFO: is un-necessary, it simply contains information about the last nessusd you connected to (this is used for XML export)
PLUGINS_PREFS: acts like the SERVER_PREFS section, except that very few options are thoroughly documented. However the most important ones (like SMB password) should be self-explanatory.
He also points us to update-nessusrc, which is a Perl script written to simplify the loading of plugins in your scans. The script is dependent on several Perl modules, some of which are not included in the base Perl package. TheGeekStuff.com provided a guide that helped me get through manually installing the necessary modules I was missing. (Beware if you have just installed the basic Perl module, you will be missing some modules that the ones listed as requirements for update-nessusrc are dependent on – HTML-Parser, HTML-TagSet, URI, and possibly a few others.)
For those new to Perl, when configuring the update-nessusrc script to work with your setup, make sure you enclose the host address, user_name, and user_pass in single quotes. Not enclosing them in quotes got me a “open_sock_opt_hn: invalid socket address” error and an hour of searching for what that meant.