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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Pi-Zero-2W-Bad-USB — قم بتكوين Pi Zero 2W الخاص بك ليكون BadUSB | Kitploit
أدوات/GitHubGitHub/psycostea/pi-zero-2w-bad-usb
أمان الأنظمة المدمجةالاستغلالالبرمجة النصية والأتمتةاختراق الأجهزةCTFاختبار الاختراقالتعلم والتعليمالفريق الأحمرتطوير الحمولات
GitHubpsycostea/pi-zero-2w-bad-usb

Pi-Zero-2W-Bad-USB

قم بتكوين Pi Zero 2W الخاص بك ليكون BadUSB

37235منذ 4 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

مجموعة أدوات BadUSB HID لـ Raspberry Pi Zero 2 W

منصة هجوم BadUSB / HID قابلة للبرمجة مبنية على Raspberry Pi Zero 2 W. يتعرف Pi على أنه جهاز USB مركب (لوحة مفاتيح بالإضافة إلى وحدة تخزين كبيرة للقراءة فقط اختيارية) وينفذ حمولات على غرار Ducky-Script ضد المضيف الذي يتم توصيله به. مصممة لاستخدامات الفريق الأحمر المصرح بها، واختبارات الاختراق، ومسابقات CTF.

⚠️ إشعار قانوني. استخدم فقط على الأنظمة التي تمتلكها أو لديك إذن كتابي صريح لاختبارها. الوصول غير المصرح به غير قانوني في معظم الدول، والتظاهر بعدم المعرفة لن يفيد.


جدول المحتويات

  1. الميزات
  2. كيف يعمل
  3. الأجهزة
  4. التثبيت
  5. الاستخدام اليومي
  6. كتابة الحمولات
  7. مرجع الإعدادات
  8. ملاحظات معمارية
  9. الاختبارات
  10. استكشاف الأخطاء وإصلاحها
  11. هيكل المستودع
  12. الاعتمادات

الميزات

  • حمولات ضغطات مفاتيح قابلة للبرمجة بلهجة متوافقة مع Ducky-Script.
  • كشف موثوق لتوصيل المضيف عبر حالة configured لـ UDC — لا يتم إطلاق حمولات خاطئة عند الإقلاع.
  • "إعادة ضبط بين الهجمات" تعمل فعليًا على أجهزة Pi Zero 2 W. افصل، أعد التوصيل، أطلق مرة أخرى — لا حاجة لدورة طاقة.
  • ضمانات قابلة للتكوين ضد الحلقات الجامحة إذا بقي الجهاز موصولاً: حد أدنى للفاصل الزمني بين عمليات الإطلاق، وحد أقصى لعدد الإطلاقات في الدقيقة، وكلاهما قابل للتجاوز عبر متغيرات البيئة.
  • أداة تخزين كبيرة مركبة اختيارية مدعومة بملف صورة مسطح (للقراءة فقط افتراضيًا — كان عرض بطاقة SD الحية هو السبب القديم الصعب التصحيح لفساد نظام الملفات).
  • تخطيط لوحة مفاتيح أمريكي وبريطاني قابل للاختيار لكل حمولة باستخدام LAYOUT.
  • المتغيرات، IF / ELSE، WHILE، HOLD / RELEASE، INJECT_MOD، مولدات RANDOM_*، STRING_BLOCK / STRINGLN_BLOCK، DEFINE.
  • تكامل systemd مع ExecStop الذي يفك الأداة بشكل نظيف. لا توجد حالة متبقية من configfs، وإعادة التشغيل تعمل دون إعادة إقلاع.
  • صلاحيات مدارة عبر udev لـ /dev/hidg0 — لا توجد عُقد جهاز قابلة للكتابة للجميع.
  • مجموعة اختبارات pytest مكونة من 34 اختبارًا لمحلل Ducky، قابلة للتشغيل على أي مضيف بدون توصيل Pi.
  • مؤشر حالة LED ACT بعد كل تشغيل حمولة.

