Hi,

I have a question regarding the use of Nessus for patch checking on Windows 
64bit systems with credentials. Having tried this I've discovered that Nessus 
does an architecture check to determine if the target systems are 32bit and 
silently fails to run any of the patch checking plugins if the architecture is 
not x86. (Note: The Nessus scanner is not being run from the target).

The architecture check happens on lines 261-279 in smb_hotfixes.nasl:

        # Make sure it is a 32bits system
        arch = '';

        key_h = RegOpenKey(handle:handle, 
key:"SYSTEM\CurrentControlSet\Control\Session Manager\Environment", 
mode:MAXIMUM_ALLOWED);
        if (!isnull(key_h))
        {
         item = RegQueryValue(handle:key_h, item:"PROCESSOR_ARCHITECTURE");
         if (!isnull(item))
           arch = item[1];

         RegCloseKey(handle:key_h);
        }

        if ("x86" >!< arch && vers !~ "^[6-9]\." )
        {
         RegCloseKey(handle:handle);
         NetUseDel();
         exit(1);
        }

And the remaining patch checking plugins all fail to run with the following 
message:

        Not launching smb_nt_ms05-040.nasl against 207.169.232.113 because the 
key SMB/Registry/Enumerated is missing (this is not an error)

On disabling the architecture check everything appears to work fine.

My question(s) is this:

What code is the architecture test protecting? 
Is there something used by the patch checking plugins that does not run 
correctly or gives incorrect responses if run against a 64bit system?

Can Nessus be safe and reliable when used for patch checking against 64bit 
Windows targets?

Any response gratefully received,

Regards,

Ian
_______________________________________________
Nessus mailing list
[email protected]
http://mail.nessus.org/mailman/listinfo/nessus

Reply via email to