
JKS ताबूत में कील - JKS फ़ाइल में निजी कुंजी प्रविष्टियों के पासवर्ड क्रैक करना
Java Key Store (JKS) असममित क्रिप्टोग्राफी के लिए एक या अधिक क्रिप्टोग्राफिक निजी और सार्वजनिक कुंजियों को फ़ाइल में संग्रहीत करने का जावा तरीका है। जबकि कई की स्टोर प्रारूप हैं, जावा और एंड्रॉइड अभी भी JKS फ़ाइल प्रारूप का डिफ़ॉल्ट उपयोग करते हैं। JKS जावा की स्टोर के लिए फ़ाइल प्रारूपों में से एक है, लेकिन JKS का उपयोग भ्रामक रूप से सामान्य जावा की स्टोर API के संक्षिप्त रूप के रूप में भी किया जाता है। यह परियोजना JKS फ़ाइल प्रारूप के सुरक्षा तंत्र और निजी कुंजी के पासवर्ड सुरक्षा को कैसे क्रैक किया जा सकता है, इसकी जानकारी शामिल करती है। JKS के असामान्य डिज़ाइन के कारण विकसित कार्यान्वयन की स्टोर पासवर्ड को अनदेखा कर सकता है और सीधे निजी कुंजी पासवर्ड को क्रैक कर सकता है। क्योंकि यह की स्टोर पासवर्ड को अनदेखा करता है, यह कार्यान्वयन हर JKS कॉन्फ़िगरेशन पर हमला कर सकता है, जो अधिकांश अन्य उपकरणों के मामले में नहीं है। JKS में निजी कुंजी के लिए पासवर्ड आधारित एन्क्रिप्शन योजना की कमजोरी का शोषण करके, पासवर्ड को बहुत कुशलता से क्रैक किया जा सकता है। अब तक, इस कमजोरी का शोषण करने वाला कोई सार्वजनिक उपकरण उपलब्ध नहीं था। इस तकनीक को hashcat में लागू किया गया था ताकि GPU पर उच्च क्रैकिंग गति के साथ एल्गोरिथम की दक्षता को बढ़ाया जा सके।
सिद्धांत भाग के लिए, कृपया इस रिपॉजिटरी में शामिल अंक 0x15 में POC||GTFO लेख "15:12 Nail in the Java Key Store Coffin" देखें (pocorgtfo15.pdf) या विभिन्न मिररों पर उपलब्ध है जैसे यह खूबसूरत एक: https://unpack.debug.su/pocorgtfo/
पूछने से पहले: JCEKS या BKS या कोई अन्य की स्टोर प्रारूप समर्थित नहीं है (अभी तक)।
उत्तर है इसके लिए अपना खुद का क्रैकिंग हार्डवेयर बनाएं ;) । लेकिन थोड़ा और व्यावहारिक होते हैं, तो उत्तर है अपने GPU का उपयोग करना:``` : _____________ : v3.6.0 ____________ _\ |_ /___ \ |____ _ / ______ | _ | __ \ / _ | /_ __ |/ | | | \ ___ / | | \ / \ | | || |__/ / /| |/: | |_:-aTZ!/_/ |: /__:
आपको बस निम्नलिखित कमांड चलाने की आवश्यकता है:```
java -jar JksPrivkPrepare.jar your_JKS_file.jks > hash.txt
यदि आपकी hash.txt फ़ाइल खाली हो जाती है, तो या तो JKS फ़ाइल में कोई निजी कुंजी नहीं है या आपने कोई गैर-JKS फ़ाइल निर्दिष्ट की है।
फिर hash.txt फ़ाइल को hashcat में फ़ीड करें (संस्करण 3.6.0 और उससे ऊपर, लेकिन यदि आप सुरक्षित पक्ष पर रहना चाहते हैं और यह भी सुनिश्चित करना चाहते हैं कि आप बहुत लंबे पासवर्ड क्रैक कर सकते हैं तो कृपया hashcat का कम से कम संस्करण 4 का उपयोग करें!), उदाहरण के लिए इस तरह:
hashcat -m 16500 -a 0 -O hash.txt /path/to/wordlist.txt
$ ./hashcat -m 15500 -a 3 -1 '?u|' -w 3 hash.txt ?1?1?1?1?1?1?1?1?1 hashcat (v3.6.0) starting...
Hashes: 1 digests; 1 unique digests, 1 unique salts Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Applicable optimizers:
Watchdog: Temperature abort trigger set to 90c Watchdog: Temperature retain trigger set to 75c
$jksprivk$D1BC102EF5FE5F1A7ED6A63431767DD4E1569670...8test:POC||GTFO
Session..........: hashcat Status...........: Cracked Hash.Type........: JKS Java Key Store Private Keys (SHA1) Hash.Target......: $jksprivk$D1BC102EF5FE5F1A7ED6A63431767DD4E1569670...8test Time.Started.....: Tue May 30 17:41:58 2017 (8 mins, 25 secs) Time.Estimated...: Tue May 30 17:50:23 2017 (0 secs) Guess.Mask.......: ?1?1?1?1?1?1?1?1?1 [9] Guess.Charset....: -1 ?u|, -2 Undefined, -3 Undefined, -4 Undefined Guess.Queue......: 1/1 (100.00%) Speed.Dev.#1.....: 7946.6 MH/s (39.48ms) Recovered........: 1/1 (100.00%) Digests, 1/1 (100.00%) Salts Progress.........: 4014116700160/7625597484987 (52.64%) Rejected.........: 0/4014116700160 (0.00%) Restore.Point....: 5505024000/10460353203 (52.63%) Candidates.#1....: NNVGFSRFO -> Z|ZFVDUFO HWMon.Dev.#1.....: Temp: 75c Fan: 89% Util:100% Core:1936MHz Mem:4513MHz Bus:1
Started: Tue May 30 17:41:56 2017 Stopped: Tue May 30 17:50:24 2017
तो इस रिपॉजिटरी से आपको मूल रूप से केवल JksPrivkPrepare.jar की आवश्यकता है ताकि एक क्रैकिंग सत्र चलाया जा सके।
# John The Ripper फ़ॉर्मेट से hashcat फ़ॉर्मेट में