Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
pcfg_cracker — संभाव्य संदर्भ मुक्त व्याकरण (PCFG) पासवर्ड अनुमान जनरेटर | Kitploit
उपकरण/GitHubGitHub/lakiw/pcfg_cracker
पासवर्ड क्रैकिंगपासवर्ड हमलेक्रिप्टोग्राफीमशीन लर्निंग
GitHublakiw/pcfg_cracker

pcfg_cracker

संभाव्य संदर्भ मुक्त व्याकरण (PCFG) पासवर्ड अनुमान जनरेटर

रिपॉजिटरी देखें
3708721 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

PCFG = Probabilistic Context Free Grammar (प्रसंग-मुक्त प्रसंभाव्य व्याकरण)

PCFG = Pretty Cool Fuzzy Guesser (बहुत बढ़िया फ़ज़ी अनुमानक)

संक्षेप में: उपकरणों का एक संग्रह जो यह शोध करने के लिए है कि मानव पासवर्ड कैसे उत्पन्न करते हैं। इनका उपयोग पासवर्ड हैश को क्रैक करने के लिए किया जा सकता है, लेकिन सिंथेटिक पासवर्ड (हनीवर्ड) बनाने या बेहतर पासवर्ड शक्ति एल्गोरिदम विकसित करने में मदद करने के लिए भी किया जा सकता है।

उपकरण संस्करण

प्रशिक्षक: 4.4

अनुमानक: 4.6

PRINCE_LING: 4.3

Password_Scorer: 4.4

दस्तावेज़ीकरण

Sphinx का उपयोग कोड में डॉकस्ट्रिंग के आधार पर एक डेवलपर गाइड गतिशील रूप से बनाने के लिए किया जाता है। डेवलपर गाइड बनाने के लिए, /doc/INSTRUCTIONS.rst में दिए गए निर्देश देखें।

एक पूर्व-निर्मित डेवलपर गाइड PDF /doc/build/latex/pcfgdevelopersguide.pdf पर भी पाया जा सकता है। ध्यान दें, मैं इस गाइड को प्रमुख रिलीज़ों के बीच पुनर्निर्मित नहीं करूंगा ताकि git इतिहास साफ रहे। यानी PDFs को कमिट करना जल्दी गड़बड़ हो जाता है। इसका मतलब है कि पूर्व-निर्मित गाइड थोड़ा पुराना हो सकता है, इसलिए यदि आप कोड लिखने/संशोधित करने में मदद के लिए इसका उपयोग कर रहे हैं, तो पूर्व-निर्मित गाइड के बजाय स्वयं गाइड बनाने की अनुशंसा की जाती है।

अवलोकन

यह परियोजना उपयोगकर्ताओं की पासवर्ड निर्माण आदतों की पहचान करने के लिए मशीन लर्निंग का उपयोग करती है। एक PCFG मॉडल खुलासा किए गए सादे पाठ/क्रैक किए गए पासवर्ड की सूची पर प्रशिक्षण देकर उत्पन्न किया जाता है। इस परियोजना के संदर्भ में, मॉडल को एक नियमसेट (ruleset) कहा जाता है और इसमें प्रशिक्षण के दौरान पहचाने गए पासवर्ड के कई अलग-अलग भाग और उनसे जुड़ी प्रायिकताएं शामिल होती हैं। यह विभाजन PRINCE जैसे अन्य क्रैकिंग उपकरणों के लिए उपयोगी हो सकता है, और/या नियमसेट के कुछ हिस्सों को सीधे अधिक पारंपरिक शब्दकोश-आधारित हमलों में शामिल किया जा सकता है। इस परियोजना में एक PCFG अनुमान जनरेटर भी शामिल है जो प्रायिकता क्रम में पासवर्ड अनुमान उत्पन्न करने के लिए इस नियमसेट का उपयोग करता है। यह मानक शब्दकोश हमलों की तुलना में कहीं अधिक शक्तिशाली है, और परीक्षण में यह साबित हुआ है कि यह औसतन काफी कम अनुमानों के साथ पासवर्ड क्रैक करने में सक्षम है, जितना कि अन्य सार्वजनिक रूप से उपलब्ध तरीके कर सकते हैं। नकारात्मक पक्ष यह है कि प्रायिकता क्रम में अनुमान उत्पन्न करना धीमा है, जिसका अर्थ है कि यह औसतन 50-100k अनुमान प्रति सेकंड बनाता है, जबकि GPU-आधारित एल्गोरिदम तेज़ हैशिंग एल्गोरिदम के खिलाफ प्रति सेकंड लाखों से अरबों (और उससे ऊपर) अनुमान बना सकते हैं। इसलिए, PCFG अनुमानक बड़ी संख्या में नमकीन हैश या अन्य धीमी हैशिंग एल्गोरिदम के खिलाफ सबसे अच्छा उपयोग किया जाता है, जहां एल्गोरिदम की प्रदर्शन लागत अनुमानों की सटीकता से पूरी हो जाती है।

