
CVE-2023-21563 भेद्यता पर आधारित BitLocker एन्क्रिप्शन को क्रैक करना
पूर्ण ब्लॉग के लिए यहाँ क्लिक करें
वर्चुअल मशीन पर प्रतिकृति। इस मशीन (आक्रमण मशीन) में Ubuntu 22.04.5 LTS सिस्टम का उपयोग किया गया है, पीड़ित मशीनें क्रमशः Windows 10 21H2 19041.1 और Windows 11 21H2 22000.318 हैं, दोनों में BitLocker एन्क्रिप्शन सक्षम है। QEMU का उपयोग वर्चुअल मशीन प्रबंधक के रूप में किया गया है, और virt-manager का उपयोग प्रबंधन के लिए किया गया है, यहाँ मैं Windows 11 वर्चुअल मशीन का उपयोग कर रहा हूँ।
मेरे प्रतिकृति संबंधी फ़ाइलें Syss के Github रिपॉजिटरी से ली गई हैं, जिसके आधार पर टूल के संस्करण अनुकूलन और कुछ आकस्मिक स्थितियों का समाधान किया गया है। इसे सीधे डाउनलोड करके उपयोग किया जा सकता है, या आवश्यकतानुसार संशोधित किया जा सकता है। वर्चुअल मशीन इमेज फ़ाइलें UUP Dump से ली गई हैं, जहाँ विभिन्न Windows संस्करण डाउनलोड किए जा सकते हैं। डाउनलोड करने के बाद cmd फ़ाइल या sh फ़ाइल चलाकर ISO इमेज फ़ाइल प्राप्त की जा सकती है।
QEMU और virt-manager की स्थापना और उपयोग के बारे में यहाँ विस्तार से नहीं बताया जाएगा, लेकिन नए डाउनलोड किए गए उपयोगकर्ता virt-manager में "Edit -> Preferences -> General -> Enable XML editing" के माध्यम से XML संपादन सुविधा को सक्षम कर सकते हैं, ताकि हम सीधे वर्चुअल मशीन के XML कॉन्फ़िगरेशन फ़ाइल को संपादित कर सकें।
वर्चुअल मशीन बनाते समय, "Local install media (ISO image or CDROM)" चुनें, और पहले डाउनलोड की गई Windows 11 ISO इमेज फ़ाइल का चयन करें। उपयुक्त संसाधन (CPU, मेमोरी, डिस्क स्थान आदि) आवंटित करें, और अंत में "Customize configuration before install" का चयन करना न भूलें, ताकि हम स्थापना से पहले कॉन्फ़िगरेशन फ़ाइल को संपादित कर सकें। यहाँ, स्वचालित सिस्टम पहचान में समस्या हो सकती है, तब हम स्वयं "Microsoft Windows 10/11" चुन सकते हैं।
अब हम कॉन्फ़िगरेशन शुरू करते हैं, सबसे महत्वपूर्ण बात (क्योंकि इसे बाद में नहीं बदला जा सकता, अन्य चीजें बनाने के बाद बार-बार संशोधित की जा सकती हैं) Overview टैब में, Firmware को "UEFI x86_64: /usr/share/OVMF/OVMF_CODE_4M.ms.fd" के रूप में चुनें। यदि यह विकल्प नहीं चुना गया है, तो सीधे वर्चुअल मशीन को हटाकर पुनः व्यवस्थित करें, वैसे भी यह मुश्किल नहीं है।

फिर "Boot Options" टैब में जाएँ, सुनिश्चित करें कि "SATA CDROM 1" चेक किया गया है, अन्यथा हम सिस्टम स्थापित नहीं कर पाएंगे। आप "SATA CDROM 1" को सूची के शीर्ष पर ले जा सकते हैं, ताकि बूटिंग सरल हो जाए। इसके बाद सीधे बना सकते हैं, सिस्टम स्थापित करने के बाद शेष कॉन्फ़िगरेशन में संशोधन करेंगे।
"Press any key to boot from CD or DVD..." देखा? कोई भी कुंजी दबाकर स्थापना इंटरफ़ेस में प्रवेश करें, और संकेतों का पालन करके स्थापना पूरी करें। यदि गलती से निम्नलिखित पृष्ठ पर पहुँच जाते हैं, तो घबराएँ नहीं, "Boot Manager" चुनें, फिर "UEFI: QEMU DVD-ROM" चुनकर मूल इंटरफ़ेस पर लौटें और कोई भी कुंजी दबाकर बूट करें।