كيف يعمل

+----------------+        كابل USB          +-------------+
|  Raspberry Pi  | ===================>>>  |  المضيف     |
|  Zero 2 W      |   (Pi يحاكي HID +       |  (الهدف)    |
|  (هذا الجهاز)   |    محرك اختياري)        |             |
+----------------+                         +-------------+
        |
        |  /home/pi/pi-badusb/
        |
        +-- badusb.service ----> monitor_and_run.py
                                   |
                                   |  عند `state == configured`:
                                   v
                                 run_payload.py
                                   |
                                   v
                                 /dev/hidg0  (أداة USB HID)
  1. عند الإقلاع، يقوم وحدة النظام badusb.service بتشغيل gadget_setup.sh، الذي يستخدم configfs/libcomposite لتكوين أداة USB مع وظيفة لوحة مفاتيح HID و (اختياريًا) LUN تخزين كبير مدعوم بملف صورة مسطح في /var/badusb/storage.img.
  2. ثم تقوم الوحدة بتشغيل monitor_and_run.py. يستطلع حالة /sys/class/udc/<udc>/state وينتظر configured — حالة USB-Spec التي تعني أن المضيف قد عدّد الأداة بنجاح. (نحن لا نستخدم وجود /dev/hidg0 كإشارة: هذا صحيح منذ اللحظة التي ترتبط فيها الأداة بـ UDC عند الإقلاع، بغض النظر عما إذا كان أي شيء موصولاً.)
  3. عند توصيل المضيف، يقوم المستمع بتنفيذ run_payload.py، الذي يوزع payload.txt ويكتب تقارير HID إلى /dev/hidg0.
  4. عند انتهاء الحمولة، يقوم المستمع بإلغاء ربط الأداة من UDC بشكل نشط (لا يستطيع Pi Zero 2 W اكتشاف الانفصال الفعلي عبر البرنامج — انظر ملاحظات معمارية)، ينام لفترة تبريد، ويعيد الربط. ينتظر الجهاز بعد ذلك الانتقال التالي إلى configured.

الأجهزة

المكونملاحظة
Raspberry Pi Zero 2 Wتم اختباره على مراجعة الأجهزة 2026-05. يعمل Pi Zero W الأقدم مع برنامج تشغيل BCM2835 dwc_otg من حيث المبدأ أيضًا، لكن هذا README يفترض 2 W مع dwc2.
كابل micro-USB إلى USB-Aأو محول على شكل "محرك أقراص USB" يسمح للPi بالتوصيل مباشرة بمنفذ مضيف.
اختياري: شاحن منفصلإذا كنت ترغب في تشغيل Pi من مصدر غير المضيف حتى يتمكن المستمع من الإقلاع قبل توصيله بهدف (وإلا فإن منفذ المضيف يوفر الطاقة).

يحتوي Pi Zero 2 W على منفذي micro-USB:

  • PWR IN — الطاقة فقط، لا يعرض خطوط بيانات USB لكتلة dwc2 OTG.
  • USB — منفذ بيانات OTG؛ هذا هو المكان الذي توصل به إلى الهدف.

البرامج

المتطلبلماذا
Raspberry Pi OS (Debian Bookworm أو Trixie، 64 بت Lite موصى به)يكتب البرنامج النصي للتثبيت /boot/firmware/... على Bookworm+ ويعود إلى /boot/... على الصور الأقدم.
Python 3يأتي مع Pi OS.
mkfs.vfatلتهيئة صورة التخزين الكبير الخلفية في التشغيل الأول. قم بتعطيله إذا ألغيت التخزين الكبير.
وصول root للإعداديلمس systemd و udev و /boot/firmware/config.txt.

التثبيت

انسخ المستودع أو استنسخه إلى Pi، ثم قم بتشغيل المثبِّت:

git clone http://your-gitea/admin/Pi-Zero-2W-Bad-USB.git /home/pi/pi-badusb
cd /home/pi/pi-badusb
sudo ./install.sh
sudo reboot

