آموزش روت کردن روتر Xiaomi Mi 4A و نصب فرمور OpenWRT

Photo by Misha Feshchak on Unsplashسلام.محصولات شیائومی این روز‌ها در بازار ایران مورد استقبال بسیاری قرار گرفته است. به این دلیل که علاوه بر قیمت مناسب، عموما کیفیت ساخت بالا و عملکرد مناسبی در مقایسه با رقبا دارند.روتر‌های شیائومی یکی از محبوب‌ترین محصولات این کمپانی به حساب میاد که مدل‌های مختلفی هم داره. اما در این مقاله تمرکز ما روی روتر Xiaomi Mi 4A هستش. که خودش در دو مدل معمولی و Gigabit Edition عرضه می‌شه.اول مشخصات فنی این روتر رو ببینیم:SoC: MediaTek MT7621RAM: 128 MBFlash: 16 MB SPI flashEthernet: 3x10/100/1000 Mbps (2xLAN, 1xWAN)WiFi: dual band, 802.11bgn + 802.11acخب، اول از همه چرا روت کردن؟ هسته اصلی نرم‌افزار این روتر لینوکس هستش و برای اینترفیس، از یک نسخه بسیار سنگین LuCI استفاده کرده. اما مشکلی که وجود داره، شیائومی تصمیم گرفته روی این مدل، نصب فرمور‌های غیر رسمی رو خیلی سخت‌تر کنه و همچنین به دلیل نداشتن پورت USB، امکان برقراری ارتباط با هسته روتر کار راحتی نیست. اما خیلی از کاربرانی که در سطح اینترنت کنجکاو بودن، تونستن بالاخره این مشکل رو حل کنند و لازم به ذکر هست که اولین روش نصب فرمور‌ غیر رسمی برای این روتر، نیازمند تغییرات و اتصالات سخت‌افزاری به برد بود.به این شکل که با استفاده از مبدل TTL به USB و سریال پروگرامر CH341 USB SPI و بردن روتر به حالت دیباگ مد، بدون نیاز به روت کردن میشد که فرمور‌ غیر رسمی نصب کرد و عملا پیچیدگی داستان خیلی زیاد بود. اما بالاخره روش نرم‌افزاری این کار به اسم OpenWRTInvasion منتشر شد و به کمک استفاده از یک exploit، امکان دسترسی به روت این روتر فراهم شد و دسترسی کاملی به shell از طریق ssh امکان پذیر بود.قبل از هر چیزی، چرا OpenWRT و ویژگی‌هایی که داره چیه؟یکی از ویژگی‌های برتر فرمور OpenWRT اوپن‌سورس بودن اون هست. همچنین پس از نصب، به شما دسترسی روت میده و می‌تونید هر تغییری که می‌خواید انجام بدید، البته اگر بدونید که دارید چیکار می‌کنید. چون ممکنه روتر Brick بشه.لوگو OpenWRTاز دیگر ویژگ‌های این روتر امکان نصب افزونه‌های کاربردی جذابی هست که براش ارائه شده. مثل OpenVPN، AdBlocker، RRDtool و بسیاری دیگر که متناسب با نیازتون می‌تونید نصب کنید.آموزش روت کردنمواردی که لازم دارید:مطمئن شوید که روتر از طریق کابل WAN، به مودم متصل باشهاین اکسپلویت روی نسخه‌های 2.28.132 و 2.28.62 تست شدهترمینال رو باز کنید و به کمک کد زیر، گیت زیر رو Clone کنید و وارد دایرکتوریش بشید.git clone https://github.com/acecilia/OpenWRTInvasion.gitcd 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: rootPassword: none (just hit enter)دمو از مراحل روت کردن روترآموزش نصب فرمور OpenWRTخب، از اونجایی که SNAPSHOT‌های خود OpenWRT برای این روتر CLI هست و بهتون در واقع فقط دسترسی Command Line میده. که بعدش باید LuCI، که یک GUI هستش رو نصب کنید و پروسه کار بسیار پیچیده میشه، یکی از کاربران فروم OpenWRT یک نسخه از پیش کامپایل شده تهیه کرده که شامل پکیج‌های زیر هم هست:LuCI With Material ThemeSQM QOSAdBlockerDNSCrypt-Proxyخب، این مرحله پیشنهاد میشه اتصالتون به روتر حتما از طریق Lan باشه. مجددا از طریق telnet به روتر وصل بشید و دستور زیر رو وارد کنید و صبر کنید پروسه نصب طی بشه.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 بشید و فرکانسی که مد نظرتون هست رو روشن کنید.پنل ادمین OpenWRTپ.ن:در صورتی که مشکل Drop شدن اتصال WiFi داشتید، داخل تنظیمات پنل ادمین، تیک گزینه "Disable Inactivity Polling" رو بزنید و تیک گزینه Disassociate On Low Acknowledgement" رو بردارید.در صورتی که مشکلی ایجاد شد کامنت بدید امیدوارم بتونم راهنمایی‌تون کنم.