Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/tothi/kali-rpi-luks-crypt
एम्बेडेड सिस्टम सुरक्षाएन्क्रिप्शन/डिक्रिप्शन उपकरणहार्डवेयर और IoT सुरक्षालर्निंग और शिक्षालैब और अभ्यास
GitHubtothi/kali-rpi-luks-crypt

kali-rpi-luks-crypt

Raspberry पर Kali के लिए LUKS का उपयोग कर पूर्ण डिस्क एन्क्रिप्शन

रिपॉजिटरी देखें
15717 साल पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

Raspberry (या अन्य समान आर्किटेक्चर) पर LUKS का उपयोग करके Kali के लिए पूर्ण डिस्क एन्क्रिप्शन

यह HOWTO Raspberry (या अन्य समान आर्किटेक्चर, उदा. ODROID-C2) पर LUKS के साथ पूर्ण डिस्क एन्क्रिप्शन का उपयोग करके Kali चलाने के लिए समर्पित है। यह यहाँ दिए गए थोड़े पुराने दस्तावेज़ पर आधारित है।

प्रेरणा

Raspberry Pi (या अन्य समान, छोटे, कम-शक्ति वाले हार्डवेयर) पर Kali को LAN वातावरण में एक 'डिस्पोजेबल हैकबॉक्स' के रूप में तैनात करना स्पष्ट रूप से उपयोगी है। हालाँकि, एकत्रित डेटा को गुप्त रखना एक अनिवार्य आवश्यकता है। यहीं पर पूर्ण डिस्क एन्क्रिप्शन एक अनिवार्य सुरक्षा अवधारणा के रूप में आता है।

पूर्वापेक्षाएँ

सबसे पहले हमें SD कार्ड पर Raspberry Pi के लिए एक आधिकारिक वर्तमान Kali इमेज (बिना एन्क्रिप्शन के) सेटअप करनी चाहिए।

अनुशंसित विकल्प (अभी) nexmon पैच के साथ Raspberry Pi 3 कस्टम बिल्ड का उपयोग करना है (ऑनबोर्ड WiFi मॉनिटरिंग और इंजेक्ट करने की क्षमताओं का उपयोग करने के लिए)। आधिकारिक kali-arm-build-scripts रिपो में एक स्वचालित बिल्ड स्क्रिप्ट है जो इमेज को शुरू से (Kali डिस्ट्रो पर) तैयार करती है। और यहाँ एक पैच किया हुआ संस्करण है जो Kali के अलावा अन्य डिस्ट्रो पर भी काम करता है (Gentoo पर परीक्षण किया गया)। वर्तमान में (2017-08) ODROID-C2 के लिए कार्यशील बिल्ड स्क्रिप्ट भी उस फोर्क की गई रिपो में मौजूद है।

बिल्ड टूल्स प्राप्त करें और इमेज को root के रूप में शुरू से बनाएँ (इसमें कुछ घंटे लग सकते हैं):

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 कार्ड से इमेज को माउंट करते हैं और chroot वातावरण में LUKS सुविधाओं में सक्षम एक initramfs तैयार करते हैं। इसे कार्यशील बनाने के लिए, SD कार्ड फाइलसिस्टम पर एक x86 (होस्ट) qemu-arm-static बाइनरी की आवश्यकता होती है। उपरोक्त पैच की गई rpi3-nexmon.sh बिल्ड स्क्रिप्ट इसे इंस्टॉल करती है और इमेज पर छोड़ देती है, इसलिए चीजें अच्छी तरह काम करनी चाहिए। (अन्यथा उपयुक्त qemu स्टैटिक बाइनरी को इमेज पर कॉपी करना आवश्यक है।)

chroot वातावरण को इनिशियलाइज़ करना (होस्ट सिस्टम पर root के रूप में):

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 के लिए डिफ़ॉल्ट पासवर्ड बदलते हैं:

root@kitploit:~
passwd

आवश्यक पैकेज इंस्टॉल करें (chroot env में):

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

ध्यान दें, कि हमें हर बूट पर डिक्रिप्शन कुंजी दर्ज करनी होती है। हम इसे अधिमानतः SSH के माध्यम से दूरस्थ रूप से करते हैं, इसीलिए (initramfs में) dropbear की आवश्यकता होती है।

अब /boot/cmdline.txt संपादित करें, root डिवाइस को मैप किए गए crypt डिवाइस (/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 है)।

आइए Dropbear SSH कुंजी प्रमाणीकरण सेट करें। होस्ट मशीन पर (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

ताकि initramfs इमेज में cryptsetup फाइलें शामिल हों।

अंत में, वर्तमान कर्नेल संस्करण के लिए 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

SD कार्ड पर एन्क्रिप्टेड वॉल्यूम बनाने (और सब कुछ हटाने) से पहले फाइलसिस्टम को अनमाउंट करें और rootfs का बैकअप लें:

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

अनएन्क्रिप्टेड root पार्टीशन (नं. 2) को हटाएँ और एक खाली पार्टीशन बनाएँ (SD कार्ड को भरते हुए):

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

अब नए पार्टीशन को पंजीकृत करने के लिए (संभवतः) SD कार्ड को निकालकर पुनः लगाने की आवश्यकता है।

एक मजबूत पासफ्रेज़ के साथ एन्क्रिप्टेड वॉल्यूम बनाएँ (यह चरण मूल rootfs को नष्ट कर देता है!):

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

अब आपसे एक बेहतर प्रॉम्प्ट के साथ पासफ्रेज़ पूछा जाएगा, इसके अलावा आप busybox में ssh करके पासफ्रेज़ दर्ज करने में सक्षम होंगे (यदि आप चाहें तो एक कस्टम 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

समस्या निवारण

बूट के दौरान पूर्ण डीबग आउटपुट प्राप्त करने के लिए आप cmdline.txt में debug=1 जोड़ सकते हैं

टूल डाउनलोड करें