nmap匹配三个端口
Nmap match three ports
我正在尝试为 nmap 创建一个脚本,它只在打开三个端口时执行它的操作。
最终结果是,如果端口 515、631 和 9100 对 tcp 流量开放,脚本应该打印一条消息(首先,稍后它应该进行 os 检测)。
到目前为止我的脚本:
function portrule(host,port)
return port.state == 'open' and
port.protocol == 'tcp' and
515 <= port.number and
631 <= port.number and
9100 <= port.number
end
action = function(host, port)
return "hello"
end
但这将在命中 9100 后对所有端口执行。
欢迎任何帮助!
NSE脚本根据a rule function匹配,有四种不同类型。您正在使用 portrule
,它测试主机上的 each 端口。既然你想测试主机上的 多个 端口,你应该使用 hostrule
来代替。
hostrule
是在知道所有端口的状态后进行测试。您可以使用 nmap.get_ports
function like nfs-ls
does, or you can check individual ports using the nmap.get_port_state
function like the nbstat
脚本检查所有这些端口的状态。实际上,nbstat
看起来正是您想要做的事情的一个很好的例子。
我正在尝试为 nmap 创建一个脚本,它只在打开三个端口时执行它的操作。
最终结果是,如果端口 515、631 和 9100 对 tcp 流量开放,脚本应该打印一条消息(首先,稍后它应该进行 os 检测)。
到目前为止我的脚本:
function portrule(host,port)
return port.state == 'open' and
port.protocol == 'tcp' and
515 <= port.number and
631 <= port.number and
9100 <= port.number
end
action = function(host, port)
return "hello"
end
但这将在命中 9100 后对所有端口执行。
欢迎任何帮助!
NSE脚本根据a rule function匹配,有四种不同类型。您正在使用 portrule
,它测试主机上的 each 端口。既然你想测试主机上的 多个 端口,你应该使用 hostrule
来代替。
hostrule
是在知道所有端口的状态后进行测试。您可以使用 nmap.get_ports
function like nfs-ls
does, or you can check individual ports using the nmap.get_port_state
function like the nbstat
脚本检查所有这些端口的状态。实际上,nbstat
看起来正是您想要做的事情的一个很好的例子。