
सार्वजनिक GetCredentialType API के माध्यम से Entra ID उपयोगकर्ता गणना और प्रमाणीकरण विधि खोज
सार्वजनिक GetCredentialType API का उपयोग करके ईमेल पतों के लिए Microsoft Entra ID प्रमाणीकरण विधियों की गणना करें। यह वही एंडपॉइंट है जिसका उपयोग Microsoft लॉगिन पृष्ठ तब करता है जब आप उपयोगकर्ता नाम दर्ज करते हैं। GetCredentialType विधि का उपयोग करने वाले अधिकांश टूल के विपरीत, CredSpy मौजूदा खातों के लिए समर्थित प्रमाणीकरण विधियों को भी दिखाता है।
सुरक्षा आकलन के लिए उपयोगी: उपयोगकर्ता गणना, पसंदीदा प्रमाणीकरण विधि की खोज, और पासवर्ड, Remote NGC (जैसे Passwordless Push Notification), FIDO2/passkeys, या प्रमाणपत्र प्रमाणीकरण वाले खातों की पहचान।
Python 3.10+ आवश्यक है।
pipx (अनुशंसित):
# Install pipx (skip this if you already have it)
apt install pipx
pipx ensurepath
# From PyPI (recommended)
pipx install credspy
# Or from GitHub
pipx install git+https://github.com/RedByte1337/CredSpy.git
# From a local clone
git clone https://github.com/RedByte1337/CredSpy.git
cd CredSpy
pipx install .
pip:
pip install .
# or run without installing
pip install -r requirements.txt
python credspy.py ...
स्थापना के बाद, कहीं से भी credspy चलाएँ:
credspy -h
# Single email
credspy [email protected]
# File of emails (one per line, # for comments)
credspy emails.txt
# Through a proxy (SSL verification disabled for MITM tools)
credspy emails.txt --proxy http://127.0.0.1:8080
# Export results to CSV
credspy emails.txt --csv results.csv
# Save filtered email lists (combinable)
credspy emails.txt \
--save-existing existing.txt \
--save-ngc ngc.txt \
--save-password-preferred password-preferred.txt
| Flag | Description |
|---|---|
target | ईमेल पता या टेक्स्ट फ़ाइल का पथ |
--proxy URL | सभी ट्रैफ़िक को प्रॉक्सी के माध्यम से रूट करें; SSL सत्यापन अक्षम करता है (Format: http://127.0.0.1:8080) |
--no-color | रंगीन टर्मिनल आउटपुट अक्षम करें |
--csv FILE | परिणाम CSV में लिखें |
--save-existing FILE | मौजूद ईमेल सहेजें |
--save-ngc FILE | RemoteNGC (जैसे passwordless push-notification) समर्थित वाले ईमेल सहेजें |
--save-password-preferred FILE | पसंदीदा विधि के रूप में पासवर्ड वाले मौजूदा ईमेल सहेजें |
--skip-ngc | RemoteNGC जाँच अक्षम करें (जब RemoteNGC पसंदीदा विधि हो तो push notifications से बचता है; यह NGC खोज को भी अक्षम करता है) |
--delay <float> | प्रत्येक खाते के बीच दिए गए सेकंड की संख्या के लिए रुकता है। बड़ी संख्या में खातों की जाँच करते समय throttling से बचने के लिए उपयोग करें |
[!IMPORTANT] दुर्लभ मामले में जब उपयोगकर्ता ने RemoteNGC को अपनी प्राथमिक विधि के रूप में सेट किया है, तो Microsoft गणना के दौरान Authenticator ऐप पर तुरंत RemoteNGC push notification ट्रिगर करेगा। इससे बचने का एकमात्र तरीका
GetCredentialTypeअनुरोध मेंisRemoteNGCSupportedको false पर सेट करना है। इसका परिणाम यह होगा कि प्रतिक्रिया अब यह नहीं लौटाएगी कि RemoteNGC समर्थित है या नहीं। यदि आप कोई भी स्वचालित सूचना भेजने से बचना चाहते हैं और आपको RemoteNGC खोज की आवश्यकता नहीं है, तो--skip-ngcफ़्लैग का उपयोग करें।
यदि कोई आउटपुट फ़ाइल पहले से मौजूद है, तो आपसे अधिलेखन की पुष्टि करने के लिए कहा जाएगा (Y/n)।
प्रत्येक ईमेल की जाँच होते ही परिणाम टर्मिनल पर स्ट्रीम होते हैं:
[email protected] | Preferred: Fido (7) | Supported: Password, RemoteNGC (PushNotification), Fido (Count: 3)
[email protected] | IfExistsResult: NotExist (1)
[email protected] | Preferred: Password (1) | Supported: Password, RemoteNGC (PushNotification)
[email protected] | Preferred: RemoteNGC (2) | Supported: Password, RemoteNGC (PushNotification)
[email protected] | Preferred: Fido (7) | Supported: Password, Fido (Count: 5), Certificate
यदि ईमेल खाता मौजूद है, तो ईमेल पते के बाद पहला कॉलम उपयोगकर्ता के लिए पसंदीदा प्रमाणीकरण विधि दिखाएगा। अंतिम कॉलम अन्य समर्थित प्रमाणीकरण विधियों को सूचीबद्ध करेगा जैसे Password, RemoteNGC, Fido (=PassKeys), और Certificate प्रमाणीकरण।
यह सारी जानकारी phishing हमलों की तैयारी करते समय विचार करने के लिए बहुत उपयोगी है।
Fido प्रमाणीकरण के लिए, Microsoft द्वारा लौटाए गए FidoParams के AllowList में प्रविष्टियों की संख्या दिखाई जाती है। इसका उपयोग यह जानने के संकेतक के रूप में किया जा सकता है कि उपयोगकर्ता ने कितनी Fido प्रमाणीकरण विधियाँ नामांकित की हैं। हालाँकि, ऐसा लगता है कि इसमें हटाई गई Fido कुंजियाँ भी शामिल हैं जो अब खाते से जुड़ी नहीं हैं।
अंत में एक सारांश प्रिंट किया जाता है:
--- Summary ---
Exists: 6/7
Throttled: 0/7
Preferred: Fido 3/6, Password 2/6, ...
Supported: Password 6/6, RemoteNGC 1/6, Fido 3/6, Certificate 2/6
DomainType: Managed 6/6
--- Output files ---
CSV (results.csv): 7 entries
Email, Exists, PreferredType, HasPassword, RemoteNGC, HasFido, HasCertAuth, DomainType
Exists, NotExist, …)PushNotification / ListSessions, अन्यथा True/FalsesCtx) प्राप्त करेंlogin.microsoftonline.com/common/GetCredentialType पर POST करेंकिसी प्रमाणीकरण की आवश्यकता नहीं है। यह लॉगिन UI के समान unauthenticated प्रवाह का उपयोग करता है।
यह टूल केवल अधिकृत सुरक्षा परीक्षण और अनुसंधान के लिए है। इसका उपयोग केवल उन टेनेंट और खातों के विरुद्ध करें जिनके आप स्वामी हैं या जिनका परीक्षण करने के लिए आपके पास स्पष्ट लिखित अनुमति है। लेखक दुरुपयोग के लिए ज़िम्मेदार नहीं हैं।