Natlas API开发详解:自动化扫描任务与数据查询接口使用指南
【免费下载链接】natlasAttack Surface Management since before Attack Surface Management was a thing项目地址: https://gitcode.com/gh_mirrors/na/natlas
Natlas是一款强大的攻击面管理工具,其API接口为开发者提供了自动化扫描任务与数据查询的能力。通过Natlas API,您可以轻松地集成扫描功能到自己的应用中,实现高效的网络安全管理。
一、API基础信息
1.1 API规范与认证
Natlas API遵循Swagger 2.0规范,详细定义了所有可用接口。您可以在项目的spec/swagger.yaml文件中查看完整的API文档。
API认证采用bearer {agent_id}:{auth_token}的方式,在请求头中添加Authorization字段进行身份验证。这种认证方式确保了API访问的安全性,只有拥有有效令牌的代理才能与服务器进行通信。
1.2 基础路径与数据格式
API的基础路径为/api,支持HTTP和HTTPS两种协议。所有请求和响应的数据格式均为JSON,便于开发者进行解析和处理。
二、核心API接口详解
2.1 获取扫描服务列表
接口路径:/natlas-services
请求方法:GET
功能描述:返回最新版本的所有扫描服务列表,供nmap使用。
该接口返回的服务列表是一个文本 blob,包含换行分隔的服务信息,直接用于nmap的--servicedb参数。通过定期调用此接口,您可以确保扫描工具使用最新的服务定义,提高扫描准确性。
2.2 获取扫描任务
接口路径:/getwork
请求方法:GET
功能描述:获取一个扫描任务,包括目标IP、扫描配置等信息。
响应中包含scan_id、target、tags和agent_config等关键信息。agent_config提供了详细的扫描参数,如版本检测、OS检测、脚本超时时间等,您可以根据这些配置执行相应的扫描操作。
2.3 提交扫描结果
接口路径:/submit
请求方法:POST
功能描述:提交扫描结果到服务器。
提交的数据需要包含scan_id、ip、scan_reason以及nmap生成的xml、nmap和gnmap格式数据。此外,还可以包含扫描开始和结束时间、端口数量、截图等信息。服务器在成功解析并处理结果后,会返回相应的状态信息。
2.4 查询服务器状态
接口路径:/status
请求方法:GET
功能描述:获取服务器的当前状态信息。
通过该接口,您可以了解服务器已完成的扫描周期数、当前周期开始时间、有效范围大小、服务器启动时间等重要状态数据。这些信息对于监控扫描进度和系统健康状况非常有用。
三、API使用示例
3.1 认证示例
在请求头中添加认证信息:
Authorization: bearer your_agent_id:your_auth_token3.2 获取扫描任务示例
发送GET请求到/api/getwork,您将收到类似以下的响应:
{ "scan_id": "7v8emfj4ux2vutmn", "scan_reason": "automatic", "target": "127.34.23.56", "tags": ["corpnet-a", "marketing"], "agent_config": { "versionDetection": true, "osDetection": true, "scanTimeout": 660 } }3.3 提交扫描结果示例
发送POST请求到/api/submit,请求体包含扫描结果数据:
{ "scan_id": "7v8emfj4ux2vutmn", "ip": "127.34.23.56", "scan_reason": "automatic", "xml_data": "...", "nmap_data": "...", "gnmap_data": "...", "scan_start": "2023-07-01T10:00:00Z", "scan_stop": "2023-07-01T10:10:00Z", "is_up": true, "port_count": 5 }四、API安全与权限
Natlas API的安全性由多个层面保障。所有API令牌均使用Python的secrets模块生成,通过抗时序攻击的函数进行比较。除/api/路由外,所有路由都受Flask WTF的CSRF保护。当启用代理认证时,只有拥有有效API密钥的代理才能访问API路由。
您可以在用户个人资料页面(natlas-server/app/templates/user/profile.html)中查看和管理您的API密钥。
五、总结
Natlas API为开发者提供了强大的自动化扫描任务与数据查询能力,通过本文介绍的核心接口,您可以轻松地构建自定义的扫描工作流和数据处理应用。无论是集成到现有安全系统还是开发新的安全工具,Natlas API都能为您提供灵活而可靠的支持。
建议您结合spec/swagger.yaml中的详细API文档进行开发,以充分利用Natlas的强大功能。如有任何问题或需要进一步的帮助,请查阅项目的官方文档或参与社区讨论。
【免费下载链接】natlasAttack Surface Management since before Attack Surface Management was a thing项目地址: https://gitcode.com/gh_mirrors/na/natlas
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考