如何通过shell脚本访问整个nessus

时间:2017-05-18 05:27:53

标签: bash shell nessus

我正在尝试使用脚本让我访问localhost中的nessus的预先扫描选项。所以我希望通过没有GUI的shell脚本进行高级扫描操作。我希望所有操作,如登录,高级扫描和导出报告都是通过shell脚本执行的,无需GUI访问。

2 个答案:

答案 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请求。

典型的工作流程如下所示:

  1. 授权自己使用NessusAPI(通过TOKEN或API-Key)
  2. 启动或配置扫描(并等到完成)
  3. 导出报告(并等到报告完成)
  4. 下载导出的报告
  5. 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