Net :: Nessus :: REST使用API​​密钥与会话令牌

时间:2017-02-21 01:33:28

标签: perl api nessus

我有一个使用Net :: Nessus :: REST模块的perl脚本。目前我正在使用:

$nessus->create_session(
    username => $NESSUSUSER,
    password => $NESSUSPASSWORD
);

这段代码创建会话令牌。只要我的扫描在30分钟内完成,这就很有效。 30分钟后,会话令牌到期,我收到此错误消息。

服务器错误:nessus.pl第68行的证书无效

除非有人知道将超时设置为86400秒的方法,否则我想使用我生成的API访问/密钥。我遇到的唯一问题是我找不到如何使用Net :: Nessus :: REST模块使用一些perl脚本列出这个的示例。有人可以帮助我使用我可以为上面的create_session示例交换的代码API Key吗?

谢谢,

1 个答案:

答案 0 :(得分:1)

这真的很简单;你必须包括一个Http-Header" X-ApiKeys"在每个请求中:

Java:

con.setRequestProperty("X-ApiKeys", "accessKey="+YourAccKey+";secretKey="+YourSecKey+";");

卷曲:

curl -X POST -H 'X-ApiKeys: accessKey=YOURKEY;secretKey=YOURSECRET' -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

..这将完成所有的魔力。

有关更多信息,请查看API-Docu [ - > https://YourNessusIP:8834/api#/authorization]:

API密钥 这些密钥是通过Nessus.session:keys或Nessus.users:密钥为每个帐户生成的,可用于在不创建会话的情况下进行身份验证。 使用以下HTTP标头将它们添加到您的请求中:

X-ApiKeys: accessKey={accessKey}; secretKey={secretKey};

示例:

curl -H "X-ApiKeys: accessKey={accessKey}; secretKey={secretKey}" https://{nessus-host}/scans *