
IMDSPOOF एक साइबर धोखाधड़ी उपकरण है जो AWS IMDS सेवा का प्रतिरूपण करके HoneyTokens लौटाता है जिन पर अलर्ट किया जा सकता है।
IMDSPOOF एक साइबर धोखा उपकरण है जो AWS IMDS सेवा का नकली रूप बनाता है। हमलावर क्लाउड वातावरण में विशेषाधिकार बढ़ाने या पार्श्व रूप से स्थानांतरित करने के लिए IMDS सेवा एंडपॉइंट से AWS एक्सेस कुंजियाँ प्राप्त कर सकते हैं, जो http://169.254.169.254/latest/meta-data/iam/security-credentials/<user> पर स्थित है। यह उपकरण उस एंडपॉइंट का नकली रूप बनाता है और 169.254.169.254 पर भेजे गए ट्रैफ़िक को एक स्थानीय वेबसर्वर पर रीडायरेक्ट करता है जो नकली डेटा प्रस्तुत करता है। इसका उपयोग उच्च-ट्यूनड डिटेक्शन के लिए नकली IMDS प्रतिक्रिया में हनी AWS टोकन डालकर किया जा सकता है।

यह उपकरण उन AWS इंस्टेंस पर ब्लू टीमों द्वारा उपयोग के लिए है जो नहीं सक्रिय रूप से IMDS (संस्करण 1 या 2) का उपयोग कर रहे हैं। हमलावर के दृष्टिकोण से, उन्हें पता नहीं होता कि जिस EC2 इंस्टेंस में वे हैं, वहाँ IMDS का उपयोग हो रहा है या नहीं। IMDSPOOF का लक्ष्य उस हमलावर को धोखा देना है जो आपके क्लाउड वातावरण में आता है, ताकि वह सोचे कि वह एक वैध IMDS सेवा के साथ बातचीत कर रहा है।
एक बार फिर, यदि आपके EC2 इंस्टेंस पर चल रहे एप्लिकेशन IMDS सेवा का उपयोग कर रहे हैं, तो यह उपकरण समस्याएं पैदा करेगा!
IMDSPOOF को परीक्षण वातावरण में आज़माने के लिए, एक EC2 इंस्टेंस बनाएं और सुनिश्चित करें कि iptables स्थापित है (yum install iptables-services यदि amazon linux का उपयोग कर रहे हैं)
IMDS.go को संकलित करें और चलाएं (Go कोड कैसे संकलित करें)curl http://169.254.169.254/latest/meta-data/iam/security-credentials/ec2-admin चलाएं{
"Code": "Success",
"Message": "The request was successfully processed.",
"LastUpdated": "2023-11-22T03:33:51Z",
"Type": "AWS-HMAC",
"AccessKeyId": "InsertHoneyToken",
"SecretAccessKey": "InsertHoneyToken",
"Token": "HoneyToken",
"Expiration": "2023-11-22T09:33:51Z"
}
iptables -t nat -D OUTPUT -p tcp -d 169.254.169.254 --dport 80 -j DNAT --to-destination 127.0.0.1:54321इसे उपयोगी बनाने के लिए, आपको IMDS.go फ़ाइल के शीर्ष पर चर को अधिक वास्तविक दिखने वाले मानों में बदलना होगा। मैं अत्यधिक अनुशंसा करता हूं कि फ़ाइल में हनी टोकन रखें। आप token चर को वैसे ही छोड़ सकते हैं या इसे एक कस्टम में बदल सकते हैं।
IMDS.go के शीर्ष पर इन चरों को बदलें जो http://169.254.169.254/latest/meta-data/iam/security-credentials/ec2-admin तक पहुंचने पर लौटाया जाएगा।var accessKey string = "InsertHoneyToken"
var secretAccessKey string = "InsertHoneyToken"
var token string = "IQoJb3Jpz2cXpQRkpVX3Uf////////////xMdLZHNjb<snip>"
Thinkst Canary के लोगों के पास एक अद्भुत उपकरण है जो आपको आसानी से AWS क्रेडेंशियल उत्पन्न करने की अनुमति देता है जो उपयोग पर एक अलर्ट उत्पन्न करेगा।

aws_access_key_id = AKIA....
aws_secret_access_key = uZF0y/l5X....
accessKey और secretAccessKey चर को CanaryTokens द्वारा दिए गए aws_access_key_id और aws_secret_access_key मानों से बदलें।



स्टार्टअप पर IMDS स्पूफ चलाना एक systemd सेवा बनाकर और सेवा को सक्षम करके आसानी से किया जा सकता है।
sudo vim /etc/systemd/system/IMDS.service (यदि आप चाहें तो इसे और अधिक गुप्त नाम दे सकते हैं लेकिन निम्नलिखित systemctl कमांड सेवा के IMDS.service नाम होने की उम्मीद करते हैं)IMDS.service फ़ाइल में निम्नलिखित जोड़ें[Unit]
# Change this to something else if you wish
Description=IMDSPOOF
# After dependencies are available
After=multi-user.target
[Service]
# Type of service
Type=simple
# Command to execute the service program
ExecStart=/bin/IMDS
# User to run the service as
User=root
# Restart if the service crashes
Restart=always
# Restart delay in seconds
RestartSec=10
[Install]
# Enable the service at boot
WantedBy=multi-user.target
/bin/ निर्देशिका में है: sudo mv IMDS /bin/sudo systemctl enable IMDSsudo systemctl start IMDSsudo systemctl status IMDS के साथ सब कुछ ठीक से चल रहा है सुनिश्चित करेंहाँ! जिस तरह से IMDSPOOF EC2 इंस्टेंस पर iptables में हेरफेर करता है, इससे कोई फर्क नहीं पड़ता कि ट्रैफ़िक कहाँ से आ रहा है। इसका मतलब है कि EC2 इंस्टेंस पर curl उपयोगिता के माध्यम से काम करने के अलावा, IMDSPOOF तब भी काम करता है जब EC2 इंस्टेंस पर होस्ट की गई वेब एप्लिकेशन के माध्यम से SSRF कमजोरी पाई जाती है। IMDS पेंटेस्टिंग पर AlexanderHose के ब्लॉग से असुरक्षित एप्लिकेशन का उपयोग करके, हम SSRF कमजोरी का शोषण कर सकते हैं जो IMDSPOOF से नकली क्रेडेंशियल भी लौटाएगा

sudo systemctl stop IMDSsudo systemctl disable IMDSiptables -t nat -D OUTPUT -p tcp -d 169.254.169.254 --dport 80 -j DNAT --to-destination 127.0.0.1:54321