菜鸟科技网

nessus命令如何使用?有哪些常用参数?

Nessus 是一款广泛使用的漏洞扫描器,它提供了强大的图形化用户界面(GUI)和命令行界面(CLI),Nessus 的命令行工具(通常称为 nessuscli 或通过 API 调用)允许用户自动化扫描任务、管理策略、处理扫描结果等,适合在脚本、CI/CD 流水线或服务器环境中使用,以下是关于 Nessus 命令的详细介绍,包括安装、基本操作、高级功能及注意事项。

nessus命令如何使用?有哪些常用参数?-图1
(图片来源网络,侵删)

Nessus 命令行工具的安装与环境准备

在使用 Nessus 命令行之前,需要确保 Nessus 服务已正确安装并运行,Nessus 提供了两种主要的命令行交互方式:一种是基于 nessuscli 的本地命令(适用于 Nessus 8.x 之前的版本),另一种是通过 REST API 与 Nessus 服务器通信(推荐用于新版本),以下是两种方式的准备步骤:

  1. 安装 Nessus 服务
    从 Tenable 官网下载 Nessus 并安装,默认运行在 https://localhost:8834,首次登录时需创建管理员账户并激活许可证。

  2. 配置命令行工具

    • 对于旧版 nessuscli,工具通常位于 Nessus 安装目录的 /bin/sbin 文件夹中。
    • 对于 API 方式,需使用 curl 或类似工具发送 HTTP 请求,并通过 API 密钥或令牌进行身份验证,获取 API 密钥的步骤:登录 GUI 后,进入“我的账户”→“API 密钥”→生成新密钥。
  3. 测试连接
    使用以下命令检查 Nessus 服务是否运行:

    nessus命令如何使用?有哪些常用参数?-图2
    (图片来源网络,侵删)
    curl -k -u admin:your_password https://localhost:8834/server/status

    若返回 JSON 格式的状态信息,则表示连接成功。

Nessus 命令行基本操作

管理扫描策略

扫描策略是 Nessus 扫描的配置模板,命令行可以创建、导出、导入和删除策略。

  • 列出所有策略

    curl -k -u admin:your_password -X GET "https://localhost:8834/policies" | jq '.policies[] | .name, .id'

    jq 用于格式化 JSON 输出,可选)

    nessus命令如何使用?有哪些常用参数?-图3
    (图片来源网络,侵删)
  • 导出策略

    curl -k -u admin:your_password -X POST "https://localhost:8834/policies/policy_id/export" -o policy_name.nessus

    policy_id 替换为目标策略的 ID。

  • 导入策略

    curl -k -u admin:your_password -X POST "https://localhost:8834/policies/import" -F "file=@policy_name.nessus"

创建与启动扫描任务

  • 创建扫描任务
    需指定目标 IP/域名、策略 ID 和扫描名称。

    curl -k -u admin:your_password -X POST "https://localhost:8834/scans" -d '{
      "uuid": "policy_id",
      "targets": "192.168.1.0/24",
      "name": "Network Scan"
    }' -H "Content-Type: application/json"

    返回结果中会包含新任务的 scan_id

  • 启动扫描任务

    curl -k -u admin:your_password -X POST "https://localhost:8834/scans/scan_id/launch"

查看与管理扫描状态

  • 列出所有扫描任务

    curl -k -u admin:your_password -X GET "https://localhost:8834/scans" | jq '.scans[] | .name, .id, .status'
  • 停止扫描任务

    curl -k -u admin:your_password -X POST "https://localhost:8834/scans/scan_id/stop"
  • 删除扫描任务

    curl -k -u admin:your_password -X DELETE "https://localhost:8834/scans/scan_id"

导出扫描结果

扫描完成后,可将结果导出为多种格式(如 .nessus.pdf.csv)。

  • 导出为 Nessus 格式

    curl -k -u admin:your_password -X POST "https://localhost:8834/scans/scan_id/export" -d '{
      "format": "nessus"
    }' -H "Content-Type: application/json" -o scan_results.nessus
  • 导出为 CSV 格式
    format 参数改为 csv 即可。

高级命令与自动化脚本

使用脚本批量管理扫描

通过 Shell 脚本结合 Nessus API,可实现自动化扫描流程,以下脚本定期扫描目标并导出结果:

#!/bin/bash
POLICY_ID="your_policy_id"
TARGET="192.168.1.0/24"
SCAN_NAME="Auto Scan $(date +%Y%m%d)"
# 创建扫描
SCAN_ID=$(curl -k -u admin:your_password -X POST "https://localhost:8834/scans" -d "{
  \"uuid\": \"$POLICY_ID\",
  \"targets\": \"$TARGET\",
  \"name\": \"$SCAN_NAME\"
}" | jq -r '.scan_id')
# 启动扫描
curl -k -u admin:your_password -X POST "https://localhost:8834/scans/$SCAN_ID/launch"
# 等待扫描完成
while true; do
  STATUS=$(curl -k -u admin:your_password -X GET "https://localhost:8834/scans/$SCAN_ID" | jq -r '.status')
  if [ "$STATUS" = "completed" ]; then
    curl -k -u admin:your_password -X POST "https://localhost:8834/scans/$SCAN_ID/export" -d '{
      "format": "nessus"
    }' -o "scan_$(date +%Y%m%d).nessus"
    break
  fi
  sleep 300
done

Nessus CLI 工具的旧命令(Nessus 7.x-8.x)

若使用旧版 nessuscli,常用命令包括:

  • nessuscli policy list:列出策略。
  • nessuscli scan launch --policy-id policy_id --target target_ip:启动扫描。
  • nessuscli scan export scan_id:导出结果。

注意事项

  1. 权限与安全:API 密钥需妥善保管,避免泄露;建议使用 HTTPS 并启用证书验证(-k 仅用于测试环境)。
  2. 性能优化:大量扫描任务可能占用服务器资源,建议通过 GUI 或 API 监控扫描队列。
  3. 版本兼容性:不同版本的 Nessus API 可能有差异,建议参考官方文档。

相关问答 FAQs

Q1: 如何通过命令行查看扫描任务的详细日志?
A: 可以通过 API 获取扫描任务的详细信息,包括日志。

curl -k -u admin:your_password -X GET "https://localhost:8834/scans/scan_id" | jq '.'

日志信息通常包含在 history 字段中,或通过 /scans/scan_id/logs 端点获取。

Q2: Nessus 命令行扫描失败时如何排查?
A: 首先检查 API 连接状态(如 server/status),确认目标 IP 可达且防火墙未拦截端口,查看扫描任务的错误信息:

curl -k -u admin:your_password -X GET "https://localhost:8834/scans/scan_id" | jq '.error'

常见错误包括策略配置错误、目标无响应或服务器资源不足。

分享:
扫描分享到社交APP
上一篇
下一篇