
Exploit script for CVE-2021-27211
Stegcrack एक ओपन-सोर्स प्रोग्राम है जो Steghide में एक कमजोरी (विशेष रूप से CVE-2021-27211) का शोषण करने के लिए है।
Stegcrack यह पता लगाता है कि किसी दिए गए फ़ाइल में Steghide के साथ छिपा हुआ डेटा है या नहीं, और कभी-कभी बिना किसी पासवर्ड के छिपे हुए डेटा को पूरी तरह से निकाल सकता है।
इस रिपॉजिटरी को क्लोन करें
git clone https://github.com/b4shfire/stegcrack
स्रोत निर्देशिका में जाएँ
cd stegcrack/src
प्रोग्राम को संकलित करें
clang++ main.cc utils.cc file_handling.cc ui.cc Extractor.cc -ljpeg -pthread -lz -std=c++11 -O2 -o ../stegcrack
स्रोत निर्देशिका से बाहर निकलें
cd ..
./stegcrack <filepath> <number of threads> (default: 4)
./stegcrack flowers.jpg
./stegcrack ../images/rocket.jpg 8
कवर फ़ाइल के अंदर डेटा छिपाने के लिए, Steghide पहले प्रदान किए गए पासवर्ड को 32-बिट सीड में बदलता है।
सीड इस प्रकार बनाई जाती है:
फिर इस सीड का उपयोग फ़ाइल में उन स्थानों का अनुक्रम उत्पन्न करने के लिए किया जाता है जहाँ डेटा छिपाया जाना है।
इस विधि में दोष यह है कि पासवर्ड कितना भी जटिल क्यों न हो, उसे 2^32 संभावित सीड में से एक उत्पन्न करना होता है। इसका मतलब है कि सीड वेरिएबल को ब्रूट-फोर्स करके पासवर्ड को पूरी तरह से दरकिनार किया जा सकता है।
एक बार सीड उत्पन्न हो जाने के बाद, Steghide पहले कवर फ़ाइल में मेटाडेटा (मैजिक बाइट्स, Steghide संस्करण, डेटा आकार...) एम्बेड करता है।
इस मेटाडेटा का उपयोग यह निर्धारित करने के लिए किया जा सकता है कि प्रत्येक सीड का उपयोग डेटा छिपाने के लिए किया गया है या नहीं। उदाहरण के लिए, एम्बेड किए गए पहले 3 बाइट्स हमेशा 0x73 0x68 0x8d (लगभग ascii स्ट्रिंग "shm" - StegHide Magic) होते हैं। यदि कोई दी गई सीड इन बाइट्स को उत्पन्न नहीं करती है, तो इसे खारिज किया जा सकता है क्योंकि इसका उपयोग निश्चित रूप से डेटा छिपाने के लिए नहीं किया गया है। यह तब तक जारी रहता है जब तक या तो सभी सीड खारिज नहीं हो जातीं, या एक वैध सीड नहीं मिल जाती। एक वैध सीड छिपे हुए डेटा को इंगित करती है।
डिफ़ॉल्ट रूप से, Steghide एम्बेड करने से पहले पूरे पासवर्ड का उपयोग करके डेटा को एन्क्रिप्ट करता है। इसका मतलब है कि अधिकांश मामलों में, Stegcrack केवल इस एन्क्रिप्टेड डेटा को निकालने में सक्षम होगा। हालांकि, यदि एम्बेडिंग के दौरान एन्क्रिप्शन अक्षम किया गया था, तो Stegcrack छिपे हुए डेटा को सादे पाठ में पूरी तरह से निकाल सकता है।