Arvin
Arvin
خواندن ۲ دقیقه·۹ ماه پیش

نظارت شبکه در اندروید با mitmproxy

mitmproxy logo - اوگوی mitmproxy
mitmproxy logo - اوگوی mitmproxy

اغلب در طول توسعه برنامه های کاربردی تلفن همراه، ما به شدت به مصرف API ها متکی هستیم. توانایی بازرسی و ویرایش تماس‌های API در طول توسعه می‌تواند در زمان زیادی صرفه‌جویی کند. با این حال، بر خلاف توسعه وب، در اندروید، ما نمی توانیم از مرورگر شبکه بازرس استفاده کنیم، بنابراین باید به ابزارهای پراکسی تکیه کنیم.

راه اندازی mitmproxy

  • آخرین نسخه را برای پلتفرم خود در [لینک] دانلود کنید.
  • برنامه mitmweb را باز کنید، این پوشه mitmproxy را در زیر فهرست اصلی کاربر شما ایجاد می کند که حاوی فایل های گواهی است.
  • سپس mitmweb را متوقف کنید و یک فایل config.yaml ایجاد کنید و کلید listen_port:8888 را اضافه کنید.

راه اندازی شبیه ساز/دستگاه

  • پوشه mitmproxy را باز کنید و mitmproxy-ca-cert.cer را در شبیه ساز/دستگاه خود کپی کنید. اگر از یک شبیه ساز استفاده می کنید، فقط می توانید آن را بکشید و رها کنید و در پوشه Downloads نمایش داده شود.
  • در شبیه ساز/دستگاه خود، به تنظیمات سیستم بروید و گواهی CA را جستجو کنید، سپس فایل mitmproxy-ca-cert.cer را انتخاب کرده و آن را نصب کنید.
  • اکنون تنظیمات پروکسی را ویرایش کنید. به تنظیمات Wi-Fi بروید و پیکربندی شبکه خود را ویرایش کنید تا از پروکسی دستی، نام میزبان 10.0.2.2 (ماسک IP محلی) و پورت به عنوان 8888 استفاده کنید.

راه اندازی پروژه

  • فایلی به نامnetwork_security_config.xml در مسیر res/xml با محتوای زیر ایجاد کنید. این فایل بیان می کند که ساخت های ما که به عنوان قابل اشکال زدایی علامت گذاری شده اند به گواهی اعتماد دارند.
<?xml version=&quot1.0&quot encoding=&quotutf-8&quot?> <network-security-config> <debug-overrides> <trust-anchors> <certificates src=&quotsystem&quot /> <certificates src=&quotuser&quot /> </trust-anchors> </debug-overrides> </network-security-config>
  • در AndroidManifest.xml، با افزودن ورودی زیر به تگ برنامه، به این فایل پیکربندی ارجاع دهید.
<application android:allowBackup=&quottrue&quot android:dataExtractionRules=&quot@xml/data_extraction_rules&quot android:networkSecurityConfig=&quot@xml/network_security_config&quot <----------- this >

نحوه استفاده

فیلتر کردن

می‌توانیم درخواست‌هایی را که می‌خواهیم ببینیم با وارد کردن عبارت مورد نظر در بالا فیلتر کنیم. این برای محدود کردن نتایجی که می‌خواهیم ببینیم مفید است، یا حتی فقط با استفاده از عباراتی مانند dev. یا .qa، فراخوان‌های API را برای یک محیط خاص نشان می‌دهد.

نفوذ

با وارد کردن عبارت در قسمت Intercept می‌توانیم درخواست‌ها را رهگیری کنیم. در هنگام اشکال زدایی مانند نقاط شکست کار می کند، درخواست را متوقف می کند و اجازه می دهد مقادیر را از URL، بدنه یا درخواست تغییر دهید. این می تواند برای آزمایش موارد لبه یا آزمایش سریع سناریوهایی که داده های مورد نیاز را نداریم مفید باشد.

با فشردن Resume All به مرحله پاسخگویی می‌روید. و در اینجا ما همچنین می توانیم پاسخ به مقادیر خواسته خود را ویرایش کنیم. این همچنین می تواند برای آزمایش موارد لبه یا سناریوهایی که داده های لازم را نداریم مفید باشد. علاوه بر این، ما حتی می‌توانیم یک سناریوی معین را در صورت خراب شدن سرور API آزمایش کنیم، زیرا به سرور ضربه نمی‌زنیم!

این مقاله خلاصه ای از مقاله Monitoring Network on Android with mitmproxy توسط William Alves می باشد.

mitmproxymitmandroidMITM attackssecurity
شاید از این پست‌ها خوشتان بیاید