Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 May 2008 21:17:15 -0700 (PDT)
From:      KAYVEN  RIESE <kayve@sfsu.edu>
Cc:        freebsd-hackers@freebsd.org
Subject:   nessus gtk yields empty scan
Message-ID:  <Pine.SOC.4.64.0805212113310.12748@libra.sfsu.edu>
In-Reply-To: <sjc934digcn8o7tneu96rpbib7de7u8tpg@4ax.com>
References:  <001001c8bb66$c4713170$4d539450$@net> <sjc934digcn8o7tneu96rpbib7de7u8tpg@4ax.com>

next in thread | previous in thread | raw e-mail | index | archive | help

[kayve@kv_bsd ~]$ uname -a
FreeBSD kv_bsd 6.3-STABLE FreeBSD 6.3-STABLE #0: Wed May  7 19:40:55 PDT 
2008     root@kv_bsd:/usr/obj/usr/src/sys/GENERIC  i386
[kayve@kv_bsd ~]$ pkg_info | grep essus
pkg_info: show_file: can't open '+COMMENT' for reading
nessus-gtk2-2.2.9_1 A security scanner: looks for vulnerabilities in a 
given ne
nessus-libnasl-2.2.9_1 Nessus Attack Scripting Language
nessus-libraries-2.2.9_1 Libraries for Nessus, the security scanner
[kayve@kv_bsd ~]$


when i boot there seems like there are a lot of rpm errors during
the nessus loads.  i think something is wrong but i don't know
what.  i don't know what to say i don't know what is wrong
i can type faster without caps it is NOT that hard to read.
the gtk GUI has a lot of plugins i think they are all selected
there is a host called minkay.sfsu.edu i am supposed to scan i
have a log in i put in host 10.1.1.1 like this webpage says



ttp://www.securityfocus.com/infocus/1741

oops.  i pasted it twice below sorry.

1.0 Introduction
Nessus is a great tool designed to automate the testing and discovery of 
known security problems. Typically someone, a hacker group, a security 
company, or a researcher discovers a specific way to violate the security 
of a software product. The discovery may be accidental or through directed 
research; the vulnerability, in various levels of detail, is then released 
to the security community. Nessus is designed to help identify and solve 
these known problems, before a hacker takes advantage of them. Nessus is a 
great tool with lots of capabilities. However it is fairly complex and few 
articles exist to direct the new user through the intricacies of how to 
install and use it. Thus, this article shall endeavor to cover the basics 
of Nessus setup and configuration. The features of the current versions of 
Nessus (Nessus 2.0.8a and NessusWX 1.4.4) will be discussed. Future 
articles will cover Nessus in more depth.

Nessus is a free program released under the GPL. Historically, many in the 
corporate world have ridiculed such public domain software as being a 
waste of time, instead choosing "supported" products developed by 
established companies. Typically these packages cost hundreds or thousands 
of dollars, and are often purchased using the logic that you get what you 
pay for. Some people are starting to realize that public domain software, 
such as Nessus, isn't always inferior and sometimes it is actually 
superior. Paid technical support for Nessus is even available from 
www.tenablesecurity.com. Nessus also has a great community of developers 
anchored by the primary author, Renaud Deraison. When allowed to fairly 
compete in reviews against other vulnerability scanners, Nessus has 
equaled or outshined products costing thousands of dollars. [ref: 
Information Security, Network Computing]

One of the very powerful features of Nessus is its client server 
technology. Servers can be placed at various strategic points on a network 
allowing tests to be conducted from various points of view. A central 
client or multiple distributed clients can control all the servers. The 
server portion will run on most any flavor of Unix. It even runs on MAC OS 
X and IBM/AIX, but Linux tends to make the installation simpler. These 
features provide a great deal of flexibility for the penetration tester. 
Clients are available for both Windows and Unix. The Nessus server 
performs the actual testing while the client provides configuration and 
reporting functionality.
2.0 Installation
Nessus server installation is fairly simple even for a Windows jockey like 
me. First an installed version of Unix is required. Secondly, prior 
installation of several external programs is recommended: NMAP is the 
industry standard for port scanners, Hydra is a weak password tester and 
Nikto is a cgi/.script checker. While not required, these external 
programs greatly enhance Nessus' scanning ability. They are included 
because they are the best applications in their class. If installed in the 
PATH$ before Nessus installation, they will automatically be available.

The simplest installation method is using the Lynx automatic install. Lynx 
is included on many of the linux versions. The Lynx command is (logged in 
as a user, and not root) :

lynx -source http://install.nessus.org | sh

This should install the server on most platforms with no other steps 
necessary. Note that the latest install script can also be downloaded and 
run locally. Whether you install directly off the Website or using the 
same install script offline, either way the script will setup a temporary 
suid and ask for your root password when required -- if you don't like 
this feature you can download, compile and install the four required 
tarballs individually. The above command should also be used periodically 
to upgrade Nessus as new versions are regularly released. You will be 
questioned about proxy servers, a download method (www or CVS), and the 
branch of the development tree to use; most of the time the defaults are 
the best choice. This is the simplest method of installation however; you 
are effectively giving the install.nessus.org server temporary root 
privileges. Thus there is a security risk with this method albeit a low 
one. So if you are paranoid, and paranoid is not always a bad thing in the 
security field, installation can be done the old-fashioned way by 
downloading and compiling the source. For information on performing an 
install from scratch see: www.nessus.org/nessus_2_0.html.
3.0 Setup
Once the server is installed, some basic setup steps are required. The 
first task to complete in the new install is to add a user. A new user can 
be added by the "nessus-adduser" command. The script will question you for 
the authentication method. Authentication can be performed by several 
means, however a password is the simplest and is recommended. The next 
question queries about rules to restrict the user account. When used 
across an enterprise, a user can be restricted and only allowed to scan 
specified IP addresses. However, for most uses this will be left blank, 
allowing the user to scan anything. A certificate also needs to be 
generated as well to be used to encrypt the traffic between the client and 
server. The nessus-mkcert command accomplishes this.
3.1 Update plug-ins
Before a scan is done, the plug-ins should be updated. Nessus plug-ins are 
very much like virus signatures in a common virus scanner application. 
Each plug-in is written to test for a specific vulnerability. These can be 
written to actually exploit the vulnerability or just test for known 
vulnerable software versions. Plug-ins can be written in most any language 
but usually are written in the Nessus Attack Scripting Language (NASL). 
NASL is Nessus' own language, specifically designed for vulnerability test 
writing. Each plug-in is written to test for a specific known 
vulnerability and/or industry best practices. NASL plug-ins typically test 
by sending very specific code to the target and comparing the results 
against stored vulnerable values. There are a few built-in plug-ins that 
do not use NASL. These are C and Perl scripts to perform special purposes 
that can not easily be done in NASL. Among these is the Services plug-in 
which identifies port-to-program mappings.

Plug-in updates should be done frequently. New vulnerabilities are being 
discovered and disseminated all the time. Typically after a new 
vulnerability is released to the public, someone in the Nessus community 
writes a NASL plug-in, releases it to the public and submits it to 
www.nessus.org. It is then reviewed by the developers and added to the 
approved plug-in list. For high risk, high profile vulnerabilities a 
plug-in is often released the same day the vulnerability information is 
publicly released. Updating plug-ins from the maintained list is fairly 
simple involving a simple command: nessus-update-plugins. This command 
must be done as root. By no means however, are you limited to the list of 
plug-ins from www.nessus.org. New and special purpose plug-ins can be 
written relatively easily using NASL, so you can write your own custom 
plug-ins as well.
3.2 Launch the daemon
Nessus is now installed, updated and ready to go. The simplest way to get 
the server running is (as root) issue the nessusd -D command. In order to 
use it, one must use a client. There are three primary Nessus clients. The 
native Unix GUI version is installed at server install time. 
Alternatively, Nessus can be controlled from the command line. A third 
option, a Windows version also exists called NessusWX. The binaries for 
NessusWX can be found here . The NessusWX install is a straightforward 
Windows install. All three clients work well. Personally I prefer 
NessusWX. It is better organized, allows for easier reporting, and has a 
better facility for managing different sessions (groups of hosts to scan) 
then its Unix counterparts. To run the native Unix GUI client, run the 
nessus command or for NessusWX click the eye icon after installation.
3.3 Client connection
Since Nessus is a client server technology, once running the client a 
connection must be made to the server. In the native client, enter the 
server IP, username and password (created with the nessus-adduser command) 
and hit login. The process in NessusWX is similar but uses the 
communications | connect menus. The client is connected to the server thru 
an SSL connection and a list of the currently installed plug-ins is 
downloaded. On the first run the SSL certificate is also downloaded and 
verification is requested. This verification ensures that in the future 
you are actually communicating with the server intended. Figures 1 and 2 
shows the connection using the Unix and Windows GUI tools, respectively. 
Figure 3 shows user authentication using the NessusWX client.

