Julius:让LLM服务识别从猜测变为确定

admin 2026-02-04 17:45:59 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: Praetorian开源了Julius工具,旨在解决AI基础设施中LLM服务识别难题。该工具通过主动HTTP指纹匹配,能精准识别Ollama等17种主流AI服务,具备模型发现、离线运行及高特异性评分特性。它支持与Nmap联动进行批量扫描,适用于内网资产盘点与红队演练,显著提升了AI服务指纹识别的自动化水平与效率。 综合评分: 89 文章分类: AI安全,安全工具,渗透测试,红队,内网渗透


cover_image

Julius:让LLM服务识别从猜测变为确定

原创

赛博 赛博

赛博知识驿站

2026年2月4日 10:10 中国香港

在AI基础设施成为新攻击面的今天,安全评估中最常见的困惑之一是:这个开放端口到底运行着什么LLM服务?

Praetorian公司开源的Julius工具,正是为解决这个痛点而生。它能在数秒内准确识别Ollama、vLLM、LiteLLM等17种主流AI服务,将繁琐的手工测试转变为自动化指纹识别流程。

工具定位:填补LLM基础设施安全评估的空白

为什么需要Julius?

在渗透测试或资产发现中,你可能遇到这样的场景:

  • • Nmap扫描发现11434端口开放,但不确定是Ollama还是其他服务
  • • 发现8000端口有HTTP响应,但无法判断是vLLM、Kong AI Gateway还是NVIDIA NIM
  • • 需要快速识别内网中所有AI服务端点及其运行的具体平台

传统工具如Shodan主要依赖被动扫描数据库,而Julius采用主动探测策略,通过发送针对性HTTP请求并匹配响应特征,实现精准识别。

核心优势

| 特性 | 价值 | | — | — | | 覆盖17种服务 | 包括自托管(Ollama、llama.cpp)、代理网关(LiteLLM)、企业平台(NVIDIA NIM)和UI应用(Open WebUI)全类别 | | 特异性评分 | 1-100分的匹配度排序,优先显示最精确的结果(如区分LiteLLM和通用OpenAI兼容服务) | | 模型发现 | 自动提取端点可用的AI模型列表 | | 多格式输出 | 表格/JSON/JSONL格式,支持管道集成到自动化工作流 | | 离线运行 | 无需云端依赖,完全本地化执行 |

快速上手指南

安装部署

# 通过Go直接安装
go install github.com/praetorian-inc/julius/cmd/julius@latest

# 验证安装
julius --version

基础用法

单目标扫描:

# 默认表格输出
julius probe https://target.example.com:11434

# 输出示例:
+----------------------------+---------+-------------+-------------+--------+
|           TARGET           | SERVICE | SPECIFICITY |  CATEGORY   | MODELS |
+----------------------------+---------+-------------+-------------+--------+
| https://target.example.com | ollama  |         100 | self-hosted |        |
+----------------------------+---------+-------------+-------------+--------+

批量扫描:

# 从文件读取目标列表
julius probe -f targets.txt

# 管道输入(与其他工具联动)
cat ip_list.txt | julius probe -

# JSON格式输出便于后续处理
julius probe -o json https://target.com | jq '.service'

关键参数说明

| 参数 | 说明 | 示例 | | — | — | — | | -c | 并发数(默认10) | -c 50 提高大规模扫描速度 | | -t | 超时时间(默认5秒) | -t 15 应对响应慢的服务 | | -o | 输出格式 | json/jsonl/table | | -p | 自定义探测规则目录 | -p ./custom-probes | | -v | 详细模式 | 调试时查看详细请求响应 |

实战示例:提取Ollama服务的模型列表

# 扫描并提取模型信息
julius probe -o json https://ollama.internal.corp | jq '.models'

# 输出:
["llama2", "mistral", "codellama"]

技术实现亮点

探测机制

Julius的识别流程基于基于规则的HTTP指纹匹配

  1. 1. 请求构造:向服务特定端点发送HTTP请求(如/health/api/version
  2. 2. 多维度匹配
  • • HTTP状态码(status: 200
  • • 响应体特征(body.contains: "models"
  • • Content-Type头(content-type: application/json
  • • 自定义响应头(header.prefix: X-
  1. 3. 特异性排序:通过评分算法优先显示最具体的匹配结果

探测规则示例

每个服务的探测规则定义在YAML文件中,支持多路径组合验证:

name: ollama
port_hint: 11434
requests:
  - path: /api/version
    method: GET
    match:
      - type: status
        value: 200
      - type: body.contains
        value: '"version":'

models:
  path: /api/tags
  method: GET
  extract: ".models[].name"  # JQ表达式提取模型

扩展性设计

添加自定义服务检测只需三步:

  1. 1. 在probes/目录创建YAML文件
  2. 2. 定义请求路径和匹配规则
  3. 3. 运行julius validate ./probes验证

无需修改代码即可支持新服务,适合企业内部定制化需求。

适用场景与最佳实践

典型应用场景

  1. 1. 内网资产发现:快速盘点企业内部部署的AI服务
  2. 2. 渗透测试:识别目标网络中的LLM端点及其类型
  3. 3. 供应链审计:验证第三方系统使用的AI基础设施
  4. 4. 合规检查:确认敏感环境中AI服务的部署情况

最佳实践建议

  • • 授权扫描:Julius仅发送标准HTTP请求,但务必确保对目标有合法授权
  • • 结合端口扫描:先用Nmap/Masscan发现开放端口,再用Julius精准识别
  • • 管道化工作流
  # 示例:从Nmap结果提取HTTP服务并识别
  nmap -p- --open -oG - 10.0.0.0/24 | \
    grep -oP '\d+\.\d+\.\d+\.\d+:\d+' | \
    julius probe - -o jsonl | \
    jq -r 'select(.service != null) | "\(.target) -> \(.service)"'

支持的服务矩阵

Julius当前支持17种LLM平台,覆盖四大类别:

自托管服务:Ollama、vLLM、LocalAI、llama.cpp、Hugging Face TGI、LM Studio 代理网关:LiteLLM、Kong AI Gateway UI应用:Open WebUI、LibreChat、Gradio、SillyTavern 企业平台:NVIDIA NIM、Salesforce Einstein、AnythingLLM

完整列表和默认端口参见官方文档[1]。

总结

Julius为网络安全从业者提供了一个轻量但强大的LLM服务识别工具。其高准确度的指纹识别灵活的扩展机制零依赖的离线运行特性,使其成为AI基础设施安全评估的必备工具。

无论你是在进行红队演练、资产清点还是合规审计,Julius都能帮你快速回答”这个端点运行的是什么AI服务?“这个关键问题。

立即尝试:

go install github.com/praetorian-inc/julius/cmd/julius@latest
julius probe https://your-target.com

项目地址: https://github.com/praetorian-inc/julius 开源协议: Apache 2.0


💡 分享你的经验:如果你在实际场景中使用了Julius,欢迎在评论区分享你的发现和技巧。对于特定LLM服务的检测需求,也可以向项目提交自定义探测规则。

引用链接

[1] 官方文档: https://github.com/praetorian-inc/julius#supported-llm-services


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:赛博知识驿站 赛博 赛博《Julius:让LLM服务识别从猜测变为确定》

评论:0   参与:  0