हैश फ़ंक्शन एक प्रकार के फ़ंक्शन के लिए एक सामूहिक शब्द है । इस प्रकार के फ़ंक्शन का इनपुट मनमाना बाइनरी डेटा है, और आउटपुट एक निश्चित लंबाई का बाइनरी डेटा है । इस प्रकार के फ़ंक्शन में निम्नलिखित विशेषताएं हैं:
यूनिडायरेक्शनलिटी: इनपुट से आउटपुट की गणना करना सरल और तेज़ है, जबकि इनपुट को निकालना गणितीय रूप से संभव नहीं है । आउटपुट
टकराव बाधा: समान आउटपुट वाले दो अलग-अलग इनपुट ढूंढना बेहद कठिन है
इन विशेषताओं को संतुष्ट करने वाले फ़ंक्शन को हैश फ़ंक्शन कहा जा सकता है । एक निश्चित डेटा को हैश फ़ंक्शन के इनपुट के रूप में लेते हुए, आउटपुट की गणना की जाती है । इस आउटपुट को डेटा का हैश मान कहना प्रथागत है ।
हैश फ़ंक्शन का एक प्रमुख कार्य पासवर्ड को सुरक्षित रूप से संग्रहीत करना है । यह सीधे पासवर्ड को नहीं सहेजता है (यानी, सादा पाठ पासवर्ड को नहीं सहेजता है), बल्कि पासवर्ड के हैश मान को सहेजता है । सत्यापन के दौरान, आपको केवल इनपुट पासवर्ड की फिर से गणना करने की आवश्यकता है । पासवर्ड सही है या नहीं, यह जानने के लिए सहेजे गए पासवर्ड के हैश मान की तुलना सहेजे गए पासवर्ड के हैश मान से की जा सकती है । हैश फ़ंक्शन की एकतरफा प्रकृति और टकराव बाधाओं के कारण, हमलावर के लिए पासवर्ड का हैश मान प्राप्त करने पर भी पासवर्ड को जानना मुश्किल होता है ।
हमलावर को पासवर्ड का हैश मान मिल गया है, क्या वास्तव में पासवर्ड को जानने का कोई तरीका नहीं है? बेशक नहीं । हालाँकि पासवर्ड के हैश मान से सीधे पासवर्ड की गणना करना गणितीय रूप से संभव नहीं है, हम जानते हैं कि हैश फ़ंक्शन के लिए इनपुट से आउटपुट की गणना करना सरल और तेज़ है । सबसे खराब मामले में, आप इसे आज़मा सकते हैं । केवल वे पासवर्ड हैं जो मनुष्य सेट कर सकते हैं । यदि आप भाग्यशाली हैं, तो आप उन्हें एक-एक करके आज़मा सकते हैं । हैश मान के अनुरूप इनपुट प्राप्त करने के निरंतर प्रयासों को ब्लास्टिंग कहा जाता है ।
इस विचार के आधार पर, hashcat अस्तित्व में आया । ऐसा कहा जाता है कि hashcat का जन्म यह साबित करने के लिए हुआ था कि hash को नष्ट करना बहुत सरल है । हैशकैट दुनिया का सबसे तेज़ हैश ब्लास्टिंग टूल होने का दावा करता है, और यह जीपीयू और एफजीपीए का भी समर्थन करता है, यदि आपके पास कोई है ।
हैशकैट न केवल तेज़ है, बल्कि पेशेवर रूप से दो सौ से अधिक हैश फ़ंक्शंस का समर्थन करता है, कमांड का उपयोग करें:
hashcat --help
आप हैशकैट द्वारा समर्थित सभी हैश फ़ंक्शंस की एक सूची देख सकते हैं, बहुत सारे हैं, मैं उन्हें यहां पोस्ट नहीं करूंगा ।
हैशकैट डिफ़ॉल्ट रूप से काली में स्थापित है और इसे सीधे उपयोग किया जा सकता है । लेकिन मेरी काली वर्चुअलबॉक्स में स्थापित है, और मुझे हमेशा लगता है कि वर्चुअल अवसर थोड़ा धीमा है, इसलिए मैं भौतिक होस्ट में हैशकैट का उपयोग करना चाहता हूं । पहले हैशकैट डाउनलोड करने के लिए हैशचैट की आधिकारिक वेबसाइट पर जाएं । अब तक, नवीनतम संस्करण v3.5.0 है, जो 2017.04.05 को जारी किया गया था । अद्यतन तिथि से, यह देखा जा सकता है कि हैशचैट जीवन शक्ति से भरा है । संकलन की परेशानी को खत्म करें और सीधे बाइनरी पैकेज डाउनलोड करें । यह केवल 2.7M है, जो दर्जनों गीगाबाइट वाले गेम की तुलना में बहुत छोटा है ।
डाउनलोड पूरा होने के बाद, हैशकैट को डिकंप्रेस करें और देखें:
ऐसी फ़ाइलें क्रमशः 32 बिट और 64 बिट के तहत लिनक्स और विंडोज में निष्पादन योग्य फ़ाइलों के लिए, बस अपने कंप्यूटर की स्थिति के अनुसार उनमें से किसी एक का चयन करें । मैंने hashcat64.bin चुना । सुंदरता के लिए, ~/.bashrc फ़ाइल में एक पंक्ति जोड़ें:
alias hashcat='hashcat64.bin का पथ '
सहेजने के बाद वर्चुअल टर्मिनल को फिर से खोलें और ~/.bashrc फ़ाइल को प्रभावी बनाएं । इस तरह, चाहे आप कहीं भी हों, निर्देशिकाओं को स्विच किए बिना या बदसूरत "64.bin" दर्ज किए बिना सीधे hashcat कमांड दर्ज करें, जैसा कि नीचे दिखाया गया है । चित्र ।
ठीक है, अब आप विभिन्न हैशों को नष्ट करने के लिए हैशकैट का उपयोग करना शुरू कर सकते हैं ।
md5 सबसे प्रसिद्ध और व्यापक रूप से उपयोग किए जाने वाले हैश फ़ंक्शंस में से एक होना चाहिए । पहले ब्लास्टिंग के लिए कई md5 मान उत्पन्न करने के लिए पायथन का उपयोग करें । कोड इस प्रकार है:
import hashlib पासवर्ड = ['123123', 'बॉन्ड007', 'xxxxxx', '*H@&(NT*@BR#^'] के लिए पासवर्ड में पासवर्ड: md5 = hashlib.md5() md5.update(पासवर्ड) print md5.hexdigest()
उपरोक्त कोड क्रमशः चार स्ट्रिंग के हैश मानों की गणना करता है, और आउटपुट परिणाम है:
4297f44b13955235245b2497399d7a93 cbdb7e2b1ed566ceb796af2df07205a3 dad3a37aa9d50688b5157698acfd7aee d77db958c179bbffae04b2b908b75c26
आउटपुट परिणाम को फ़ाइल md5.hash में सहेजें, प्रत्येक पंक्ति में एक hahs मान । फिर इन हैश मानों को नष्ट करने के लिए हैशकैट का उपयोग करें । कमांड इस प्रकार है:
hashcat -w 3 -a 0 -m 0 --remove -o md5.out md5.hash wordlist.dic
पैरामीटर-w का उपयोग कार्य मोड को निर्दिष्ट करने के लिए किया जाता है, कुल चार प्रकार हैं, जैसा कि नीचे दी गई तालिका में दिखाया गया है:
| N | प्रदर्शन | रनटाइम | बिजली की खपत | डेस्कटॉप प्रभाव |
|---|---|---|---|---|
| 1 | Low | 2 ms | Low | Minimal |
| 2 | Default | 12 ms | Economic | Noticeable |
| 3 | उच्च | 96 ms | उच्च | अनुत्तरदायी |
| 4 | दुःस्वप्न | 480 ms | पागल | सिररहित |
पैरामीटर -a का उपयोग हमले के मोड को निर्दिष्ट करने के लिए किया जाता है, और 0 का अर्थ है सीधे और निरंतर, अर्थात, पासवर्ड शब्दकोश के साथ विस्फोट, -a के पांच मान हैं, जैसा कि नीचे दी गई तालिका में दिखाया गया है:
| N | मोड |
|---|---|
| 0 | सीधे |
| 1 | संयोजन |
| 3 | ब्रूट-फोर्स |
| 6 | हाइब्रिड वर्डलिस्ट + मास्क |
| 7 | हाइब्रिड मास्क + वर्डलिस्ट |
-एम का उपयोग हैश को विस्फोट करने के लिए निर्दिष्ट करने के लिए किया जाता है मान का हैश फ़ंक्शन, 0 का मतलब है कि हैश फ़ंक्शन md5 है, और अन्य मान नीचे दी गई तालिका में दिखाए गए हैं:
| N | Name | Category |
|---|---|---|
| 0 | MD5 | Raw Hash |
| 300 | MySQL4.1/MySQL5 | डेटाबेस सर्वर |
| 1000 | NTLM | ऑपरेटिंग सिस्टम |
| 1800 | sha512crypt $6$, SHA512 (Unix) | ऑपरेटिंग सिस्टम |
| 2611 | vBulletin < v3.8.5 | फोरम, सीएमएस, ई-कॉमर्स, फ्रेमवर्क |
यह तालिका बहुत लंबी है । मैं यहां केवल इस लेख में शामिल कुछ हैश फ़ंक्शन दिखाता हूं । आप उन सभी को पैरामीटर - सहायता का उपयोग करके देख सकते हैं ।
पैरामीटर - हटाने का अर्थ यह है कि यदि एक निश्चित हैश मान सफलतापूर्वक विस्फोट हो जाता है, तो मान को md5.hash से हटा दिया जाता है ।
पैरामीटर -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 symbolic link /sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link
लेकिन ऐसा लगता है कि यह कुछ भी प्रभावित नहीं करता है, इसलिए इसे अनदेखा करें । इन्हें स्थापित करने के बाद, मैंने मूल रूप से त्रुटि रिपोर्ट करने वाले कमांड को चलाने के लिए फिर से एंटर दबाया । मैंने पाया कि कोई दोबारा त्रुटि रिपोर्ट नहीं की गई थी, और निष्पादन पलक झपकते ही पूरा हो गया था । कमांड निष्पादित होने के बाद, फ़ाइलों md5.hash और md5.out की सामग्री की जांच करें और पाएं कि md5.hash में केवल एक हैश बचा है । सफलतापूर्वक ब्लास्ट किए गए तीन हैशों को फ़ाइल md5.out में स्थानांतरित कर दिया गया है । md5.out में तीन हैश मान और उनके मूल मान हैं, जैसा कि नीचे दिए गए चित्र में दिखाया गया है:
विंडोज लॉगिन पासवर्ड का हैश मान सैम फ़ाइल में सहेजा गया है, सैम "सुरक्षा खाता प्रबंधक" का संक्षिप्त रूप है । आमतौर पर, यह
C:\Windows\system32\config\SAM
पर स्थित है । SAM फ़ाइल विंडोज़ द्वारा संरक्षित है और इसे सीधे नहीं पढ़ा जा सकता है । इसके लिए उपकरण की आवश्यकता होती है, जैसे कि SAMInside । एक विंडोज 7 वर्चुअल मशीन ढूंढें, हैशकैट नामक एक नया व्यवस्थापक उपयोगकर्ता बनाएं, और एक पासवर्ड सेट करें, विंडोज 7 में सैमइनसाइड को डाउनलोड करें और अनकंप्रेस करें और व्यवस्थापक विशेषाधिकारों के साथ चलाएं, फिर फ़ाइल-> शेड्यूलर के विरुद्ध स्थानीय उपयोगकर्ताओं को आयात करें पर क्लिक करें, जैसा कि नीचे दिखाया गया है:
के बाद सैमइनसाइड "अनुत्तरदायी" हो सकता है, लेकिन इससे कोई फर्क नहीं पड़ता, कुछ सेकंड के लिए धैर्यपूर्वक प्रतीक्षा करें, सैमइनसाइड उम्मीदों पर खरा उतरता है और हम जो हैश चाहते हैं उसे पढ़ता है, जैसा कि नीचे दिखाया गया है:
उपयोगकर्ता "हैशकैट" का चयन करें जिसे हम पासवर्ड विस्फोट करना चाहते हैं, एनटी-हैश को कॉपी करने के लिए Ctrl + 5 दबाएं, फिर उबंटू पर वापस जाएं जहां हैशकैट स्थापित है, कॉपी किए गए हैश मान को फ़ाइल win7.hash में सहेजने के लिए निम्नलिखित कमांड का उपयोग करें:
echo 356ceae0c89fb6b6bhashcat -w 3 -a 0 -m 1000 --remove -o win7.out win7.hash wordlist.dicथोड़ी देर बाद निष्पादन पूरा हो गया, win7.out फ़ाइल की जांच करें और पाएं कि ब्लास्टिंग सफल रही । उपयोगकर्ता हैशकैट का लॉगिन पासवर्ड rush2112 है:
werner@Yasser:~/hashcat$ cat win7.out 356ceae0c89fb65ed6d6aa7a445c4ce5:rush2112SAM फ़ाइल कैसे प्राप्त करें, कृपया "विंडोज हैश श्रृंखला 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क्रमशः तीन फ़ाइलों को माउंट करने के लिए माउंट कमांड का उपयोग करें:
sudo माउंट ~/vmdisk/EntireDisk ~/vmdisk_en sudo माउंट ~/vmdisk/Partition1 ~/vmdisk_1 sudo mount ~/vmdisk/Partition2 ~/vmdisk_2पाया गया, संपूर्ण डिस्क माउंट विफल हो गया, विभाजन 1 में सामग्री वह नहीं थी जो मैं चाहता था, विभाजन 2 में विंडोज 7 वर्चुअल मशीन से फ़ाइल थी, जो मैं चाहता था । vmdisk_fs से हमारी लक्ष्य SAM फ़ाइल कॉपी करें:
cp ~/vmdisk_2/Windows/System32/config/SAM ./वैसे, सिस्टम फ़ाइल को भी कॉपी करें:
cp ~/vmdisk_2/Windows/System32/config/SYSTEM ./देखें SAM फ़ाइल की सामग्री, जैसा कि नीचे दिए गए चित्र में दिखाया गया है, एक सादा पाठ फ़ाइल नहीं है, यह वास्तव में विंडोज़ शैली है,
ठीक है, हालांकि SAM फ़ाइल सफलतापूर्वक खोली गई है, हमें अभी भी हैश नहीं मिला है, आगे क्या करना है? सैम फ़ाइल की सामग्री को केवल उपकरणों की मदद से पार्स किया जा सकता है । सैम फ़ाइल और सिस्टम फ़ाइल दोनों को काली में डालें और कमांड चलाएं:
samdump2 -o sam.hash SYSTEM samफिर सैम देखें । हैश, आप प्रत्येक उपयोगकर्ता के लॉगिन पासवर्ड का हैश मान भी देख सकते हैं । sam.hash फ़ाइल में प्रत्येक पंक्ति एक उपयोगकर्ता है, और प्रत्येक पंक्ति का प्रारूप है:
उपयोगकर्ता नाम: RID: LM-hash value: NTLM-hash valueध्यान दें कि यह प्रारूप samdump2 कमांड आउटपुट प्रारूप है, न कि "विंडोज के तहत हैश पासवर्ड प्रारूप"।
3. लिनक्स लॉगिन पासवर्ड हैश को नष्ट करना
सबसे पहले, आपके पास लिनक्स सिस्टम चलाने वाला कंप्यूटर होना चाहिए । यह कहना आसान है, एक वर्चुअल मशीन पर्याप्त है । फिर, एक नया उपयोगकर्ता जोड़ने और हमारे ब्लास्टिंग उद्देश्यों के लिए एक पासवर्ड सेट करने के लिए निम्नलिखित कमांड चलाएं:
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$" का अर्थ है कि उपयोग किए गए हैश फ़ंक्शन का प्रकार SHA-512 है । "$6$" को छोड़कर, लिनक्स में, "$1$" MD5 को संदर्भित करता है, "$2a$" को संदर्भित करता है । ब्लोफिश, "$2y$" ब्लोफिश को संदर्भित करता है (8-बिट वर्णों की सही हैंडलिंग), "$5$" SHA-256 को संदर्भित करता है, विवरण के लिए विकिपीडिया:पासडब्ल्यूडी देखें । इसके अलावा, फ़ाइल /etc/login.defs भी हैश एल्गोरिदम की व्याख्या करती है ।
"$6$" की शुरुआत से अगले "$" से पहले का भाग "0fokwg59" नमक है । नमक क्या है? Baidu जानता है कि " md5 नमक मान क्या है" प्रश्न का CNB2009 का उत्तर सरल और समझने में आसान है:
सीधे शब्दों में कहें तो, यह एक ही पासवर्ड बनाने का एक तरीका है अलग-अलग हैश मान, अर्थात् लवणीकरण । MD5 स्वयं अपरिवर्तनीय है, लेकिन वर्तमान में इंटरनेट पर कई डेटाबेस हैं जो एंटी-क्वेरी का समर्थन करते हैं । यदि उपयोगकर्ता का पासवर्ड डेटाबेस गलती से लीक हो जाता है, तो हैकर एंटी-क्वेरी के माध्यम से उपयोगकर्ता का पासवर्ड प्राप्त कर सकता है, या हैश कोड प्राप्त कर सकता है जो अक्सर दिखाई देते हैं । डेटाबेस (यानी, कई लोगों द्वारा उपयोग किया जाता है) क्रैकिंग के लिए (क्योंकि यह आमतौर पर एक कमजोर पासवर्ड होता है)। नमक मान पासवर्ड हैश प्रक्रिया के दौरान जोड़ा गया एक अतिरिक्त यादृच्छिक मान है । उदाहरण के लिए, मेरी आईडी 123456 है और पासवर्ड 123456 है । जब इसे डेटाबेस में संग्रहीत किया जाता है, तो आप स्ट्रिंग "123456/123456/ इस तरह, जब एक और बेवकूफ पासवर्ड 123456 है, तब भी अलग-अलग हैश मान का निर्माण किया जा सकता है और सफलतापूर्वक सत्यापित किया जा सकता है । इस समय, मेरी आईडी का उपयोग पासवर्ड को जटिल रूप से हैश करने के लिए नमक मान के रूप में किया जाता है । तो क्या । . नमक मूल्य की भूमिका डेटाबेस उल्लंघन के कारण होने वाले नुकसान को कम करना है । यदि आपका आरपी बहुत अच्छा है और आपने अनुमान लगाया है कि मेरा पासवर्ड 123456 है, तो मैं आपको नहीं रोक सकता ।
उत्तर एमडी5 के लिए है, और अन्य हैश फ़ंक्शंस के लिए भी यही सच है । नमक के बाद का हिस्सा हैश मान है । अब पूरे दूसरे भाग को फ़ाइल 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यह देखा जा सकता है कि ब्लास्टिंग सफल थी ।
4. Mysql लॉगिन पासवर्ड हैश को नष्ट करें
सबसे पहले, आपके पास 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 लॉगिन पासवर्ड हैश को ब्लास्ट करने के लिए निम्नलिखित कमांड का उपयोग करें:
{}
थोड़ी देर बाद, ब्लास्टिंग पूरी हो गई, परिणाम देखें:
werner@Yasser:~/hashcat$ cat mysql.out 6b825255fb466413d6b1b724644e23428c94bbcb:viperयह देखा जा सकता है कि ब्लास्टिंग सफल रही ।
5. विस्फोट डिस्कज़! मंच का पासवर्ड
Discuz! यह चीन में एक प्रसिद्ध php फोरम प्रोग्राम है और इसका व्यापक रूप से उपयोग किया जाता है । अब चलो डिस्कज़ को विस्फोट करते हैं! उपयोगकर्ता के पासवर्ड का हैश मान । सबसे पहले, आपको हैश मान ढूंढना होगा । इसे कहां खोजें? बेशक, Discuz से! डेटाबेस में ।
चर्चा की जा सकती है! डेटाबेस कहाँ है? मैंने इसे इस तरह हल किया, इसकी आधिकारिक वेबसाइट से Discuz का नवीनतम संस्करण डाउनलोड करें! स्रोत कोड, इंस्टॉलेशन चलाएं, और आपको डिस्कज़ मिलता है! डेटाबेस
Discuz! डिफ़ॉल्ट डेटाबेस का नाम ultrax है, और pre_ucenter_members तालिका लॉगिन पासवर्ड का हैश मान संग्रहीत करती है । "pre_" डिफ़ॉल्ट उपसर्ग है और इसे इंस्टॉलेशन के दौरान बदला जा सकता है । "ucenter_members" नहीं बदलेगा । लॉगिन पासवर्ड के हैश मान को क्वेरी करने के लिए निम्नलिखित sql स्टेटमेंट का उपयोग करें:
select password,salt from pre_ucenter_members;
हैश मान और नमक मान को फ़ाइल में सहेजें:
echo 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यह देखा जा सकता है कि ब्लास्टिंग सफल रही ।
6. बड़ा शब्दकोश परीक्षण
अब तक, हम केवल 500 शब्दों वाले एक छोटे शब्दकोश का उपयोग करते हैं, और हर बार विभिन्न हैशों को सफलतापूर्वक विस्फोट करने में केवल एक पल लगता है । क्या आपको यह अजीब नहीं लगता? ? ऐसा इसलिए है क्योंकि मैंने जानबूझकर हैशकैट का उपयोग करने का अभ्यास करने के लिए शब्दकोश में एक कमजोर पासवर्ड सेट किया है, अन्यथा क्या यह लोगों को बुरा महसूस नहीं करेगा यदि वे इसे उजागर नहीं करते हैं । व्यवहार में इतनी अच्छी किस्मत होना असंभव है । आइए कम कमजोर पासवर्ड के md5 मान की गणना करें और इसे एक बड़े शब्दकोश के साथ फटाएं । एक तरफ, हम अपनी किस्मत आज़माएंगे और दूसरी तरफ देखेंगे कि हैशकैट कितनी तेज़ हो सकता है ।
पहले md5 मान की गणना करें:
आयात हैशलिब md5 = hashlib.md5() md5.update("werner123456!!!") प्रिंट md5.hexdigest()आउटपुट है:
b17133f9abff287ed0546c1af2b171f7फिर एक 10.5G आकार का चयन करें, जिसमें 940 मिलियन पासवर्ड होते हैं, ब्लास्टिंग शुरू करें:
हैशकैट -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 पासवर्ड शब्दकोश तैयार करने की आवश्यकता है, लेकिन इतने बड़े शब्दकोश को सहेजना और स्थानांतरित करना बहुत असुविधाजनक है । क्या कोई अन्य तरीका नहीं है? बेशक, हमले का पैटर्न याद है? हम "सीधे" मोड का उपयोग कर रहे हैं । आगे, आइए कई अन्य मोड का अध्ययन करें ।
7. सारांश
हैश को नष्ट करने के लिए हैशकैट का उपयोग करते समय, पहला कदम हैश को ढूंढना है । अलग-अलग सिस्टम और अलग-अलग सॉफ़्टवेयर में अलग-अलग हैश भंडारण स्थान होते हैं, और आपको हैश मान को सटीक रूप से ढूंढना होगा ; दूसरा हैश प्रकार को सही ढंग से निर्धारित करना है, यह निर्धारित करना है कि क्या हैशकैट इस प्रकार के हैश का समर्थन करता है, और सही -एम पैरामीटर का चयन करना है, अन्यथा सफल होना लगभग असंभव है; तीसरा यह है कि पासवर्ड शब्दकोश बेहतर होना चाहिए । क्या इसे अंततः सफलतापूर्वक विस्फोट किया जा सकता है, यह शब्दकोश पर निर्भर करता है । हालाँकि पासवर्ड शब्दकोश जितना बड़ा होगा, उतना बेहतर होगा, फिर भी बड़ा होना बेहतर होगा । हैशकैट भी अपनी गति के लिए जाना जाता है । बड़े शब्दकोश हैशकैट के लिए कोई समस्या नहीं हैं । यहां एक बेहतर शब्दकोश है: पिछले लीक गेट + आमतौर पर इस्तेमाल किए जाने वाले कमजोर पासवर्ड शब्दकोश संग्रह । 7Z, डिकंप्रेशन पासवर्ड है: anywlan । इसके अलावा, यदि आप बहुत सारे छोटे शब्दकोश एकत्र करते हैं, तो आप हैशकैट ब्लास्टिंग की सुविधा के लिए एक बड़ा शब्दकोश प्राप्त करने के लिए छोटे शब्दकोशों को मर्ज, सॉर्ट और डुप्लिकेट कर सकते हैं । यदि छोटे शब्दकोश एक ही निर्देशिका में हैं, तो आप इसे एक कमांड का उपयोग करके कर सकते हैं:
cat * | सॉर्ट | uniq > Merge.dicक्या होगा यदि छोटे शब्दकोश को श्रेणियों के अनुसार व्यवस्थित किया जाता है और बहु-स्तरीय निर्देशिकाओं में वितरित किया जाता है? अकेले कैट कमांड का उपयोग करना स्पष्ट रूप से पर्याप्त नहीं है, लेकिन वास्तव में केवल एक कमांड की आवश्यकता है । यह मानते हुए कि सभी छोटे शब्दकोश MyDictionary निर्देशिका में संग्रहीत हैं, कमांड को इस प्रकार लिखा जा सकता है:
find ./MyDictionary -type f -exec cat {} \; | सॉर्ट | uniq > Merge.dic