Figure 1: Starting the Nessus server and connecting with the Unix GUI
Figure 1: Starting the Nessus server and connecting with the Unix GUI

Figure 2: Connecting to the Nessus server with NessusWX (Windows Client)
Figure 2: Connecting to the Nessus server with NessusWX (Windows Client)

Figure 3: Enter in the server IP and the login and password setup with 
nessus_adduser
Figure 3: Enter in the server IP and the login and password setup with 
nessus_adduser

4.0 Using Nessus
Now that we have installed and connected to Nessus lets explore some of 
the options available. The most obvious and powerful aspect of Nessus is 
its plug-in feature. The choice of plug-ins is critical to the success of 
a scan. Most plug-ins are written very well and rarely trigger false 
positives or negatives; however, a few are not. One example of a poorly 
written plug-in is the test for the classic Windows IIS hack RFP's MSDAC 
/RDS vulnerability. Rain Forest Puppy (RFP) publicized this vulnerability 
in 1999. The vulnerability makes use of the %system%/msadc/msadcs.dll file 
and leads to total system compromise on un-patched IIS 4.0 servers. The 
problem is that the Nessus plug-in only tests for the existence of the 
/msadc/msadcs.dll file. It does not take into account patches, windows 
versions etc. Thus with this plug-in enabled, a false positive will show 
up on many IIS servers and must be sorted out manually.

Before anyone yells out, "see the problems of public domain software," one 
should note that the same types of problems exist with the high priced 
"supported" vulnerability scanners as well. This problem is a result of 
the current state of the technology. The difference is that typically in 
purchased products you cannot easily examine the exact "proprietary" 
testing methodology as can be done with Nessus, thus making resolution of 
the false positive difficult.
4.1 Choosing dangerous/non-dangerous plug-ins
Plug-ins are categorized in several different and sometimes confusing 
ways. One method of plug-in grouping is by category. Most importantly, 
some plug-ins are categorized as Dangerous/Denial of Service (DOS). These 
plug-ins will actually perform a DOS attack and crash systems that have 
these particular problems. Needless to say these should not be blindly run 
on production systems. They won't cause long term damage, but at least a 
reboot will be required. In both clients, there are buttons to "Enable all 
plug-ins" or just "Enable all but dangerous plug-ins" (called "Enable 
Non-DOS" in NessusWX). Note that the author of the plug-in decides if it 
is dangerous or not. Most of the time, this has been very well chosen. 
However there are instances (Exmple: the rpc_endpoint mapper plug-in), 
where the plug-in causes a DOS but it is not listed as dangerous. The 
native client denotes dangerous plug-ins with a caution triangle. NessusWX 
has no special way to notate a dangerous plug-in other then using the 
enable "Enable Non-DOS" button. One other thing to be aware of is that 
sometimes even a "non-dangerous" plug-in can crash software. Since the 
plug-ins are sending non-standard data, there is always the risk, albeit 
rare, that a new undiscovered DOS will be stumbled upon. Therefore anytime 
systems are being scanned one should be aware that system crashes, 
although unlikely, are possible even with "non-dangerous" plug-ins. Figure 
4, below, shows plug-in selection using the Unix GUI. Similarly, Figures 5 
and 6 show plug-in selection using NessusWX for Windows:

Figure 4: Enabling all but dangerous plugins with the Unix Nessus GUI
Figure 4: Enabling all but dangerous plugins with the Unix Nessus GUI

Figure 5: Selecting plug-ins with the Windows NessusWX Client
Figure 5: Selecting plug-ins with the Windows NessusWX Client

Figure 6: Enabling non-dangerous plug-ins with the Windows NessusWX Client
Figure 6: Enabling non-dangerous plug-ins with the Windows NessusWX Client