आवश्यकताएँ + स्थापना

  • Python3 इन उपकरणों के लिए एकमात्र कठोर आवश्यकता है
  • प्रशिक्षण के लिए chardet python3 लाइब्रेरी स्थापित करने की अत्यधिक अनुशंसा की जाती है। हालांकि यह आवश्यक नहीं है, यह प्रशिक्षण पासवर्ड की वर्ण एन्कोडिंग स्वतः-पता लगाने का कार्य करती है। इसे स्थापित करने के लिए:
  • स्रोत https://pypi.python.org/pypi/chardet से डाउनलोड करें
  • या इसे pip3 install chardet का उपयोग करके स्थापित करें

त्वरित आरंभ मार्गदर्शिका

प्रशिक्षण

इस रेपो में शामिल डिफ़ॉल्ट नियमसेट RockYou डेटासेट के 1 मिलियन पासवर्ड उपसमुच्चय पर प्रशिक्षण देकर बनाया गया था। RockYou के पूरे 32 मिलियन पासवर्ड सेट पर प्रशिक्षण देकर बेहतर प्रदर्शन प्राप्त किया जा सकता है, लेकिन डाउनलोड आकार को छोटा रखने के लिए इसे शामिल नहीं किया गया। आप बिना किसी नई सूची पर प्रशिक्षण दिए पासवर्ड उत्पन्न करना शुरू करने के लिए डिफ़ॉल्ट नियमसेट का उपयोग कर सकते हैं, लेकिन यह अनुशंसा की जाती है कि आप लक्ष्य पासवर्ड के एक सेट पर प्रशिक्षण दें जो आपके लक्ष्य के करीब हो सकता है। यदि आप अपना स्वयं का नियमसेट बनाते हैं, तो यहां एक त्वरित मार्गदर्शिका है:

  1. प्रशिक्षण के लिए सादे पाठ पासवर्ड का एक सेट पहचानें।
  • इस पासवर्ड सेट में डुप्लिकेट पासवर्ड शामिल होने चाहिए। इस तरह प्रशिक्षक 123456 जैसे सामान्य पासवर्ड को सामान्य के रूप में पहचान सकता है।
  • पासवर्ड सादे पाठ में होने चाहिए, हैश और उपयोगकर्ता नाम जैसी संबद्ध जानकारी को हटा दिया जाना चाहिए। प्रशिक्षण सेट के रूप में कच्ची .pot फ़ाइलों का उपयोग करने का प्रयास न करें, क्योंकि हैश को प्रशिक्षण प्रोग्राम द्वारा पासवर्ड का हिस्सा माना जाएगा।
  • पासवर्ड उसी तरह एन्कोड किए जाने चाहिए जैसे आप पासवर्ड अनुमान उत्पन्न करना चाहते हैं। इसलिए, यदि आप UTF-8 पासवर्ड अनुमान बनाना चाहते हैं, तो प्रशिक्षण सेट भी UTF-8 के रूप में एन्कोड होना चाहिए। लंबी अवधि में, अनुमान उत्पन्न करते समय इसे संशोधित करने की क्षमता विकास योजना पर है, लेकिन वह सुविधा वर्तमान में समर्थित नहीं है।
  • प्रशिक्षण पासवर्ड सूची 100k और 50 मिलियन के बीच होनी चाहिए। प्रशिक्षण पासवर्ड सूची के आकार का अनुमान उत्पादन पर कैसे प्रभाव पड़ता है, इस पर अभी भी परीक्षण किया जा रहा है, और 10k जितनी छोटी पासवर्ड सूचियों के साथ भी अच्छी सफलता मिली है, लेकिन एक आदर्श आकार लगभग 1 मिलियन है, जिसके बाद प्रतिफल कम हो जाता है।
  • इस ट्यूटोरियल के प्रयोजनों के लिए, इनपुट पासवर्ड सूची को INPUT_PASSWORD_LIST कहा जाएगा।
  1. अपने उत्पन्न नियमसेट के लिए एक नाम चुनें। इस ट्यूटोरियल के प्रयोजनों के लिए इसे NEW_RULESET कहा जाएगा।
  2. इनपुट पासवर्ड सूची पर प्रशिक्षक चलाएं
  • python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET
  • सामान्य वैकल्पिक फ़्लैग: a. coverage: आप प्रशिक्षण सेट पर लक्ष्य पासवर्ड से मेल खाने के लिए कितना भरोसा करते हैं। उच्च कवरेज का अर्थ है मार्कोव मॉडलिंग (वर्तमान में OMEN एल्गोरिदम का उपयोग करके) का उपयोग करके कम बुद्धिमान ब्रूट फोर्स जनरेशन का उपयोग करना। यदि आप कवरेज को 1 पर सेट करते हैं, तो कोई ब्रूट फोर्स नहीं किया जाएगा। यदि आप कवरेज को 0 पर सेट करते हैं, तो यह केवल मार्कोव हमलों का उपयोग करके अनुमान उत्पन्न करेगा। यह मान एक फ्लोट है, जिसका डिफ़ॉल्ट 0.6 है जिसका अर्थ है कि यह 60% संभावना की उम्मीद करता है कि लक्ष्य पासवर्ड के आधार शब्द प्रशिक्षण सेट में पाए जा सकते हैं। उदाहरण: python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET -c 0.6 b. --save_sensitive: यदि यह निर्दिष्ट किया गया है, तो प्रशिक्षण के दौरान खोजे गए संवेदनशील डेटा जैसे ईमेल पते और पूर्ण वेबसाइटें नियमसेट में सहेजी जाएंगी। जबकि PCFG अनुमान जनरेटर वर्तमान में इस डेटा का उपयोग नहीं करता है, यह वास्तविक पासवर्ड क्रैकिंग हमले के दौरान बहुत मूल्यवान है। यह डिफ़ॉल्ट रूप से बंद है ताकि इस उपकरण को शैक्षणिक सेटिंग में उपयोग करना आसान हो सके। ध्यान दें, भले ही यह बंद हो, फिर भी नियमसेट के अंदर लगभग निश्चित रूप से PII डेटा सहेजा जाएगा, इसलिए उत्पन्न नियमसेट की उचित रूप से रक्षा करें। उदाहरण: python3 trainer.py -t INPUT_PASSWORD_LIST -r NEW_RULESET --save_sensitive c. --comments: आपके नियमसेट कॉन्फ़िग फ़ाइल में एक टिप्पणी जोड़ता है। यह उपयोगी है ताकि जब आप बाद में इसे देखें तो आपको पता चले कि आपने अपना नियमसेट क्यों और कैसे उत्पन्न किया। आप जिस टिप्पणी को जोड़ना चाहते हैं उसे उद्धरणों में शामिल करें।

