病毒分析服务

VirusTotal MCP Server 是一个用于查询 VirusTotal API 的模型上下文协议服务器,提供全面的安全分析工具,包括自动关系数据获取,适用于安全分析和威胁情报场景。

  • by emeryray2002
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 emeryray2002/virustotal-mcp

使用说明

VirusTotal MCP服务器

用于查询的模型上下文协议(MCP)服务器 病毒API总量该服务器提供全面的安全分析工具,具有自动关系数据获取功能。它与MCP兼容的应用程序无缝集成,如 克劳德桌面.

快速启动(待定)

通过Smithery安装

通过以下方式自动安装克劳德桌面版virustotal mcp 史密瑟里:

npx -y @smithery/cli install @emeryray2002/virustotal-mcp --client claude

手动安装

待定

特性

  • 综合分析报告:每个分析工具都会自动获取相关关系数据以及基本报告,在单个请求中提供完整的安全概述
  • URL分析:自动获取联系域、下载文件和威胁行为者的安全报告
  • 文件分析:文件哈希的详细分析,包括行为、丢弃的文件和网络连接
  • IP分析:包含历史数据、解决方案和相关威胁的安全报告
  • 领域分析:DNS信息、WHOIS数据、SSL证书和子域
  • 详细关系分析:用于查询具有分页支持的特定类型关系的专用工具
  • 高级搜索:针对整个VirusTotal数据集的复杂查询的VT Intelligence搜索功能
  • 丰富的格式:对分析结果和关系数据进行清晰的分类和呈现

工具

报告工具(带自动关系获取)

1.URL报告工具

  • 姓名: get_url_report
  • 描述:获取一份全面的URL分析报告,包括安全扫描结果和关键关系(通信文件、联系的域/IP、下载的文件、重定向、威胁行为者)
  • 参数:
    • url (必填):要分析的URL
  • 例子:
await get_url_report(url="http://example.com/suspicious")

2.文件报告工具

  • 姓名: get_file_report
  • 说明:使用其哈希值(MD5/SHA-1/SHA-256)获取全面的文件分析报告。包括检测结果、文件属性和关键关系(行为、丢失的文件、网络连接、嵌入式内容、威胁参与者)
  • 参数:
    • hash (必填):文件的MD5、SHA-1或SHA-256哈希值
  • 例子:
await get_file_report(hash="44d88612fea8a8f36de82e1278abb02f")

3.IP报告工具

  • 姓名: get_ip_report
  • 描述:获取一份全面的IP地址分析报告,包括地理位置、信誉数据和关键关系(通信文件、历史证书/WHOIS、决议)
  • 参数:
    • ip (必填):要分析的IP地址
  • 例子:
await get_ip_report(ip="8.8.8.8")

4.域报告工具

  • 姓名: get_domain_report
  • 描述:获取一份全面的域分析报告,包括DNS记录、WHOIS数据和密钥关系(SSL证书、子域、历史数据)
  • 参数:
    • domain (必填):要分析的域名
  • 例子:
await get_domain_report(domain="example.com")

关系工具(用于详细分析)

1.URL关系工具

  • 姓名: get_url_relationship
  • 描述:查询具有分页支持的URL的特定关系类型
  • 参数:
    • url (必填):获取关系的URL
    • relationship (必填):要查询的关系类型
      • 可用关系:分析、评论、通信文件、联系域、联系ips、下载文件、图表、last_serving_ip-address、network_location、引用文件、引用资源、重定向资源、重定向至、相关评论、相关引用、相关三个角色、提交
    • limit (可选,默认值:10):要检索的相关对象的最大数量(1-40)
    • cursor (可选):用于分页的连续光标
  • 例子:
await get_url_relationship(
    url="http://example.com/suspicious",
    relationship="communicating_files",
    limit=20
)

