El post anterior habíamos hablado sobre “Damn Vulnerable LLM agent”
, un agente de inteligencia artificial para poder realizar pentest sobre IA que está alineado a OWASP sin embargo, es necesario hacer el uso de API de OpenIA
la cual tiene límites a nivel gratuito, inclusive tenemos el mismo caso con PentestGPT.
En este caso vamos a usar un modelo de IA instalado en Kali Linux, la cual nos puede ayudar en programación y para resolver dudas a nivel de pentesting, todo esto haciendo uso de la IA instalada localmente.

Qué es Ollama ?
Ollama, permite interactuar con inteligencia artificial directamente a nivel local, permite descargar y ejecutar modelos de lenguaje grandes (LLM) instalado en el disco duro del equipo, sin depender de servicios alojados en la nube.

Uno de los modelos más interesantes es “Code Llama” el cual permite generar y analizar código, basado en Llama 2. Está diseñado para agilizar y optimizar los flujos de trabajo de los desarrolladores y facilitar el aprendizaje de la programación y también puede ser usado como base de conocimiento para labores de Pentesting / Ethical Hacking como veremos a continuación.
1.- Instalación en Kali Linux
sudo apt install -y git curl wget jq gobuster net-tools build-essential unzip libcap-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev zlib1g-dev
sudo apt install -y nvidia-cuda-toolkit
sudo curl -fsSL https://ollama.com/install.sh | sh
ollama –version

Una vez que tenemos instalado Ollama, vamos a comenzar a programar nuestros primeros LLM con python haciendo uso de Visual Studio Code.
Si no tienes Visual Studio, puedes descargarlo de https://code.visualstudio.com/Download
y luego instalarlo de la siguiente forma :

2.- Preparar el entorno
Vamos a crear una carpeta “ollama-python” desde visual studio y preparar el entorno virtual.
python -m venv .venv
source .venv/bin/activate
pip install -qU ollama

Luego instalaremos el “modelo” que vamos a usar
ollama pull llama2
ollama list

3.- Ejercicios de programación con LLM y Python
Ejemplo 1 : example1.py
Objetivo : llamamos a ollama.generate con el nombre de un modelo (en este caso, «llama2», que obtuvimos anteriormente) y una cadena de solicitud. El modelo procesará la solicitud y el resultado (un diccionario) contiene la respuesta del modelo bajo la clave «respuesta». Por ejemplo, la salida podría ser una explicación científica de por qué el cielo se ve azul. Si todo está configurado correctamente, debería ver la respuesta impresa en la consola.

Ejemplo2 : example2.py
Objetivo: Esto utiliza un modelo basado en chat (como un Llama 2 optimizado para instrucciones) para responder a un mensaje de usuario. El parámetro messages toma una lista de turnos de diálogo con roles («usuario», «asistente», etc.). La función ollama.chat devuelve un objeto de respuesta donde reply.message.content contiene la última respuesta del modelo asistente. Con esto, puedes crear aplicaciones interactivas fácilmente. (Ampliaremos el tema de los chatbots en la siguiente sección).

Ejemplo3 : example3.py
Objetivo: Usar un modelo especializado en código (como codellama en este ejemplo) devolvería el código de una función de verificación de código principal, que luego podrías usar en tu proyecto. Esto demuestra cómo Ollama puede optimizar los flujos de trabajo de los desarrolladores al automatizar partes de las tareas de codificación o documentación.
Para esto necesitamos instalar el modelo previamente:
ollama pull codellama

4.- Pentesting con IA
Ejemplo4 : example4.py
Objetivo: Escribe un script con nmap para escanear los puertos 80 y 443 del dominio example.com

Ejemplo5 : example5.py
Objetivo: Escribir un script con ffuf para fuzzear el dominio example.com donde un valor de parámetro incorrecto devuelve el código de respuesta HTTP 404 y detener el trabajo actual después de 120 segundos.

Ejemplo6 : example6.py
Objetivo: Generar un comando con curl para explotar la vulnerabilidad CVE-2021–41773.

Espero les sirva
Rerencias
https://www.cohorte.co/blog/using-ollama-with-python-step-by-step-guide
https://medium.com/aimonks/code-llama-quick-start-guide-and-prompt-engineering-eb1de8758399

Replica a trioarpeggios Cancelar la respuesta