अनुमान उत्पादन

यह पहले से प्रशिक्षित PCFG नियमसेट का उपयोग करके stdout पर अनुमान उत्पन्न करता है। इन अनुमानों को फिर किसी भी प्रोग्राम में पाइप किया जा सकता है जिसका आप उपयोग करना चाहते हैं। यदि कोई नियमसेट निर्दिष्ट नहीं किया गया है, तो डिफ़ॉल्ट नियमसेट DEFAULT का उपयोग किया जाएगा। इस मार्गदर्शिका के प्रयोजनों के लिए यह माना जाएगा कि उपयोग किया जा रहा नियमसेट NEW_RULESET है।

  1. ध्यान दें: अनुमान उत्पादन प्रोग्राम नियमसेट नाम निर्दिष्ट करते समय केस-सेंसिटिव है।
  • एक सत्र नाम की आवश्यकता नहीं है (यह डिफ़ॉल्ट रूप से default_run नामक एक सत्र बनाएगा), लेकिन यह रुकी हुई/रोकी गई सत्र को पुनः आरंभ करना आसान बनाता है। ये उदाहरण सत्र नाम SESSION_NAME का उपयोग करेंगे। ध्यान दें, यदि आप एक ही समय में एक ही नाम के साथ कई सत्र चलाते हैं तो कोई अंतर्निहित सत्यापन नहीं है, लेकिन ऐसा करने से बचने की अनुशंसा की जाती है।
  1. एक नया अनुमान सत्र शुरू करने के लिए चलाएं:
  • python3 pcfg_guesser.py -r NEW_RULESET -s SESSION_NAME
  1. पिछले अनुमान सत्र को पुनः आरंभ करने के लिए चलाएं (ध्यान दें: सत्र को पुनर्स्थापित करते समय आपको अभी भी उसी नियमसेट को निर्दिष्ट करना होगा):
  • python3 pcfg_guesser.py -r NEW_RULESET -s SESSION_NAME --load