4.2 Safe-checks
This is a good place to mention the related concept of safe-checks. 
Safe-checks disables the dangerous parts of safe-check compatible plug-ins 
and causes them to check just through passive methods such as version 
numbers in banners. Since a patch or workaround may be installed, 
safe-checks are not as reliable as actually exploiting the vulnerability. 
They might cause false positives or false negatives. The valuable trade 
off is that they should not crash a machine. The safe-check option is on 
the scan options tab (the options tab in NessusWX). Figure 7 shows the 
safe-check option in the NessusWX interface:

Figure 7: Choosing Safe Checks
Figure 7: Choosing Safe Checks

The second method of plug-in organization is in families such as Windows, 
FTP SNMP, SMB, Cisco, etc. I find this to be a rather unhelpful grouping 
due to the arbitrary categorizing process. Should an FTP vulnerability 
that only exists on a Windows box go in the Windows family or the FTP 
family? Since this decision is left up to the plug-in writer with little 
guidance, there are examples of both. The filtering/search mechanism is 
very helpful to isolate certain vulnerabilities. A filter can be initiated 
on name, plug-in number, etc. Clicking on the family and then the plug-in 
will give details of what the plug-in tests for. If intricate details are 
needed, the actual NASL code at cgi.nessus.org/plugins/ can be referenced. 
Note the DOS family is not the same as the dangerous/DOS category of 
plug-ins. A dangerous/DOS category plug-in actually exploits the 
vulnerability while a plug-in in the DOS family may just check for the 
vulnerability by checking software versions, for example. To perform a 
simple noisy scan on a non-production system, enabling all plug-ins is the 
best choice. If stealth or a production system is involved, choices can 
get complicated. We will talk in-depth about plug-ins selection in a 
future article.
4.3 Port scanning
The other critical part of the scanning process is port scanning. Port 
scanning is the process by which the active ports for an IP address are 
identified. Each port is tied to a specific application. Nessus is a smart 
scanner and only runs a test if the specific program for that test is 
available. For example, only Web server plug-ins are run if a Web server 
is found. Since often ports are changed from their default to hide them, 
Nessus has a plug-in called services. The services plug-in attempts to 
identify the program running on each port. Once the program is identified, 
only the user-selected and pertinent plug-ins are run against it.

Nessus has several options to scan for ports. There is the built-in 
wrapper for NMAP, widely acknowledged as the best port scanner around. 
There is also an internal scanner and a custom ping scan. As with plug-in 
selection, port scanning is very dependent on the situation. For a simple 
scan, the internal "sync" scan using default parameters with pings 
enabled, found on the "Perf" tab of the Unix GUI and the Port scan tab of 
NessusWX, is sufficient. Figures 8 and 9, below, show the internal SYN 
scan option using NessusWX and the Unix GUI client, respectively:

Figure 8: Configuring the internal SYN scan for a simple port scan on 
NessusWX
Figure 8: Configuring the internal SYN scan for a simple port scan on 
NessusWX

Figure 9: Configuring the internal SYN scan for a simple port scan on the 
Unix Client
Figure 9: Configuring the internal SYN scan for a simple port scan on the 
Unix Client

4.3 Identify targets
The final task is to identify your targets. This is done on the targets 
tab. Targets can be specified as a single IP Address, as a subnet or as a 
range of IP addresses. I normally try to break them down into logical 
groups. It is typically easier to deal with smaller groups at one time. 
Figures 10 and 11 show how to select targets in both client environments:

Figure 10: Specifying Targets in the Unix GUI
Figure 10: Specifying Targets in the Unix GUI

Figure 11: Target Selection in NessusWX
Figure 11: Target Selection in NessusWX

4.4 Start a scan
With your Nessus client and server in hand you are ready to scan systems. 
To start a scan in the Unix GUI just click "Start Scan" at the bottom of 
the window. In NessusWX, right click the desired session and select 
Execute. Properly used, Nessus can and will pinpoint problems and provide 
solutions. However, misused it can and will crash systems, cause the loss 
of data, and possibly cost you your job. As with anything powerful, there 
comes risk and responsibilities. Scanned systems sometimes will crash. 
Don't scan any system without permission. I suggest your first scan be 
against your own isolated test system. Future articles will lead you 
thorough a scan, sort out false positives and talk about stealth and 
firewall scanning. Figures 12, 13 and 14 show a scan using NessusWX.