2.文件关系工具

  • 姓名: get_file_relationship
  • 说明:查询具有分页支持的文件的特定关系类型
  • 参数:
    • hash (必填):文件的MD5、SHA-1或SHA-256哈希值
    • relationship (必填):要查询的关系类型
      • 可用关系:分析、行为、捆绑文件、carbonblack_children、carbonblack_parents、加密_捆绑文件、加密_父母、线索、集合、评论、压缩_父母、联系域、联系ips、联系url、丢弃文件、电子邮件附件、电子邮件租金、嵌入域、嵌入ip、嵌入rls、执行租金、图表、itw_domains、itw_ips、itwurls、memory_pattern_domains、memory-pattern_ips、memory _pattern_urls、overlay_children和overlay_parents,pcap_children,pcap_prents,pe_resource_children,pe_reource_parents,related_references,related threat_actors,similar file,提交,截图,url for embedded js,投票
    • limit (可选,默认值:10):要检索的相关对象的最大数量(1-40)
    • cursor (可选):用于分页的连续光标
  • 例子:
await get_file_relationship(
    hash="44d88612fea8a8f36de82e1278abb02f",
    relationship="behaviours",
    limit=20
)

3.IP关系工具

  • 姓名: get_ip_relationship
  • 说明:查询具有分页支持的IP地址的特定关系类型
  • 参数:
    • ip (必填):要分析的IP地址
    • relationship (必填):要查询的关系类型
      • 可用关系:注释、通信文件、下载文件、图形、历史_ ssl_证书、历史_ whois、related_comments、related_references、related_threat_actors、引用文件、分辨率、url
    • limit (可选,默认值:10):要检索的相关对象的最大数量(1-40)
    • cursor (可选):用于分页的连续光标
  • 例子:
await get_ip_relationship(
    ip="8.8.8.8",
    relationship="communicating_files",
    limit=20
)

4.领域关系工具

  • 姓名: get_domain_relationship
  • 描述:查询具有分页支持的域的特定关系类型
  • 参数:
    • domain (必填):要分析的域名
    • relationship (必填):要查询的关系类型
      • 可用关系:caa_records、cname_records、注释、通信_files、下载_files、historical_slsl_certificates、historical whois、immediate_parent、mx_crecords、ns_records,parent、referrer_files、related_comments、related_references、related_threat_actors、resolution、soa_records,同级、子域、url、user_votes
    • limit (可选,默认值:10):要检索的相关对象的最大数量(1-40)
    • cursor (可选):用于分页的连续光标
  • 例子:
await get_domain_relationship(
    domain="example.com",
    relationship="historical_ssl_certificates",
    limit=20
)

5.高级搜索工具

  • 姓名: advanced_corpus_search
  • 描述:使用VT Intelligence查询语法在VirusTotal数据集中执行高级搜索
  • 参数:
    • query (必填):VT Intelligence搜索查询字符串
    • limit (可选,默认值:20):每页返回的最大结果数
    • cursor (可选):用于分页的连续光标
    • descriptors_only (可选):如果为true,则仅检索对象描述符而不是完整对象
  • 例子:
await advanced_corpus_search(
    query="type:peexe size:100kb+ positives:5+",
    limit=20,
    cursor=None
)

需求

  • Python>=3.11
  • A有效 病毒API总密钥
  • 所需的Python包:
    • 目标 >= 3.9.0
    • mcp[cli]>=1.4.1
    • python dotenv>=1.0.0
    • 键入扩展名>=4.8.0

错误处理

该服务器包括全面的错误处理功能,用于:

  • API密钥无效
  • 速率限制
  • 网络错误
  • 输入参数无效
  • 哈希格式无效
  • IP格式无效
  • URL格式无效
  • 关系类型无效
  • 分页错误

发展

要在开发模式下运行:

python -m virustotal_mcp

贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。

致谢

  • VirusTotal用于提供API和威胁情报平台
  • 服务器框架的MCP项目
  • 贡献者和维护者

支持

如需支持,请:

  1. 检查文档
  2. 搜索现有问题
  3. 如果需要,创建新问题

安全

  • 永远不要提交API密钥或敏感凭据
  • 使用环境变量进行配置
  • 处理威胁情报数据时遵循安全最佳实践