
تعزيز أمان أجهزة أندرويد المحمولة
تقوية أجهزة أندرويد المحمولة مكتوبة بلغة بايثون 3.
إصدار أندرويد، PObY-A (الخصوصية مملوكة لك - أندرويد)، مع فحص البرامج الضارة وإعدادات المسح الضوئي متاح على متجر Play ويمكن العثور على الكود المصدري هنا
تم إنشاء AMDH للمساعدة في أتمتة فحص التطبيقات المثبتة على أجهزة أندرويد، واكتشاف بعض البرامج الضارة المعروفة، وأيضًا لحماية الخصوصية.
$ git clone https://github.com/SecTheTech/AMDH.git; cd AMDH
$ python3 -m venv amdh
$ source amdh/bin/activate
(amdh) $ pip install -r requirement.txt
ملاحظة: بالنسبة لنظام ويندوز، يجب عليك تحديد مسار ADB أو تعديل المتغير "adb_windows_path" في "config/main.py".
تحذير: عند استخدام الوسيطة -l مع تفعيل التطبيق '-t e'، سيتم عرض تطبيقات النظام. إلغاء تثبيت تطبيقات النظام قد يكسر نظام أندرويد الخاص بك. يوصى باستخدام 'disable' بدلاً من 'uninstall' لتطبيقات النظام.
$ python amdh.py -h
usage: amdh.py [-h] [-d DEVICES] [-sS] [-sA] [-H] [-a ADB_PATH] [-t {e,d,3,s}] [-D APKS_DUMP_FOLDER]
[-rar] [-R] [-l] [-P] [-S SNAPSHOT_DIR] [-cS SNAPSHOT_REPORT] [-rS SNAPSHOT_TO_RESTORE] [-o OUTPUT_DIR]
تقوية أجهزة أندرويد المحمولة
وسائط اختيارية:
-h, --help عرض رسالة المساعدة هذه والخروج
-d DEVICES, --devices DEVICES
قائمة بالأجهزة مفصولة بفواصل أو "ALL" لجميع الأجهزة المتصلة
-sS فحص إعدادات النظام
-sA فحص التطبيقات المثبتة
-H تقوية إعدادات النظام /!\ سيتم تعطيل خيارات المطور و ADB /!\
-a ADB_PATH, --adb-path ADB_PATH
المسار إلى ثنائي ADB
-t {e,d,3,s} نوع التطبيقات:
e: التطبيقات المفعلة
d: التطبيقات المعطلة
3: تطبيقات الطرف الثالث
s: تطبيقات النظام
-D APKS_DUMP_FOLDER, --dump-apks APKS_DUMP_FOLDER
تفريغ حزم APK من الجهاز إلى مجلد APKS_DUMP_FOLDER
-rar إزالة مستقبلات الإدارة: إزالة جميع مستقبلات الإدارة إذا لم يكن التطبيق من تطبيقات النظام
خيار فحص التطبيقات "-sA" مطلوب
-R لكل تطبيق، إلغاء جميع الأذونات الخطيرة
خيار فحص التطبيقات "-sA" مطلوب
-l سرد التطبيقات المرقمة لتعطيلها أو إلغاء تثبيتها أو تحليلها
-P سرد عمليات المستخدم الحالية
-S SNAPSHOT_DIR, --snapshot SNAPSHOT_DIR
التقاط لقطة للحالة الحالية للهاتف إلى ملف JSON ونسخ التطبيقات احتياطياً في SNAPSHOT_DIR
-cS SNAPSHOT_REPORT, --cmp-snapshot SNAPSHOT_REPORT
مقارنة SNAPSHOT_REPORT مع حالة الهاتف الحالية
-rS SNAPSHOT_TO_RESTORE, --restore-snapshot SNAPSHOT_TO_RESTORE
استعادة SNAPSHOT_TO_RESTORE
-o OUTPUT_DIR, --output-dir OUTPUT_DIR
مجلد الإخراج للتقارير والسجلات. الافتراضي: out
مقارنة الأذونات الممنوحة مع الأذونات الموصوفة في الملف malware_perms.json. يحتوي الملف على ثلاث عقد:
أذونات البرامج الضارة فقط هي تلك المستخدمة فقط من قبل البرامج الضارة. البرامج الضارة التي تم تحليلها هي من المستودعات:
تم استخدام الأمر "aapt" لتفريغ الأذونات. الجزء الثاني كان تفريغ أذونات التطبيقات المشروعة (حوالي 400 تطبيق). أذونات البرامج الضارة فقط هي الأذونات التي تستخدمها البرامج الضارة ولا تظهر أبدًا في التطبيقات المشروعة التي تم تحليلها.
جميع الأذونات تستخدم من قبل كل من البرامج الضارة والتطبيقات المشروعة. القيم هي النسبة المئوية لمدى استخدام البرامج الضارة لهذه الأذونات مقارنة بالتطبيقات المشروعة.
يمكن أن تساعد اللقطة في مراقبة حالة النظام ونسخ بيانات الهاتف احتياطياً:
المسح الضوئي
(amdh)$ python amdh.py -d SERIAL1,SERIAL2,SERIAL3 -sA -o reports
يتم إنشاء ملفين لكل جهاز في مجلد "reports":
{
"com.package.name": {
"malware": true,
"permissions": {
"all_permissions": [
"com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE",
"com.google.android.c2dm.permission.RECEIVE",
"com.google.android.providers.gsf.permission.READ_GSERVICES",
"android.permission.WRITE_SYNC_SETTINGS",
"android.permission.RECEIVE_BOOT_COMPLETED",
"android.permission.AUTHENTICATE_ACCOUNTS"
],
"dangerous_perms": {
"android.permission.ACCESS_FINE_LOCATION": "يمكن لهذا التطبيق الحصول على موقعك بناءً على GPS أو مصادر موقع الشبكة مثل أبراج الخلايا وشبكات Wi-Fi. يجب تشغيل خدمات الموقع هذه وجعلها متاحة على هاتفك لكي يتمكن التطبيق من استخدامها. قد يؤدي ذلك إلى زيادة استهلاك البطارية.",
"android.permission.READ_EXTERNAL_STORAGE": "يسمح للتطبيق بقراءة محتويات بطاقة SD الخاصة بك.",
"android.permission.ACCESS_COARSE_LOCATION": "يمكن لهذا التطبيق الحصول على موقعك بناءً على مصادر الشبكة مثل أبراج الخلايا وشبكات Wi-Fi. يجب تشغيل خدمات الموقع هذه وجعلها متاحة على هاتفك لكي يتمكن التطبيق من استخدامها.",
"android.permission.CAMERA": "يمكن لهذا التطبيق التقاط الصور وتسجيل مقاطع الفيديو باستخدام الكاميرا في أي وقت.",
"android.permission.WRITE_EXTERNAL_STORAGE": "يسمح للتطبيق بالكتابة على بطاقة SD."
},
"is_device_admin": false,
}
}
}
(amdh)$ python amdh.py -sS
يتم إنشاء تقرير باسم "SERIAL_report_settings.json" في مجلد "out" (مجلد الإخراج الافتراضي).
التقوية
(amdh)$ python amdh.py -sA -R -rar
نفس تقرير مسح التطبيقات مع إضافة هذين المفتاحين:
"is_device_admin_revoked": true,
"revoked_dangerous_pemissions": "succeeded"
المفتاح
is_device_admin_revokedلن يكون في النتيجة إذا لم يكن التطبيق مسؤول جهاز
(amdh)$ python amdh.py -sS -H -o reports
يتم إنشاء تقرير وملف سجل في مجلد "reports".
التحليل الثابت وإلغاء تثبيت/تعطيل تطبيقات متعددة (تفاعلي)
(amdh)$ python amdh.py -l
سرد عمليات المستخدم الحالية قيد التشغيل
(amdh)$ python amdh.py -P -d SERIAL1,SERIAL2
اللقطة
(amdh)$ python amdh.py -S out
[-] INFO: البداية ...
افتح الجهاز SERIAL واضغط على مفتاح ENTER للمتابعة
[-] INFO: انتهى
سيحتوي مجلد "out" على مجلد فرعي "SERIAL_DATE-TIME". حيث DATE-TIME بالتنسيق "YYYY-MM-DD-hh:mm:ss".
مقارنة اللقطات
(amdh)$ python amdh.py -cS out/report.json
[-] INFO: البداية ...
[-] INFO: التطبيقات المثبتة بعد أخذ اللقطة
{}
[-] INFO: التطبيقات الموجودة في اللقطة
{
"com.package.name1": {
"firstInstallTime": "2020-07-06 18:53:07",
"lastUpdateTime": "2020-07-06 18:53:07",
"grantedPermissions": [
"com.google.android.c2dm.permission.RECEIVE",
"android.permission.USE_CREDENTIALS",
"android.permission.MODIFY_AUDIO_SETTINGS",
"com.google.android.providers.gsf.permission.READ_GSERVICES",
"android.permission.MANAGE_ACCOUNTS",
"android.permission.NFC"
],
"deviceAdmin": false,
"apk": "com.package.name1.apk"
},
"com.package.name2": {
"firstInstallTime": "2020-07-10 23:57:53",
"lastUpdateTime": "2020-07-10 23:57:53",
"grantedPermissions": [
"android.permission.DOWNLOAD_WITHOUT_NOTIFICATION",
"com.google.android.c2dm.permission.RECEIVE",
"android.permission.USE_CREDENTIALS",
"android.permission.MODIFY_AUDIO_SETTINGS",
"org.thoughtcrime.securesms.ACCESS_SECRETS",
"android.permission.ACCESS_NOTIFICATION_POLICY",
"android.permission.CHANGE_NETWORK_STATE",
"android.permission.FOREGROUND_SERVICE",
"android.permission.WRITE_SYNC_SETTINGS"
],
"deviceAdmin": false,
"backup": "com.package.name2.ab",
"apk": "com.package.name2.apk"
}
}
[-] INFO: تم إلغاء تثبيتها بعد أخذ اللقطة
{
"com.package.name3": {
"firstInstallTime": "2020-07-18 07:56:44",
"lastUpdateTime": "2020-07-18 07:56:44",
"grantedPermissions": [
"android.permission.INTERNET",
"android.permission.ACCESS_NETWORK_STATE"
],
"deviceAdmin": false,
"backup": "com.package.name3.ab",
"apk": "com.package.name3.apk"
}
}
[-] INFO: الإعدادات التي تغيرت بعد أخذ اللقطة
{
"global": [
"stay_on_while_plugged_in"
],
"secure": [],
"system": []
}
استعادة اللقطة: التطبيقات
(amdh)$ python amdh.py -d SERIAL -rS out/report.json
[-] INFO: البداية ...
افتح الجهاز SERIAL واضغط على مفتاح ENTER للمتابعة
[-] INFO: بدء الاستعادة
[-] INFO: انتهت الاستعادة
[-] INFO: تقرير الاستعادة
{
"apps": {
{
"com.package.name1": {
"install": "success",
"backup": "restored"
},
"com.package.name2": {
"install": "success",
"backup": "NOT FOUND"
},
"com.package.name3": {
"install": "success",
"backup": "restored"
}
}
}
}
(amdh) $ pip install pyinstaller
(amdh) $ pyinstaller --clean amdh.spec
الثنائي الناتج: dist/amdh.
شكرًا لاهتمامك بهذا المشروع! إذا كانت لديك أي أفكار لتحسين هذه الأداة، يرجى إنشاء مشكلة جديدة أو إرسال طلب سحب.