अब सिस्टम स्थापित करें, सीधे बिना उत्पाद कुंजी के चेक करें, और प्रोफेशनल संस्करण स्थापित करें। बाद में खाता पंजीकरण जैसी बातें होंगी, सुझाव है कि सीधे ऑफ़लाइन बूट करें, परेशानी कम करने के लिए। यदि यह विकल्प नहीं है, तो Shift + F10 दबाकर कमांड प्रॉम्प्ट खोलें, और OOBE\BYPASSNRO टाइप करें ऑफ़लाइन खाता निर्माण विकल्प सक्षम करने के लिए।
सामान्य रूप से प्रवेश करने के बाद, टर्मिनल में msinfo32 टाइप करके सिस्टम जानकारी देखें (भौतिक मशीन पर जाँचें कि UEFI है या नहीं), फिर सीधे शट डाउन करें और कॉन्फ़िगरेशन बदलें:
<rom enabled="no"/> जोड़ें ताकि नेटवर्क बूट सक्षम हो, उदाहरण:<interface type="network">
<mac address="52:54:00:2f:53:4e"/>
<source network="default"/>
<model type="virtio"/>
<boot order="2"/>
<rom enabled="no"/>
<address type="pci" domain="0x0000" bus="0x01" slot="0x00" function="0x0"/>
</interface>
virtio नेटवर्क कॉन्फ़िगरेशन का चयन करने का मुख्य कारण इसके नेटवर्क हार्डवेयर का "पार्ट-वर्चुअलाइज़ेशन" गुण है, जो सीधे होस्ट से संवाद करता है। साथ ही, नेटवर्क बूट ROM को बंद करने का उद्देश्य यह सुनिश्चित करना है कि UEFI फ़र्मवेयर सीधे अंतर्निहित PXE प्रोटोकॉल के माध्यम से virtio नेटवर्क कार्ड से संवाद करे, बूट प्रक्रिया के दौरान अनावश्यक हस्तक्षेप से बचने के लिए, ताकि हम आसानी से सिस्टम में प्रवेश कर सकें और बाद के कॉन्फ़िगरेशन और परीक्षण कर सकें।
वर्चुअल मशीन में प्रवेश करें, CD ड्राइव द्वारा virtio ड्राइवर स्थापित करें, यह स्वचालित रूप से हमारे लिए कॉन्फ़िगर हो जाएगा, नेटवर्क सामान्य है या नहीं, इसकी सरल जाँच करें। फिर, Bitlocker एन्क्रिप्शन करें, डेस्कटॉप पर एक flag फ़ाइल बना सकते हैं, ताकि बाद में सत्यापन हो सके।
यदि भौतिक मशीन पर प्रतिकृति करना है, तो केवल आक्रमण मशीन और पीड़ित मशीन को ईथरनेट से जोड़ना होगा, virtio कॉन्फ़िगर करने की आवश्यकता नहीं है, अन्य कॉन्फ़िगरेशन मूलतः समान हैं। केवल ध्यान देने वाली बात यह है कि भौतिक मशीन में कई नेटवर्क इंटरफ़ेस हो सकते हैं, सही इंटरफ़ेस का चयन करना होगा।
पीड़ित मशीन की कॉन्फ़िगरेशन पूरी हो गई है, फिर सीधे शट डाउन करें, अब हम पहले शोषण सिद्धांत में निर्धारित चरणों के अनुसार शोषण कर सकते हैं।
यहाँ हम पूर्ण प्रक्रिया आक्रमण का संदर्भ चित्र देते हैं, आप पहले मोटे तौर पर प्रक्रिया देख सकते हैं, बाद में हम क्रमिक रूप से इसे लागू करेंगे:

इस मशीन (आक्रमण मशीन) पर निम्नलिखित सॉफ़्टवेयर पैकेज स्थापित होने चाहिए:
Ubuntu या Debian पर, निम्नलिखित कमांड का उपयोग करके स्थापित कर सकते हैं:
sudo apt install dnsmasq libwin-hivex-perl python3-impacket
प्रोजेक्ट में दी गई फ़ाइलों में, build.sh फ़ाइल चलाकर bitpixie-initramfs बनाएँ। यदि स्थानीय वातावरण में संशोधन करना चाहते हैं, तो build.sh में संशोधित कर सकते हैं, अपने इच्छित उपकरण और संस्करण फ़ाइल कॉन्फ़िगर करें, फिर पुनः bitpixie-initramfs बनाने के लिए चलाएँ।
फिर, टर्मिनल में ifconfig टाइप करके हमारी इस मशीन (आक्रमण मशीन) का वर्चुअल गेटवे ज्ञात करें, नीचे मेरे इस मशीन का उदाहरण है:
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.123.1 netmask 255.255.255.0 broadcast 192.168.123.255
ether 52:54:00:23:11:39 txqueuelen 1000 (Ethernet)
RX packets 46749 bytes 4384179 (4.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 67170 bytes 414459630 (414.4 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
PXE बूट प्रक्रिया के लिए TFTP सर्वर और संशोधित BCD फ़ाइल स्थानांतरित करने के लिए SMB सर्वर शुरू करने के लिए निम्नलिखित कमांड का उपयोग करें, अभी ज्ञात की गई जानकारी भरें, मेरा virbr0 है।
# TFTP और DHCP सर्वर शुरू करें
./start-server.sh pxe <interface>
# BCD फ़ाइल के स्थानांतरण के लिए SMB सर्वर शुरू करें
./start-server.sh smb <interface>