
Чат-бот на основе ИИ для кибербезопасности, предназначенный для предоставления полезных и точных ответов на ваши запросы, связанные с кибербезопасностью, а также для анализа кода и анализа сканирования.
_ _ _ ____ _
| | | | __ _ ___| | _| __ ) ___ | |_
| |_| |/ _` |/ __| |/ / _ \ / _ \| __| By: Morpheuslord
| _ | (_| | (__| <| |_) | (_) | |_ AI used: Meta-LLama2
|_| |_|\__,_|\___|_|\_\____/ \___/ \__|
Добро пожаловать в HackBot — ИИ-чатбот по кибербезопасности, предназначенный для предоставления полезных и точных ответов на ваши вопросы, связанные с кибербезопасностью, а также для анализа кода и сканирования. Будь вы исследователем безопасности, этичным хакером или просто интересуетесь кибербезопасностью, HackBot здесь, чтобы помочь вам найти нужную информацию.
HackBot использует мощную языковую модель Meta-LLama2 через библиотеку "LlamaCpp". Это позволяет HackBot отвечать на ваши вопросы связно и релевантно. Пожалуйста, убедитесь, что ваши запросы на английском языке, и следуйте предоставленным рекомендациям для достижения наилучших результатов от HackBot.
AI_OPTION в файле .env: для Runpod вам нужно использовать RUNPOD и для Локального развертывания llama LOCALLLAMA. RUNPOD и LOCALLLAMARUNPOD ID и ваш RUNPOD API KEY установлены.Использование LLama2 — один из лучших офлайн- и бесплатных вариантов. В настоящее время он находится в стадии улучшения: я работаю над промптом, который лучше интегрирует перспективу кибербезопасности в ИИ. Я хочу поблагодарить @thisserand и его репозиторий llama2_local, а также его видео на YouTube YT_Video. Это были отличные ресурсы. Честно говоря, код llama2 на 95% его, я просто взял код и добавил функциональность Flask API.
Точность ИИ в офлайн-режиме и вне тестов кода была отличной и сопоставима с openai или bard, но в коде возникали некоторые проблемы, возможно, из-за промптинга и прочего. Я постараюсь это исправить.
Скорость зависит от вашей системы и конфигурации GPU и CPU. В настоящее время используется модель TheBloke/Llama-2-7B-Chat-GGML, и ее можно изменить через файлы portscanner и dnsrecon.
Пока что код llama и сканирования обрабатываются по-разному. После нескольких тестов я понял, что llama нужно немного обучить, чтобы она работала так, как я задумал, поэтому требуется время. Любые предложения о том, как это сделать, можно добавить в обсуждения этого репозитория Discussions Link. На данный момент вывод не будет разделенным списком всех данных, вместо этого будет объяснение уязвимости или проблем, обнаруженных ИИ.
Промпт для использования модели выглядит так:
[INST] <<SYS>> {user_instruction}<</SYS>> NMAP Data to be analyzed: {user_message} [/INST]
Инструкции выглядят так:
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.
Используя набор инструкций и данные, предоставленные через промпт, ИИ llama генерирует свой вывод.
Для наиболее частого использования я рекомендую создать развертывание бессерверной конечной точки runpod для llama; вы можете обратиться к этому руководству tutorial. Следуйте руководству для лучшего использования.



Перед началом установки убедитесь, что у вас есть следующие предварительные требования:
pip3Visual studio Code — Следуйте инструкциям по этой ссылке llama-cpp-prereq-install-instructionscmakegit clone https://github.com/morpheuslord/hackbot.git
cd hackbot
pip3 install -r requirements.txt
python3 hackbot.py
При первом запуске HackBot проверит наличие модели ИИ, необходимой для чатбота. Если модель отсутствует, она будет автоматически загружена и сохранена как "llama-2-7b-chat.ggmlv3.q4_0.bin" в каталоге проекта.
Чтобы начать разговор с HackBot, выполните следующую команду:
Файл .env должен выглядеть так:
RUNPOD_ENDPOINT_ID = ""
RUNPOD_API_KEY = ""
AI_OPTION = "LLAMALOCAL"
После этого выполните:
python hackbot.py
Файл .env должен выглядеть так:
RUNPOD_ENDPOINT_ID = "<<SERVERLESS ENDPOINT ID>>"
RUNPOD_API_KEY = "<<RUNPOD API KEY>>"
AI_OPTION = "RUNPOD"
После этого выполните:
python3 hackbot.py
HackBot отобразит баннер и будет ждать вашего ввода. Вы можете задавать вопросы, связанные с кибербезопасностью, и HackBot ответит информативными ответами. Чтобы выйти из чата, просто введите "quit_bot" в строке ввода.
Вот некоторые дополнительные команды, которые вы можете использовать:
clear_screen: Очищает экран консоли для лучшей читаемости.quit_bot: Используется для выхода из приложения чата.bot_banner: Выводит стандартный баннер бота.contact_dev: Предоставляет мою контактную информацию.save_chat: Сохраняет взаимодействия текущего сеанса.vuln_analysis: Выполняет анализ уязвимостей с использованием данных сканирования или файла журнала.static_code_analysis: Выполняет статический анализ кода с использованием данных сканирования или файла журнала.Примечание: Я работаю над дополнительными дополнениями и подобными командами, чтобы обеспечить более близкий к ChatGPT опыт.
Пожалуйста, обратите внимание: Ответы HackBot основаны на модели ИИ Meta-LLama2, и их точность зависит от качества запросов и предоставленных данных.
Я также работаю над обучением ИИ, с помощью которого можно научить его более точно настраиваться для работы с хакерами на гораздо более профессиональном уровне.
Мы приветствуем вклад в улучшение функциональности и точности HackBot. Если вы столкнулись с какими-либо проблемами или у вас есть предложения по улучшению, пожалуйста, создайте issue или отправьте pull request. Следуйте этим шагам для внесения вклада:
main этого репозитория.Пожалуйста, поддерживайте чистую историю коммитов и следуйте рекомендациям по кодированию проекта.
Если кто-то, обладающий знаниями в обучении моделей генерации текста, может помочь улучшить код. Для части обучения ИИ я подготовил набор данных и рабочий код для обучения, но у меня возникают проблемы с обучением, и сотрудничество в этом будет оценено. Вы можете просмотреть набор данных на:
Версия набора данных на GitHub предназначена для обучения OpenAI, а другая — для Llama2-7b от meta. Цель набора данных — попытаться создать модель ИИ, способную лучше работать с данными CVE. Если вы считаете, что набор данных неполный, не стесняйтесь изменять его и делиться своим мнением.
По любым вопросам, отзывам или запросам, связанным с HackBot, обращайтесь к сопровождающему проекта: