ویژگی تصویر

آموزش ابزار apk-mitm در لینوکس

  /  لینوکس   /  ابزار apk-mitm در لینوکس
بنر تبلیغاتی الف
لینوکس - linux

 

در این بخش به بررسی ابزار apk-mitm در لینوکس می پردازیم، در دنیای امروز که اپلیکیشن‌های موبایلی به بخش جدایی‌ناپذیر زندگی دیجیتال تبدیل شده‌اند، بررسی امنیت این برنامه‌ها اهمیت روزافزونی یافته است. بسیاری از برنامه‌های اندرویدی از ارتباطات HTTPS برای انتقال داده‌های حساس استفاده می‌کنند، اما برای توسعه‌دهندگان و پژوهشگران امنیت، بررسی محتوای این ارتباطات (حتی در حالت رمزگذاری شده) یک نیاز حیاتی است. این بررسی‌ها کمک می‌کند تا مشکلات امنیتی مانند افشای اطلاعات، پیاده‌سازی ضعیف TLS و دیگر آسیب‌پذیری‌ها شناسایی و رفع شوند.

یکی از موانع اصلی در مسیر تحلیل ارتباطات HTTPS، تکنیکی به نام certificate pinning است. این تکنیک جلوی حملات MITM (مرد میانی) را می‌گیرد اما از طرف دیگر، کار مهندسی معکوس و تست نفوذ را نیز دشوار می‌سازد. در چنین شرایطی ابزار apk-mitm وارد میدان می‌شود؛ ابزاری قدرتمند و متن‌باز که امکان patch کردن اپلیکیشن‌های اندروید برای دور زدن certificate pinning را فراهم می‌سازد و به کاربران اجازه می‌دهد ترافیک شبکه برنامه‌ها را به‌راحتی تجزیه و تحلیل کنند.

در این مقاله، به بررسی جامع ابزار apk-mitm می‌پردازیم: نحوه نصب، عملکرد فنی، استفاده در پروژه‌های امنیتی و نکات کلیدی برای استفاده ایمن و مؤثر از آن.


معرفی ابزار apk-mitm و کاربرد آن

apk-mitm یک ابزار مبتنی بر Node.js است که با همکاری ابزارهایی مانند apktool، uber-apk-signer و Frida عمل می‌کند تا اپلیکیشن‌های اندرویدی را decompile، patch و مجدداً امضا کند. هدف اصلی این ابزار، غیرفعال‌سازی certificate pinning در اپلیکیشن‌ها به‌صورت خودکار است تا ترافیک HTTPS آن‌ها با ابزارهای MITM مانند Burp Suite یا mitmproxy قابل بررسی شود.

کاربردهای اصلی:

  • تست نفوذ و تحلیل امنیت اپلیکیشن‌های اندرویدی
  • بررسی APIهای مخفی یا undocumented
  • تست عملکرد سرور در برابر حملات شبکه‌ای
  • بررسی نشت داده‌های حساس

ویژگی‌های کلیدی:

  • پچ خودکار فایل‌های Smali مرتبط با Pinning
  • سازگاری با اپ‌های ProGuard شده
  • امضای مجدد فایل apk با keystore جدید
  • پشتیبانی از اپلیکیشن‌های Split APK (با تبدیل به APK یکتا)

پیش‌نیازها و نصب apk-mitm در لینوکس

برای استفاده از apk-mitm، ابتدا باید برخی ابزارها و پیش‌نیازها در سیستم لینوکسی شما نصب باشند.

پیش‌نیازها:

  • Node.js نسخه ۱۴ یا بالاتر
  • Java JDK (ترجیحاً نسخه ۱۱ یا بالاتر)
  • ابزار apktool و uber-apk-signer
  • ابزار adb برای تعامل با دستگاه‌های اندرویدی (در صورت نیاز)
  • ابزار bundletool برای استخراج APK از فایل‌های .apks

نصب قدم به قدم:

  1. نصب Node.js و npm:
    sudo apt update
    sudo apt install nodejs npm
    
  2. نصب apk-mitm به‌صورت سراسری:
    npm install -g apk-mitm
    
  3. نصب apktool و uber-apk-signer:
    می‌توانید این ابزارها را از GitHub دریافت و در مسیر PATH قرار دهید یا با استفاده از دستورات زیر:

    sudo apt install apktool
    

    برای uber-apk-signer:

    [wget] https://github.com/patrickfav/uber-apk-signer/releases/latest/download/uber-apk-signer.jar
    

    سپس آن را به‌صورت دستی اجرا کنید یا در مسیر /usr/local/bin کپی نمایید.

  4. بررسی نصب موفق:
    apk-mitm --version
    

    اگر شماره نسخه نمایش داده شود، نصب با موفقیت انجام شده است.


نحوه استفاده از apk-mitm برای حذف Certificate Pinning

۱. استخراج فایل APK:

اگر اپلیکیشن مورد نظر روی دستگاه نصب شده باشد، می‌توانید آن را با دستور adb استخراج کنید:

adb shell pm path com.example.app
adb pull /data/app/com.example.app/base.apk ./original.apk

یا اگر فقط فایل .apks دارید (که معمولاً در Play Store دیده می‌شود)، ابتدا با bundletool فایل APK یکتا بسازید:

java -jar bundletool.jar build-apks \
  --bundle=my_app.aab \
  --output=my_app.apks \
  --ks=my-release-key.jks \
  --ks-pass=pass:password \
  --ks-key-alias=myalias \
  --key-pass=pass:password

و سپس:

java -jar bundletool.jar extract-apks --apks=my_app.apks --output=./output-dir

۲. اجرای apk-mitm:

apk-mitm original.apk

این دستور به‌صورت خودکار مراحل زیر را انجام می‌دهد:

  • decompile کردن apk با apktool
  • شناسایی و حذف مکانیزم‌های certificate pinning
  • recompile فایل به apk جدید
  • امضای مجدد با keystore پیش‌فرض

فایل نهایی در همان مسیر با پسوند -patched.apk ذخیره می‌شود.

۳. نصب فایل patched:

adb install -r original-patched.apk

۴. راه‌اندازی ابزار MITM:

در این مرحله می‌توانید Burp Suite یا mitmproxy را راه‌اندازی کرده و ترافیک اپلیکیشن را بررسی کنید.


مثال عملی با Burp Suite

۱. اجرای Burp و راه‌اندازی Proxy روی پورت 8080
۲. نصب گواهی Burp روی دستگاه اندرویدی
۳. اتصال Wi-Fi دستگاه به پراکسی Burp
۴. اجرای نسخه patched برنامه
۵. بررسی ترافیک HTTPS در Burp (اکنون باید قابل مشاهده باشد)

اگر اپلیکیشن از Pinning در سطح Native (JNI/C++) استفاده کند، apk-mitm ممکن است موفق نباشد. در این موارد باید از ابزارهایی مانند Frida استفاده شود.


نکات امنیتی و قانونی استفاده از apk-mitm

استفاده از ابزارهای مهندسی معکوس مانند apk-mitm باید کاملاً در چهارچوب قانونی و اخلاقی باشد. این ابزار تنها باید برای:

  • تست اپلیکیشن‌هایی که خود مالک آن هستید
  • یا مجوز کتبی از مالک اپلیکیشن دریافت کرده‌اید
    استفاده شود.

تجزیه و تحلیل اپلیکیشن‌های تجاری یا دارای کپی‌رایت بدون اجازه، می‌تواند عواقب حقوقی به دنبال داشته باشد.


ابزار apk-mitm یک راهکار ساده و مؤثر برای پژوهشگران امنیت، توسعه‌دهندگان و تحلیلگران است تا با دور زدن مکانیزم‌های certificate pinning در اپلیکیشن‌های اندرویدی، به تجزیه و تحلیل ترافیک HTTPS بپردازند. این ابزار روند مهندسی معکوس را تسهیل کرده و در کنار ابزارهای دیگری مانند Frida و Burp Suite، بخش مهمی از جعبه ابزار امنیت موبایل را تشکیل می‌دهد.

اگرچه استفاده از این ابزار نیازمند دانش پایه‌ای درباره معماری اندروید، ابزارهای امنیت شبکه و خط فرمان لینوکس است، اما با آموزش مناسب می‌توان آن را به‌عنوان یک ابزار استاندارد در تست امنیت اپلیکیشن‌ها به کار برد.

منابع

آیا این مطلب برای شما مفید بود ؟

خیر
بله
موضوعات شما در انجمن: