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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
USB Spy — يعترض ويحلل حركة مرور أجهزة التخزين الكتلي USB على مستوى الكتلة والملف، ويحاكي أجهزة USB، ويدعم برامج ثابتة مخصصة بلغة بايثون لأبحاث الأمن، والتحليل الجنائي، واختبار ثغرات TOCTOU. | Kitploit
أدوات/GitLabGitLab/christophe.duvernois/usb-spy
تحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةالتحقيق الجنائي الرقميالتحاليل الرقمية الجنائيةاختبار الاختراقأمن الأجهزةالفريق الأحمرتحليل البرامج الثابتة
GitLabchristophe.duvernois/usb-spy

USB Spy

يعترض ويحلل حركة مرور أجهزة التخزين الكتلي USB على مستوى الكتلة والملف، ويحاكي أجهزة USB، ويدعم برامج ثابتة مخصصة بلغة بايثون لأبحاث الأمن، والتحليل الجنائي، واختبار ثغرات TOCTOU.

324منذ شهر واحدلم تتم المراجعة بعد
عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

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

USB SPY

Logo

License: GPL v3 pipeline

usb-spy هو محلل حركة مرور USB Mass Storage مبني حول متحكم دقيق يدعم WiFi أو Ethernet.

يعرض اللوح صورة قرص (FAT أو أي نظام ملفات) كجهاز USB Mass Storage وهمي للنظام المستهدف، بينما يتم توفير بيانات التخزين الفعلية من خادم بعيد عبر WiFi أو Ethernet. يتيح هذا الإعداد لـ usb-spy اعتراض وتحليل كل عملية وصول إلى الكتل يقوم بها النظام المستهدف.

إلى جانب التتبع على مستوى الكتل الخام، يفهم usb-spy أنظمة الملفات ويمكنه ربط كل كتلة تم الوصول إليها بالملف والدليل المقابلين، مما يسهل رؤية الملف الذي يتم قراءته أو كتابته فورًا، بدلاً من مجرد أرقام القطاعات الخام.

بالإضافة إلى ذلك، يمكن لـ usb-spy محاكاة أي جهاز USB من خلال تخصيص خصائص الجهاز مثل معرف البائع، ومعرف المنتج، والرقم التسلسلي، والشركة المصنعة، واسم المنتج عبر ملف إعدادات JSON. يتيح لك ذلك انتحال شخصية أجهزة USB محددة لأغراض الاختبار والتحليل.

الأداة قابلة للتوسعة بسهولة من خلال أكواد Python النصية التي يكتبها المستخدم، مما يتيح لك تنفيذ منطق مخصص للتعامل مع أحداث القراءة/الكتابة USB وعمليات مستوى الكتل.

Design

الوعي بنظام الملفات

عند اكتشاف نظام ملفات مدعوم، يقوم usb-spy بما يلي:

  • تحليل بيانات نظام الملفات الوصفية
  • تحويل عناوين الكتل إلى مسارات ملفات
  • عرض أسماء الملفات والأدلة القابلة للقراءة البشرية لكل عملية وصول
  • أنظمة الملفات المدعومة حاليًا:

    • FAT32
    • EXT4

    سيتم إضافة دعم لأنظمة ملفات إضافية في المستقبل.

    إذا لم يكن نظام الملفات مدعومًا، فلا يزال بإمكان usb-spy العمل:

    • يتم التقاط جميع عمليات القراءة/الكتابة USB
    • يتم عرض عمليات الوصول على مستوى الكتل الخام
    • معلومات اسم الملف والدليل غير متاحة

    يضمن ذلك بقاء usb-spy مفيدًا حتى مع أنظمة الملفات غير المعروفة أو المخصصة أو الاحتكارية.

    حالات الاستخدام النموذجية

    • هندسة عكسية لـ USB Mass Storage
    • تحليل سلوك البرامج الثابتة وأنظمة التشغيل
    • فهم أنماط الوصول إلى الملفات أثناء الإقلاع أو وقت التشغيل
    • البحث الأمني والتحليل الجنائي الرقمي
    • اكتشاف واستغلال ثغرات Time-of-Check Time-of-Use (TOCTOU)

    بناء برنامج USB-SPY الثابت للوحات المدعومة

    SupportedBoard

    تعليمات بناء البرنامج الثابت لكل لوحة مدعومة موصوفة هنا:

    • لوحة Raspberry Pi Pico المبنية على متحكم RP2040
      • Raspberry Pico W
      • W5500-EVB-Pico
      • W6100-EVB-Pico
    • Adafruit Feather M0 (ليست جميع الميزات مدعومة)

    بناء أداة خادم USB-SPY

    الكود المصدري موجود في دليل src. سيقوم بتحميل صورة FAT، وعرضها عبر منفذ TCP، وتسجيل كل عملية وصول تتم على الصورة. لطباعة معلومات الملفات والأدلة، تعتمد الأداة على مكتبة TheSleuthKit.

    للبناء، قم بتشغيل الأمر التالي في الدليل الجذر

    جلب جميع الوحدات الفرعية

    root@kitploit:~
    git submodule update --init --recursive
    

    ثم قم بتشغيل أمر إعداد waf.

    root@kitploit:~
    ./waf configure
    

    إذا كنت تريد البناء بدون دعم تضمين Python، قم بالإعداد باستخدام:

    root@kitploit:~
    ./waf configure --disable-python
    

    سيقوم بالتحقق من وبناء جميع التبعيات التي يحتاجها، ثم لبناء المشروع فعليًا قم بتشغيل

    root@kitploit:~
    ./waf build
    

    سيكون الملف الثنائي في دليل wbuild

    عند البناء باستخدام --disable-python، لن تكون خيارات التشغيل --py و --py-args متاحة.

    إنشاء صورة FAT32

    يمكننا القيام بذلك بسهولة باستخدام حزمة أدوات mtools

    إنشاء ملف بحجم 2 ميجابايت

    root@kitploit:~
    dd if=/dev/zero of=disk.img bs=1M count=2
    

    وضع نظام ملفات FAT عليه (استخدم -F لـ FAT32، وإلا فسيكون تلقائيًا)

    root@kitploit:~
    mformat -i disk.img ::
    

    إضافة ملف إليه

    root@kitploit:~
    mcopy -i disk.img example.txt ::
    

    قائمة الملفات

    root@kitploit:~
    mdir -i disk.img ::
    

    استخراج ملف

    root@kitploit:~
    mcopy -i disk.img ::/example.txt extracted.txt
    

    تشغيل usb-spy

    قم بتشغيل أداة التجسس مع الصورة المنشأة حديثًا

    root@kitploit:~
    ./usb-spy -v disk.img
    

    لفرض الوضع الخام وتخطي الاكتشاف التلقائي لنظام الملفات:

    root@kitploit:~
    ./usb-spy --raw disk.img
    

    لتوجيه الوصول مباشرة إلى جهاز كتل حقيقي:

    root@kitploit:~
    ./usb-spy --proxy /dev/sda
    

    قم بتوصيل اللوح بمنفذ USB الخاص بالنظام المستهدف.

    محاكاة جهاز USB محدد

    لمحاكاة جهاز USB محدد، يمكن تجاوز المعلمات من خلال ملف إعدادات json:

    ملف json التالي سيقوم بمحاكاة جهاز Kingston DataTraveler USB:

    root@kitploit:~
    {
    	"vendor_id": 2385,
    	"product_id": 5734,
    	"bcd_device": 272,
    	"product_rev": "3.0",
    	"manufacturer": "Kingston",
    	"product_name": "DataTraveler",
    	"serial": "509C4BBFACCDE742880C026B",
    	"language": 1033
    }
    

    قم بتشغيل أداة التجسس مع ملف الإعدادات هذا

    root@kitploit:~
    ./usb-spy -c config/kingston.json disk.img
    

    مخرجات dmesg لهذا الجهاز:

    root@kitploit:~
    usb 1-8: New USB device found, idVendor=0951, idProduct=1666, bcdDevice= 1.10
    usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    usb 1-8: Product: DataTraveler
    usb 1-8: Manufacturer: Kingston
    usb 1-8: SerialNumber: 509C4BBFACCDE742880C026B
    usb-storage 1-8:1.0: USB Mass Storage device detected
    scsi host6: usb-storage 1-8:1.0
    scsi 6:0:0:0: Direct-Access     Kingston DataTraveler     3.0  PQ: 0 ANSI: 2
    

    تنفيذ سلوكك الخاص

    إذا كنت تريد تنفيذ منطقك الخاص لكل حدث قراءة/كتابة، يمكنك القيام بذلك بسهولة في Python.

    قم بتنفيذ فئة USBImage في Python مثل هذه الصورة dummy:

    root@kitploit:~
    class USBImage:
        def __init__(self, *args, **kwargs):
            """
            Initialize the USBImage.
            :param args: should contain:
                - filename: The name of the file to manage.
            :param kwargs: Arbitrary arguments passed from the c++ command line including:
                readOnly: Whether the interface is read-only.
                verbose: Whether to enable verbose logging.
                block: Whether to enable block mode.
            """
            pass
    
        def getBlockNumber(self):
            """Get block number"""
            return 100
    
        def getBlockSize(self):
            """Get block size"""
            return 512
    
        def read(self, lba, buffer, size):
            """Read block"""
            print(f"read block={lba} size={size}")
            for i in range(size):
                buffer[i] = (lba + i) % 256  # Simulate reading data
            return size
    
        def write(self, lba, buffer, size):
            """Write block"""
            print(f"write block={lba} size={size}")
            print(buffer)
            return size
    
        def flush(self):
            """Flush block"""
            print("flush data")
    

    وقم بتشغيل أداة التجسس مع وحدة Python الخاصة بك.

    root@kitploit:~
    ./usb-spy --py python/dummy.py disk.img
    

    يمكنك أيضًا تمرير وسائط عشوائية من سطر الأوامر إلى فئة Python الخاصة بك. الوسائط متاحة في kwargs.

    root@kitploit:~
    ./usb-spy --py python/dummy.py --py-args arg1=2 --py-args arg2=Hello disk.img
    

    يمكنك أيضًا البدء من مثال rawimage الذي يوفر تنفيذًا كاملاً (~100 سطر من الكود) لما هو منفذ في ملف usb-spy الثنائي بشكل أصلي.

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

    يتم توفير هذا المشروع "كما هو". لا يوجد ضمان للصحة أو الأمان أو الملاءمة لأي غرض معين.

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

    المساهمة

    المساهمات مرحب بها! يرجى اتباع الخطوات التالية:

    1. قم بعمل Fork للمستودع.
    2. أنشئ فرعًا جديدًا لميزتك أو إصلاح الخلل.
    3. قدم طلب سحب (Pull Request) مع وصف مفصل.

    الترخيص

    License: GPL v3

    هذا المشروع مرخص بموجب رخصة GNU العامة العامة الإصدار 3.0. راجع ملف LICENSE للحصول على التفاصيل.

    تنزيل الأداة