
Chatbot de cybersécurité alimenté par l'IA, conçu pour fournir des réponses utiles et précises à vos questions liées à la cybersécurité, ainsi que pour effectuer des analyses de code et des analyses de scan.
_ _ _ ____ _
| | | | __ _ ___| | _| __ ) ___ | |_
| |_| |/ _` |/ __| |/ / _ \ / _ \| __| By: Morpheuslord
| _ | (_| | (__| <| |_) | (_) | |_ AI used: Meta-LLama2
|_| |_|\__,_|\___|_|\_\____/ \___/ \__|
Bienvenue sur HackBot, un chatbot de cybersécurité alimenté par l'IA conçu pour fournir des réponses utiles et précises à vos questions liées à la cybersécurité, ainsi que pour effectuer des analyses de code et des analyses de scans. Que vous soyez un chercheur en sécurité, un hacker éthique ou simplement curieux de la cybersécurité, HackBot est là pour vous aider à trouver les informations dont vous avez besoin.
HackBot utilise le puissant modèle de langage Meta-LLama2 via la bibliothèque "LlamaCpp". Cela permet à HackBot de répondre à vos questions de manière cohérente et pertinente. Veuillez vous assurer de formuler vos questions en anglais et de respecter les directives fournies pour obtenir les meilleurs résultats de HackBot.
AI_OPTION du fichier .env pour Runpod vous devez utiliser RUNPOD et pour Déploiement local de Llama LOCALLLAMA. RUNPOD & LOCALLLAMARUNPOD ID et votre RUNPOD API KEY sont définis.Utiliser LLama2 est l'une des meilleures options hors ligne et gratuites disponibles. Il est actuellement en cours d'amélioration, je travaille sur une invite qui intégrera mieux la perspective cybersécurité dans l'IA. Je dois remercier @thisserand et son dépôt llama2_local ainsi que sa vidéo YT YT_Video. Ce furent d'excellentes ressources. Pour être franc, le code de llama2 est à 95% le sien, j'ai simplement pris le code et ajouté une fonctionnalité Flask API.
La précision de l'IA hors ligne et en dehors des tests de code était excellente et avait une précision égale à openai ou bard, mais dans le code, elle rencontrait quelques problèmes, peut-être à cause de l'invite et autres. Je vais essayer de le corriger.
La vitesse dépend de votre système et de vos configurations GPU et CPU. Actuellement, il utilise le modèle TheBloke/Llama-2-7B-Chat-GGML et peut être modifié via les fichiers portscanner et dnsrecon.
Pour l'instant, le code llama et les scans sont traités différemment. Après quelques tests, j'ai découvert que llama doit être un peu entraîné pour fonctionner comme je le souhaitais, donc cela prend du temps. Toute suggestion sur la façon de procéder peut être ajoutée aux discussions de ce dépôt Lien des discussions. Pour l'instant, la sortie ne sera pas une liste divisée de toutes les données, mais plutôt une explication de la vulnérabilité ou des problèmes découverts par l'IA.
L'invite pour l'utilisation du modèle ressemble à ceci :
[INST] <<SYS>> {user_instruction}<</SYS>> NMAP Data to be analyzed: {user_message} [/INST]
Les instructions ressemblent à ceci :
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.
En utilisant l'ensemble d'instructions et les données fournies via l'invite, l'IA llama génère sa sortie.
Pour la plupart des utilisations, je vous suggère de créer un déploiement serverless de llama sur Runpod ; vous pouvez vous référer à ce tutoriel pour cela tutoriel. Suivez le tutoriel pour une meilleure utilisation.



Avant de procéder à l'installation, assurez-vous de disposer des prérequis suivants :
pip3Visual studio Code - Suivez les étapes de ce lien llama-cpp-prereq-install-instructionscmakegit clone https://github.com/morpheuslord/hackbot.git
cd hackbot
pip3 install -r requirements.txt
python3 hackbot.py
La première fois que vous exécutez HackBot, il vérifiera la présence du modèle IA requis pour le chatbot. Si le modèle n'est pas présent, il sera automatiquement téléchargé et enregistré sous le nom "llama-2-7b-chat.ggmlv3.q4_0.bin" dans le répertoire du projet.
Pour démarrer une conversation avec HackBot, exécutez la commande suivante :
Le fichier .env doit ressembler à ceci :
RUNPOD_ENDPOINT_ID = ""
RUNPOD_API_KEY = ""
AI_OPTION = "LLAMALOCAL"
Après cela, exécutez ceci :
python hackbot.py
Le fichier .env doit ressembler à ceci :
RUNPOD_ENDPOINT_ID = "<<SERVERLESS ENDPOINT ID>>"
RUNPOD_API_KEY = "<<RUNPOD API KEY>>"
AI_OPTION = "RUNPOD"
Après cela, exécutez ceci :
python3 hackbot.py
HackBot affichera une bannière et attendra votre saisie. Vous pouvez poser des questions liées à la cybersécurité, et HackBot répondra avec des réponses informatives. Pour quitter le chat, tapez simplement "quit_bot" dans l'invite de saisie.
Voici quelques commandes supplémentaires que vous pouvez utiliser :
clear_screen : Efface l'écran de la console pour une meilleure lisibilité.quit_bot : Permet de quitter l'application de chat.bot_banner : Affiche la bannière par défaut du bot.contact_dev : Fournit mes informations de contact.save_chat : Sauvegarde les interactions de la session en cours.vuln_analysis : Effectue une analyse des vulnérabilités à l'aide des données de scan ou du fichier journal.static_code_analysis : Effectue une analyse statique de code à l'aide des données de scan ou du fichier journal.Remarque : Je travaille sur d'autres extensions et commandes pour offrir une expérience plus proche de chatGPT.
Veuillez noter : Les réponses de HackBot sont basées sur le modèle IA Meta-LLama2, et leur précision dépend de la qualité des questions et des données fournies.
Je travaille également sur l'entraînement de l'IA afin de l'ajuster plus précisément pour travailler pour les hackers à un niveau plus professionnel.
Nous accueillons les contributions pour améliorer la fonctionnalité et la précision de HackBot. Si vous rencontrez des problèmes ou avez des suggestions d'amélioration, n'hésitez pas à ouvrir une issue ou à soumettre une pull request. Suivez ces étapes pour contribuer :
main de ce dépôt.Veuillez maintenir un historique de commits propre et respecter les directives de codage du projet.
Si quelqu'un ayant les compétences nécessaires pour entraîner des modèles de génération de texte peut aider à améliorer le code. Pour la partie entraînement de l'IA, j'ai préparé un jeu de données et un code fonctionnel pour l'entraînement, mais je rencontre des problèmes avec la partie entraînement et une collaboration à ce sujet serait appréciée. Vous pouvez consulter le jeu de données sur :
La version GitHub du jeu de données est destinée à l'entraînement OpenAI et l'autre à Llama2-7b de Meta. L'objectif du jeu de données est d'essayer de générer un modèle IA suffisamment capable de mieux travailler avec les données CVE. Si vous pensez que le jeu de données est insuffisant, n'hésitez pas à le modifier et à partager votre avis.
Pour toute question, commentaire ou demande liée à HackBot, n'hésitez pas à contacter le mainteneur du projet :