पासवर्ड शक्ति स्कोरिंग

ऐसे कई मामले हैं जहां आप पहले से प्रशिक्षित नियमसेट द्वारा उत्पन्न होने वाले पासवर्ड की संभावना का अनुमान लगाना चाह सकते हैं। उदाहरण के लिए, यह पासवर्ड शक्ति मीट्रिक का हिस्सा हो सकता है, या अन्य शोध उद्देश्यों के लिए उपयोग किया जा सकता है। इसे करने के लिए एक नमूना प्रोग्राम शामिल किया गया है।

  • INPUT_LIST स्कोर करने के लिए पासवर्ड की सूची का प्रतिनिधित्व करता है। ये पासवर्ड सादे पाठ में होने चाहिए, और नई पंक्तियों द्वारा अलग होने चाहिए, प्रति पंक्ति एक पासवर्ड।
  1. स्कोरिंग सत्र चलाने के लिए: python3 password_scorer -r NEW_RULESET -i INPUT_LIST
  2. डिफ़ॉल्ट रूप से, यह परिणामों को stdout पर आउटपुट करेगा, प्रति पंक्ति प्रत्येक पासवर्ड स्कोर किया गया।
  • पहला मान कच्चा पासवर्ड है
  • दूसरा मान दर्शाएगा कि इनपुट मान को 'password', 'website', 'e-mail address', या 'other' के रूप में स्कोर किया गया था या नहीं। पासवर्ड या अन्य का यह निर्धारण OMEN अनुमान सीमा और PCFG से जुड़ी संभावना के लिए आपके द्वारा निर्धारित सीमाओं पर निर्भर करता है।
  • तीसरा मान नियमसेट के अनुसार पासवर्ड की प्रायिकता है। यदि इसे 0.0 का मान दिया जाता है, तो इसका मतलब है कि पासवर्ड नियमसेट द्वारा उत्पन्न नहीं किया जाएगा, हालांकि यह मार्कोव-आधारित हमले द्वारा उत्पन्न किया जा सकता है।
  • चौथा मान OMEN स्तर है जो पासवर्ड उत्पन्न करेगा। -1 का मान का मतलब है कि पासवर्ड OMEN द्वारा उत्पन्न नहीं किया जाएगा।

Prince-Ling शब्दसूची जनरेटर

नाम: PRINCE Language Idexed N-Grams (Prince-Ling)

अवलोकन: PRINCE शैली के कॉम्बिनेटर हमलों में उपयोग के लिए पहले से प्रशिक्षित PCFG नियमसेट/व्याकरण पर आधारित अनुकूलित शब्दसूची तैयार करता है। इसके पीछे विचार यह था कि चूंकि PCFG प्रशिक्षक पहले से ही प्रशिक्षण सेट के पासवर्ड को अलग-अलग पार्सिंग में तोड़ रहा है, इसलिए उस जानकारी का उपयोग अन्य हमलों के लिए लक्षित शब्दसूची बनाने के लिए किया जा सकता है।

बुनियादी तंत्र: हुड के नीचे, Prince-Ling उपकरण मूल रूप से एक मिनी-PCFG अनुमान जनरेटर है। यह मार्कोव अनुमान उत्पादन को हटा देता है, और सामान्य PCFG हमलों में उपयोग किए जाने वाले आधार संरचनाओं को PRINCE शब्दसूची उत्पन्न करने के लिए अनुकूलित एक काफी कम आधार-संरचना के साथ बदल देता है। यह प्रायिकता क्रम में शब्दकोश शब्दों को उत्पन्न करने की अनुमति देता है, इस बात को ध्यान में रखते हुए कि PRINCE हमले में उन शब्दों के कितने उपयोगी होने की उम्मीद है।

