
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 में कम से कम दो nameserver प्रविष्टियों की आवश्यकता है।
अटैक अनुक्रम:
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)