我正在尝试编写一个脚本来让我访问 localhost 中 nessus 的高级扫描选项。所以我想通过没有GUI的shell脚本进行提前扫描操作。我希望所有操作,如登录、提前扫描和导出报告都通过 shell 脚本执行,无需 GUI 访问。
2 回答
为什么要用 bash 脚本来做呢?您可以使用 nessus API 更轻松地完成此操作。看看下面的链接 https://github.com/jfalken/nessus_enterprise_rest_client
在 nessus 中进行自动化的最简单方法是使用 nessus API。
它位于https://NessusServerIP:8834/ - 如果您访问它,API 文档会向您致意。
有各种可用的 API 实现——如果你用谷歌搜索“Nessus API 客户端”,你会一瞥。
如您所说,如果您想要运行 bash-skripts,那么最简单的方法可能是对 API-Requests 使用 CURL。
典型的工作流程如下所示:
- 授权 NessusAPI(通过 TOKEN 或 API-Key)
- 启动或配置扫描(并等待它完成)
- 导出报告(并等到它完成)
- 下载导出的报告
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 调用所需的令牌:
{“令牌”:“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: {"token":"3e13ab381c480caa1e377411c0b561970c46e5d78894c5a0cb2be0e7f00fefe0","file":1434780027}
...所以现在我们可以下载报告了。在这种情况下,由于我在上次调用中指定了“格式:html”,它是一个 .html,您需要将结果保存到其中。
Curl #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