推荐项目:Nuclear Pond —— 高效云端的Nuclei扫描神器
Nuclear Pond 是一个巧妙的开源工具,它将Nuclei的强大功能带入云环境,以惊人的速度、灵活性和低成本执行互联网范围内的扫描任务。通过利用AWS Lambda作为后端,Nuclear Pond 可并行调用 Nuclei 扫描,结果可选择以 JSON 形式存储到 S3,并通过AWS Athena进行查询,这一切都比喝一杯咖啡还要经济。
项目特性
- 结果可直接在终端输出,或保存为 JSON 文件,或存入 S3
- 自定义线程数和任意数量的批次进行平行调用
- 如本地操作一样指定 Nuclei 参数
- 单一目标或从文件批量导入
- 运行 HTTP 服务器接收 API 执行扫描命令
- 查询扫描状态
- 使用 Athena 对 S3 中的发现进行搜索
- 定制 Nuclei 模板和报告配置
使用方式
Nuclear Pond 就像你的个人云上 Nuclei 工具,可以像在本地一样运行,但可以并行处理和定义任意多的目标。只需要考虑你要传递给它的 Nuclei 命令行参数即可。
安装与配置
要安装 Nuclear Pond,你需要配置后端Terraform 模块,可通过运行 terraform apply
或使用Terragrunt。
$ go install github.com/DevSecOpsDocs/nuclearpond@latest
环境变量
你可以通过标志或环境变量来设置后端。例如,你可以使用 -f
或 --function-name
指定Lambda函数名,-r
或 --region
设置区域。以下是一些可用的环境变量:
AWS_LAMBDA_FUNCTION_NAME
: 运行扫描的 Lambda 函数名称AWS_REGION
: 资源部署的区域NUCLEARPOND_API_KEY
: 认证API扫描的密钥AWS_DYNAMODB_TABLE
: 存储API扫描状态的 DynamoDB 表
命令行标志
你可以为 nuclearpond
命令指定以下标志:
run
:执行 Nuclei 扫描service
:基本 API 来执行 Nuclei 扫描
运行示例
如需在核池中运行 Nuclei 扫描,可以使用以下命令:
$ nuclearpond run -t devsecopsdocs.com -r us-east-1 -f jwalker-nuclei-runner-function -a $(echo -ne "-t dns" | base64) -o cmd -b 1
其中目标是 devsecopsdocs.com
,地区是 us-east-1
,Lambda 函数名为 jwalker-nuclei-runner-function
,Nuclei 参数为 -t dns
,输出类型为 cmd
,并以批次大小为1(即一次一个主机)的方式执行 -b 1
。
自定义模板
默认情况下,Terraform 模块会在执行时下载模板并将其添加为层。如果你想提高性能,可以通过 -t /opt/nuclei-templates-9.3.4/dns
指定已下载ZIP中的模板目录。自定义模板时,需要参考特定的发布版本并调整 Terraform 模块的变量。
查找发现项
如果你选择了 s3
作为输出,你可以在 S3 上找到你的发现项。最快速的访问方式是通过 Athena 直接查询。假设你已经在 Terraform 模块中配置了后端,你只需直接通过 Athena 查询。
应用场景
Nuclear Pond 的主要应用场景包括:
- 对大规模网站或服务的安全状况进行快速评估
- 定期自动化的安全审计
- 敏感数据泄露检测
- 对网络上的新漏洞进行快速响应
亮点
- 并行处理:通过 AWS Lambda 实现高性能并行扫描。
- 成本效益:相比传统云服务,Nuclear Pond 更经济。
- 灵活输出:支持终端、JSON 和 S3 存储,易于后续处理。
- 强大的集成:与 Athena 集成,使得海量数据查询变得简单易行。
总的来说,Nuclear Pond 是一个高效、低成本的云安全扫描解决方案,无论你是安全研究人员还是运维人员,都能从中受益。立即体验并将其整合进你的安全工作流程,提升你的扫描效率!