0

我有一个使用 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 密钥吗?

谢谢,

4

1 回答 1

2

这真的很简单;您必须在每个请求中包含一个 Http-Header “X-ApiKeys”:

爪哇:

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:keys 为每个帐户生成的,可用于在不创建会话的情况下进行身份验证。使用以下 HTTP 标头将它们添加到您的请求中:

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

例子:

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

于 2017-08-07T09:43:02.943 回答