
CVE-2017-13156-Janus पुनरुत्पादन
हमलावर Janus भेद्यता (CVE-2017-13156) का उपयोग करके Android सिस्टम की signature scheme V1 हस्ताक्षर प्रणाली को बायपास कर सकते हैं, और हस्ताक्षर को प्रभावित किए बिना एप्लिकेशन कोड को मनमाने ढंग से संशोधित कर सकते हैं। Android की हस्ताक्षर प्रणाली एप्लिकेशन को छेड़छाड़ से बचाने के लिए है। सामान्यतः, यदि एप्लिकेशन संशोधित किया जाता है, तो उसे पुनः हस्ताक्षरित करना आवश्यक होता है; अन्यथा इसे डिवाइस पर इंस्टॉल नहीं किया जा सकता। इंस्टॉलेशन के समय, सिस्टम apk के हस्ताक्षर की जाँच करता है; यदि हस्ताक्षर मौजूद नहीं है या सत्यापन विफल होता है, तो सिस्टम इंस्टॉल करने से इनकार कर देता है। चूँकि हमलावर के पास डेवलपर की निजी कुंजी नहीं होती, वह एप्लिकेशन को पुनः हस्ताक्षरित करने के लिए किसी अन्य निजी कुंजी का उपयोग करता है, जिससे हस्ताक्षर में असंगति उत्पन्न होती है। एप्लिकेशन का हस्ताक्षर सत्यापन, कुछ हद तक यह पता लगा सकता है कि एप्लिकेशन के साथ छेड़छाड़ की गई है या नहीं। लेकिन Janus भेद्यता हमलावर को हस्ताक्षर को प्रभावित किए बिना एप्लिकेशन के साथ छेड़छाड़ करने की अनुमति देती है, जिससे द्वितीयक रूप से विकसित एप्लिकेशन आधिकारिक एप्लिकेशन को ओवरराइड कर सकते हैं और कुछ हद तक खतरा उत्पन्न हो सकता है।
कॉपीराइट लेखक के पास सुरक्षित है। व्यावसायिक पुनर्मुद्रण के लिए कृपया लेखक से अनुमति प्राप्त करें; गैर-व्यावसायिक पुनर्मुद्रण के लिए स्रोत का उल्लेख करें।
प्रभावित दायरा: Android 5.0-8.0
.
|____a.dex 修改的dex
|____target.apk 修改后的apk
|____app
|____janus.py 修改脚本
|____Janus.jar 修改的jar
|____cla.dex 修改的dex
|____README.md
|____a.apk
|____f.apk
|____app-release.apk 原apk
jar:
java -jar Janus.jar Janus [dex_file] [apk_file] [output_file]
java -jar Janus.jar Janus a.dex app-release.apk a.apk
python:
python janus.py [dex_file] [apk_file] [output_file]
> python janus.py a.dex app-release.apk a.apk
प्रयास के चरण:
1.मूल apk उत्पन्न करें
2.baksmail से smali निकालें और वर्ण संशोधित करें
3.smali को पुनः dex में पैक करें
4.poc का उपयोग करके नया apk उत्पन्न करें
5.toast जोड़ें
6.अधिक log लिखें और log की तुलना करें
7.आप पहले मूल java में परिवर्तन कर सकते हैं, फिर एक नया apk संकलित करें, और फिर नए apk के dex को इंजेक्ट करके देखें
8.संशोधित dex में एक विशिष्ट फ़ंक्शन बनाएँ; hook होने का अर्थ है कि यह निष्पादित हो गया है
6.0.1 Xiaomi फ़ोन पर परीक्षण सफल नहीं रहा इंस्टॉल सफल रहा लेकिन कोड निष्पादित नहीं हुआ
6.0.1 Nexus फ़ोन पर परीक्षण सफल नहीं रहा इंस्टॉल सफल रहा लेकिन कोड निष्पादित नहीं हुआ
4.4.3 Sony फ़ोन पर परीक्षण सफल नहीं रहा इंस्टॉल सफल नहीं हुआ
अनुमान है कि फ़ोन पर पैच लगा दिया गया था
दूसरों का पुनरुत्पादन
python poc
java poc
Janus हस्ताक्षर भेद्यता (CVE-2017-13156) का सिद्धांत एवं शोषण विश्लेषण
Antiy मोबाइल सुरक्षा: Janus उच्च-जोखिम भेद्यता का गहन विश्लेषण
Janus भेद्यता विश्लेषण