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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
sleep_python_bridge — هذا المشروع هو 'جسر' بين sleep ولغة بايثون. يسمح بالتحكم في خادم فريق Cobalt Strike من خلال بايثون دون الحاجة إلى عميل الواجهة الرسومية القياسي. ملاحظة: هذا المشروع في مرحلة تجريبية جدًا. الهدف هو توفير بيئة للاختبار وليس ميزة مدعومة رسميًا بأي حال. ربما يمكن إضافة هذا في المستقبل إلى المنتج الأساسي. | Kitploit
أدوات/GitHubGitHub/cobalt-strike/sleep_python_bridge
إدارة مؤشرات الاختراق (IOC)توليد الحمولةالقيادة والسيطرةالفريق الأحمرتطوير الحمولاتتحليل السجلات
GitHubcobalt-strike/sleep_python_bridge

sleep_python_bridge

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →

حول

188325منذ سنة واحدةتمت المراجعة من قبل Kitploit

هذا المشروع هو 'جسر' بين sleep ولغة بايثون. يسمح بالتحكم في خادم فريق Cobalt Strike من خلال بايثون دون الحاجة إلى عميل الواجهة الرسومية القياسي. ملاحظة: هذا المشروع في مرحلة تجريبية جدًا. الهدف هو توفير بيئة للاختبار وليس ميزة مدعومة رسميًا بأي حال. ربما يمكن إضافة هذا في المستقبل إلى المنتج الأساسي.

مشاركة

Cobalt Strike Sleep Python Bridge

هذا المشروع هو 'جسر' بين لغة sleep ولغة python. يسمح بالتحكم في خادم الفريق (teamserver) الخاص بـ Cobalt Strike عبر python دون الحاجة إلى عميل الواجهة الرسومية القياسي.

ملاحظة: هذا المشروع في مرحلة تجريبية (BETA) إلى حد كبير. الهدف هو توفير بيئة للتجربة والاختبار وهو ليس ميزة مدعومة رسميًا بأي حال من الأحوال. ربما يمكن إضافة هذا في المستقبل إلى المنتج الأساسي.

استوحى هذا المشروع من العمل الذي قام به @BinaryFaultline و @Mcgigglez16 في المشروع https://github.com/emcghee/PayloadAutomation. أود أن أقدم شكرًا خاصًا لكما!!

