
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:
O arquivo .env deve se parecer com isto:
RUNPOD_ENDPOINT_ID = ""
RUNPOD_API_KEY = ""
AI_OPTION = "LLAMALOCAL"
Após isso, execute:
python hackbot.py
O arquivo .env deve se parecer com isto:
RUNPOD_ENDPOINT_ID = "<<SERVERLESS ENDPOINT ID>>"
RUNPOD_API_KEY = "<<RUNPOD API KEY>>"
AI_OPTION = "RUNPOD"
Após isso, execute:
python3 hackbot.py
O HackBot exibirá um banner e aguardará sua entrada. Você pode fazer perguntas relacionadas à cibersegurança, e o HackBot responderá com respostas informativas. Para sair do chat, basta digitar "quit_bot" no prompt de entrada.
Aqui estão alguns comandos adicionais que você pode usar:
clear_screen: Limpa a tela do console para melhor legibilidade.quit_bot: Usado para sair do aplicativo de chat.bot_banner: Imprime o banner padrão do bot.contact_dev: Fornece minhas informações de contato.save_chat: Salva as interações da sessão atual.vuln_analysis: Realiza uma análise de vulnerabilidades usando os dados de varredura ou arquivo de log.static_code_analysis: Realiza uma análise estática de código usando os dados de varredura ou arquivo de log.Nota: Estou trabalhando em mais complementos e mais comandos como esses para proporcionar uma experiência mais parecida com o chatGPT.
Por favor, observe: As respostas do HackBot são baseadas no modelo de IA Meta-LLama2, e sua precisão depende da qualidade das consultas e dos dados fornecidos a ele.
Também estou trabalhando em treinamento de IA para ensiná-lo a ser ajustado com mais precisão para trabalhar para hackers em um nível mais profissional.
Aceitamos contribuições para melhorar a funcionalidade e precisão do HackBot. Se você encontrar problemas ou tiver sugestões de melhorias, sinta-se à vontade para abrir uma issue ou enviar um pull request. Siga estas etapas para contribuir:
main deste repositório.Mantenha um histórico de commits limpo e siga as diretrizes de codificação do projeto.
Se alguém com conhecimento em treinar modelos de geração de texto puder ajudar a melhorar o código. Para a parte de treinamento de IA, preparei um conjunto de dados e um código funcional para o treinamento, mas estou enfrentando problemas com a parte de treinamento. Colaboração nisso será apreciada. Você pode visualizar o conjunto de dados em:
A versão do GitHub do conjunto de dados é para treinamento do OpenAI e a outra é para Llama2-7b da Meta. O objetivo do conjunto de dados é tentar e possivelmente gerar um modelo de IA capaz de trabalhar melhor com dados de CVE. Se você achar que o conjunto de dados está faltando algo, sinta-se à vontade para modificá-lo e compartilhar suas opiniões.
Para quaisquer perguntas, feedback ou consultas relacionadas ao HackBot, entre em contato com o mantenedor do projeto: