
एक स्क्रिप्ट जो यह देख सकती है कि Office365 में कोई ईमेल पता मान्य है या नहीं (उपयोगकर्ता/ईमेल गणना)। यह कोई लॉगिन प्रयास नहीं करती, बिना किसी थ्रॉटलिंग के काम करती है, और सोशल इंजीनियरिंग मूल्यांकन के लिए यह पता लगाने में अत्यंत उपयोगी है कि कौन से ईमेल मौजूद हैं और कौन से नहीं।
एक स्क्रिप्ट जो देख सकती है कि कोई ईमेल पता Office365 में मान्य है या नहीं। यह कोई लॉगिन प्रयास नहीं करता, अनथ्रॉटल है, और सोशल इंजीनियरिंग आकलन के लिए अविश्वसनीय रूप से उपयोगी है यह पता लगाने के लिए कि कौन से ईमेल मौजूद हैं और कौन से नहीं।
Microsoft "ईमेल गणना" को एक भेद्यता नहीं मानता, इसलिए यह एक "सुविधा" का लाभ उठा रहा है। कुछ अन्य सार्वजनिक Office365 ईमेल सत्यापन स्क्रिप्ट्स हैं, लेकिन वे सभी (जो मैंने देखे हैं) प्रति उपयोगकर्ता खाते में कम से कम 1 लॉगिन प्रयास की आवश्यकता रखते हैं। वह पता लगाने योग्य है और इसे एक हल्के ब्रूटफोर्स प्रयास (कई खातों पर 1 "सामान्य" पासवर्ड) के रूप में पाया जा सकता है।
यह स्क्रिप्ट शून्य लॉगिन प्रयासों के साथ ईमेल सत्यापन की अनुमति देती है और केवल Microsoft के अंतर्निहित Autodiscover API का उपयोग करती है, इसलिए यह ईमेल पते के मालिक व्यक्ति/कंपनी के लिए अदृश्य है। इसके अलावा, यह API कॉल पूरी तरह से अनथ्रॉटल प्रतीत होता है और मैं अपने परीक्षण में 1 मिनट के भीतर 2,000 से अधिक ईमेल पतों को सत्यापित करने में सक्षम था।
स्क्रिप्ट वास्तव में बहुत बुनियादी और उपयोग में आसान है। आप उन ईमेलों की एक फ़ाइल बनाते हैं जिन्हें आप देखना चाहते हैं कि वे मान्य हैं या नहीं और इसे स्क्रिप्ट में एक तर्क के रूप में पास करते हैं। या आप केवल उपयोगकर्ताओं की एक फ़ाइल प्रदान कर सकते हैं और प्रत्येक प्रविष्टि में स्वचालित रूप से एक प्रत्यय जोड़ने के लिए -s तर्क दे सकते हैं:
Usage: UhOh365.py [-h] [-v] [-t THREADS] [-o OUTPUT] file
positional arguments:
file Input file containing one email per line
optional arguments:
-h, --help show this help message and exit
-v, --verbose Display each result as valid/invalid. By default only displays valid
-s, --suffix Add a domain suffix to every input line from file (e.g: contoso.com)
-t THREADS, --threads THREADS
Number of threads to run with. Default is 20
-o OUTPUT, --output OUTPUT
Output file for valid emails only
-n, --nossl Turn off SSL verification. This can increase speed if
needed
-p PROXY, --proxy PROXY
Specify a proxy to run this through (eg: 'http://127.0.0.1:8080')
यह वास्तव में करने के लिए बहुत आसान बात है। यह पता चला है कि /autodiscover/autodiscover.json/v1.0/{EMAIL}?Protocol=Autodiscoverv1 API एंडपॉइंट अलग-अलग स्थिति कोड लौटाता है कि कोई ईमेल o365 में मौजूद है या नहीं। 200 स्थिति कोड का अर्थ है कि यह मौजूद है, 302 का अर्थ है कि यह मौजूद नहीं है।
यदि ईमेल मौजूद है:

यदि ईमेल नहीं मौजूद है:

ध्यान दें कि यह अनुरोध शून्य प्रमाणीकरण या पहचान पैरामीटर लेता है और यह लक्ष्य खाते पर लॉगिन प्रयास का कारण नहीं बनता है।
Chris King
@raikiasec