Figure 12: Starting a scan in NessusWX
Figure 12: Starting a scan in NessusWX

Figure 13: Starting a scan in NessusWX
Figure 13: Starting a scan in NessusWX

Figure 14: NessusWX scan in Progress
Figure 14: NessusWX scan in Progress
5.0 Conclusion
Nessus is an excellent tool that will greatly aid your ability to test and 
discover known security problems. As has been mentioned several times in 
this article, the power that Nessus gives you should be used wisely as it 
can render production systems unavailable with some of the more dangerous 
plus-ins. For more information on Nessus, visit the official Nessus site 
at www.nessus.org. Happy Scanning!

1.0 Introduction
Nessus is a great tool designed to automate the testing and discovery of 
known security problems. Typically someone, a hacker group, a security 
company, or a researcher discovers a specific way to violate the security 
of a software product. The discovery may be accidental or through directed 
research; the vulnerability, in various levels of detail, is then released 
to the security community. Nessus is designed to help identify and solve 
these known problems, before a hacker takes advantage of them. Nessus is a 
great tool with lots of capabilities. However it is fairly complex and few 
articles exist to direct the new user through the intricacies of how to 
install and use it. Thus, this article shall endeavor to cover the basics 
of Nessus setup and configuration. The features of the current versions of 
Nessus (Nessus 2.0.8a and NessusWX 1.4.4) will be discussed. Future 
articles will cover Nessus in more depth.

Nessus is a free program released under the GPL. Historically, many in the 
corporate world have ridiculed such public domain software as being a 
waste of time, instead choosing "supported" products developed by 
established companies. Typically these packages cost hundreds or thousands 
of dollars, and are often purchased using the logic that you get what you 
pay for. Some people are starting to realize that public domain software, 
such as Nessus, isn't always inferior and sometimes it is actually 
superior. Paid technical support for Nessus is even available from 
www.tenablesecurity.com. Nessus also has a great community of developers 
anchored by the primary author, Renaud Deraison. When allowed to fairly 
compete in reviews against other vulnerability scanners, Nessus has 
equaled or outshined products costing thousands of dollars. [ref: 
Information Security, Network Computing]

One of the very powerful features of Nessus is its client server 
technology. Servers can be placed at various strategic points on a network 
allowing tests to be conducted from various points of view. A central 
client or multiple distributed clients can control all the servers. The 
server portion will run on most any flavor of Unix. It even runs on MAC OS 
X and IBM/AIX, but Linux tends to make the installation simpler. These 
features provide a great deal of flexibility for the penetration tester. 
Clients are available for both Windows and Unix. The Nessus server 
performs the actual testing while the client provides configuration and 
reporting functionality.
2.0 Installation
Nessus server installation is fairly simple even for a Windows jockey like 
me. First an installed version of Unix is required. Secondly, prior 
installation of several external programs is recommended: NMAP is the 
industry standard for port scanners, Hydra is a weak password tester and 
Nikto is a cgi/.script checker. While not required, these external 
programs greatly enhance Nessus' scanning ability. They are included 
because they are the best applications in their class. If installed in the 
PATH$ before Nessus installation, they will automatically be available.

The simplest installation method is using the Lynx automatic install. Lynx 
is included on many of the linux versions. The Lynx command is (logged in 
as a user, and not root) :

lynx -source http://install.nessus.org | sh

