
MikroTik RouterOS डिनायल ऑफ सर्विस (DoS) भेद्यता
MikroTik RouterOS में एक भेद्यता एक अप्रमाणित दूरस्थ हमलावर को राउटर को रिबूट करने के लिए बाध्य करने की अनुमति देती है। यह IP proto 97 का उपयोग करके RouterOS के IPv6 पते पर 1 बाइट आकार का पैकेट भेजकर किया जाता है। EoIPv6 समर्थन वाले RouterOS के सभी संस्करण इस हमले के प्रति संवेदनशील होने की संभावना है। इस हमले के लिए लक्ष्य प्रणाली में IPv6 सक्षम होना और कम से कम एक टनल इंटरफ़ेस मौजूद होना आवश्यक था।
INPUT को अवरुद्ध करने वाला कोई IPv6 फ़िल्टर नियम नहीं है।EoIPv6 (एथरनेट ओवर IPv6) MikroTik RouterOS का लेयर 2 टनलिंग प्रोटोकॉल है। EoIPv6 प्रोटोकॉल एथरनेट फ्रेम्स को संशोधित EtherIP (IP proto 97) पैकेट्स में एनकैप्सुलेट करता है।
MikroTik का EoIPv6 कार्यान्वयन टनल ID संग्रहीत करने के लिए EtherIP के 12 आरक्षित बिट्स का उपयोग करता है। MikroTik ने EtherIP हेडर के पहले 4 बिट्स और दूसरे 4 बिट्स को भी आपस में बदल दिया है।
टनल ID प्राप्त करने और पैकेट को मान्य करने के लिए, RouterOS proto 97 पर प्राप्त पैकेट्स पर ऊपर वर्णित अनुसार बिट्स को स्वैप करेगा। यह प्रक्रिया तब तक होती रहती है जब तक सिस्टम में टनल इंटरफ़ेस मौजूद रहते हैं (भले ही वे अक्षम हों)। RouterOS इस प्रक्रिया के दौरान पेलोड आकार की जाँच नहीं करता है। इसलिए proto 97 पर एक बाइट का पैकेट इसे तोड़ देगा (क्योंकि टनल ID बनाने के लिए आवश्यक शेष बिट्स गायब हैं)।
RouterOS पर, एक IPv6 जोड़ें:
/ipv6 address add interface=ether1 address=fd00::1/64 advertise=no
और एक टनल (किसी भी प्रकार की):
/interface ipip add remote-address=127.0.0.1
एक्सप्लॉइट चलाएँ (रिपॉजिटरी में exploit.c):
./exploit fd00::1
एक्सप्लॉइट के कुछ सेकंड बाद RouterOS स्वयं रिबूट हो जाएगा। रिबूट के बाद निम्नलिखित लॉग देखे जा सकते हैं:
jan/20/2018 10:28:36 system,error,critical router was rebooted without proper shutdown
RouterOS 6.39.3 (केवल बगफिक्स), 6.41 (वर्तमान) और 6.42rc11 (रिलीज़ कैंडिडेट) का परीक्षण किया गया है, और लेखन के समय ये सभी इस हमले के प्रति संवेदनशील हैं। यह भेद्यता EoIPv6 समर्थन वाले RouterOS के पुराने संस्करणों में भी मौजूद होने की संभावना है।
MikroTik फोरम पर यह थ्रेड देखें।