python nmap库使您能够启动异步nmap任务,解析和比较/diff扫描结果
python-libnmap的Python项目详细描述
用例
libnmap是一个python库,使python开发人员能够操作nmap进程和数据。
如果您需要实现以下功能,则需要libnmap:
- 定期自动或安排nmap扫描
- 操作nmap扫描结果进行报告
- 比较和区分nmap扫描以生成图形
- 批处理扫描报告
- …
在libnmap模块的帮助下,上述用例将易于实现。
libnmap模块
lib当前提供以下模块:
- process:使您能够启动nmap扫描
- parse:使您能够解析来自文件、字符串、… 的nmap报告或扫描结果(目前仅限于xml)。
- report:允许您以json格式操作已分析的扫描结果和反/序列化扫描结果
- diff:使您能够查看两次扫描之间的变化
- common:包含基本的nmap对象,如nmaphost和nmapservice。需要注意的是,每个对象都可以与另一个类似的对象“diff()ed”。
- plugins:使您能够直接在“nmapreport”对象中支持扫描结果的数据存储。来自报表模块:
- mongodb: insert/get/getAll/delete
- sqlalchemy: insert/get/getAll/delete
- aws s3: insert/get/getAll/delete (not supported for python3 since boto is not supporting py3)
- csv: todo (easy to implement)
- elastic search: todo
文档
所有文档都可以在read the docs上找到。此文档包含可直接重用的小代码示例。
依赖关系
默认情况下,libnmap没有依赖项。
如果您希望使用libnmap通过libnmap的独立插件在一个特殊的数据存储上存储报告,那么您将需要安装的唯一附加python模块就要取决于您是否希望使用libnmap。
在可选依赖项列表下面:
- sqlalchemy(驱动程序ie:mysql python)
- pymongo
- boto
python支持
libnmap代码通过以下python解释器进行测试:
- Python2.6
- python 2.7版
- Python3.3
- Python3.4
安装
您可以通过pip安装libnmap:
pip install python-libnmap
或通过Git:
$ git clone https://github.com/savon-noir/python-libnmap.git $ cd python-libnmap $ python setup.py install
示例
有些代码示例可以在examples目录或documentation中找到。
在其他示例中,您注意到一个示例代码在ElasticSearch实例中推送了NMAP扫描报告,并允许您在Kibana中创建精美的仪表板,如下面的屏幕截图所示:
贡献者
mike@bmx0r boutillier,用于s3和sqlalechome插件以及建设性的批评者。谢谢!