به علت استفاده بسیار زیاد از پلت فرم های موبایلی، امروزه افراد زیادی در حوزه تست نفوذ سیستم عامل های موبایلی فعال هستند. یکی از محبوب ترین سیستم عامل ها، اندروید می باشد که گستردگی بسیاری زیادی در سراسر دنیا دارد.
دانشجویانی که در این حوزه اقدام به مطالعه می کنند، یکی از نیازهایشان داشتن محیط آزمایشگاهی به منظور انجام تست نفوذ است. در این مقاله در مورد چگونگی پیکربندی آزمایشگاه تست نفوذ برای برنامه اندرویدی صحبت خواهیم کرد.
به چه چیزهایی نیاز داریم؟
- نرم افزار مجازی سازی VirtualBox (هم رایگان است و هم سبک)
- فایل ISO توزیع Santoku (یک توزیع برای تست نفوذ موبایل)
- نرم افزار Genymotion (شبیه ساز اندروید)
- JADX (دیکامپایلر جاوا)
- IDA Pro
- Frida
مرحله اول : نصب Santoku
فرض ما بر این است که شما نحوه نصب نرم افزار مجازی ساز VirtualBox را می دانید و آن را نصب و آماده کرده اید، بنابراین ما از نصب توزیع Santoku شروع می کنیم. Santoku یک توزیع از لینوکس است که به ویژه برای تست نفوذ پلت فرم های تلفن همراه طراحی و ارائه شده است. می توانید فایل ISO را از لینک زیر دریافت کنید :
https://santoku-linux.com/download/
پس از پیکربندی تنظیمات دستگاه مجازی (دیسک، حافظه، CPU)، این صفحه را مشاهده خواهید کرد، مانند شکل ۱ گزینه “install – start the installer directly” را انتخاب کنید.
تمام تنظیمات (لایه دیسک، محل، زبان و غیره) دستگاه مجازی را پیکربندی کنید و گزینه “Install Now” را فشار دهید، این فرآیند نصب را راه اندازی می کند. پس از اتمام این کار و راه اندازی مجدد سیستم، توزیع santoku کاملاً در دسترس است و می توایند از آن استفاده کنید. حال با نصب شبیه ساز روند پیکربندی آزمایشگاه را ادامه می دهیم :
مرحله دوم : نصب Genymotion
شبیه سازهای بسیاری برای اندروید وجود دارد اما بهترین آنها Genymotion است زیرا تنظیم آن ساده است و یک UX عالی ارائه می دهد. می توانید نسخه رایگان ۳۰ روزه آن را از لینک زیر دریافت کنید، فقط برای به دست آوردن نسخه رایگان روند ثبت نام را تکمیل کنید:
https://www.genymotion.com/desktop/
پس از دریافت لینک فعال سازی و بارگیری برنامه نصبی، می توانید مراحل نصب را شروع کنید. شما نیاز به نصب نرم افزار و ورود به مدارک معتبر ارائه شده در پورتال وب دارید ، سپس داشبورد اصلی Genymotion را مانند شکل ۴ خواهید داشت.
می توانید نسخه ای از SDK را با دستگاه های مربوطه انتخاب کنید. برای این مثال ۲۳ را با دستگاه S7 Galaxy انتخاب می کنیم. شما باید روی دستگاه انتخاب شده راست کلیک کرده و “Install” را فشار دهید، این فرآیند بارگیری مانند شکل ۵ را نشان می دهد.
پس از اتمام مراحل بارگیری می توانید دستگاه های مجازی را راه اندازی کنید، Genymotion از Virtualbox برای پشتیبانی از روند شبیه سازی استفاده می کند، بنابراین هر دستگاه مانند یک ماشین مجازی ظاهر می شود. یک قدم مهم نصب “Open GApps” است، این نرم افزار ابزارهایی را برای بسته بندی Google Apps فراهم می کند. در گوشه سمت راست می توانید دکمه Open GAPPS را مشاهده کنید، روی آن کلیک کنید، این کار فرایند نصب GApps Open را آغاز می کند. پس از اتمام نصب، راه اندازی مجدد مورد نیاز است.
مرحله سوم : نصب JADX
JADX به شما امکان می دهد فایل dex. را تجزیه کنید، می توانید با کل APK کار کنید و همچنین AndroidManifest.xml را بخوانید. ابزار دیگری وجود دارد که بطور جداگانه کارهای مشابه JD-GUI ،APKtool ، j2-dex2jar را انجام می دهد، اما با JADX این کارها را با یک ابزار انجام خواهید داد. مطمئناً برای آزمایش تست نفوذ به یک ابزار متکی نیستید اما وقتی زمان آن فرا رسید، این یک روش مفید برای انجام سریع کارها است. JADX را می توانید از لینک زیر دریافت کنید :
https://github.com/skylot/jadx
مراحل نصب بسیار آسان است فقط موارد زیر را در ترمینال انجام دهید :
git clone https://github.com/skylot/jadx.git
cd jadx
/.gradlew dist
برای ساخت JADX به Java 8 احتیاج دارید.
ساختار پوشه را که در شکل ۸ نشان داده شده است ایجاد می کند.
./jadx-gui را اجرا کرده و پرونده APK را انتخاب کنید. شما آماده هستید تا با JADX کار را شروع کرده و کد منبع برنامه را مشاهده کنید.
مرحله چهارم : نصب IDA Pro
می توانید IDA را از لینک زیر دانلود کنید :
https://www.hex-rays.com/products/ida/support/down…
می توانید نسخه رایگان آن را دریافت کنید یا هزینه نسخه Pro را پرداخت کنید. اگر شما زبان Assembly را می دانید، نسخه رایگان کفایت می کند. نسخه Pro دارای افزونه hex-rays می باشد که به شما امکان می دهد کد را با فرمت c مشاهده کنید.
پرونده ./ida64 را در محل مورد علاقه خود از حالت فشرده خارج کرده و آن را اجرا کنید.
پرونده .so یا APK را با نسخه PRO انتخاب کنید، بعد از آن صفحه ای مانند شکل ۱۱ ظاهر می شود.
مرحله پنجم : نصب Frida
ابزار Frida به شما امکان می دهد تا از Javascript / Python برای اتصال تلفن های محلی یا جاوا در برنامه های Android استفاده کنید.
مراحل نصب آن به شرح زیر است :
• نصب ابزار Frida با استفاده از pip
Pip install Frida-tools
• دریافت Frida-server از لینک : https://github.com/frida/frida/releases
• نصب Frida-server از طریق دستورات زیر :
adb devices
# push/copy the latest frida server to phone
adb push frida-server-10.4.0-android-arm /data/local/tmp/Frida
# set permissions for frida, grant SU permissions if prompted
adb shell su -c “chmod 755 /data/local/tmp/frida”
# start frida server on android device
adb shell su -c “./data/local/tmp/frida &”
می توانید Frida را از طریق ترمینال پایتون تست کنید :
Python 2.7.15rc1 (default, Nov 12 2018, 14:31:15)
[GCC 7.3.0] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.
>>> import frida # import frida tools
>>> frida.get_usb_device() # enum avaiable devices
Device(id=”۱۹۲٫۱۶۸٫۵۶٫۱۰۱:۵۵۵۵”, name=”Genymotion Samsung Galaxy S7″, type=’usb’)
>>>
در پایان باید ذکر کنیم که راه های زیادی برای راه اندازی آزمایشگاه تست نفوذ اندروید وجود دارد که در آینده آنها را نیز ذکر خواهیم کرد، اما این روش بهترین و آسان ترین روش می باشد.