如何使端口在每次使用 nmap 扫描时显示为打开状态,无论其打开/关闭状态如何?

如何使端口在每次使用 nmap 扫描时显示为打开状态,无论其打开/关闭状态如何?

要使外部nmap扫描无法检测到一个开放端口,使所有其他扫描端口显示为打开状态似乎比尝试使该端口显示为关闭状态更容易。

如何按顺序配置我的系统,以便发现所有外部扫描端口均nmap处于打开状态?

例如,扫描 1000 个端口时,无论我真正打开的端口是什么,外部扫描仪都会将所有 1000 个端口视为打开。

答案1

为此,您实际上需要一个侦听这些端口的程序,无论它如何处理传入的数据(可能回显它或丢弃它)。

您可以使用 netcat 作为一个非常简单的“服务器”来侦听您指定的任何端口,但是每个端口需要一个 netcat 实例,如果您想覆盖所有 2^16 个可能的端口,这可能会非常昂贵:

netcat -lp <port> </dev/null >/dev/null 2>&1

这将启动一个 netcat 来侦听指定的<port>,这将丢弃所有传入流量 - 但永远不会自行终止连接。将标志添加-z到命令中以立即终止任何连接。查看netcat --helpinfo netcat了解更多选项。

一个可能的替代方案是一个简单的 C 程序,它将迭代您想要覆盖的所有端口,在其上打开一个侦听套接字,并在连接进入后对它们执行您想要的任何操作;但是,由于我现在不熟悉套接字编程,因此我无法为您提供更具体的示例或源代码。如果您对此解决方案感兴趣,请查看第 2 节中的手册页socketbindlistenaccept,它们已经提供了一些您可以使用的示例。

相关内容