This should install the server on most platforms with no other steps 
necessary. Note that the latest install script can also be downloaded and 
run locally. Whether you install directly off the Website or using the 
same install script offline, either way the script will setup a temporary 
suid and ask for your root password when required -- if you don't like 
this feature you can download, compile and install the four required 
tarballs individually. The above command should also be used periodically 
to upgrade Nessus as new versions are regularly released. You will be 
questioned about proxy servers, a download method (www or CVS), and the 
branch of the development tree to use; most of the time the defaults are 
the best choice. This is the simplest method of installation however; you 
are effectively giving the install.nessus.org server temporary root 
privileges. Thus there is a security risk with this method albeit a low 
one. So if you are paranoid, and paranoid is not always a bad thing in the 
security field, installation can be done the old-fashioned way by 
downloading and compiling the source. For information on performing an 
install from scratch see: www.nessus.org/nessus_2_0.html.
3.0 Setup
Once the server is installed, some basic setup steps are required. The 
first task to complete in the new install is to add a user. A new user can 
be added by the "nessus-adduser" command. The script will question you for 
the authentication method. Authentication can be performed by several 
means, however a password is the simplest and is recommended. The next 
question queries about rules to restrict the user account. When used 
across an enterprise, a user can be restricted and only allowed to scan 
specified IP addresses. However, for most uses this will be left blank, 
allowing the user to scan anything. A certificate also needs to be 
generated as well to be used to encrypt the traffic between the client and 
server. The nessus-mkcert command accomplishes this.
3.1 Update plug-ins
Before a scan is done, the plug-ins should be updated. Nessus plug-ins are 
very much like virus signatures in a common virus scanner application. 
Each plug-in is written to test for a specific vulnerability. These can be 
written to actually exploit the vulnerability or just test for known 
vulnerable software versions. Plug-ins can be written in most any language 
but usually are written in the Nessus Attack Scripting Language (NASL). 
NASL is Nessus' own language, specifically designed for vulnerability test 
writing. Each plug-in is written to test for a specific known 
vulnerability and/or industry best practices. NASL plug-ins typically test 
by sending very specific code to the target and comparing the results 
against stored vulnerable values. There are a few built-in plug-ins that 
do not use NASL. These are C and Perl scripts to perform special purposes 
that can not easily be done in NASL. Among these is the Services plug-in 
which identifies port-to-program mappings.

Plug-in updates should be done frequently. New vulnerabilities are being 
discovered and disseminated all the time. Typically after a new 
vulnerability is released to the public, someone in the Nessus community 
writes a NASL plug-in, releases it to the public and submits it to 
www.nessus.org. It is then reviewed by the developers and added to the 
approved plug-in list. For high risk, high profile vulnerabilities a 
plug-in is often released the same day the vulnerability information is 
publicly released. Updating plug-ins from the maintained list is fairly 
simple involving a simple command: nessus-update-plugins. This command 
must be done as root. By no means however, are you limited to the list of 
plug-ins from www.nessus.org. New and special purpose plug-ins can be 
written relatively easily using NASL, so you can write your own custom 
plug-ins as well.
3.2 Launch the daemon
Nessus is now installed, updated and ready to go. The simplest way to get 
the server running is (as root) issue the nessusd -D command. In order to 
use it, one must use a client. There are three primary Nessus clients. The 
native Unix GUI version is installed at server install time. 
Alternatively, Nessus can be controlled from the command line. A third 
option, a Windows version also exists called NessusWX. The binaries for 
NessusWX can be found here . The NessusWX install is a straightforward 
Windows install. All three clients work well. Personally I prefer 
NessusWX. It is better organized, allows for easier reporting, and has a 
better facility for managing different sessions (groups of hosts to scan) 
then its Unix counterparts. To run the native Unix GUI client, run the 
nessus command or for NessusWX click the eye icon after installation.
3.3 Client connection
Since Nessus is a client server technology, once running the client a 
connection must be made to the server. In the native client, enter the 
server IP, username and password (created with the nessus-adduser command) 
and hit login. The process in NessusWX is similar but uses the 
communications | connect menus. The client is connected to the server thru 
an SSL connection and a list of the currently installed plug-ins is 
downloaded. On the first run the SSL certificate is also downloaded and 
verification is requested. This verification ensures that in the future 
you are actually communicating with the server intended. Figures 1 and 2 
shows the connection using the Unix and Windows GUI tools, respectively. 
Figure 3 shows user authentication using the NessusWX client.

Figure 1: Starting the Nessus server and connecting with the Unix GUI
Figure 1: Starting the Nessus server and connecting with the Unix GUI

Figure 2: Connecting to the Nessus server with NessusWX (Windows Client)
Figure 2: Connecting to the Nessus server with NessusWX (Windows Client)

Figure 3: Enter in the server IP and the login and password setup with 
nessus_adduser
Figure 3: Enter in the server IP and the login and password setup with 
nessus_adduser

