
एंड्रॉइड ऐप्स के लिए पेनिट्रेशन टेस्टिंग और ऑडिटिंग टूलकिट।
एक जावा उपकरण जो Android ऐप्स को तेज़ी से, अधिक आसानी से और अधिक कुशलता से पेंटेस्ट करने में मदद करता है। AndroTickler जानकारी संग्रह, स्थैतिक और गतिशील जाँचों की कई सुविधाएँ प्रदान करता है जो Android ऐप पेंटेस्टिंग के अधिकांश पहलुओं को कवर करती हैं। यह पेंटेस्टर्स को उनके पेंटेस्ट के दौरान आवश्यक कई सुविधाएँ भी प्रदान करता है। AndroTickler विधि अनुरेखण और हेरफेर प्रदान करने के लिए Frida के साथ एकीकृत भी होता है। इसे पहले Tickler नाम से प्रकाशित किया गया था।
AndroTickler को एक लिनक्स होस्ट और एक रूटेड Android उपकरण की आवश्यकता होती है जो उसके USB पोर्ट से जुड़ा हो। यह उपकरण Android उपकरण पर कुछ भी स्थापित नहीं करता, केवल /sdcard पर एक Tickler निर्देशिका बनाता है। AndroTickler उपकरण पर कमांड चलाने और आगे के विश्लेषण के लिए ऐप के डेटा को होस्ट पर TicklerWorkspace निर्देशिका में कॉपी करने के लिए Android SDK पर निर्भर करता है। TicklerWorkspace AndroTickler की कार्यशील निर्देशिका है और प्रत्येक ऐप की TicklerWorkspace में एक अलग उपनिर्देशिका होती है जिसमें निम्नलिखित शामिल हो सकते हैं (उपयोगकर्ता क्रियाओं पर निर्भर करता है):
libs निर्देशिका और Tickler.conf कॉन्फ़िगरेशन फ़ाइल jar फ़ाइल के समान निर्देशिका में मौजूद हैं। कॉन्फ़िगरेशन फ़ाइल होस्ट पर TicklerDir निर्देशिका और Android उपकरण के /sdcard पर Tickler का स्थान निर्धारित करती है। यदि कॉन्फ़िगरेशन फ़ाइल मौजूद नहीं है या ये 2 निर्देशिकाएँ सेट नहीं हैं, तो डिफ़ॉल्ट मानों का उपयोग किया जाएगा (क्रमशः वर्तमान निर्देशिका पर Tickler_workspace और /sdcard/Tickler)। Tickler_lib निर्देशिका में AndroTickler द्वारा उपयोग की जाने वाली कुछ Java लाइब्रेरीज़ और बाहरी उपकरण जैसे apktool और dex2jar शामिल हैं।
AndroTickler निम्नलिखित उपकरणों पर अत्यधिक निर्भर करता है, इसलिए इसका उपयोग करने से पहले उन्हें आपकी मशीन पर मौजूद होना चाहिए:
कुछ सुविधाओं के लिए अन्य उपकरणों की आवश्यकता होती है, लेकिन AndroTickler उनके बिना भी चल सकता है:
कोड से उपकरण बनाएं
gradle build
AndroTickler.jar को Tickler_lib निर्देशिका और Tickler.conf फ़ाइल के समान निर्देशिका में ले जाएं (स्वचालित रूप से build/libs में बनाई गई)
dex2jar को निष्पादन योग्य बनाएं (libs/notJars//dex2jar-2.1/d2j-dex2jar.sh और libs/notJars//dex2jar-2.1/d2j_invoke.sh)
अपने Android उपकरण को परीक्षण के लिए एप्लिकेशन के साथ कनेक्ट करें
नोट: यदि स्रोत कोड बनाना विफल हो जाता है, तो आप releases टैब से नवीनतम संकलित रिलीज़ डाउनलोड कर सकते हैं।
वर्तमान संस्करण निम्नलिखित करता है:
java -jar AndroTickler.jar -h
उपकरण पर स्थापित ऐप्स की सूची बनाएं:
java -jar AndroTickler.jar -pkgs
उपकरण पर स्थापित एक ऐप (पैकेज) खोजता है, जिसके पैकेज नाम में searchKey शामिल है
java -jar AndroTickler.jar -findPkg <searchKey>
java -jar AndroTickler.jar -pkg <package> [अन्य विकल्प]
कोई भी कमांड जिसमें -pkg विकल्प है (चाहे वह निम्नलिखित विकल्पों में से किसी के साथ उपयोग किया गया हो या नहीं), यदि पहले नहीं किए गए हैं तो निम्नलिखित क्रियाएँ करता है:
java -jar AndroTickler.jar -pkg <package> -info
निम्नलिखित जानकारी लौटाता है:
java -jar AndroTickler.jar -pkg <package> -squeeze [short | <codeLocation> ]
ऐप के डीकंपाइल किए गए Java कोड से निम्नलिखित लाता है:
स्वाभाविक रूप से, इसका आउटपुट आमतौर पर बहुत बड़ा होता है, इसलिए कमांड के आउटपुट को एक फ़ाइल में रीडायरेक्ट करने की अनुशंसा की जाती है
short केवल डेवलपर से संबंधित डीकंपाइल किए गए कोड को स्क्वीज़ करता है। उदाहरण के लिए, यदि किसी ऐप का पैकेज नाम com.notEnaf.myapp है, तो squeeze short केवल com/notEnaf निर्देशिका में कोड को स्क्वीज़ करता है।
केवल codeLocation निर्देशिका में कोड को स्क्वीज़ करता है। अपनी खोज को सीमित करने या उपलब्ध होने पर स्रोत कोड को स्क्वीज़ करने में सहायक।
java -jar AndroTickler.jar -pkg <package> -l [-exp] [-v]
ऐप के सभी घटकों की सूची बनाता है
-exp केवल निर्यात किए गए घटकों को दिखाता है
-v प्रत्येक घटक के लिए अधिक विस्तृत जानकारी देता है:
java -jar AndroTickler.jar -pkg <package> -l [-act | -ser | -rec | -prov ] [-exp] [-v]
java -jar AndroTickler.jar -pkg <package> -db [|e|l|d] [nu]
डिफ़ॉल्ट रूप से, सभी -db कमांड जाँच चलाने से पहले होस्ट पर ऐप के डेटा संग्रहण निर्देशिका को अपडेट करते हैं।
कोई गुण नहीं या e जाँचता है कि ऐप के डेटाबेस एन्क्रिप्टेड हैं या नहीं। यदि -db फ़्लैग के बाद कोई विकल्प नहीं दिया जाता है तो यह डिफ़ॉल्ट क्रिया है। l ऐप के सभी डेटाबेस सूचीबद्ध करता है। एन्क्रिप्टेड डेटाबेस का पता नहीं लग सकता है। d किसी भी अनएन्क्रिप्टेड डेटाबेस का sqlite डंप लेता है। nu noUpdate: होस्ट पर ऐप की डेटा निर्देशिका को अपडेट किए बिना उपरोक्त विकल्पों में से कोई भी चलाता है।
java -jar AndroTickler.jar -pkg <package> -diff [d|detailed]
ऐप के डेटा संग्रहण निर्देशिका को (DataDirOld में) कॉपी करता है, फिर उपयोगकर्ता से वांछित कार्रवाई करने और पूर्ण होने पर Enter दबाने के लिए कहता है। फिर यह डेटा संग्रहण निर्देशिका को फिर से (DataDir में) कॉपी करता है और यह दिखाने के लिए उनके बीच diff चलाता है कि कौन सी फ़ाइलें जोड़ी, हटाई या संशोधित की गईं।
d|detailed सामान्य -diff कमांड के समान काम करता है, यह भी दिखाता है कि टेक्स्ट फ़ाइलों और अनएन्क्रिप्टेड डेटाबेस में वास्तव में क्या बदला।
java -jar AndroTickler.jar -pkg <package> -sc <key> [<customLocation>]
निम्नलिखित स्थानों में key खोजता है:
खोज केस-असंवेदनशील है।
डीकंपाइल किए गए Java कोड के स्थान को कस्टम स्थान से बदलता है।
java -jar AndroTickler.jar -pkg <package> -sd <key>
दिए गए key के लिए ऐप की डेटा संग्रहण निर्देशिका खोजता है