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资源被转换为方法。
例如:
Resource | Method |
---|---|
^{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')