我正在尝试获取Nmap NSE脚本的输出以正确输出到我的终端。我正在使用libnmap模块,并且已经阅读了一些示例以及文档,所以我不确定哪里出了问题。

from libnmap.parser import NmapParser

p = NmapParser.parse_fromfile("test.xml")
for host in p.hosts:
    for service in host.services:
        for script_out in service.scripts_results:
            print "Output of {0}: {1}".format(script_out['id'], script_out['output']


当我运行上面的脚本时,没有任何输出。如果我可以使上述脚本的逻辑正常工作,那么我可能可以在主脚本中使它正常工作。

我在终端中运行了nmap扫描以测试脚本。 nmap -sV --script dns-brute.nse -oX test.xml google.com

最佳答案

我陷入了同一个问题,在检查了源代码和xml文件之后,您会注意到,尽管脚本扫描了在xml文件上运行脚本的主机,但是元素Hostscript使得其他脚本午餐了(例如:ftp-anon)

好尝试一下,它应该工作



from libnmap.parser import NmapParser

p = NmapParser.parse_fromfile("test.xml")
for host in p.hosts:

  for script_out in host.scripts_results:
    print "Output of {0}: {1}".format(script_out['id'],script_out['output']
       

07-28 02:56