يتمثل جوهر هذا الجسر في تنفيذ بايثون لعميل Cobalt Strike بدون واجهة رسومية (headless). يتم تحقيق ذلك باستخدام وحدة تحكم Aggressor Script المقدمة من agscript كمحرك. تتيح agscript التفاعل بدون واجهة رسومية مع Cobalt Strike (https://www.cobaltstrike.com/aggressor-script/index.html). يعمل 'الجسر' باستخدام دوال مساعدة بلغة بايثون في sleepy.py لتوليد أوامر sleep اللازمة التي تتوقعها وحدة تحكم agscript. بدلاً من كتابة دوال sleep، توفر striker.py دوال مساعدة تجرّد sleep وتتيح استخدام بايثون.

تغييرات جديرة بالملاحظة عن المشروع الأصلي

نظرًا لأن مشروع PayloadAutomation كان مصدر الإلهام، فقد بدأ بالكثير من الكود نفسه، لكنني أردت تقليصه لاستخدام المكونات اللازمة للعمل كغلاف لـ agscript.

  • تمت إعادة التسمية من Payload_Automation إلى sleep_python_bridge. هذا المشروع أكثر من مجرد توليد حمولات.
  • تم التحويل من مكتبة PyPI إلى وحدات محلية. تم ذلك للاختبار وقد يكون مرشحًا جيدًا ليكون مكتبة بايثون بعد اختبارات مكثفة
  • تم تحديث وإضافة دوال مساعدة لتتوافق مع إصدارات aggressor
  • إضافة القدرة على تحميل السكربتات الخارجية.

المكتبات المضمنة

  • Striker: مجموعة من الدوال للتفاعل مع Cobalt Strike وتنفيذ وظائف لا يمكن الوصول إليها عادة إلا عبر Sleep/الواجهة الرسومية.
  • Sleepy: مجموعة من الدوال للمساعدة في تسهيل جسر بين كائنات Sleep وكائنات بايثون.
  • Compyler: مجموعة من الدوال لتجميع حمولات مختلفة من منصة أو عبر المنصات.
  • Artifactor: مجموعة من الدوال لفحص ومراجعة القطع الأثرية (artifacts) وجمع وتتبع مؤشرات الاختراق (IoCs).

الملفات والدلائل

المهام المتبقية (TODO)

  • توثيق الدوال المكشوفة
  • نقل الدوال القائمة على التجميع من striker.py إلى compyler.py
  • إضافة فحص إضافي للأخطاء، تحديدًا لتبعيات التطبيق
  • توسيع compyler ليشمل البناء عن بُعد و mingw
  • إضافة تتبع مؤشرات الاختراق (IoC) للحمولات المولدة عبر artifactor.py
  • معالجة الخطأ: "User is already connected."
  • التفكير في تحويل هذا إلى مكتبة بايثون رسمية

كيفية الاستخدام

قد تكون الأمثلة في هذا المشروع أسهل طريقة للفهم، ويتمثل ذلك في السكربت example.py

root@kitploit:~
#!/usr/local/bin/python3

## Import the bridge
from sleep_python_bridge.striker import CSConnector
from argparse import ArgumentParser
from pprint import pp, pprint

###################
## Argparse
def parseArguments():
    parser = ArgumentParser()
    parser.add_argument('host', help='The teamserver host.')
    parser.add_argument('port', help='The teamserver port.')
    parser.add_argument('username', help='The desired username.')
    parser.add_argument('password', help='The teamserver password.')
    parser.add_argument('path', help="Directory to CobaltStrike")
    
    args = parser.parse_args()
    return args

## Let's go
def main(args):

    cs_host = args.host
    cs_port = args.port
    cs_user = args.username
    cs_pass = args.password
    cs_directory = args.path

    ## Connect to server
    print(f"[*] Connecting to teamserver: {cs_host}")
    with CSConnector(
        cs_host=cs_host, 
        cs_port=cs_port, 
        cs_user=cs_user, 
        cs_pass=cs_pass,
        cs_directory=cs_directory) as cs:

        # Perform some actions
        # 
        # Get beacon metadata - i.e., x beacons() from the script console
        beacons = cs.get_beacons()
        print("BEACONS")
        pprint(beacons)

        # Get list of listners - i.e., x listeners_stageless() from the script console
        listeners = cs.get_listeners_stageless()
        print("LISTENERS")
        pprint(listeners)

if __name__ == "__main__":
    args = parseArguments()
    main(args)

قم باستدعاء السكربت

root@kitploit:~
python3 example.py 127.0.0.1 50050 example password /path/to/cobaltstrike

أمثلة عملية

متتبع السجلات (Log Tracker)

سجلات الـ beacon متاحة في وقت التشغيل على خادم الفريق (teamserver) أو عبر ملفات سجلات الـ beacon المحفوظة على الخادم. البيانات موجودة دائمًا، ولكن قد لا يتم عرضها بالطريقة التي تريدها. هذا مثال على متتبع سجلات يستخدم شبكة بيانات HTML لعرض سجلات الـ beacon بسرعة.

beaconlogtracker.py هو سكربت يتصل بخادم الفريق، ويستخرج سجلات الـ beacon قيد التشغيل كل 30 ثانية، ويحفظها في <code>beaconlogs.json` ويعرضها في شبكة بيانات HTML قابلة للبحث والفرز.

تُحفظ سجلات الـ beacon دائمًا في دليل logs، لكن هذه طريقة بديلة لتتبع السجلات الموجودة في الذاكرة باستخدام عارض بديل. إذا تمت إعادة تشغيل خادم الفريق، تُفقد السجلات الموجودة في الذاكرة، ويجب عليك الرجوع إلى السجلات المخزنة في دليل logs على خادم الفريق. يحافظ هذا السكربت على مزامنة السجلات الموجودة في الذاكرة مع الملف beaconlogs.json. بهذه الطريقة لديك طريقة سريعة وسهلة لتصور جميع البيانات دون البحث في دليل logs حتى إذا تمت إعادة تشغيل Cobalt Strike.

ابدأ السكربت من خلال جعله يتصل بخادم الفريق لديك لمزامنة السجلات كل 30 ثانية

الاستخدام:

python3 beaconlogtracker.py 127.0.0.1 50050 logtracker password /path/to/cobaltstrike

سيؤدي ذلك إلى إبقاء beaconlogs.json متزامنًا مع سجلات الـ beacon المحفوظة وقيد التشغيل. تتم المزامنة كل 30 ثانية

شغّل خادم ويب من دليل output/html

python3 -m http.server 8000

اتصل بـ http://localhost:8000/beaconlogs.html

مولّد الحمولات (Payload Generator)

من الميزات التي يطلبها مشغلو الفرق الحمراء (red team) غالبًا القدرة على إنشاء الحمولات برمجيًا دون الحاجة إلى واجهة Cobalt Strike الرسومية. قام المشروع المرجعي بذلك عبر مولّد حمولات. كان ذلك رائعًا، لكن هناك تحدٍ فريد. توفر Aggressor عدة خطافات (hooks) للتأثير على كيفية بناء الحمولة. تُستخدم هذه الخطافات بواسطة الحزم المختلفة (أي artifact kit و sleep mask kit و UDRL kit). تُستخدم عادةً عن طريق تحميل سكربت aggressor عبر الواجهة الرسومية. تم توسيع هذا المشروع للسماح بتحميل السكربتات الخارجية. بدون ذلك، سيكون استخدام خطافات الحمولات هذه صعبًا. يمكن بسهولة توسيع هذا الكود لتمرير الحمولات إلى دوال خارجية لإضافة إخفاء مخصص (obfuscation)، أو تضمينها في أداة تحميل مخصصة، أو أي تعديل آخر.

يتصل سكربت مولّد الحمولات بخادم الفريق، ويحمّل السكربتات الإضافية، وينشئ الحمولات.

الاستخدام (بدون حزم خارجية):

  • شغّل python3 payloadgenerator.py 127.0.0.1 50050 payloads password /path/to/cobaltstrike

الاستخدام (مع حزمة خارجية)

سيعرض هذا المثال خطوات إضافة حزمة Arsenal التي تتضمن تفعيل حزمتي artifact و sleep mask.

  • حدّث ملف /path/to/arsenal_kit/arsenal_kit.config لتفعيل حزمتي artifact و sleep mask
  • [اختياري] قم بأي تعديلات على حزمتي artifact و sleep mask حسب الحاجة
  • قم ببناء حزمة arsenal باستخدام /path/to/arsenal_kit/build_arsenal_kit.sh
  • انسخ ملفات توزيع حزمة arsenal إلى دليل payload_scripts.
    cp -r /path/to/arsenal_kit/dist/* /path/to/sleep_python_bridge/payload_scripts
  • [اختياري] راجع قسم تسجيل الأحداث (logging) لمزيد من المعلومات حول التعديلات الإضافية
  • شغّل python3 payloadgenerator.py 127.0.0.1 50050 payloads password /path/to/cobaltstrike

تسجيل الأحداث (logging)

عادةً عند استخدام الواجهة الرسومية، يمكن للسكربتات الخارجية استخدام دالة aggressor المعروفة باسم println لإخراج المعلومات إلى وحدة تحكم السكربتات (Script Console)، وهو أمر مفيد للتغذية الراجعة أو تصحيح الأخطاء. عند استخدام payloadgenerator.py، يُفقد إخراج println والخيار الوحيد المتاح هو دالة elog. عند استخدام elog، تحتاج إلى الواجهة الرسومية لعرض المعلومات في سجل الأحداث (Event Log).

استكمالًا لمثال الاستخدام 'مع حزمة خارجية'، دعنا نحدّث ملف /path/to/sleep_python_bridge/payload_scripts/arsenal_kit.cna ونغيّر الموضعين اللذين يظهر فيهما println إلى elog. مع هذا التغيير، ستتوفر جميع سجلات حزمة arsenal الآن في سجل الأحداث بالواجهة الرسومية.

تحميل السكربتات الخارجية

تحميل السكربتات الخارجية ليس مطلوبًا دائمًا باستثناء سكربتات تعديل الحمولات التي تتضمن خطافات حمولات (أي حزم artifact و sleep mask و udrl). إذا قمت بتحميل السكربتات من واجهة Cobalt Strike الرسومية، فستلتزم الحمولات بهذه السكربتات من الواجهة الرسومية فقط وليس من عميل agscript (فهذان عميلان مختلفان). يجب إضافة السكربتات والملفات الداعمة إلى دليل payload_scripts.

سيقوم payloadgenerator.py تلقائيًا بتحميل أي سكربت .cna موجود في المستوى الأعلى من دليل payload_scripts. أما أي سكربت .cna موجود في دليل فرعي فلن يتم تحميله.

مثال على بنية الدليل مع حزمة Arsenal.

root@kitploit:~
$ ls -1R ./payload_scripts
./payload_scripts:
arsenal_kit.cna
artifact
sleepmask

./payload_scripts/artifact:
artifact32big.dll
artifact32big.exe
artifact32.dll
artifact32.exe
artifact32svcbig.exe
artifact32svc.exe
artifact64big.exe
artifact64big.x64.dll
artifact64.exe
artifact64svcbig.exe
artifact64svc.exe
artifact64.x64.dll
artifact.cna

./payload_scripts/sleepmask:
sleepmask.cna
sleepmask_pivot.x64.o
sleepmask_pivot.x86.o
sleepmask.x64.o
sleepmask.x86.o

الاستخدام (خيارات إضافية للإصدار 4.8)

بفضل تحديث حديث قدمه @mgeeky، يدعم سكربت payloadgenerator.py الآن وسائط إضافية لدعم معاملات دالة artifact_payload الجديدة المضافة في الإصدار 4.8. مع هذه الوسائط، لديك الآن تحكم أكبر في الحمولات التي يتم توليدها.

root@kitploit:~
$ python3 payloadgenerator.py --help
------------------------
Beacon Payload Generator
------------------------
usage: payloadgenerator.py [-h] [-o path] [-l name] [-a arch] [-t types] [-e exit] [-c method] host port username password path

positional arguments:
  host                  The teamserver host.
  port                  The teamserver port.
  username              The desired username.
  password              The teamserver password.
  path                  Directory to CobaltStrike

optional arguments:
  -h, --help            show this help message and exit

optional parameters:
  -o path, --payload-path path
                        Where to save generated payloads. Default: output/payloads/
  -l name, --listener name
                        Specify listener name to get payloads for. Default: payloads for all listeners will be produced
  -a arch, --arch arch  Specify payload architecture. Choices: x86, x64. Default: payloads for both are generated
  -t types, --payload-types types
                        Comma separated list of payload types to generate keyed by file extensions. Choices: exe,dll,svc.exe,bin,ps1,py,vbs or use 'all' to compile all at once.
                        Default: exe,dll,bin
  -e exit, --exit exit  Payload exit method. Choices: thread, process. Default: process
  -c method, --call-method method
                        System call method. Choices: indirect, direct, none. Default: <empty> (backwards compatible with Cobalt pre 4.8)

أمثلة

root@kitploit:~
$python3 payloadgenerator.py 127.0.0.1 50050 payloads password /path/to/cobaltstrike -o /share/payloads/ -c indirect -a x64
------------------------
Beacon Payload Generator
------------------------
[*] Connecting to teamserver: 127.0.0.1
Loading cna scripts from ./payload_scripts

Scripts
-------
arsenal_kit.cna
console.cna

[*] Creating stageless payloads for listener: http1
[*] Creating http1.x64.exe
[*] Creating http1.x64.dll
[*] Creating http1.x64.bin

$python3 payloadgenerator.py 127.0.0.1 50050 payloads password /path/to/cobaltstrike -o /share/payloads/ -c indirect -a x64 -t exe
------------------------
Beacon Payload Generator
------------------------
[*] Connecting to teamserver: 127.0.0.1
Loading cna scripts from ./payload_scripts

Scripts
-------
arsenal_kit.cna
console.cna

[*] Creating stageless payloads for listener: http1
[*] Creating http1.x64.exe

$python3 payloadgenerator.py 127.0.0.1 50050 payloads password /path/to/cobaltstrike -o /share/payloads/
------------------------
Beacon Payload Generator
------------------------
[*] Connecting to teamserver: 127.0.0.1
Loading cna scripts from ./payload_scripts

Scripts
-------
arsenal_kit.cna
console.cna

[*] Creating stageless payloads for listener: http1
[*] Creating http1.x86.exe
[*] Creating http1.x86.dll
[*] Creating http1.x86.bin
[*] Creating http1.x64.exe
[*] Creating http1.x64.dll
[*] Creating http1.x64.bin

الراسم البياني للـ Beacon (Beacon Grapher)

هذا كود تجريبي (beta) يعرض الـ beacons في رسم بياني موجّه.

يقوم السكربت بتحديث الملف output/data/beacons.json

شغّل خادم ويب وافتح http://localhost:8000/beacons.html

الاستخدام:

python3 beacongrapher.py 127.0.0.1 50050 grapher password /path/to/cobaltstrike

سيؤدي ذلك إلى إنشاء ملف beacons.json المستخدم بواسطة الراسم البياني المكتوب بلغة الجافاسكربت.

شغّل خادم ويب من دليل output/html

python3 -m http.server 8000

اتصل بـ http://localhost:8000/beacons.html

تنزيل الأداة
العنصرالوصف
sleep_python_bridgeالمكتبة التي تتيح لبايثون التفاعل مع Cobalt Strike
output/htmlمسار عارضات بيانات HTML
output/html/dataمسار بيانات json المستخدمة بواسطة عارض البيانات
output/payloadsمسار الحمولات المحفوظة (يُستخدم بواسطة مولّد الحمولات)
payload_scriptsمسار السكربتات الخارجية التي سيتم تحميلها بواسطة payloadgenerator.py
beaconlogtracker.pyتنفيذ لمتتبع سجلات الـ beacon يستخدم شبكة بيانات HTML لعرض سجلات الـ beacon
payloadgenerator.pyتنفيذ لمولّد حمولات beacon ينشئ حمولات لكل مستمع (listener)
beacongrapher.pyتنفيذ لمتعقب رسومي للـ beacon يستخدم رسمًا بيانيًا موجّهًا بتقنية HTML/JavaScript للـ beacons