我正在测试 Tenable 的 Nessus 扫描仪以及 eEye 的 Retina 来扫描网络设备。我试图提供凭证以获得更深入、更准确的结果,但无论我是否提供凭证,结果似乎都没有区别。我已阅读文档,似乎已尝试了凭证选项中的所有逻辑设置。我已提交设备上许多不同帐户和帐户类型(SSH 凭证和 Web 应用程序凭证)的用户名和密码以及它们各自的域名(如果适用)。
是否有可能对任一(或两者)扫描仪进行良好的测试,以判断这些凭证在哪里提供(如果有的话)以及其中是否有人成功获得身份验证?
答案1
如果您正在扫描某些 Windows 系统,您可以检查安全事件日志以查看扫描仪的身份验证尝试是否有效。如果扫描仪的连接尝试通过了身份验证,则扫描仪具有凭据提供的访问权限,现在扫描仪是否正确配置为“更深入地扫描”是另一个问题。
答案2
尝试调试自动化系统中的身份验证问题当然会很棘手。虽然身份验证不是第一的扫描器尝试执行的操作,在扫描过程的早期阶段还处于相当早期的阶段。系统所做的是启动端口扫描,查看一些最常见的端口,如果远程身份验证端口已打开,它将尝试进行身份验证并运行凭证检查。在 Windows 上,这将是 TCP 端口 445,在 Linux/Unix 上,这将是 TCP 端口 22。
这种身份验证可能会出现很多问题,因此我将尝试以下步骤:
- 您是否正在验证身份但无法运行远程检查?使用高级过滤系统并查找 PluginID 21745。这是一种元插件,用于测试扫描仪是否无法验证身份。如果此插件在您的报告中,则表示验证失败。这是一种很好的、快速的方法来证明我们最初的假设,即我们无法验证身份。
- 您的扫描策略是否包括任何本地检查?从 Web 界面打开您正在使用的策略,选择“插件”选项卡,然后添加过滤器“插件类型 -> 等于 -> 本地”。
- 检查扫描报告,确保端口 22 被列为开放。如果没有,则需要检查主机的防火墙设置,并且可能需要
/etc/ssh/sshd_config
。 - 检查用户本身是否可以登录远程主机。从 Nessus 扫描器尝试查看您是否可以实际进行身份验证。如果您的用户名和密码仍然不起作用,则系统管理员需要介入以修复远程主机上的用户。
ssh [email protected]
- 远程主机是否需要基于密钥的身份验证而不是密码?如果是这样,那么请确保公钥已正确放入
authorized_key
远程主机上的文件中。请记住,公钥必须每个条目只有一行(小心不要通过复制/粘贴引入新行),并且文件.ssh
夹的权限要足够严格。 - 查看您的扫描配置文件。如果您从另一台扫描仪复制了此配置文件,或者将其创建为现有配置文件的副本,则保存的密码可能未随附。请再次导入它们。
- 如果所有这些都失败了,我会尝试联系支持人员。由于您为 ProfessionalFeed 付费(并且根据常见问题解答中的假设,否则您将违反许可证),您可以在获得激活密钥的同一位置提交工单。
尽管如此,我不能说我已经曾经尝试使用密码验证来进行 Linux/Unix 凭证检查。系统可能很容易假设公钥/私钥对。