帮朋友写一个nmap端口扫描然后与上次扫描进行对比的工具,与crontab结合定期扫描,保存对比数据。
google搜索了一下相关的模块,在freebuf上看到有人分享过一个libnmap模块,看了一下他的官方文档,介绍的不多,但是很贴心的有demo代码,测试了一下,只要简单改改就可以完成一个我们想要的工具。
工具说明:
0)环境:Linux+python+nmap(kali) 1)默认targets.txt里面是扫描目标,或使用-t参数自定义扫描文件。 2)db.db是扫描结果文件,采用sqlite(不需要安装环境),存放扫描主机、解析后的扫描结果、原始xml、与上次扫描结果对比的差异数据、最后更新时间。 3)log.log是程序日志,如果出错可以查看日志。 4)libnmap不需要安装,我将他的代码拷贝出来放到跟主程序同一目录即可。
演示:
帮助:
扫描时会有进度比例,扫描完成后会与上一次的结果数据进行对比,[+]表示新增数据,[-]表示减少数据,[~]表示更改数据,最后会展示本次扫描结果解析后的数据。
结果会保存到sqlite中,保存的内容其实就是上面展示的内容。
写的时间非常短,当作学习和实践libnmap模块了,有需要的朋友可以拿去根据自己的需要改改。