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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
kali-rpi-luks-crypt — تشفير القرص بالكامل لكالي على راسبيري باستخدام LUKS | Kitploit
أدوات/GitHubGitHub/tothi/kali-rpi-luks-crypt
أمان الأنظمة المدمجةأدوات التشفير/فك التشفيرأمان الأجهزة وإنترنت الأشياءالتعلم والتعليممختبرات وتدريب عملي
GitHubtothi/kali-rpi-luks-crypt

kali-rpi-luks-crypt

تشفير القرص بالكامل لكالي على راسبيري باستخدام LUKS

عرض المستودع
157منذ 5 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

تشفير القرص الكامل لـ Kali على Raspberry (أو بنية مماثلة أخرى) باستخدام LUKS

هذا الدليل مخصص لتشغيل Kali على Raspberry (أو أي بنية مماثلة أخرى، مثل ODROID-C2 باستخدام تشفير القرص الكامل مع LUKS. وهو مبني على مستند قديم بعض الشيء هنا.

الدافع

نشر Kali على Raspberry Pi (أو أجهزة مماثلة صغيرة ومنخفضة الطاقة) في بيئة شبكة محلية كـ «صندوق اختراق يُرمى بعد الاستخدام» مفيد بوضوح. ومع ذلك، فإن إبقاء البيانات المجمّعة سرًا هو مطلب أساسي. وهنا يأتي تشفير القرص الكامل كمفهوم أمني إلزامي.

المتطلبات الأساسية

أولاً ينبغي علينا إعداد صورة Kali رسمية حالية لـ Raspberry Pi (بدون تشفير) على بطاقة SD.

الخيار الموصى به (حاليًا) هو استخدام نسخة مخصصة من Raspberry Pi 3 مع تصحيح nexmon (لاستخدام إمكانيات مراقبة وحقن WiFi المدمجة). يوجد نص برمجي آلي للبناء في مستودع kali-arm-build-scripts الرسمي الذي يُنشئ الصورة من الصفر (على توزيعة Kali). وهنا نسخة معدّلة تعمل أيضًا على توزيعات أخرى غير Kali (مختبرة على Gentoo). حاليًا (2017-08) يعمل نص بناء لـ ODROID-C2 أيضًا في هذا المستودع المتفرّع.

احصل على أدوات البناء وقم ببناء الصورة من الصفر بصلاحيات الجذر (قد يستغرق ذلك بضع ساعات):

root@kitploit:~
$ git clone https://github.com/tothi/kali-arm-build-scripts
$ cd kali-arm-build-scripts
$ sudo ./rpi3-nexmon.sh 2.0

الصورة الناتجة هي rpi3-nexmon-2.0/kali-2.0-rpi3-nexmon.img.xz. انسخها على بطاقة SD (باستخدام pv لعرض التقدم):

root@kitploit:~
# pixz -d rpi3-nexmon-2.0/kali-2.0-rpi3-nexmon.img.xz - | pv -treb | dd of=/dev/mmcblk0 bs=512k

(يجب أن تعمل الصورة، ويمكن اختبارها الآن.)

تحضير صورة RPi للإقلاع المشفّر

نقوم بتركيب الصورة من بطاقة SD وتجهيز initramfs قادر على ميزات LUKS داخل بيئة chroot. ولإنجاح هذا العمل، يلزم وجود ملف ثنائي qemu-arm-static خاص بـ x86 (المضيف) على نظام ملفات بطاقة SD. نص البناء المعدّل rpi3-nexmon.sh أعلاه يقوم بتثبيته وتركه على الصورة، لذا فالأمور ينبغي أن تعمل بشكل جيد. (وإلا فنسخ ملف qemu الثابت المناسب إلى الصورة أمر مطلوب.)

تهيئة بيئة chroot (على النظام المضيف بصلاحيات الجذر):

root@kitploit:~
# mkdir -p /mnt/chroot/boot
# mount /dev/mmcblk0p2 /mnt/chroot/
# mount /dev/mmcblk0p1 /mnt/chroot/boot/

# mount -t proc none /mnt/chroot/proc
# mount -t sysfs none /mnt/chroot/sys
# mount -o bind /dev /mnt/chroot/dev
# mount -o bind /dev/pts /mnt/chroot/dev/pts

# LANG=C chroot /mnt/chroot/

أولاً نغيّر كلمة المرور الافتراضية للجذر:

root@kitploit:~
passwd

تثبيت الحزم المطلوبة (في بيئة chroot):

root@kitploit:~
# apt-get update
# apt-get install busybox cryptsetup dropbear

لاحظ أنه يتعين علينا إدخال مفتاح فك التشفير عند كل إقلاع. ويفضَّل القيام بذلك عن بُعد عبر SSH، ولهذا السبب نحتاج إلى dropbear (داخل initramfs).

الآن عدّل /boot/cmdline.txt، وقم بتغيير جهاز الجذر إلى جهاز التشفير المعيّن (/dev/mapper/crypt_sdcard) وأضف معامل cryptdevice المناسب.

إذن إليك ملف /boot/cmdline.txt الأصلي:

root@kitploit:~
dwc_otg.fiq_fix_enable=2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait rootflags=noload net.ifnames=0

وهذه هي النسخة المحدّثة (الاختلافات في معاملي root وcryptdevice):

root@kitploit:~
dwc_otg.fiq_fix_enable=2 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mapper/crypt_sdcard cryptdevice=/dev/mmcblk0p2:crypt_sdcard rootfstype=ext4 rootwait rootflags=noload net.ifnames=0

الآن أنشئ /boot/config.txt بالمحتوى التالي:

root@kitploit:~
initramfs initramfs.gz followkernel

لاحظ أنه على الأجهزة الأخرى يلزم اتخاذ خطوات مماثلة (الملف الذي يحتوي معاملات الإقلاع على ODROID-C2 هو /boot/boot.ini).

لنقم بإعداد مصادقة مفتاح SSH الخاصة بـ Dropbear. أنشئ زوج مفاتيح (بدون كلمة مرور) على جهاز المضيف (خارج chroot!) واقرأ المفتاح العام:

root@kitploit:~
$ ssh-keygen -N "" -f kali-dropbear
$ cat ./kali-dropbear.pub

أضف المفتاح العام إلى /etc/dropbear-initramfs/authorized_keys. قيّد وصول Dropbear عبر SSH لإعداد cryptroot فقط بإضافة هذا أمام المفتاح:

root@kitploit:~
command="/scripts/local-top/cryptroot && kill -9 `ps | grep -m 1 'cryptroot' | cut -d ' ' -f 3`"

أصلح الأذونات:

root@kitploit:~
chmod 600 /etc/dropbear-initramfs/authorized_keys

عدّل /etc/fstab. الأصلي:

root@kitploit:~
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults          0       0
/dev/mmcblk0p1  /boot           vfat    defaults          0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime  0       1

الجهاز / المحدّث تغيّر إلى /dev/mapper/crypt_sdcard:

root@kitploit:~
# <file system>           <mount point>   <type>  <options>       <dump>  <pass>
proc                      /proc           proc    defaults          0       0
/dev/mmcblk0p1            /boot           vfat    defaults          0       2
/dev/mapper/crypt_sdcard  /               ext4    defaults,noatime  0       1

أضف هذا السطر إلى /etc/crypttab:

root@kitploit:~
crypt_sdcard /dev/mmcblk0p2 none luks

عدّل /etc/cryptsetup-initramfs/conf-hook بتعيين

root@kitploit:~
CRYPTSETUP=y

لتضمين ملفات cryptsetup في صورة initramfs.

أخيرًا، أنشئ initramfs لإصدارة النواة الحالية واخرج من chroot (لا تهتم بالأخطاء/التحذيرات أثناء mkinitramfs):

root@kitploit:~
# ls -l /lib/modules/ |awk -F" " '{print $9}'

4.4.50-v7+
# mkinitramfs -o /boot/initramfs.gz 4.4.50-v7+

لاحظ أنه يتعين علينا توخي الحذر عند إنشاء الصورة (خاصة على الأجهزة الأخرى)، لأن uname -r يُرجع إصدارة نواة المضيف وليس إصدارة chroot. لذلك على سبيل المثال على ODROID-C2، لا يعمل /boot/mkuinitrd مباشرة خارج الصندوق، بل يجب تنفيذ الأوامر الواردة في البرنامج النصي يدويًا (مع تعديل إصدارة النواة للأجهزة الأخرى!):

root@kitploit:~
# rm /boot/initrd.img-3.14.79
# update-initramfs -c -k 3.14.79
# mkimage -A arm64 -O linux -T ramdisk -C none -a 0 -e 0 -n "uInitrd" -d /boot/initrd.img-3.14.79 /boot/uInitrd
#

اخرج من بيئة chroot

root@kitploit:~
exit

قم بفك تركيب أنظمة الملفات وانسخ rootfs احتياطيًا قبل إنشاء وحدة تخزين مشفرة (وحذف كل شيء) على بطاقة SD:

root@kitploit:~
# umount /mnt/chroot/boot
# umount /mnt/chroot/sys
# umount /mnt/chroot/proc
# mkdir -p /mnt/backup
# rsync -avh /mnt/chroot/* /mnt/backup/

قم بفك تركيب chroot بالكامل:

root@kitploit:~
# umount /mnt/chroot/dev/pts
# umount /mnt/chroot/dev
# umount /mnt/chroot

احذف قسم الجذر غير المشفّر (رقم 2) وأنشئ قسمًا فارغًا (بما يملأ بطاقة SD):

root@kitploit:~
# echo -e "d\n2\nw" | fdisk /dev/mmcblk0
# echo -e "n\np\n2\n\n\nw" | fdisk /dev/mmcblk0

الآن (غالبًا) يلزم نزع بطاقة SD وإعادة إدخالها لتسجيل الأقسام الجديدة.

أنشئ وحدة تخزين مشفرة بكلمة مرور قوية (هذه الخطوة تدمر نظام الجذر الأصلي!):

root@kitploit:~
# cryptsetup -v -y --cipher aes-cbc-essiv:sha256 --key-size 256 luksFormat /dev/mmcblk0p2
# cryptsetup -v luksOpen /dev/mmcblk0p2 crypt_sdcard
# mkfs.ext4 /dev/mapper/crypt_sdcard

استعد rootfs إلى وحدة التخزين المشفرة وأغلق القرص:

root@kitploit:~
# mkdir -p /mnt/encrypted
# mount /dev/mapper/crypt_sdcard /mnt/encrypted/
# rsync -avh /mnt/backup/* /mnt/encrypted/
# umount /mnt/encrypted/
# cryptsetup luksClose /dev/mapper/crypt_sdcard
# sync

أخرج بطاقة SD واختبرها على Raspberry.

إقلاع الجهاز

ستفشل عملية الإقلاع الأولى وسيتم الرجوع إلى busybox. أدخل الأوامر التالية:

root@kitploit:~
# cryptsetup luksOpen /dev/mmcblk0p2 crypt_sdcard
## provide password
# exit

يجب أن يُقلع جهازك الآن. سجّل الدخول بكلمة المرور التي اخترتها سابقًا وشغّل:

root@kitploit:~
mkinitramfs -o /boot/initramfs.gz
reboot

سيُطلب منك الآن عبارة المرور مع موجه أجمل، كما ينبغي أن تتمكن من الاتصال عبر ssh بـ busybox وإدخال عبارة المرور (يمكنك استخدام ملف known_hosts مخصص إذا رغبت):

root@kitploit:~
$ ssh -o "UserKnownHostsFile=~/.ssh/known_hosts.initramfs" -i ~/.ssh/kali-dropbear [email protected]

بمجرد أن يعمل الأمر، لا تنسَ تنظيف ملفات النسخ الاحتياطي على المضيف:

root@kitploit:~
# rm -fr /mnt/backup
# rm -fr /mnt/chroot

استكشاف الأخطاء وإصلاحها

للحصول على مخرجات تصحيح كاملة أثناء الإقلاع، يمكنك إضافة debug=1 في cmdline.txt

تنزيل الأداة