我对服务器进行了黑盒测试,发现有一堆监听端口。我需要确定这些端口用于哪些服务/协议。
到目前为止,我尝试的是使用 Armitage(据我了解,它针对常用端口运行一些 Metasploit 发现模块,例如用于 http 的端口 80)并且它设法确定了几个开放端口的用途.
但是,还有很多未知的端口。
那么,我还能做些什么来发现哪些应用程序(服务/协议)在其余端口上运行?
我对服务器进行了黑盒测试,发现有一堆监听端口。我需要确定这些端口用于哪些服务/协议。
到目前为止,我尝试的是使用 Armitage(据我了解,它针对常用端口运行一些 Metasploit 发现模块,例如用于 http 的端口 80)并且它设法确定了几个开放端口的用途.
但是,还有很多未知的端口。
那么,我还能做些什么来发现哪些应用程序(服务/协议)在其余端口上运行?
简短的回答是您需要与端口交谈以查看谁回答。有两件事可以由此而来:
问题是横幅可能会被伪造,因此您需要一个工具来分析流量以获得准确的图片。
工具:
Metasploit 有很长的服务扫描器列表,但它们最好补充更直接的服务分析。我强烈建议您离开 Armitage,直到您对上述工具和 msfconsole 有更多经验。然后,Armitage 可以提高您的工作效率。
其他方法:
更有效的方法是询问目标操作系统正在运行什么。如果您可以查询 SNMP,您可能会得到一个服务和端口列表。如果您具有 shell 访问权限,则可以运行命令来列出正在运行的服务。
专业提示:
请注意,您使用的工具不是简单地在常用服务表中查找端口号。在非标准端口上运行服务很容易。此外,请确保扫描 TCP 和 UDP 中的整个 65,535 端口范围。包括 nmap 在内的一些工具仅通过检查最常用的端口号来提高性能,这意味着它们可能会错过在非标准端口上运行的常用服务(例如,端口 8022 上的 ssh)。警告:UDP 扫描可能需要很长时间。
地图。
nmap 可以使用返回的数据包标头等信息来测试特定端口上正在运行哪些服务。
nmap 使用自己的通用端口和服务库,其中涵盖了许多最常见且有时不那么常见的服务。当然,可能有一些服务nmap不能识别,但是如果你知道确切的服务,你可以通过提交指纹信息来解决这个问题。
-sS 选项等基本扫描技术只会显示打开的端口。但是,nmap 可以通过指定不同的标志来发现更多信息,例如 -sV 用于版本扫描或 -sC 用于 nmap 脚本引擎。