Nessus Rest API的Python客户端

python-nessus-client的Python项目详细描述


用于Nessus 5.0 REST API的python客户端。

Nessus是Tenable Network Security开发的一款专有综合漏洞扫描程序。 在非企业环境中供个人使用是免费的。

文档

文档可在http://python-nessus-client.readthedocs.org和^{tt1}上联机获得。$ 目录。

安装

使用pip安装

pip install python-nessus-client

示例

rest资源被转换为方法。

例如:

ResourceMethod
^{tt2}$^{tt3}$
^{tt4}$^{tt5}$

等等…

要获取用户列表https://nessus.example.com:8834/users/list,我们调用Users类上的list()方法

>>>fromnessusimportAPI>>>nessus=API('https://127.0.0.1:8834',username='user',password='pass')>>>printnessus.users.list()[{"admin":"TRUE","name":"test","lastlogin":1416492416}]

获取服务器安全设置列表https://nessus.example.com:8834/server/securesettings/list 我们对Server类调用securesettings()方法

>>>fromnessusimportAPI>>>nessus=API('https://127.0.0.1:8834',username='user',password='pass')>>>printnessus.server.securesettings(){"proxysettings":{"proxy_password":null,"proxy_port":"8080","custom_host":null,"proxy_username":null,"user_agent":null,"proxy":"10.0.0.1"}}

设置服务器安全设置https://nessus.example.com:8834/server/securesettings 我们对Server类使用相同的securesettings()方法,但是我们通过了 作为要设置的参数设置。

>>>fromnessusimportAPI>>>nessus=API('https://127.0.0.1:8834',username='user',password='pass')>>>nessus.server.securesettings(proxy_port='8081')>>>printnessus.server.securesettings(){"proxysettings":{"proxy_password":null,"proxy_port":"8081","custom_host":null,"proxy_username":null,"user_agent":null,"proxy":"10.0.0.1"}}

更多的例子可以在下面的小节和类内文档中找到。

认证用户

登录Nessus服务器

>>>fromnessusimportAPI>>>nessus=API('https://127.0.0.1:8834',username='user',password='pass')

响应是python结构

我们可以表现得像和dict一起工作一样。

获取配置值

>>>printnessus.server.securesettings()['proxysettings']['proxy_port']8080

从报表列表中的第二项获取名称获取指定报表中包含的主机列表

>>>second_host=nessus.report.list()[1]['name']>>>printnessus.report.hosts(second_host){"scanprogresscurrent":"0","scanprogresstotal":"100",(...)}

使输出更可读

# before>>>printnessus.server.securesettings(){u'proxysettings':{u'proxy_password':None,u'proxy_port':u'8080',(...)# after>>>importjson>>>data=nessus.server.securesettings()>>>json.dumps(data,indent=2){"proxysettings":{"proxy_password":null,"proxy_port":"8080","custom_host":null,"proxy_username":null,"user_agent":null,"proxy":"10.0.0.1"}}

检查报告是否有审计跟踪

>>>nessus.report.has_audit_trail(name)True>>>ifnessus.report.has_audit_trail(name):>>>print'Report {} has audit trail'.format(name)Report95c309f8-2578-fd3e-9e4d-a8aa6d6511e8b617b5a088c93309hasaudittrail

创建新扫描

# make list with hosts>>>target=['localhost','example.com']>>>nessus.scan.new(target,'test','-37')

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我在SearchView谷歌地图中遇到问题   java Oracle将空字符串转换为null,但JPA不会相应地更新实体缓存   javascript Webview未显示该页面   java无法解析“JSONObject”中的方法“toMap”   Web服务的简单java客户端代码与QName有关吗?   跨不同测试类共享TestNG设置Selenium Java   java如何将Spring OAuth2服务器集成到Liferay中   java无法解析导入sun   使用1个变量的java Fibonacci   java如何从活动中调用片段活动?   html Java/HtmlUnit如何从HtmlImageInput获取HtmlImage?   JavaGoogleMapsAPIv2显示空白地图   Java:printstream输出奇怪,为什么toString不转换?   linux为什么有时候JVM会被卡住几秒钟,然后在java中再次恢复?   Java在流中丢失国际字符   java More Mockito返回\u DEEP\u STUBS悲哀   java有没有办法仅从jdbc数据库url恢复数据库(.db或.mdb文件)?   java ArrayList removeAll()不删除对象