Prince-Ling का उपयोग करना

  1. trainer.py का उपयोग करके एक PCFG नियमसेट प्रशिक्षित करें। ध्यान दें कि आपको PCFG टूलसेट के संस्करण 4.1 या बाद के संस्करण का उपयोग करके नियमसेट बनाना होगा, क्योंकि पुराने संस्करणों ने Prince-Ling द्वारा उपयोग किए जाने वाले सभी डेटा संरचनाओं को नहीं सीखा था।
  2. Prince-Ling चलाएं python3 prince-ling.py -r RULESET_NAME -s SIZE_OF_WORDLIST_TO_CREATE -o OUTPUT_FILENAME
  • --rule: PRINCE शब्दसूची बनाने के लिए PCFG नियमसेट का नाम
  • --size: PRINCE शब्दसूची के लिए बनाए जाने वाले शब्दों की संख्या। ध्यान दें, यदि निर्दिष्ट नहीं किया गया है, तो Prince-Ling सभी संभावित शब्द उत्पन्न करेगा जो case_mangling सक्षम होने पर काफी बड़े हो सकते हैं। (केस मैंगलिंग कुंजी स्थान को बहुत बढ़ा देता है)
  • --output: प्रविष्टियों को लिखने के लिए आउटपुट फ़ाइल नाम। ध्यान दें, यदि निर्दिष्ट नहीं किया गया है, तो Prince-Ling शब्दों को stdout पर आउटपुट करेगा, जो गैर-ASCII वर्णों को प्रिंट करते समय आपके द्वारा उपयोग किए जा रहे शेल के आधार पर समस्या पैदा कर सकता है।
  • --all_lower: PRINCE शब्दकोश के लिए केवल लोअरकेस शब्द उत्पन्न करें। यह तब उपयोगी होता है जब केस-इन्सेंसिटिव हैश पर हमला किया जा रहा हो, या यदि आप किसी भिन्न तरीके से लक्षित केस मैंगलिंग लागू करने की योजना बना रहे हों।

John the Ripper का उपयोग करके पासवर्ड क्रैक करने का उदाहरण

python3 pcfg_guesser -r NEW_RULESET -s SESSION_NAME | ./john --stdin --format=bcrypt PASSWORDS_TO_CRACK.txt

योगदान

यदि आप कोई बग देखते हैं, या यदि आप कोई ऐसी सुविधा चाहते हैं जिसे जोड़ा जाना चाहिए, तो कृपया इस github पेज पर एक मुद्दा खोलें। मैं पुल रिक्वेस्ट भी स्वीकार करता हूं, हालांकि कृपया पुल रिक्वेस्ट को एक मुद्दे से लिंक करें ताकि मैं इसे अधिक आसानी से समीक्षा कर सकूं, प्रश्न पूछ सकूं, और आपके द्वारा किए जा रहे परिवर्तनों को बेहतर ढंग से समझ सकूं।

PCFG का उपयोग करके पासवर्ड निर्माण रणनीतियों को मॉडल करने में बहुत सारे सुधार किए जा सकते हैं। मैं नए विचारों, परिवर्तनों और सुझावों के लिए बहुत खुला हूं। सिर्फ इसलिए कि कोड वर्तमान में किसी निश्चित तरीके से कुछ करता है इसका मतलब यह नहीं है कि यह सबसे अच्छा विकल्प है। उदाहरण के लिए, वर्तमान दृष्टिकोण का मूलभूत आधार_संरचना जहां अल्फा स्ट्रिंग्स, अंक, अन्य आदि के लिए मास्क उत्पन्न किए जाते हैं, इसलिए चुना गया क्योंकि यह "सबसे आसान" विकल्प था। मेरी टीम में बहुत बहस हुई कि एक बेहतर विकल्प एक आधार शब्द से शुरू करना हो सकता है, और फिर PCFG में संक्रमण के रूप में उस पर लागू अधिक पारंपरिक मैंगलिंग नियमों को मॉडल करना। तो इस कोड के साथ स्वतंत्र महसूस करें!

टूल डाउनलोड करें