
Blueborne CVE-2017-0781 एंड्रॉइड हीप ओवरफ्लो भेद्यता
यह Armis द्वारा जारी Blueborne श्वेतपत्र में वर्णित CVE-2017-0781 Android हीप ओवरफ्लो भेद्यता का एक कार्यान्वयन है। आगे पढ़ने के लिए: https://www.armis.com/blueborne/
वर्तमान स्थिति में, यह कोड केवल अतिप्रवाह और ब्लूटूथ सेवा को क्रैश करने की क्षमता प्रदर्शित करता है। फिर से, यह पूरी तरह से विकसित रिमोट कोड निष्पादन नहीं है, लेकिन हो सकता है।
pwntools प्राप्त करें।
apt-get update
apt-get install python2.7 python-pip python-dev git libssl-dev libffi-dev build-essential
pip install --upgrade pip
pip install --upgrade pwntools
pybluez प्राप्त करें।
apt-get install bluetooth libbluetooth-dev
pip install pybluez==0.22
मैंने इसके लिए hciconfig और btmgmt उपकरणों का उपयोग किया है, ये दोनों bluez पैकेज में शामिल हैं। यदि आपका ब्लूटूथ मॉड्यूल लॉक हो जाता है, तो rfkill मदद कर सकता है।
btmgmt चलाएँ।
info कमांड आपके उपकरणों के सूचकांक दिखाएगा।
select 0 दर्ज करने से पहला ब्लूटूथ नियंत्रक सक्रिय हो जाएगा। इसके लिए एक शॉर्टकट btmgmt --index 0 के साथ उपकरण लॉन्च करना है।
सुनिश्चित करें कि आप find कमांड से उपकरणों की खोज कर सकते हैं। आपके Android की स्क्रीन चालू होनी चाहिए और ब्लूटूथ सेटिंग्स दृश्य खुला होना चाहिए ताकि वह खोजने योग्य हो। ध्यान दें कि खोजने योग्यता इस भेद्यता का शोषण करने के लिए एक पूर्वापेक्षा नहीं है, जैसा कि Armis द्वारा जारी श्वेतपत्र में विस्तृत है।
शोषण को मैन्युअल पेयरिंग के बिना काम करने के लिए, आपको btmgmt टूल में io-cap 0x03 के साथ अपने होस्ट की IO क्षमताओं को सेट करना होगा।
इसे सेट करने के बाद, python CVE-2017-0781.py TARGET=XX:XX:XX:XX:XX:XX के साथ कोड चलाएँ और आपके Android उपकरण की ब्लूटूथ सेवा क्रैश हो जानी चाहिए। इसमें कुछ प्रयास लग सकते हैं। वर्तमान में कोड प्रक्रिया को क्रैश करने के लिए पर्याप्त मेमोरी को दूषित करने के लिए इनमें से 30 अमान्य पैकेट भेजता है।
हैप्पी हैकिंग ;)
सुनिश्चित करें कि आप hciconfig कमांड के साथ होस्ट पर अपना ब्लूटूथ उपकरण देखते हैं।
user-pc user # hciconfig
hci0: Type: BR/EDR Bus: USB
BD Address: XX:XX:XX:XX:XX:XX ACL MTU: 310:10 SCO MTU: 64:8
DOWN
RX bytes:580 acl:0 sco:0 events:31 errors:0
TX bytes:368 acl:0 sco:0 commands:30 errors:0
यदि यह UP नहीं बल्कि DOWN है जैसा कि यहां दिखाया गया है, तो इसे hciconfig <intf> up से ठीक करें।
user-pc user # hciconfig hci0 up
Can't init device hci0: Operation not possible due to RF-kill (132)
यदि आपको rf-kill के बारे में संदेश मिलते हैं, तो rfkill list कमांड आज़माएँ।
user-pc user # rfkill list
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
2: asus-wlan: Wireless LAN
Soft blocked: no
Hard blocked: no
3: asus-bluetooth: Bluetooth
Soft blocked: no
Hard blocked: no
4: hci0: Bluetooth
Soft blocked: yes
Hard blocked: no
rfkill unblock <id> के साथ अनब्लॉक किया जा सकता है।
यदि आप देखते हैं कि होस्ट पर IO क्षमताओं को सेट करने के बाद भी आपका उपकरण पेयरिंग कोड मांगता है, तो यह विधि संभवतः आपके उपकरण पर वर्तमान में संभव नहीं है।