4.0 Using Nessus
Now that we have installed and connected to Nessus lets explore some of 
the options available. The most obvious and powerful aspect of Nessus is 
its plug-in feature. The choice of plug-ins is critical to the success of 
a scan. Most plug-ins are written very well and rarely trigger false 
positives or negatives; however, a few are not. One example of a poorly 
written plug-in is the test for the classic Windows IIS hack RFP's MSDAC 
/RDS vulnerability. Rain Forest Puppy (RFP) publicized this vulnerability 
in 1999. The vulnerability makes use of the %system%/msadc/msadcs.dll file 
and leads to total system compromise on un-patched IIS 4.0 servers. The 
problem is that the Nessus plug-in only tests for the existence of the 
/msadc/msadcs.dll file. It does not take into account patches, windows 
versions etc. Thus with this plug-in enabled, a false positive will show 
up on many IIS servers and must be sorted out manually.

Before anyone yells out, "see the problems of public domain software," one 
should note that the same types of problems exist with the high priced 
"supported" vulnerability scanners as well. This problem is a result of 
the current state of the technology. The difference is that typically in 
purchased products you cannot easily examine the exact "proprietary" 
testing methodology as can be done with Nessus, thus making resolution of 
the false positive difficult.
4.1 Choosing dangerous/non-dangerous plug-ins
Plug-ins are categorized in several different and sometimes confusing 
ways. One method of plug-in grouping is by category. Most importantly, 
some plug-ins are categorized as Dangerous/Denial of Service (DOS). These 
plug-ins will actually perform a DOS attack and crash systems that have 
these particular problems. Needless to say these should not be blindly run 
on production systems. They won't cause long term damage, but at least a 
reboot will be required. In both clients, there are buttons to "Enable all 
plug-ins" or just "Enable all but dangerous plug-ins" (called "Enable 
Non-DOS" in NessusWX). Note that the author of the plug-in decides if it 
is dangerous or not. Most of the time, this has been very well chosen. 
However there are instances (Exmple: the rpc_endpoint mapper plug-in), 
where the plug-in causes a DOS but it is not listed as dangerous. The 
native client denotes dangerous plug-ins with a caution triangle. NessusWX 
has no special way to notate a dangerous plug-in other then using the 
enable "Enable Non-DOS" button. One other thing to be aware of is that 
sometimes even a "non-dangerous" plug-in can crash software. Since the 
plug-ins are sending non-standard data, there is always the risk, albeit 
rare, that a new undiscovered DOS will be stumbled upon. Therefore anytime 
systems are being scanned one should be aware that system crashes, 
although unlikely, are possible even with "non-dangerous" plug-ins. Figure 
4, below, shows plug-in selection using the Unix GUI. Similarly, Figures 5 
and 6 show plug-in selection using NessusWX for Windows:

Figure 4: Enabling all but dangerous plugins with the Unix Nessus GUI
Figure 4: Enabling all but dangerous plugins with the Unix Nessus GUI

Figure 5: Selecting plug-ins with the Windows NessusWX Client
Figure 5: Selecting plug-ins with the Windows NessusWX Client

Figure 6: Enabling non-dangerous plug-ins with the Windows NessusWX Client
Figure 6: Enabling non-dangerous plug-ins with the Windows NessusWX Client

4.2 Safe-checks
This is a good place to mention the related concept of safe-checks. 
Safe-checks disables the dangerous parts of safe-check compatible plug-ins 
and causes them to check just through passive methods such as version 
numbers in banners. Since a patch or workaround may be installed, 
safe-checks are not as reliable as actually exploiting the vulnerability. 
They might cause false positives or false negatives. The valuable trade 
off is that they should not crash a machine. The safe-check option is on 
the scan options tab (the options tab in NessusWX). Figure 7 shows the 
safe-check option in the NessusWX interface:

Figure 7: Choosing Safe Checks
Figure 7: Choosing Safe Checks

