nmap 跳过端口扫描但执行--script?

Posted

技术标签:

【中文标题】nmap 跳过端口扫描但执行--script?【英文标题】:nmap skip port scan but execute --script? 【发布时间】:2014-11-06 04:30:28 【问题描述】:

我正在尝试将 nmap 与可用于正常扫描的脚本一起使用。但是在执行nmap -sn --script=... 时,它只会找到主机(目标)并停止。

使用脚本扫描目标但不进行端口扫描的命令是什么?

【问题讨论】:

【参考方案1】:

NSE (Nmap Scripting Engine) 脚本旨在根据脚本中定义的四个函数(称为Rules)中的至少一个的返回值运行:

prerule() - 此函数在整个扫描开始时运行一次。如果返回 true,则调用 action 函数,不带任何参数。 portrule(host, port) - 此函数对每台主机上的每个开放端口运行一次。如果返回 true,则为该主机和端口组合运行 action(host, port) 函数。 hostrule(host) - 这个函数对每个被发现的主机运行一次。如果返回 true,则为该主机运行 action(host) 函数。 postrule() - 此函数的工作原理与 prerule 相同,但在扫描完所有主机后运行。

因此,当您使用-sn(“跳过端口扫描”)进行扫描时,portrule 脚本根本不会运行,因为“没有打开的端口”。进行有针对性的脚本扫描的最佳方法是确定相关端口是什么,并使用-p 指定它们。例如,如果我想在不进行全端口扫描的情况下运行 ssh-hostkey,我会这样做:nmap -p 22 --script ssh-hostkey <targets>

【讨论】:

这听起来像是一个设计缺陷。 是的,我认为应该提供一个选项,只运行脚本而不进行端口扫描。

以上是关于nmap 跳过端口扫描但执行--script?的主要内容,如果未能解决你的问题,请参考以下文章

端口检测(检测已开启的端口)!

hacknos靶机实战

如何使用Nmap进行端口扫描什么是端口扫描?

NMAP为什么扫描不到端口

关于nmap扫描端口

Nmap端口扫描服务记录