
glibc DNS स्टब रिज़ॉल्वर में CVE-2015-7547 बफ़र ओवरफ़्लो कमज़ोरी के लिए PoC आक्रमण सर्वर (सार्वजनिक संस्करण)
स्थानीय मशीन पर कमजोर glibc संस्करण के साथ परीक्षण करने के लिए:
user@localhost:/$ echo 'nameserver 127.0.0.127' | sudo tee /etc/resolv.conf
user@localhost:/$ echo 'nameserver 127.0.0.127' | sudo tee -a /etc/resolv.conf
user@localhost:/$ sudo python3 attack-server.py 127.0.0.127
Starting UDP server on 127.0.0.127:53...
Starting TCP server on 127.0.0.127:53...
फिर, दूसरे टर्मिनल सत्र से, नीचे दिए गए उदाहरणों के अनुसार हमलों को निष्पादित करें।
UDP और TCP पर 2048 बाइट्स से अधिक के रिप्लाई भेजने की क्षमता आवश्यक है।
हमला क्रम:
UDP रिप्लाई, 2048 बाइट्स से अधिक, मान्य हेडर/प्रश्न, TC फ़्लैग सेट (बफ़र कुप्रबंधन और TCP पुनर्प्रयास को ट्रिगर करता है)
TCP रिप्लाई, मान्य हेडर/प्रश्न (अगले रिप्लाई को स्टैक-आवंटित बफ़र में संग्रहीत करने के लिए मजबूर करता है)
TCP रिप्लाई, 2048 बाइट्स से अधिक (स्टैक-आवंटित बफ़र को ओवरफ़्लो करता है)
उदाहरण:
user@localhost:/$ curl http://attack1
*** stack smashing detected ***: curl terminated
Segmentation fault (core dumped)
UDP पर 2048 बाइट्स से अधिक के रिप्लाई भेजने की क्षमता आवश्यक है।
हमला क्रम:
UDP रिप्लाई, 2048 बाइट्स से अधिक, अमान्य हेडर (बफ़र कुप्रबंधन को ट्रिगर करता है, मान्य प्रतिक्रिया के रूप में नहीं गिना जाता)
अगले अनुरोध को अनदेखा करें (पोलिंग टाइमआउट के कारण UDP पुनर्प्रयास को ट्रिगर करता है)
UDP रिप्लाई, मान्य हेडर/प्रश्न (अगले रिप्लाई को स्टैक-आवंटित बफ़र में संग्रहीत करने के लिए मजबूर करता है)
UDP रिप्लाई, 2048 बाइट्स से अधिक (स्टैक-आवंटित बफ़र को ओवरफ़्लो करता है)
उदाहरण:
user@localhost:/$ curl http://attack2
*** stack smashing detected ***: curl terminated
Segmentation fault (core dumped)
UDP पर 1024 बाइट्स से अधिक और TCP पर 2048 बाइट्स से अधिक के रिप्लाई भेजने की क्षमता आवश्यक है।
हमला क्रम:
UDP रिप्लाई, 1024 बाइट्स, मान्य हेडर/प्रश्न (स्टैक-आवंटित बफ़र का आधा भाग भरता है)
UDP रिप्लाई, 1024 बाइट्स से अधिक, मान्य हेडर/प्रश्न, TC फ़्लैग सेट (बफ़र कुप्रबंधन और TCP पुनर्प्रयास को ट्रिगर करता है)
TCP रिप्लाई, मान्य हेडर/प्रश्न (अगले रिप्लाई को स्टैक-आवंटित बफ़र में संग्रहीत करने के लिए मजबूर करता है)
TCP रिप्लाई, 2048 बाइट्स से अधिक (स्टैक-आवंटित बफ़र को ओवरफ़्लो करता है)
उदाहरण:
user@localhost:/$ curl http://attack3
*** stack smashing detected ***: curl terminated
Segmentation fault (core dumped)
UDP पर 2048 बाइट्स से अधिक के रिप्लाई भेजने की क्षमता आवश्यक है।
हमला क्रम:
UDP रिप्लाई, 2048 बाइट्स, मान्य हेडर/प्रश्न (स्टैक-आवंटित बफ़र को भरता है)
UDP रिप्लाई (0-बाइट सॉकेट प्राप्ति के कारण बफ़र कुप्रबंधन और UDP पुनर्प्रयास को ट्रिगर करता है)
UDP रिप्लाई, मान्य हेडर/प्रश्न (अगले रिप्लाई को स्टैक-आवंटित बफ़र में संग्रहीत करने के लिए मजबूर करता है)
UDP रिप्लाई, 2048 बाइट्स से अधिक (स्टैक-आवंटित बफ़र को ओवरफ़्लो करता है)
उदाहरण:
user@localhost:/$ curl http://attack4
*** stack smashing detected ***: curl terminated
Segmentation fault (core dumped)
TCP पर 2048 बाइट्स से अधिक के रिप्लाई भेजने की क्षमता और /etc/resolv.conf में कम से कम दो नेमसर्वर प्रविष्टियाँ आवश्यक हैं।
हमला क्रम:
UDP रिप्लाई, मान्य हेडर/प्रश्न, TC फ़्लैग सेट (वैकल्पिक, यदि प्रारंभिक क्वेरी UDP पर है तो TCP पुनर्प्रयास को ट्रिगर करता है)
TCP रिप्लाई, 2048 बाइट्स से अधिक (बफ़र कुप्रबंधन को ट्रिगर करता है)
TCP रिप्लाई, खाली (0-बाइट सॉकेट प्राप्ति के कारण TCP पुनर्प्रयास को ट्रिगर करता है)
TCP रिप्लाई, मान्य हेडर/प्रश्न (अगले रिप्लाई को स्टैक-आवंटित बफ़र में संग्रहीत करने के लिए मजबूर करता है)
TCP रिप्लाई, 2048 बाइट्स से अधिक (स्टैक-आवंटित बफ़र को ओवरफ़्लो करता है)
उदाहरण:
user@localhost:/$ curl http://attack5
*** stack smashing detected ***: curl terminated
Segmentation fault (core dumped)
सर्वर से एक निश्चित आकार की मान्य प्रकार A/AAAA प्रतिक्रिया को ट्रिगर करने के लिए, निम्नलिखित में से किसी एक का अनुरोध भेजें:
अनुरोध UDP या TCP पर जारी किए जा सकते हैं, और प्रतिक्रियाओं में अनुरोधित आकार तक रिप्लाई को पैड करने के लिए उपयुक्त संख्या में मान्य A या AAAA उत्तर होंगे। जब PoC सर्वर को परीक्षण डोमेन के लिए आधिकारिक नाम सर्वर के रूप में स्थापित किया जाता है, तो यह अतिरिक्त आकार के रिप्लाई का सामना करने पर DNS कैश पदानुक्रमों के व्यवहार का पता लगाने की अनुमति देता है।
उदाहरण:
user@localhost:/$ curl http://payload1.somedomain.com