Imagina esto: realizaste tu implementación de IA con modelos locales, algunos pagos otros gratuitos y de la noche a la mañana te das cuenta de que se gastaron todos los Tokens, tu recibo de AWS/AZURE se fue por las nubes (alto tráfico de GPU) y por si fuera poco, el agente IA de la Aplicación Web dejó de funcionar.

El boom de implementaciones con IA, ha producido un sin número de instalaciones qeu están expuestas a internet con ningún mecanismo de autenticación. En el caso puntual de Ollama, ofrece una API que por defecto funciona en el puerto 11434 que sirve para gestionar, consultar los modelos locales instalados , esto brinda una superficie de ataque bastante apetitosa para los ciberdelincuentes tales como:

  • Acceso no autorizado a la API
  • Ataques de extracción de modelos, reconstruir los parámetros de un modelo
  • Jailbreaking y abuso de contenido, manipulación para generar contenido restringido
    Inyección de puerta trasera y envenenamiento de modelos
  • Entre otros basados en OWASP.

Ahora vamos a ver como podemos encontrar fácilmente implementaciones sin autenticación, primero de manera «tradicional» y luego usando el agente IA Hermes (otra IA), el cual nos va a automatizar todo el proceso.

A.- Pentest tradicional
Mediante esta forma, vamos a realizar todo el proceso de descubrimiento, escaneo y explicación sobre una maquina Kali Linux.

1.- Detectando de servidores Ollama expuestos
Identificar implementaciones mediante puertos predeterminados y banners de servicio asociados a cada implementación para esto usaremos Shodan

product:"Ollama" version:"0.30.10"

Como vemos tenemos alrededor de 800 resultados para la versión 0.30.x, vamos a elegir solo uno de ejemplo.

2.- Escaneo de puertos y servicios
Ahora determinaremos la existencia de una implementación de Ollama

nmap -sT -sV -p 11434 190.24.30.146

Vemos que el puerto está abierto, pero no tenemos el banner que nos indiqué que es Ollama, sin embargo probaremos realizar la consulta de versión:

curl -s http://190.24.30.146:11434/api/version

Como vemos corresponde a la versión de Ollama 0.30.10

3.- Verificar los modelos instalados.
Realizamos la consulta hacia el endpoint «api/tags» el cual debería retornar los modelos instalados localmente.

curl -s http://190.24.30.146:11434/api/tags

Podemos identificar modelos como Minimax, Gemma, Qwen.

4.- Consumir los modelos
Ahora procederemos a preguntarle algo al modelo Gemma3 como si fuera chatgpt

curl -s -X POST http://190.24.30.146:11434/api/generate -d '{
"model": "gemma3:12b",
"prompt": "Responde solo: ¿cuál es la capital de Colombia?",
"stream": false,
"options": {"num_predict": 20}
}'

Tenemos respuesta del modelo, ante una pregunta, para lo cual no pidió ningún tipo de autenticación para poder interactuar con él, con lo cual podríamos seguir consumiendo el modelo a placer sin ninguna restricción.

B.- Pentest IA.
Ahora, vamos a realizar todas las actividades previas, usando un agente IA como Hermes brindandole instrucciones (prompt) desde el chat bot en Telegram que le hemos impĺementado.

Si desean conocer mas de Hermes Agente, puedes inscribirte en el curso de Pentest con agentes IA que brindaré en agosto.

Si desean profundizar en el topico les dejo estos enlaces de referencia :
Curso Pentest con Agentes IA
https://www.indusface.com/blog/exposed-ollama-servers-llm-security-risks/
https://blogs.cisco.com/security/detecting-exposed-llm-servers-shodan-case-study-on-ollama
https://fuzzinglabs.com/ollama-vulnerable-instances/

Espero les sirva

Juan Oliva

Deja un comentario

Juan Oliva

Consultor en Ciberseguridad con mas de 17 años de experiencia en el campo, muy involucrado en proyectos de Ethical Hacking, análisis y explotación de vulnerabilidades en infraestructura, aplicaciones web, APIs y Móviles, pruebas de ingeniería social y revisión de código.