我有一个使用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吗?
谢谢,
答案 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
*