我正在尝试使用脚本让我访问localhost中的nessus的预先扫描选项。所以我希望通过没有GUI的shell脚本进行高级扫描操作。我希望所有操作,如登录,高级扫描和导出报告都是通过shell脚本执行的,无需GUI访问。
答案 0 :(得分:1)
为什么要用bash脚本来做? 使用nessus API可以更轻松地完成这项工作。 看看下面的链接 https://github.com/jfalken/nessus_enterprise_rest_client
答案 1 :(得分:0)
在nessus中进行自动化的最简单方法是使用nessus API。
位于https://NessusServerIP:8834/ - 如果您访问它,将会受到API文档的欢迎。
有各种API实现可用 - 如果您使用谷歌'Nessus API客户端',您将获得一瞥。
如果你正如你所说的那样,想要运行bash-skripts而不是最简单的方法可能是使用CURL来获取API请求。
典型的工作流程如下所示:
CURL#1 (使用令牌授权):
curl -X POST --data '{"username":"NessusUser","password":"YourPassword"}' -k "https://NessusServerIp:8834/session"
--header "Content-Type:application/json" | python -m json.tool
..这会让你跟随JSON产生你需要的其他API调用的令牌:
{“token”:“e411e443521adee4496d79823a510cc68c5bf05aeda6e6eb”}
CURL#2(启动扫描):
curl -X POST -H 'X-Cookie: token=e411e443521adee4496d79823a510cc68c5bf05aeda6e6eb' -H 'Content-Type:application/json'
--data '{"scan_id":"21", "alt_targets":[127.0.0.1]}'
-k "https://NessusServerIp:8834/scans/21/launch" | python -m json.tool
...将使用这样的JSON回答,其中包含刚刚启动扫描的ID:
{ “scan_uuid”: “c1c30d8f-5f79-2e4b-2d03-05b8b3c595f1e768e03195abdfa2”}
CURL#3(导出扫描):
curl -X POST -H 'X-Cookie: token=766ef7a2302780c189ba563b89c5eb3706140c0ef1e4de8b' -H
'Content-Type:application/json' --data '{"scan_id":"33", "format":"html"}' -k
"https://NessusServerIP:8834/scans/33/export" | python -m json.tool
...将产生此JSON响应,包含导出文件和file_id的标记: { “标记”: “3e13ab381c480caa1e377411c0b561970c46e5d78894c5a0cb2be0e7f00fefe0”, “文件”:1434780027}
...现在我们准备下载报告了。在这种情况下,因为我在最后一次调用中指定了“format:html”,它的.html你需要将结果保存到。
卷曲#4(下载导出的报告):
curl -X GET -H 'X-Cookie: token=7d155aef4359d02addea29d8d56bca4a5045ca61efeb38ee' -H 'Content-Type:application/json'
--data '{"scan_id":"21", "alt_targets":127.0.0.1}'
-k "https://NessusServerIP:8834/scans/17/export/945237343/download" > report.html
...应该在您启动脚本的文件夹中留下一个report.html。
现在......你如何实现自动化?好吧写一个Bash-Skript,输入这个电话,解析答案,提取你需要的信息 - 然后享受! :)
ps:我使用python -m json.tool
来美化CURL的非常漂亮的输出。
希望我有所帮助, Gewure