The second method of plug-in organization is in families such as Windows, 
FTP SNMP, SMB, Cisco, etc. I find this to be a rather unhelpful grouping 
due to the arbitrary categorizing process. Should an FTP vulnerability 
that only exists on a Windows box go in the Windows family or the FTP 
family? Since this decision is left up to the plug-in writer with little 
guidance, there are examples of both. The filtering/search mechanism is 
very helpful to isolate certain vulnerabilities. A filter can be initiated 
on name, plug-in number, etc. Clicking on the family and then the plug-in 
will give details of what the plug-in tests for. If intricate details are 
needed, the actual NASL code at cgi.nessus.org/plugins/ can be referenced. 
Note the DOS family is not the same as the dangerous/DOS category of 
plug-ins. A dangerous/DOS category plug-in actually exploits the 
vulnerability while a plug-in in the DOS family may just check for the 
vulnerability by checking software versions, for example. To perform a 
simple noisy scan on a non-production system, enabling all plug-ins is the 
best choice. If stealth or a production system is involved, choices can 
get complicated. We will talk in-depth about plug-ins selection in a 
future article.
4.3 Port scanning
The other critical part of the scanning process is port scanning. Port 
scanning is the process by which the active ports for an IP address are 
identified. Each port is tied to a specific application. Nessus is a smart 
scanner and only runs a test if the specific program for that test is 
available. For example, only Web server plug-ins are run if a Web server 
is found. Since often ports are changed from their default to hide them, 
Nessus has a plug-in called services. The services plug-in attempts to 
identify the program running on each port. Once the program is identified, 
only the user-selected and pertinent plug-ins are run against it.

Nessus has several options to scan for ports. There is the built-in 
wrapper for NMAP, widely acknowledged as the best port scanner around. 
There is also an internal scanner and a custom ping scan. As with plug-in 
selection, port scanning is very dependent on the situation. For a simple 
scan, the internal "sync" scan using default parameters with pings 
enabled, found on the "Perf" tab of the Unix GUI and the Port scan tab of 
NessusWX, is sufficient. Figures 8 and 9, below, show the internal SYN 
scan option using NessusWX and the Unix GUI client, respectively:

Figure 8: Configuring the internal SYN scan for a simple port scan on 
NessusWX
Figure 8: Configuring the internal SYN scan for a simple port scan on 
NessusWX

Figure 9: Configuring the internal SYN scan for a simple port scan on the 
Unix Client
Figure 9: Configuring the internal SYN scan for a simple port scan on the 
Unix Client

4.3 Identify targets
The final task is to identify your targets. This is done on the targets 
tab. Targets can be specified as a single IP Address, as a subnet or as a 
range of IP addresses. I normally try to break them down into logical 
groups. It is typically easier to deal with smaller groups at one time. 
Figures 10 and 11 show how to select targets in both client environments:

Figure 10: Specifying Targets in the Unix GUI
Figure 10: Specifying Targets in the Unix GUI

Figure 11: Target Selection in NessusWX
Figure 11: Target Selection in NessusWX

4.4 Start a scan
With your Nessus client and server in hand you are ready to scan systems. 
To start a scan in the Unix GUI just click "Start Scan" at the bottom of 
the window. In NessusWX, right click the desired session and select 
Execute. Properly used, Nessus can and will pinpoint problems and provide 
solutions. However, misused it can and will crash systems, cause the loss 
of data, and possibly cost you your job. As with anything powerful, there 
comes risk and responsibilities. Scanned systems sometimes will crash. 
Don't scan any system without permission. I suggest your first scan be 
against your own isolated test system. Future articles will lead you 
thorough a scan, sort out false positives and talk about stealth and 
firewall scanning. Figures 12, 13 and 14 show a scan using NessusWX.

Figure 12: Starting a scan in NessusWX
Figure 12: Starting a scan in NessusWX

Figure 13: Starting a scan in NessusWX
Figure 13: Starting a scan in NessusWX

Figure 14: NessusWX scan in Progress
Figure 14: NessusWX scan in Progress
5.0 Conclusion
Nessus is an excellent tool that will greatly aid your ability to test and 
discover known security problems. As has been mentioned several times in 
this article, the power that Nessus gives you should be used wisely as it 
can render production systems unavailable with some of the more dangerous 
plus-ins. For more information on Nessus, visit the official Nessus site 
at www.nessus.org. Happy Scanning!

*----------------------------------------------------------*
   Kayven Riese, BSCS, MS (Physiology and Biophysics)
   (415) 902 5513 cellular
   http://kayve.net
   Webmaster http://ChessYoga.org
*----------------------------------------------------------*



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.SOC.4.64.0805212113310.12748>