بعد إعادة الإقلاع، قم بتمكين الخدمة وتشغيلها:

sudo systemctl enable --now badusb.service
journalctl -u badusb -f

install.sh غير مؤثرة — أعد تشغيلها كلما غيرت ملفات المشروع. تقوم بـ:

  • كشف /boot/firmware (Bookworm+) مقابل /boot (الأقدم).
  • التأكد من أن dtoverlay=dwc2,dr_mode=otg نشط تحت كتلة [all] في config.txt. الإعدادات الافتراضية لـ Raspberry Pi Imager تضع هذا السطر داخل مرشح [cm5] الذي لا ينطبق على Pi Zero 2 W؛ يضيف المثبِّت تجاوزًا مُوسومًا بحيث لا تكرره عمليات إعادة التشغيل.
  • التأكد من أن modules-load=dwc2 موجود في cmdline.txt.
  • تحذير إذا كان g_ether لا يزال موجودًا في cmdline.txt (يسرق UDC من libcomposite ويكسر وضع الأداة).
  • تثبيت وحدة النظام في /etc/systemd/system/badusb.service.
  • تثبيت قاعدة udev في /etc/udev/rules.d/99-badusb-hidg.rules بحيث يكون /dev/hidg0 قابلًا للكتابة للمجموعة بواسطة plugdev.
  • إضافة المستخدم pi إلى plugdev.
  • إنشاء /var/badusb/ لصورة التخزين الكبير الخلفية.

الاستخدام اليومي

# بدء / إيقاف / إعادة تشغيل
sudo systemctl start badusb
sudo systemctl stop badusb
sudo systemctl restart badusb              # آمن أثناء التوصيل

# مراقبة مباشرة
journalctl -u badusb -f

# تعطيل التشغيل التلقائي عند الإقلاع
sudo systemctl disable badusb

# ضبط التوقيتات (ينشئ إدراج تجاوز)
sudo systemctl edit badusb
# (الصق كتلة [Service] مع Environment="BADUSB_REARM_COOLDOWN_S=8" إلخ)
sudo systemctl restart badusb

تعتمد الخدمة على sys-kernel-config.mount ووجود UDC، لذا لا يمكنها إطلاق الحمولات قبل أن تكون الأداة جاهزة فعليًا.

تحرير الحمولة لا يتطلب إعادة تشغيل — تتم قراءة payload.txt من جديد عند كل توصيل.


كتابة الحمولات

payload.txt موجود في دليل التثبيت. مرجع الأوامر الكامل موجود في payload_commands.md.

مثال بسيط

REM افتح مربع حوار التشغيل واكتب تحية عبر Notepad
LAYOUT US
GUI r
DELAY 1500
STRING notepad
ENTER
DELAY 2500
STRINGLN مرحبًا من Pi Zero 2 W

المتغيرات، الشروط، الحلقات

VAR $USER="alice"
VAR $COUNT=0
WHILE $COUNT < 3
  STRINGLN مرحبًا $USER (التكرار $COUNT)
  VAR $COUNT = $COUNT + 1
END_WHILE

IF $USER == "alice"
  STRINGLN تم المطابقة
ELSE
  STRINGLN لم يتم المطابقة
END_IF

تمر التعبيرات الرياضية في VAR عبر مقيم آمن يعمل على ast — لا أسماء، لا استدعاءات، لا وصول إلى سمات، فقط القيم الرقمية و + - * / // % **.

الاحتفاظ بالمعدِّلات

HOLD SHIFT
STRINGLN هذا السطر مكتوب بأحرف كبيرة
RELEASE SHIFT

إرسال تركيبات معدِّلات عشوائية

REM أمسك Ctrl+Shift (0x01 + 0x02) واضغط A
INJECT_MOD 0x03
STRING a
REM تحرير جميع المعدِّلات
INJECT_MOD 0x00

العشوائية

تنزيل الأداة