
روبوت محادثة للأمن السيبراني مدعوم بالذكاء الاصطناعي، مصمم لتقديم إجابات مفيدة ودقيقة لاستفساراتك المتعلقة بالأمن السيبراني، بالإضافة إلى تحليل الشيفرات وتحليل المسح.
_ _ _ ____ _
| | | | __ _ ___| | _| __ ) ___ | |_
| |_| |/ _` |/ __| |/ / _ \ / _ \| __| By: Morpheuslord
| _ | (_| | (__| <| |_) | (_) | |_ AI used: Meta-LLama2
|_| |_|\__,_|\___|_|\_\____/ \___/ \__|
مرحبًا بك في هاك بوت، وهو روبوت محادثة للأمن السيبراني مدعوم بالذكاء الاصطناعي صُمم لتقديم إجابات مفيدة ودقيقة لاستفساراتك المتعلقة بالأمن السيبراني، وكذلك لتحليل الأكواد وتحليل الفحص. سواء كنت باحثًا في مجال الأمن، أو مخترقًا أخلاقيًا، أو مجرد فضولي حول الأمن السيبراني، فإن هاك بوت هنا لمساعدتك في العثور على المعلومات التي تحتاجها.
يستخدم هاك بوت نموذج اللغة القوي Meta-LLama2 من خلال مكتبة "LlamaCpp". وهذا يسمح لهاك بوت بالرد على أسئلتك بطريقة مترابطة وذات صلة. يرجى التأكد من كتابة استفساراتك باللغة الإنجليزية والالتزام بالإرشادات المقدمة للحصول على أفضل النتائج من هاك بوت.
AI_OPTION في ملف .env، فبالنسبة لـ Runpod يجب استخدام RUNPOD وبالنسبة لـ نشر llama محليًا استخدم LOCALLLAMA. RUNPOD & LOCALLLAMAمعرّف RUNPOD و مفتاح API الخاص بـ RUNPOD.استخدام LLama2 هو أحد أفضل الخيارات المجانية وغير المتصلة بالإنترنت المتاحة. إنه حاليًا قيد التحسين، وأعمل على تعليمات (prompt) ستدمج بشكل أفضل منظور الأمن السيبراني في الذكاء الاصطناعي. يجب أن أشكر @thisserand ومستودعه llama2_local وكذلك فيديو اليوتيوب الخاص به YT_Video. لقد كانا موارد رائعة. ولأكون صريحًا، فإن كود llama2 هو 95% من عمله، أنا فقط أخذت الكود وأضفت وظيفة Flask API إليه.
كانت دقة الذكاء الاصطناعي في وضع عدم الاتصال وخارج اختبارات الكود رائعة وكانت مساوية لدقة openai أو bard، لكن أثناء وجوده في الكود واجه بعض المشكلات ربما بسبب التعليمات (prompting) وغيرها. سأحاول إصلاح ذلك.
تعتمد السرعة على نظامك وإعدادات GPU و CPU لديك. حاليًا يستخدم نموذج TheBloke/Llama-2-7B-Chat-GGML ويمكن تغييره عبر ملفي portscanner و dnsrecon.
حاليًا، يتم التعامل مع كود llama وعمليات الفحص بشكل مختلف. بعد بعض الاختبارات، وجدت أن llama يحتاج إلى تدريب قليل ليعمل بالطريقة التي قصدتها، لذا فهو يحتاج بعض الوقت. يمكن إضافة أي اقتراحات حول كيفية القيام بذلك في نقاشات هذا المستودع رابط النقاشات. في الوقت الحالي، لن يكون المخرج قائمة مقسمة لجميع البيانات، بل سيكون شرحًا للثغرة أو المشكلة التي اكتشفها الذكاء الاصطناعي.
تبدو التعليمات (prompt) المستخدمة للنموذج كما يلي:
[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.
باستخدام مجموعة التعليمات والبيانات المقدمة عبر الـ prompt، يولد الذكاء الاصطناعي llama مخرجاته.
للاستخدام الأكثر شيوعًا، أقترح إنشاء نشر نقطة نهاية خادمة بدون حالة (serverless endpoint) لـ llama على runpod، يمكنك الرجوع إلى هذا البرنامج التعليمي من أجل ذلك برنامج تعليمي. اتبع البرنامج التعليمي للاستخدام الأفضل.



قبل المتابعة في التثبيت، تأكد من توفر المتطلبات الأساسية التالية:
pip3Visual studio Code - اتبع الخطوات في هذا الرابط تعليمات تثبيت المتطلبات الأساسية لـ llama-cppcmakegit clone https://github.com/morpheuslord/hackbot.git
cd hackbot
pip3 install -r requirements.txt
python3 hackbot.py
في المرة الأولى التي تقوم فيها بتشغيل هاك بوت، سيتحقق من وجود نموذج الذكاء الاصطناعي المطلوب لروبوت المحادثة. إذا لم يكن النموذج موجودًا، فسيتم تنزيله تلقائيًا وحفظه باسم "llama-2-7b-chat.ggmlv3.q4_0.bin" في دليل المشروع.
لبدء محادثة مع هاك بوت، قم بتشغيل الأمر التالي:
يجب أن يبدو ملف .env كما يلي:
RUNPOD_ENDPOINT_ID = ""
RUNPOD_API_KEY = ""
AI_OPTION = "LLAMALOCAL"
بعد ذلك، قم بتشغيل هذا.
python hackbot.py
يجب أن يبدو ملف .env كما يلي:
RUNPOD_ENDPOINT_ID = "<<معرف نقطة النهاية الخادمة>>"
RUNPOD_API_KEY = "<<مفتاح API الخاص بـ RUNPOD>>"
AI_OPTION = "RUNPOD"
بعد ذلك، قم بتشغيل هذا.
python3 hackbot.py
سيعرض هاك بوت شعارًا وينتظر إدخالك. يمكنك طرح أسئلة متعلقة بالأمن السيبراني، وسيرد هاك بوت بإجابات غنية بالمعلومات. للخروج من الدردشة، اكتب ببساطة "quit_bot" في موجه الإدخال.
إليك بعض الأوامر الإضافية التي يمكنك استخدامها:
clear_screen: يمسح شاشة الكونسول لتحسين القراءة.quit_bot: يستخدم للخروج من تطبيق الدردشة.bot_banner: يطبع شعار الروبوت الافتراضي.contact_dev: يوفر معلومات الاتصال بي.save_chat: يحفظ تفاعلات الجلسة الحالية.vuln_analysis: يقوم بتحليل الثغرات باستخدام بيانات الفحص أو ملف السجل.static_code_analysis: يقوم بتحليل ثابت للكود باستخدام بيانات الفحص أو ملف السجل.ملاحظة: أعمل على المزيد من الإضافات والمزيد من الأوامر لإعطاء تجربة أشبه بـ chatGPT.
يرجى الملاحظة: ردود هاك بوت مبنية على نموذج الذكاء الاصطناعي Meta-LLama2، وتعتمد دقتها على جودة الاستفسارات والبيانات المقدمة له.
أعمل أيضًا على تدريب الذكاء الاصطناعي حيث يمكنني تعليمه كيف يكون أكثر دقة في العمل لصالح المخترقين على مستوى أكثر احترافية.
نرحب بالمساهمات لتحسين وظائف ودقة هاك بوت. إذا واجهت أي مشكلات أو كانت لديك اقتراحات للتحسينات، فلا تتردد في فتح مشكلة (issue) أو تقديم طلب سحب (pull request). اتبع هذه الخطوات للمساهمة:
main لهذا المستودع.يرجى الحفاظ على تاريخ اعتمادات (commit history) نظيفًا والالتزام بإرشادات الترميز الخاصة بالمشروع.
إذا كان أي شخص لديه المعرفة بكيفية تدريب نماذج توليد النصوص، يمكنه المساعدة في تحسين الكود. بالنسبة لجزء تدريب الذكاء الاصطناعي، فقد أعددت مجموعة بيانات وكود عمل للتدريب لكني أواجه مشكلات في جزء التدريب وسيكون التعاون في ذلك موضع تقدير. يمكنك عرض مجموعة البيانات على:
إصدار Github من مجموعة البيانات مخصص لتدريب OpenAI والآخر مخصص لـ Llama2-7b من meta. الهدف من مجموعة البيانات هو محاولة توليد نموذج ذكاء اصطناعي قادر بما يكفي على العمل بشكل أفضل مع بيانات CVE. إذا شعرت أن مجموعة البيانات ناقصة، فلا تتردد في تعديلها ومشاركة آرائك.
لأي أسئلة أو تعليقات أو استفسارات تتعلق بهاك بوت، لا تتردد في الاتصال بمشرف المشروع: