
Chatbot de ciberseguridad impulsado por IA diseñado para proporcionar respuestas útiles y precisas a tus consultas relacionadas con la ciberseguridad y también realizar análisis de código y análisis de escaneos.
_ _ _ ____ _
| | | | __ _ ___| | _| __ ) ___ | |_
| |_| |/ _` |/ __| |/ / _ \ / _ \| __| By: Morpheuslord
| _ | (_| | (__| <| |_) | (_) | |_ AI used: Meta-LLama2
|_| |_|\__,_|\___|_|\_\____/ \___/ \__|
Bienvenido a HackBot, un chatbot de ciberseguridad impulsado por IA diseñado para proporcionar respuestas útiles y precisas a tus consultas relacionadas con la ciberseguridad, así como para realizar análisis de código y de escaneos. Ya seas un investigador de seguridad, un hacker ético o simplemente tengas curiosidad sobre la ciberseguridad, HackBot está aquí para ayudarte a encontrar la información que necesitas.
HackBot utiliza el potente modelo de lenguaje Meta-LLama2 a través de la biblioteca "LlamaCpp". Esto permite que HackBot responda a tus preguntas de manera coherente y relevante. Asegúrate de mantener tus consultas en inglés y seguir las pautas proporcionadas para obtener los mejores resultados de HackBot.
AI_OPTION del archivo .env. Para Runpod necesitas usar RUNPOD y para despliegue local de llama LOCALLLAMA. RUNPOD y LOCALLLAMARUNPOD ID y tu RUNPOD API KEY estén configurados.Usar LLama2 es una de las mejores opciones offline y gratuitas disponibles. Actualmente está en mejora, estoy trabajando en un prompt que incorpore mejor la perspectiva de ciberseguridad en la IA. Tengo que agradecer a @thisserand y su repositorio llama2_local y también su video de YT YT_Video. Fueron grandes recursos. Para ser franco, el código de llama2 es 95% suyo, solo tomé el código y le añadí funcionalidad de API Flask.
La precisión de la IA offline y fuera de las pruebas del código fue excelente y tenía la misma precisión que openai o bard, pero dentro del código enfrentaba algunos problemas, quizás debido al prompting y demás. Intentaré solucionarlo.
La velocidad depende de tu sistema y las configuraciones de GPU y CPU que tengas. Actualmente está usando el modelo TheBloke/Llama-2-7B-Chat-GGML y se puede cambiar mediante los archivos portscanner y dnsrecon.
Por ahora, el código y los escaneos de llama se manejan de manera diferente. Después de algunas pruebas, descubrí que llama necesita un poco de entrenamiento para funcionar como pretendo, por lo que necesita algo de tiempo. Cualquier sugerencia sobre cómo puedo hacerlo se puede agregar a las discusiones de este repositorio Enlace de Discusiones. Por ahora, la salida no será una lista dividida de todos los datos, sino una explicación de la vulnerabilidad o problema descubierto por la IA.
El prompt para el uso del modelo se ve así:
[INST] <<SYS>> {user_instruction}<</SYS>> NMAP Data to be analyzed: {user_message} [/INST]
Las instrucciones se ven así:
Do a NMAP scan analysis on the provided NMAP scan information. The NMAP output must return in a asked format accorging to the provided output format. The data must be accurate in regards towards a pentest report.
The data must follow the following rules:
1) The NMAP scans must be done from a pentester point of view
2) The final output must be minimal according to the format given.
3) The final output must be kept to a minimal.
4) If a value not found in the scan just mention an empty string.
5) Analyze everything even the smallest of data.
6) Completely analyze the data provided and give a confirm answer using the output format.
7) mention all the data you found in the output format provided so that regex can be used on it.
8) avoid unnecessary explaination.
9) the critical score must be calculated based on the CVE if present or by the nature of the services open
10) the os information must contain the OS used my the target.
11) the open ports must include all the open ports listed in the data[tcp] and varifying if it by checking its states value. you should not negect even one open port.
12) the vulnerable services can be determined via speculation of the service nature or by analyzing the CVE's found.
The output format:
critical score:
- Give info on the criticality
"os information":
- List out the OS information
"open ports and services":
- List open ports
- List open ports services
"vulnerable service":
- Based on CVEs or nature of the ports opened list the vulnerable services
"found cve":
- List the CVE's found and list the main issues.
Usando el conjunto de instrucciones y los datos proporcionados a través del prompt, la IA llama genera su salida.
Para la mayoría de los usos, sugiero crear un despliegue de endpoint serverless de llama en RunPod; puedes consultar este tutorial para ello tutorial. Sigue el tutorial para un mejor uso.



Antes de proceder con la instalación, asegúrate de tener los siguientes prerrequisitos:
pip3Visual Studio Code - Sigue los pasos en este enlace llama-cpp-prereq-install-instructionscmakegit clone https://github.com/morpheuslord/hackbot.git
cd hackbot
pip3 install -r requirements.txt
python3 hackbot.py
La primera vez que ejecutes HackBot, comprobará si el modelo de IA necesario para el chatbot está presente. Si el modelo no está, se descargará automáticamente y se guardará como "llama-2-7b-chat.ggmlv3.q4_0.bin" en el directorio del proyecto.
Para iniciar una conversación con HackBot, ejecuta el siguiente comando: