سلام.
محصولات شیائومی این روزها در بازار ایران مورد استقبال بسیاری قرار گرفته است. به این دلیل که علاوه بر قیمت مناسب، عموما کیفیت ساخت بالا و عملکرد مناسبی در مقایسه با رقبا دارند.
روترهای شیائومی یکی از محبوبترین محصولات این کمپانی به حساب میاد که مدلهای مختلفی هم داره. اما در این مقاله تمرکز ما روی روتر Xiaomi Mi 4A هستش. که خودش در دو مدل معمولی و Gigabit Edition عرضه میشه.
اول مشخصات فنی این روتر رو ببینیم:
خب، اول از همه چرا روت کردن؟ هسته اصلی نرمافزار این روتر لینوکس هستش و برای اینترفیس، از یک نسخه بسیار سنگین LuCI استفاده کرده. اما مشکلی که وجود داره، شیائومی تصمیم گرفته روی این مدل، نصب فرمورهای غیر رسمی رو خیلی سختتر کنه و همچنین به دلیل نداشتن پورت USB، امکان برقراری ارتباط با هسته روتر کار راحتی نیست. اما خیلی از کاربرانی که در سطح اینترنت کنجکاو بودن، تونستن بالاخره این مشکل رو حل کنند و لازم به ذکر هست که اولین روش نصب فرمور غیر رسمی برای این روتر، نیازمند تغییرات و اتصالات سختافزاری به برد بود.
به این شکل که با استفاده از مبدل TTL به USB و سریال پروگرامر CH341 USB SPI و بردن روتر به حالت دیباگ مد، بدون نیاز به روت کردن میشد که فرمور غیر رسمی نصب کرد و عملا پیچیدگی داستان خیلی زیاد بود. اما بالاخره روش نرمافزاری این کار به اسم OpenWRTInvasion منتشر شد و به کمک استفاده از یک exploit، امکان دسترسی به روت این روتر فراهم شد و دسترسی کاملی به shell از طریق ssh امکان پذیر بود.
قبل از هر چیزی، چرا OpenWRT و ویژگیهایی که داره چیه؟
یکی از ویژگیهای برتر فرمور OpenWRT اوپنسورس بودن اون هست. همچنین پس از نصب، به شما دسترسی روت میده و میتونید هر تغییری که میخواید انجام بدید، البته اگر بدونید که دارید چیکار میکنید. چون ممکنه روتر Brick بشه.
از دیگر ویژگهای این روتر امکان نصب افزونههای کاربردی جذابی هست که براش ارائه شده. مثل OpenVPN، AdBlocker، RRDtool و بسیاری دیگر که متناسب با نیازتون میتونید نصب کنید.
آموزش روت کردن
مواردی که لازم دارید:
git clone https://github.com/acecilia/OpenWRTInvasion.git
cd OpenWRTInvasion-master
۳. پایتون ۳ رو روی سیستمتون نصب کنید و سپس کد زیر رو بزنید که نیازمندیهای پروژه نصب شه:
pip3 install -r requirements.txt # Install requirements
۴. پس از اتمام مراحل بالا، وقتش رسیده که اکسپلویت کردن رو شروع کنیم. کد زیر وارد کنید:
python3 remote_command_execution_vulnerability.py # Run the script
پ.ن: سعی کنید اتصالتون به روتر از طریق کابل لن باشه، WiFi هم در هر صورت مشکلی نداره.
پس از اجرای دستور بالا، چند متغیر از شما پرسیده میشه، Router ip address و stok.
اولی IP اصلی روتر که باهاش وارد پنل ادمین میشید رو وارد کنید، stok هم، پنل ادمین رو باز کنید، از آدرسبار، اگر URL رو ببینید به صورت یک Query نوشته شده که همونو باید کپی و پیست کنید.
۵. تمام! حالا از طریق telnet و ssh میتونید به IP اصلی روتر وصل بشید. همچنین این اسکریپت یک سرور FTP هم روی پورت ۲۱ باز میکنه که میتونید به فایلهای روتر دسترسی داشته باشید.
User: root
Password: none (just hit enter)
آموزش نصب فرمور OpenWRT
خب، از اونجایی که SNAPSHOTهای خود OpenWRT برای این روتر CLI هست و بهتون در واقع فقط دسترسی Command Line میده. که بعدش باید LuCI، که یک GUI هستش رو نصب کنید و پروسه کار بسیار پیچیده میشه، یکی از کاربران فروم OpenWRT یک نسخه از پیش کامپایل شده تهیه کرده که شامل پکیجهای زیر هم هست:
LuCI With Material Theme
SQM QOS
AdBlocker
DNSCrypt-Proxy
cd /tmp curl http://radek.piastlan.net/openwrt/openwrt-ramips-mt7621-xiaomi_mir3g-v2-squashfs-sysupgrade.bin --output firmware.bin # Put here the URL you want to use to download the firmware ./busybox sha256sum firmware.bin # Verify the firmware checksum before flashing, very important to avoid bricking your device! mtd -e OS1 -r write firmware.bin OS1 # Install OpenWrt
۲. روتر ریبوت میشه و اگر به مشکلی بر نخوردید، باید از طریق آدرس 192.168.1.1 و یوزر root بتونید به پنل دسترسی داشته باشید و اینترنتتون هم متصل باشه. در صورت غیر فعال بودن WiFi، وارد تنظیمات Wireless بشید و فرکانسی که مد نظرتون هست رو روشن کنید.
پ.ن:
در صورتی که مشکل Drop شدن اتصال WiFi داشتید، داخل تنظیمات پنل ادمین، تیک گزینه "Disable Inactivity Polling" رو بزنید و تیک گزینه Disassociate On Low Acknowledgement" رو بردارید.
در صورتی که مشکلی ایجاد شد کامنت بدید امیدوارم بتونم راهنماییتون کنم.