
EXTRABACON एक्सप्लॉइट में सुधारों के लिए सार्वजनिक भंडार
EXTRABACON एक्सप्लॉइट में सुधार के लिए सार्वजनिक रिपॉजिटरी, जो Cisco ASA के लिए एक रिमोट कोड एक्जीक्यूशन है, जिसे Equation Group (NSA) ने लिखा था और Shadow Brokers द्वारा लीक किया गया था।
इसमें बेहतर शेलकोड, एक LINA ऑफसेट फाइंडर स्क्रिप्ट, एक Metasploit मॉड्यूल और extrabacon-2.0 शामिल है।
हम निकट भविष्य में अधिकांश 8.x और 9.x संस्करणों के लिए पैच जोड़ रहे हैं, सभी संस्करणों को वास्तविक हार्डवेयर पर परीक्षण करने के बाद।
यह बेहतर शेलकोड का उपयोग कर रहा है, Equation Group संस्करण की तुलना में इसके कम चरण हैं, जो इसे अधिक विश्वसनीय बनाता है। इससे SNMP पेलोड पैकेट ~150 बाइट कम हो जाता है। साथ ही, लीक किए गए संस्करण केवल 8.x का समर्थन करता है, हमने इसे 9.x संस्करणों पर काम करते हुए पाया है।
Lina ऑफसेट फाइंडर स्क्रिप्ट का उपयोग करके, सभी कमजोर x86 संस्करणों का समर्थन करना आसान होना चाहिए। हम ठीक यही करने पर काम कर रहे हैं। नोट: x64 (9.6+?) DEP और ASLR प्रस्तुत करता है। ऑफसेट फाइंडर और जेनेरिक पेलोड काम नहीं करेगा। हालाँकि, इन संस्करणों को आसानी से DoS करना संभव होना चाहिए।
यदि आप चाहते हैं कि हम किसी विशिष्ट संस्करण का समर्थन करें, तो एक issue खोलें। यह लाइन में सबसे आगे आ जाएगा।
8.x
****** ********9.x
******** नया संस्करण समर्थन जो मूल Shadow Brokers लीक का हिस्सा नहीं है
** हम वर्तमान में SNMP स्ट्रिंग्स से सामान्य और NPE संस्करणों के बीच अंतर नहीं कर सकते। हमने NPE ऑफसेट को टिप्पणी के रूप में हटा दिया है, क्योंकि NPE बहुत दुर्लभ है (यह उन जगहों पर निर्यात के लिए है जहाँ एन्क्रिप्शन खराब है), लेकिन भविष्य में, हम इन संस्करणों को शामिल करना चाहेंगे। शायद बूल विकल्प के रूप में?
use auxiliary/admin/cisco/cisco_asa_extrabacon
https://github.com/rapid7/metasploit-framework/pull/7359
हमारा प्रारंभिक पुल रिक्वेस्ट Metasploit मास्टर ब्रांच में मर्ज कर दिया गया। हम अभी भी अधिक ऑफसेट का योगदान देंगे, जो यहाँ पहले उपलब्ध हो सकते हैं, भविष्य के पुल रिक्वेस्ट की विलंबता पर निर्भर करता है।
यदि आप ASA संस्करणों का परीक्षण कर सकते हैं, तो इस प्रोजेक्ट को फोर्क करने और पेलोड जनरेट करने पर विचार करें। हम सामूहिक रूप से पेलोड जनरेट कर सकते हैं, लेकिन हम यह सुनिश्चित करने के लिए परीक्षण करना चाहते हैं कि हर पेलोड साफ़-सुथरा बाहर निकले।
आप lina-offsets.py का उपयोग करके फ़ाइल जनरेट करने के बाद extrabacon-2.0/improved/ फ़ोल्डर में नए पेलोड जोड़ सकते हैं। मॉड्यूल shellcode_verstring.py नाम से होते हैं, जहाँ verstring ASA द्वारा लौटाई गई संस्करण स्ट्रिंग है, जिसमें अवधि . को अंडरस्कोर _ से बदल दिया जाता है।
साथ ही ExtraBacon 2.0 कोड से किसी भी अनावश्यक Python को हटाने वाले पुल रिक्वेस्ट सबमिट करें।
python2 ./lina-offsets.py asa_lina_XXX.elf
एक्सप्लॉइट को ASA के अन्य संस्करणों में पोर्ट करने के लिए आवश्यक ऑफसेट स्वचालित रूप से जनरेट करेगा।
अभी, ASA फर्मवेयर का एक संस्करण लोड करने और उसका परीक्षण करने में हमें एक विशिष्ट संस्करण के लिए ऑफसेट जनरेट करने की तुलना में अधिक समय लगता है।
स्क्रिप्ट केवल FIX_EBP की गणना नहीं करती, जो आमतौर पर 0x48 (72) या 0x58 (88) होता है। ऐसा लगता है कि 8.4(1) और उससे ऊपर के संस्करण 0x48 का उपयोग करते हैं।
आप Lina को इस प्रकार निकाल सकते हैं:
binwalk -e asaXXX-k8.bin
cd _asaXXX-extracted
cpio -idv < rootfs.img
cp asa/bin/lina /tmp/linaXXX