
Chatbot de cibersegurança alimentado por IA, projetado para fornecer respostas úteis e precisas para suas consultas relacionadas à cibersegurança e também realizar análise de código e análise de varreduras.
_ _ _ ____ _
| | | | __ _ ___| | _| __ ) ___ | |_
| |_| |/ _` |/ __| |/ / _ \ / _ \| __| By: Morpheuslord
| _ | (_| | (__| <| |_) | (_) | |_ AI used: Meta-LLama2
|_| |_|\__,_|\___|_|\_\____/ \___/ \__|
Bem-vindo ao HackBot, um chatbot de cibersegurança alimentado por IA, projetado para fornecer respostas úteis e precisas às suas perguntas relacionadas à cibersegurança, além de realizar análise de código e análise de varreduras. Seja você um pesquisador de segurança, um hacker ético ou apenas curioso sobre cibersegurança, o HackBot está aqui para ajudá-lo a encontrar as informações de que precisa.
O HackBot utiliza o poderoso modelo de linguagem Meta-LLama2 através da biblioteca "LlamaCpp". Isso permite que o HackBot responda às suas perguntas de forma coerente e relevante. Certifique-se de manter suas consultas em inglês e siga as diretrizes fornecidas para obter os melhores resultados do HackBot.
AI_OPTION do arquivo .env. Para Runpod você precisa usar RUNPOD e para Implantação local do llama usar LOCALLLAMA. RUNPOD & LOCALLLAMARUNPOD ID e a RUNPOD API KEY estejam definidos.Usar o LLama2 é uma das melhores opções offline e gratuitas disponíveis. Atualmente está em melhoria; estou trabalhando em um prompt que incorpore melhor a perspectiva de cibersegurança na IA. Tenho que agradecer a @thisserand e ao seu repositório llama2_local e também ao seu vídeo no YT YT_Video. Eles foram ótimos recursos. Para ser sincero, o código do llama2 é 95% dele, apenas peguei o código e adicionei funcionalidade de API Flask.
A precisão da IA offline e fora dos testes de código foi ótima e teve precisão igual ao openai ou bard, mas dentro do código enfrentou alguns problemas, talvez por causa do prompting e outras coisas. Vou tentar corrigir.
A velocidade depende do seu sistema e das configurações de GPU e CPU que você possui. Atualmente, está usando o modelo TheBloke/Llama-2-7B-Chat-GGML e pode ser alterado através dos arquivos portscanner e dnsrecon.
Por enquanto, o llama e as varreduras são tratados de forma diferente. Após alguns testes, descobri que o llama precisa ser treinado um pouco para operar como eu pretendia, então precisa de algum tempo. Quaisquer sugestões sobre como fazer isso podem ser adicionadas às discussões deste repositório Link das Discussões. Por enquanto, a saída não será uma lista dividida de todos os dados, mas sim uma explicação da vulnerabilidade ou problemas descobertos pela IA.
O prompt para uso do modelo se parece com isto:
[INST] <<SYS>> {user_instruction}<</SYS>> NMAP Data to be analyzed: {user_message} [/INST]
As instruções se parecem com isto:
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 o conjunto de instruções e os dados fornecidos via prompt, a IA llama gera sua saída.
Para a maioria dos usos, sugiro criar uma implantação de endpoint serverless do llama no runpod; você pode consultar este tutorial para isso tutorial. Siga o tutorial para melhor uso.



Antes de prosseguir com a instalação, certifique-se de ter os seguintes pré-requisitos:
pip3Visual Studio Code - Siga os passos neste link llama-cpp-prereq-install-instructionscmakegit clone https://github.com/morpheuslord/hackbot.git
cd hackbot
pip3 install -r requirements.txt
python3 hackbot.py
Na primeira vez que você executar o HackBot, ele verificará se o modelo de IA necessário para o chatbot está presente. Se o modelo não estiver presente, ele será baixado automaticamente e salvo como "llama-2-7b-chat.ggmlv3.q4_0.bin" no diretório do projeto.
Para iniciar uma conversa com o HackBot, execute o seguinte comando: