हैश फ़ंक्शन एक प्रकार के फ़ंक्शन के लिए एक सामूहिक शब्द है । इस प्रकार के फ़ंक्शन का इनपुट मनमाना बाइनरी डेटा है, और आउटपुट एक निश्चित है लंबाई का बाइनरी डेटा । इस प्रकार के फ़ंक्शन में निम्नलिखित विशेषताएं हैं:
यूनिडायरेक्शनलिटी: इनपुट से आउटपुट की गणना करना सरल और तेज़ है, जबकि इनपुट को आउटपुट से निकालना गणितीय रूप से संभव नहीं है ।
टकराव बाधा: समान आउटपुट के साथ दो अलग-अलग इनपुट ढूंढना बेहद मुश्किल है
इन विशेषताओं को संतुष्ट करने वाले फ़ंक्शन को हैश फ़ंक्शन कहा जा सकता है । एक निश्चित डेटा को हैश फ़ंक्शन के इनपुट के रूप में लेते हुए, आउटपुट की गणना की जाती है । इस आउटपुट को डेटा का हैश मान कहना प्रथागत है ।
हैश फ़ंक्शन का एक प्रमुख कार्य पासवर्ड को सुरक्षित रूप से संग्रहीत करना है । यह सीधे पासवर्ड को नहीं सहेजता है (यानी, सादा पाठ पासवर्ड को नहीं सहेजता है), बल्कि पासवर्ड का हैश मान सहेजता है । सत्यापन के दौरान, आपको केवल इनपुट पासवर्ड की फिर से गणना करने की आवश्यकता है । पासवर्ड सही है या नहीं, यह जानने के लिए सहेजे गए पासवर्ड के हैश मान की तुलना सहेजे गए पासवर्ड के हैश मान से की जा सकती है । हैश फ़ंक्शन की एकतरफा प्रकृति और टकराव बाधाओं के कारण, हमलावर के लिए पासवर्ड का हैश मान प्राप्त करने पर भी पासवर्ड को जानना मुश्किल होता है ।
हमलावर को पासवर्ड का हैश मान मिल गया है । क्या वास्तव में पासवर्ड को जानने का कोई तरीका नहीं है? बेशक नहीं । हालाँकि पासवर्ड के हैश मान से सीधे पासवर्ड की गणना करना गणितीय रूप से संभव नहीं है, हम जानते हैं कि हैश फ़ंक्शन के लिए इनपुट से आउटपुट की गणना करना सरल और तेज़ है । सबसे खराब मामले में, आप इसे आज़मा सकते हैं । केवल वे पासवर्ड हैं जो मनुष्य सेट कर सकते हैं । यदि आप भाग्यशाली हैं, तो आप उन्हें एक-एक करके आज़मा सकते हैं । हैश मान के अनुरूप इनपुट प्राप्त करने के निरंतर प्रयासों को ब्लास्टिंग कहा जाता है ।
इस विचार के आधार पर, हैशकैट अस्तित्व में आया । ऐसा कहा जाता है कि हैशकैट का जन्म यह साबित करने के लिए हुआ था कि हैश को नष्ट करना बहुत सरल है । हैशकैट दुनिया का सबसे तेज़ हैश ब्लास्टिंग टूल होने का दावा करता है, और यह जीपीयू और एफजीपीए का भी समर्थन करता है, यदि आपके पास कोई है ।
हैशकैट न केवल तेज़ है, बल्कि पेशेवर रूप से दो सौ से अधिक हैश फ़ंक्शंस का समर्थन करता है, कमांड का उपयोग करते हुए:
हैशकैट --help
आप हैशकैट द्वारा समर्थित सभी हैश फ़ंक्शंस की एक सूची देख सकते हैं, बहुत सारे हैं और मैं उन्हें यहां पोस्ट नहीं करूंगा ।
हैशकैट डिफ़ॉल्ट रूप से काली में स्थापित है और इसे सीधे उपयोग किया जा सकता है । लेकिन मेरी काली वर्चुअलबॉक्स में स्थापित है, और मुझे हमेशा लगता है कि वर्चुअल अवसर थोड़ा धीमा है, इसलिए मैं भौतिक होस्ट में हैशकैट का उपयोग करना चाहता हूं । पहले हैशकैट डाउनलोड करने के लिए हैशचैट की आधिकारिक वेबसाइट पर जाएं । अब तक, नवीनतम संस्करण v3.5.0 है, जो 2017.04.05 को जारी किया गया था । अद्यतन तिथि से, यह देखा जा सकता है कि हैशचैट जीवन शक्ति से भरा है । संकलन की परेशानी को खत्म करें और सीधे बाइनरी पैकेज डाउनलोड करें । यह केवल 2.7M है, जो दर्जनों गीगाबाइट वाले गेम की तुलना में बहुत छोटा है ।
डाउनलोड पूरा होने के बाद, हैशकैट को अनकंप्रेस करें और देखें:
ऐसी फ़ाइलें क्रमशः 32-बिट और 64-बिट के तहत लिनक्स और विंडोज में निष्पादन योग्य फ़ाइलें हैं, बस उनमें से किसी एक को चुनें अपने कंप्यूटर की स्थिति । मैंने hashcat64.bin चुना । सुंदरता के लिए, ~/.bashrc फ़ाइल में एक पंक्ति जोड़ें:
alias hashcat='hashcat64.bin का पथ'
सहेजने के बाद, वर्चुअल टर्मिनल को फिर से खोलें और ~/.bashrc फ़ाइल को प्रभावी बनाएं । इस तरह, चाहे आप कहीं भी हों, निर्देशिकाओं को स्विच किए बिना या बदसूरत "64.bin" दर्ज किए बिना सीधे hashcat कमांड दर्ज करें, जैसा कि नीचे चित्र में दिखाया गया है ।
ठीक है, अब आप विभिन्न हैशों को नष्ट करने के लिए हैशकैट का उपयोग करना शुरू कर सकते हैं ।
MD5 सबसे प्रसिद्ध और व्यापक रूप से उपयोग किए जाने वाले हैश फ़ंक्शंस में से एक होना चाहिए । पहले ब्लास्टिंग के लिए कई एमडी5 मान उत्पन्न करने के लिए पायथन का उपयोग करें । कोड इस प्रकार है:
आयात हैशलिब पासवर्ड = ['123123', 'bond007', 'xxxxxx', '*H@&(NT*@BR#^'] के लिए पासवर्ड में पासवर्ड: MD5 = hashlib.MD5() MD5.update (पासवर्ड) प्रिंट MD5.hexdigest()
उपरोक्त कोड क्रमशः चार स्ट्रिंग के हैश मानों की गणना करता है, और आउटपुट परिणाम है:
4297f44b13955235245b2497399d7a93 cbdb7e2b1ed566ceb796af2df07205a3 dad3a37aa9d50688b5157698acfd7aee d77db958c179bbffae04b2b908b75c26
आउटपुट परिणाम को फ़ाइल MD5.hash में सहेजें, प्रत्येक पंक्ति में एक hahs मान । फिर इन हैश मानों को नष्ट करने के लिए हैशकैट का उपयोग करें । कमांड इस प्रकार है:
hashcat -w 3 -a 0 -m 0 --निकालें -o MD5.out MD5.hash wordlist.dic
पैरामीटर -w का उपयोग कार्य मोड को निर्दिष्ट करने के लिए किया जाता है । चार प्रकार हैं, जैसा कि नीचे दी गई तालिका में दिखाया गया है:
| N | प्रदर्शन | रनटाइम | बिजली की खपत | डेस्कटॉप प्रभाव |
|---|---|---|---|---|
| 1 | कम | 2 ms | कम | न्यूनतम |
| 2 | डिफ़ॉल्ट | 12 ms | आर्थिक | ध्यान देने योग्य |
| 3 | उच्च | 96 ms | उच्च | अनुत्तरदायी |
| 4 | दुःस्वप्न | 480 ms | पागल | सिररहित |
पैरामीटर -a का उपयोग हमले के मोड को निर्दिष्ट करने के लिए किया जाता है । 0 का अर्थ प्रत्यक्ष और निरंतर है, यानी, इसे पासवर्ड शब्दकोश के साथ विस्फोट किया जाता है । -a के पांच मान हैं, जैसा कि नीचे दी गई तालिका में दिखाया गया है:
| एन | मोड |
|---|---|
| 0 | सीधे |
| 1 | संयोजन |
| 3 | ब्रूट-फोर्स |
| 6 | हाइब्रिड वर्डलिस्ट + मास्क |
| 7 | हाइब्रिड मास्क + वर्डलिस्ट |
-एम का उपयोग विस्फोट के लिए हैश निर्दिष्ट करने के लिए किया जाता है मान का हैश फ़ंक्शन, 0 का मतलब है कि हैश फ़ंक्शन MD5 है, और अन्य मान निम्नलिखित तालिका में दिखाए गए हैं:
| N | नाम | श्रेणी |
|---|---|---|
| 0 | MD5 | Raw हैश |
| 300 | MySQL4.1/MySQL5 | डेटाबेस सर्वर |
| 1000 | NTLM | ऑपरेटिंग सिस्टम |
| 1800 | sha512crypt $6$, SHA512 (यूनिक्स) | ऑपरेटिंग सिस्टम |
| 2611 | vBulletin < v3.8.5 | फोरम, सीएमएस, ई-कॉमर्स, फ्रेमवर्क |
यह तालिका बहुत लंबी है । मैं केवल इस लेख में शामिल कुछ हैश फ़ंक्शन दिखाता हूं । आप उन सभी को पैरामीटर-सहायता के साथ देख सकते हैं ।
पैरामीटर - हटाने का अर्थ यह है कि यदि एक निश्चित हैश मान सफलतापूर्वक विस्फोट हो जाता है, तो मान MD5 से हटा दिया जाएगा । हैश हटा दिया गया है ।
पैरामीटर -o के बाद एक फ़ाइल नाम आता है जो इंगित करता है कि ब्लास्टिंग परिणाम कहां सहेजे जाते हैं ।
अंतिम दो पैरामीटर MD5 हैं । हैश और वर्डलिस्ट । डीआईसी क्रमशः हैश मान और पासवर्ड शब्दकोश हैं जिन्हें विस्फोट किया जाना है । हैश मान और पासवर्ड शब्दकोश प्रत्येक पंक्ति में एक हैं । MD5.hash में सामग्री की गणना पायथन द्वारा की गई है । यदि आपके पास कोई उपयुक्त पासवर्ड शब्दकोश नहीं है, तो आप कमांड का उपयोग कर सकते हैं:
wget -O wordlist.dic https://samsclass.info/123/proj10/500_passwords.txt
下载一个。现在完事具备,按下回车,结果华丽地报错:(
clGetPlatformIDs(): CL_PLATFORM_NOT_FOUND_KHR
संभवतः कोई ऑपरेटिंग वातावरण गायब है, तो इसे स्थापित करें । मैंने इन चीजों को कुल मिलाकर स्थापित किया है:
sudo apt-get install gcc make p7zip-full git lsb-core wget http://registrationcenter-download.intel.com/akdlm/irc_nas/9019/opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz tar -xvf opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25.tgz सीडी opencl_runtime_16.1.1_x64_ubuntu_6.4.0.25 sudo ./install.sh
यदि इंटरनेट गति अच्छी है, तो यह थोड़ी देर में ठीक हो जाएगा । पहला कमांड एक त्रुटि रिपोर्ट करता है:
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a प्रतीकात्मक लिंक /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 नहीं एक प्रतीकात्मक लिंक
लेकिन ऐसा लगता है कि यह किसी भी चीज़ को प्रभावित नहीं करता है, इसलिए इसे अनदेखा करें । इन्हें स्थापित करने के बाद, मैंने मूल रूप से त्रुटि रिपोर्ट करने वाले कमांड को चलाने के लिए फिर से एंटर दबाया । मैंने पाया कि कोई दोबारा त्रुटि रिपोर्ट नहीं की गई थी, और निष्पादन पलक झपकते ही पूरा हो गया था । कमांड निष्पादित होने के बाद, फ़ाइलों MD5.hash और MD5.out की सामग्री की जांच करें और पाएं कि MD5.hash में केवल एक हैश बचा है । सफलतापूर्वक ब्लास्ट किए गए तीन हैशों को फ़ाइल MD5.out में स्थानांतरित कर दिया गया है । MD5.out में तीन हैश मान और उनके मूल मान हैं, जैसा कि नीचे दिए गए चित्र में दिखाया गया है:
विंडोज़ लॉगिन पासवर्ड का हैश मान सैम फ़ाइल में सहेजा गया है, सैम "सुरक्षा खाता प्रबंधक" का संक्षिप्त रूप है । आमतौर पर, यह
C:\Windows\system32\config\SAM
पर स्थित होता है । SAM फ़ाइल विंडोज़ द्वारा संरक्षित है और इसे सीधे नहीं पढ़ा जा सकता है । इसके लिए SAMInside जैसे टूल की आवश्यकता होती है । एक विंडोज 7 वर्चुअल मशीन ढूंढें, हैशकैट नामक एक नया व्यवस्थापक उपयोगकर्ता बनाएं, और एक पासवर्ड सेट करें, विंडोज 7 में सैमइनसाइड को डाउनलोड करें और अनकंप्रेस करें और व्यवस्थापक विशेषाधिकारों के साथ चलाएं, फिर फ़ाइल->शेड्यूलर के विरुद्ध स्थानीय उपयोगकर्ताओं को आयात करें पर क्लिक करें, जैसा कि नीचे दिखाया गया है:
के बाद सैमइनसाइड "अनुत्तरदायी" हो सकता है, लेकिन इससे कोई फर्क नहीं पड़ता, कुछ सेकंड धैर्यपूर्वक प्रतीक्षा करें, सैमइनसाइड उम्मीदों पर खरा उतरता है और हम जो हैश चाहते हैं उसे पढ़ता है, जैसा कि नीचे दिखाया गया है:
उपयोगकर्ता "हैशकैट" का चयन करें जिसे हम पासवर्ड तोड़ना चाहते हैं, एनटी-हैश को कॉपी करने के लिए Ctrl+5 दबाएं, और फिर उबंटू पर लौटें जहां हैशकैट स्थापित है, कॉपी किए गए हैश मान को फ़ाइल win7.hash में सहेजने के लिए निम्नलिखित कमांड का उपयोग करें:
इको 356CEAE0C89FB65ED6D6AA7A445C4CE5 < 356ceae0c89fb65ed6d6aa7a445c4ce5:rush2112
SAM फ़ाइल कैसे प्राप्त करें, कृपया "विंडोज हैश सीरीज़ 1 कैसे निर्यात करें" देखें । वर्चुअल मशीन विंडोज 7 में SAM फ़ाइल पढ़ने की मेरी प्रक्रिया निम्नलिखित है ।
यदि यह एक भौतिक मशीन है, तो मशीन शुरू करने के लिए Win PE का उपयोग करें और डिस्क पर SAM फ़ाइल पढ़ें । मेरा एक वर्चुअल मशीन है । वर्चुअल डिस्क फ़ाइल को फ़ाइल सिस्टम में माउंट करके, आप वर्चुअल डिस्क में फ़ाइलों को पढ़ सकते हैं । मैं जिस वर्चुअल मशीन का उपयोग करता हूं वह वर्चुअलबॉक्स है, और मैं इसे vdfuse कमांड का उपयोग करके कर सकता हूं । यदि आपके पास vdfuse नहीं है, तो आपको पहले virtualbox-fuse इंस्टॉल करना होगा:
sudo apt-get install virtualbox-fuse
आप virtualbox-fuse भी डाउनलोड कर सकते हैं । फ़्यूज़ इंस्टॉलेशन पैकेज स्वयं स्थापित करें ।
इंस्टॉलेशन पूरा होने के बाद, आपके पास vdfuse कमांड है, और आप वर्चुअल डिस्क मैपिंग और माउंटिंग शुरू कर सकते हैं:
mkdir -p ~/vmdisk sudo vdfuse -t vmdk -f Win7Pro32.vmdk ~/vmdisk/
इस चरण को निष्पादित करने के बाद देखें ~/vmdisk निर्देशिका, जिसमें तीन फ़ाइलें हैं: EntireDisk, Partition1 और Partition2, नई निर्देशिका बनाएं:
mkdir -p ~/vmdisk_en mkdir -p ~ / vmdisk_1 mkdir -p ~/vmdisk_2
क्रमशः EntireDisk, Partition1 और Partition2 फ़ाइलों को माउंट करने के लिए माउंट कमांड का उपयोग करें:
sudo माउंट ~/vmdisk/EntireDisk ~/vmdisk_en sudo माउंट ~/vmdisk/Partition1 ~/vmdisk_1 sudo माउंट ~ / vmdisk / Partition2 ~ / vmdisk_2
पाया गया कि संपूर्ण डिस्क माउंट विफल रहा, विभाजन 1 में सामग्री वह नहीं थी जो मैं चाहता था, विभाजन 2 में विंडोज 7 वर्चुअल मशीन से फ़ाइल थी, जो मैं चाहता था । vmdisk_fs से हमारी लक्ष्य SAM फ़ाइल कॉपी करें:
cp ~/vmdisk_2/Windows/System32/config/SAM ./
वैसे, सिस्टम फ़ाइल को भी कॉपी करें:
cp ~/vmdisk_2/Windows/System32/config/SYSTEM ./
सैम फ़ाइल की सामग्री को देखें, जैसा कि नीचे दिए गए चित्र में दिखाया गया है, यह एक सादा पाठ फ़ाइल नहीं है, यह वास्तव में विंडोज शैली है,
ठीक है, हालांकि सैम फ़ाइल सफलतापूर्वक खोली गई है, फिर भी हमें हैश नहीं मिला है, मुझे आगे क्या करना चाहिए? सैम फ़ाइल की सामग्री को केवल उपकरणों की मदद से पार्स किया जा सकता है । सैम फ़ाइल और सिस्टम फ़ाइल दोनों को काली में डालें और कमांड चलाएं:
samdump2 -o sam. हैश सिस्टम सैम
फिर सैम देखें । हैश, आप प्रत्येक उपयोगकर्ता लॉगिन पासवर्ड का हैश मान भी देख सकते हैं । sam.hash फ़ाइल में प्रत्येक पंक्ति एक उपयोगकर्ता है, और प्रत्येक पंक्ति का प्रारूप है:
उपयोगकर्ता नाम: RID: LM-hash value: NTLM-hash value
ध्यान दें कि यह प्रारूप samdump2 कमांड आउटपुट प्रारूप है, "विंडोज के तहत हैश पासवर्ड प्रारूप" नहीं ।
सबसे पहले, आपके पास लिनक्स सिस्टम चलाने वाला कंप्यूटर होना चाहिए । यह कहना आसान है, वर्चुअल मशीन पर्याप्त है । फिर, एक नया उपयोगकर्ता जोड़ने और हमारे ब्लास्टिंग उद्देश्यों के लिए एक पासवर्ड सेट करने के लिए निम्नलिखित कमांड चलाएं:
sudo adduser justforfun
लिनक्स में उपयोगकर्ता लॉगिन पासवर्ड का हैश मान फ़ाइल /etc/shadow में संग्रहीत है (ध्यान दें: /etc/passwd नहीं), हैश मान देखने के लिए निम्नलिखित कमांड का उपयोग करें नए उपयोगकर्ता के लॉगिन पासवर्ड:
test@test-VirtualBox:~$ sudo tail -n 1 /etc/shadow justforfun:$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:17373:0:99999:7:::
टेल कमांड का उपयोग फ़ाइल की अंतिम कुछ पंक्तियों को पढ़ने के लिए किया जाता है, डिफ़ॉल्ट 10 पंक्तियाँ हैं, पैरामीटर -n के साथ पंक्तियों की संख्या निर्दिष्ट करें । जिस उपयोगकर्ता को हमने अभी बनाया है वह स्वाभाविक रूप से अंतिम पंक्ति में है, इसलिए इसे पढ़ने के लिए टेल -एन 1 का उपयोग करें । पढ़ा गया परिणाम ":" द्वारा विभाजित डेटा है । पहला भाग उपयोगकर्ता नाम "justforfun" है, और दूसरा भाग पासवर्ड का हैश मान है । इस लेख में अन्य भागों की परवाह करने की आवश्यकता नहीं है । हम दूसरे भाग पर ध्यान केंद्रित करते हैं ।
की शुरुआत में "$6$" का मतलब है कि उपयोग किए गए हैश फ़ंक्शन का प्रकार SHA512 है, "$6$" को छोड़कर, लिनक्स में, "$1$" MD5 को संदर्भित करता है, और "$2a$" को संदर्भित करता है । ब्लोफिश, "$2y$" ब्लोफिश (8-बिट वर्णों का सही हैंडलिंग), "$5$" को संदर्भित करता है SHA256 को संदर्भित करता है, विवरण के लिए विकिपीडिया:पासडब्ल्यूडी देखें । इसके अलावा, फ़ाइल /etc/login.defs भी हैश एल्गोरिदम की व्याख्या करती है ।
"$6$" की शुरुआत से अगले "$" से पहले का भाग "0fokwg59" नमक है । नमक क्या है? Baidu जानता है कि "MD5 नमक मान क्या है" प्रश्न का CNB2009 का उत्तर सरल और समझने में आसान है:
सीधे शब्दों में कहें तो, यह एक ही पासवर्ड बनाने का एक साधन है अलग-अलग हैश मान, जो लवणीकरण है । MD5 स्वयं अपरिवर्तनीय है, लेकिन वर्तमान में इंटरनेट पर कई डेटाबेस हैं जो एंटी-क्वेरी का समर्थन करते हैं । यदि उपयोगकर्ता का पासवर्ड डेटाबेस गलती से लीक हो जाता है, तो हैकर एंटी-क्वेरी के माध्यम से उपयोगकर्ता का पासवर्ड प्राप्त कर सकता है, या हैश कोड प्राप्त कर सकता है जो अक्सर दिखाई देते हैं । डेटाबेस (यानी, कई लोगों द्वारा उपयोग किया जाता है) क्रैकिंग के लिए (क्योंकि यह आमतौर पर एक कमजोर पासवर्ड होता है)। नमक मान पासवर्ड हैश प्रक्रिया के दौरान जोड़ा गया एक अतिरिक्त यादृच्छिक मान है । उदाहरण के लिए, मेरी आईडी 123456 है और पासवर्ड 123456 है । जब इसे डेटाबेस में संग्रहीत किया जाता है, तो आप स्ट्रिंग "123456/123456/ इस तरह, जब एक और बेवकूफ पासवर्ड 123456 है, तब भी अलग-अलग हैश मान का निर्माण किया जा सकता है और सफलतापूर्वक सत्यापित किया जा सकता है । इस समय, मेरी आईडी का उपयोग पासवर्ड को जटिल रूप से हैश करने के लिए नमक मान के रूप में किया जाता है । तो क्या । . नमक मूल्य की भूमिका डेटाबेस उल्लंघन के कारण होने वाले नुकसान को कम करना है । यदि आपका आरपी बहुत अच्छा है और आपने अनुमान लगाया है कि मेरा पासवर्ड 123456 है, तो मैं आपको नहीं रोक सकता ।
यह उत्तर MD5 के लिए है, और अन्य हैश फ़ंक्शंस के लिए भी यही सच है । नमक के बाद का हिस्सा हैश मान है । अब पूरे दूसरे भाग को फ़ाइल linux.hash में कॉपी करें, linux.hash की सामग्री होनी चाहिए:
$6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0
फिर लिनक्स लॉगिन पासवर्ड हैश को ब्लास्ट करने के लिए निम्नलिखित कमांड का उपयोग करें:
hashcat -w 3 -a 0 -m 1800 --remove -o linux.out linux.hash wordlist.dic
थोड़ी देर बाद, ब्लास्टिंग पूरी हो गई, परिणाम देखें:
werner@Yasser:~/hashcat$ cat linux.out $6$0fokwg59$6hpMS5dM9wDT/42DDoSD0i0g/wHab50Xs9iEvVLC3V20yf1kRmXZHGXCM0Efv6XU69hdgMZ4FwaMzso4hQaGQ0:4321
यह देखा जा सकता है कि ब्लास्टिंग सफल थी ।
सबसे पहले, आपके पास Mysql होना चाहिए । ऐसा होता है कि यह मेरी वर्चुअल मशीन में है । Baidu जानता है कि Mysql लॉगिन पासवर्ड का हैश मान फ़ाइल user.MYD में सहेजा गया है । फ़ाइल user.MYD कहाँ है? मुझे भी नहीं पता, इसलिए मैं इसे ढूंढता हूं:
test@test-VirtualBox:~$ sudo find / -name user.MYD /var/lib/mysql/mysql/user.MYD
इसे /var/lib/mysql/mysql/user.MYD पर पाया गया, फ़ाइल की सामग्री देखें:
sudo cat /var/lib/mysql/mysql/user.MYD
कोई सादा टेक्स्ट फ़ाइल नहीं है, इससे कोई फर्क नहीं पड़ता, यह अभी भी देखा जा सकता है कि उपयोगकर्ता रूट लॉगिन पासवर्ड का हैश मान है:
6B825255FB466413D6B1B724644E23428C94BBCB
इस मान को फ़ाइल mysql.hash में सहेजें और mysql लॉगिन पासवर्ड को नष्ट करने के लिए निम्नलिखित कमांड का उपयोग करें हैश:
hashcat -w 3 -A 0 -m 300 - हटाएं -o mysql.out mysql.hash wordlist.dic
थोड़ी देर बाद, ब्लास्टिंग पूरी हो गई, परिणाम देखें:
werner@Yasser:~/hashcat$ cat mysql.out 6b825255fb466413d6b1b724644e23428c94bbcb:वाइपर
यह देखा जा सकता है कि ब्लास्टिंग सफल रही ।
Discuz! यह चीन में एक प्रसिद्ध php फोरम प्रोग्राम है और इसका व्यापक रूप से उपयोग किया जाता है । अब चलो डिस्कज़ को विस्फोट करते हैं! उपयोगकर्ता के पासवर्ड का हैश मान । सबसे पहले, आपको हैश मान ढूंढना होगा । इसे कहां खोजें? बेशक, Discuz से! डेटाबेस में ।
डिस्कुज़ किया जा सकता है! डेटाबेस कहाँ है? मैंने इसे इस तरह हल किया, इसकी आधिकारिक वेबसाइट से Discuz का नवीनतम संस्करण डाउनलोड करें! स्रोत कोड, इंस्टॉलेशन चलाएं, और आपको डिस्कज़ मिलता है! डेटाबेस
Discuz! डिफ़ॉल्ट डेटाबेस का नाम ultrax है, और pre_ucenter_members तालिका लॉगिन पासवर्ड का हैश मान संग्रहीत करती है । "pre_" डिफ़ॉल्ट उपसर्ग है और इसे इंस्टॉलेशन के दौरान बदला जा सकता है । "ucenter_members" नहीं बदलेगा । लॉगिन पासवर्ड का हैश मान क्वेरी करने के लिए निम्नलिखित sql स्टेटमेंट का उपयोग करें:
select password,salt from pre_ucenter_members;
हैश मान और नमक मान को फ़ाइल में सहेजें:
प्रतिध्वनि 69bcba126b93c6f397983629a0f70553:c13fd9 > discuz.hash
हैश मान और नमक मान एक ही पंक्ति में हैं, जो ":" द्वारा विभाजित हैं । अंत में, डिस्कज़ लॉगिन पासवर्ड हैश को नष्ट करने के लिए निम्नलिखित कमांड का उपयोग करें:
hashcat -w 3 -a 0 -m 2611 --हटाएं -o discuz.out discuz.hash wordlist.dic
थोड़ी देर बाद, ब्लास्टिंग पूरी हो गई, परिणाम देखें:
werner@Yasser:~/hashcat$ cat discuz.out 69bcba126b93c6f397983629a0f70553:c13fd9:winter
यह देखा जा सकता है कि ब्लास्टिंग सफल रही ।
अब तक, हम केवल 500 शब्दों वाले एक छोटे शब्दकोश का उपयोग करते हैं, और हर बार विभिन्न हैशों को सफलतापूर्वक विस्फोट करने में केवल एक पल लगता है । क्या आपको यह अजीब नहीं लगता? ? ऐसा इसलिए है क्योंकि मैंने जानबूझकर हैशकैट का उपयोग करने का अभ्यास करने के लिए शब्दकोश में एक कमजोर पासवर्ड सेट किया है, अन्यथा क्या यह लोगों को बुरा महसूस नहीं करेगा यदि वे इसे उजागर नहीं करते हैं । व्यवहार में इतनी अच्छी किस्मत होना असंभव है । आइए कम कमजोर पासवर्ड के MD5 मान की गणना करें और इसे एक बड़े शब्दकोश के साथ फटाएं । एक तरफ, हम अपनी किस्मत आज़माएंगे और दूसरी तरफ देखेंगे कि हैशकैट कितनी तेज़ हो सकता है ।
पहले MD5 मान की गणना करें:
आयात हैशलिब
MD5 = hashlib.MD5()
MD5.update("werner123456!!!")
print MD5.hexdigest()आउटपुट है:
b17133f9abff287ed0546c1af2b171f7
फिर एक 10.5G आकार चुनें, जिसमें 940 मिलियन पासवर्ड हैं, विस्फोट शुरू करें:
hashcat -w 3 -a 0 -m 0 --निकालें -o big.out b17133f9abff287ed0546c1af2b171f7 big.dic
ध्यान दें कि जब केवल एक हैश मान होता है, तो आपको इसे फ़ाइल में सहेजने की आवश्यकता नहीं है, आप इसे सीधे कमांड लाइन पैरामीटर में लिख सकते हैं । बिस्तर पर जाने से पहले ब्लास्टिंग शुरू की, अगले दिन उठकर परिणाम देखा, और पाया:
शुरू: बुध जुलाई 26 22:55:27 2017 रोका गया: बुध जुलाई 26 23:02:28 2017
यह पता चला कि इसमें केवल 7 मिनट लगे! मैंने सोचा था कि इसमें 7 घंटे लगेंगे, जो मेरी अपेक्षा से 60 गुना तेज है! यह थोड़ा अफसोस की बात है कि हैश मान सफलतापूर्वक विस्फोट नहीं हुआ । ऐसा लगता है कि "werner123456!!!" पासवर्ड शब्दकोश में नहीं है । ऐसा लगता है कि मुझे 100G पासवर्ड शब्दकोश तैयार करने की आवश्यकता है, लेकिन इतने बड़े शब्दकोश को सहेजना और स्थानांतरित करना बहुत असुविधाजनक है । क्या कोई अन्य तरीका नहीं है? बेशक, हमले का पैटर्न याद है? हम "सीधे" मोड का उपयोग कर रहे हैं । आगे, आइए कई अन्य मोड का अध्ययन करें ।
हैश को नष्ट करने के लिए हैशकैट का उपयोग करते समय, पहला कदम हैश को ढूंढना है । अलग-अलग सिस्टम और अलग-अलग सॉफ़्टवेयर में अलग-अलग हैश भंडारण स्थान होते हैं, और आपको हैश मान को सटीक रूप से ढूंढना होगा ; दूसरा हैश प्रकार को सही ढंग से निर्धारित करना है, यह निर्धारित करना है कि क्या हैशकैट इस प्रकार के हैश का समर्थन करता है, और सही -एम पैरामीटर का चयन करना है, अन्यथा सफल होना लगभग असंभव है; तीसरा यह है कि पासवर्ड शब्दकोश बेहतर होना चाहिए । क्या इसे अंततः सफलतापूर्वक विस्फोट किया जा सकता है, यह शब्दकोश पर निर्भर हालाँकि पासवर्ड शब्दकोश जितना बड़ा होगा, उतना बेहतर होगा, फिर भी बड़ा होना बेहतर होगा । हैशकैट भी अपनी गति के लिए जाना जाता है । बड़े शब्दकोश हैशकैट के लिए कोई समस्या नहीं हैं । यहां एक बेहतर शब्दकोश है: पिछले लीक गेट + आमतौर पर इस्तेमाल किए जाने वाले कमजोर पासवर्ड शब्दकोश संग्रह । 7Z, डिकंप्रेशन पासवर्ड है: anywlan । इसके अलावा, यदि आप बहुत सारे छोटे शब्दकोश एकत्र करते हैं, तो आप हैशकैट ब्लास्टिंग की सुविधा के लिए एक बड़ा शब्दकोश प्राप्त करने के लिए छोटे शब्दकोशों को मर्ज, सॉर्ट और डुप्लिकेट कर सकते हैं । यदि छोटे शब्दकोश एक ही निर्देशिका में हैं, तो आप इसे एक कमांड का उपयोग करके कर सकते हैं:
cat * | सॉर्ट | uniq > Merge.dic
क्या होगा यदि छोटे शब्दकोश को श्रेणियों के अनुसार व्यवस्थित किया जाता है और बहु-स्तरीय निर्देशिकाओं में वितरित किया जाता है? अकेले कैट कमांड का उपयोग करना स्पष्ट रूप से पर्याप्त नहीं है, लेकिन वास्तव में केवल एक कमांड की आवश्यकता है । यह मानते हुए कि सभी छोटे शब्दकोश MyDictionary निर्देशिका में संग्रहीत हैं, कमांड को इस प्रकार लिखा जा सकता है:
find ./MyDictionary -type f -exec cat {} \; | सॉर्ट | uniq > Merge.dic