diff --git a/connect.py b/connect.py index eecb6c4..042d256 100644 --- a/connect.py +++ b/connect.py @@ -50,6 +50,12 @@ if gw.model_id > 0 and gw.model_id < gw.get_modelid_by_name('R2100'): # import connect4 # sys.exit(0) +# Route BE3600 variants (RD15, RD16, RN06) to connect6 +if dn in ['RD15', 'RD16', 'RN06']: + inited_gw = create_gateway(timeout = 4, die_if_sshOk = True, die_if_ftpOk = True, web_login = True, try_telnet = True) + import connect6 + sys.exit(0) + if True: # init gw and check ssh gw = create_gateway(timeout = 4, die_if_sshOk = True, die_if_ftpOk = True, web_login = True, try_telnet = True) @@ -83,36 +89,8 @@ if True: except Exception: raise - # Show firmware downgrade suggestion if all exploits failed - if not exploit_worked and gw.device_name in ['RD15', 'RN06']: # BE3600 variants - current_lang = lang_config.get_language() or 'en' - - print() - print("=" * 60) - print(i18n.get_translation(current_lang, 'messages', 'firmware_downgrade_title')) - print() - print(i18n.get_translation(current_lang, 'messages', 'firmware_downgrade_be3600')) - print() - - # Show current firmware version if available - if gw.rom_version: - if current_lang == 'zh': - print(f"当前固件版本: {gw.rom_version}") - print("建议降级到: 1.0.68 或更旧版本") - elif current_lang == 'ru': - print(f"Текущая версия прошивки: {gw.rom_version}") - print("Рекомендуемое понижение до: 1.0.68 или старше") - else: - print(f"Current firmware version: {gw.rom_version}") - print("Recommended downgrade to: 1.0.68 or older") - print() - - print(i18n.get_translation(current_lang, 'messages', 'firmware_downgrade_tutorial')) - print() - print(i18n.get_translation(current_lang, 'messages', 'firmware_downgrade_tool')) - print("=" * 60) - print() - elif not exploit_worked: + # Show general exploit failure message if all exploits failed + if not exploit_worked: current_lang = lang_config.get_language() or 'en' print() diff --git a/connect6.py b/connect6.py index 5bc37c7..0352f2d 100644 --- a/connect6.py +++ b/connect6.py @@ -8,6 +8,8 @@ import requests import xmir_base from gateway import * +import i18n +import lang_config web_password = True if len(sys.argv) > 1 and sys.argv[0].endswith('connect6.py'): @@ -81,6 +83,61 @@ for idx, exp_func in enumerate(exp_list): gw.set_diag_iperf_test_thr(20) if not exec_cmd: + current_lang = lang_config.get_language() or 'en' + + # Show device-specific firmware downgrade suggestions + if gw.device_name in ['RD15', 'RN06']: # BE3600 2.5G variants + print() + print("=" * 60) + print(i18n.get_translation(current_lang, 'messages', 'firmware_downgrade_title')) + print() + print(i18n.get_translation(current_lang, 'messages', 'firmware_downgrade_rd15')) + print() + + if gw.rom_version: + if current_lang == 'zh': + print(f"当前固件版本: {gw.rom_version}") + print("建议降级到: v1.0.65 或更旧版本") + elif current_lang == 'ru': + print(f"Текущая версия прошивки: {gw.rom_version}") + print("Рекомендуемое понижение до: v1.0.65 или старше") + else: + print(f"Current firmware version: {gw.rom_version}") + print("Recommended downgrade to: v1.0.65 or older") + print() + + print(i18n.get_translation(current_lang, 'messages', 'firmware_downgrade_tutorial')) + print() + print(i18n.get_translation(current_lang, 'messages', 'firmware_downgrade_tool')) + print("=" * 60) + print() + + elif gw.device_name == 'RD16': # BE3600 1G variant + print() + print("=" * 60) + print(i18n.get_translation(current_lang, 'messages', 'firmware_downgrade_title')) + print() + print(i18n.get_translation(current_lang, 'messages', 'firmware_downgrade_rd16')) + print() + + if gw.rom_version: + if current_lang == 'zh': + print(f"当前固件版本: {gw.rom_version}") + print("建议降级到: v1.0.34 或更旧版本") + elif current_lang == 'ru': + print(f"Текущая версия прошивки: {gw.rom_version}") + print("Рекомендуемое понижение до: v1.0.34 или старше") + else: + print(f"Current firmware version: {gw.rom_version}") + print("Recommended downgrade to: v1.0.34 or older") + print() + + print(i18n.get_translation(current_lang, 'messages', 'firmware_downgrade_tutorial')) + print() + print(i18n.get_translation(current_lang, 'messages', 'firmware_downgrade_tool')) + print("=" * 60) + print() + raise ExploitNotWorked('Exploits "arn_switch/start_binding/set_mac_filter" not working!!!') if exec_cmd == exploit_1: diff --git a/i18n.py b/i18n.py index 8566053..79d2621 100644 --- a/i18n.py +++ b/i18n.py @@ -44,6 +44,8 @@ TRANSLATIONS = { 'messages': { 'firmware_downgrade_title': 'FIRMWARE DOWNGRADE SUGGESTION:', 'firmware_downgrade_be3600': 'If exploits are not working on your BE3600 router, please\ndowngrade to firmware version 1.0.68 or older.', + 'firmware_downgrade_rd15': 'RD15 (BE3600 2.5G) latest firmware v1.0.68 has fixed the vulnerability.\nPlease downgrade to v1.0.65 or older.', + 'firmware_downgrade_rd16': 'RD16 (BE3600 1G) latest firmware v1.0.40 has fixed the vulnerability.\nPlease downgrade to v1.0.34 or older.', 'firmware_downgrade_tutorial': 'Firmware downgrade tutorial:\nhttps://github.com/uyez/lyq/releases/tag/be3600', 'firmware_downgrade_tool': 'You can use the Xiaomi Router Repair Tool for downgrade.', 'exploit_failed_title': 'EXPLOIT FAILED:', @@ -90,6 +92,8 @@ TRANSLATIONS = { 'messages': { 'firmware_downgrade_title': '固件降级建议:', 'firmware_downgrade_be3600': '如果漏洞利用在您的BE3600路由器上不工作,请\n降级到固件版本1.0.68或更旧版本。', + 'firmware_downgrade_rd15': 'RD15(BE3600 2.5G版本)最新固件v1.0.68已修复漏洞。\n请降级到v1.0.65或更旧版本。', + 'firmware_downgrade_rd16': 'RD16(BE3600 1G版本)最新固件v1.0.40已修复漏洞。\n请降级到v1.0.34或更旧版本。', 'firmware_downgrade_tutorial': '固件降级教程:\nhttps://github.com/uyez/lyq/releases/tag/be3600', 'firmware_downgrade_tool': '您可以使用小米路由器修复工具进行降级。', 'exploit_failed_title': '漏洞利用失败:', @@ -136,6 +140,8 @@ TRANSLATIONS = { 'messages': { 'firmware_downgrade_title': 'ПРЕДЛОЖЕНИЕ ПОНИЖЕНИЯ ВЕРСИИ ПРОШИВКИ:', 'firmware_downgrade_be3600': 'Если эксплойты не работают на вашем роутере BE3600, пожалуйста\nпонизьте версию прошивки до 1.0.68 или старше.', + 'firmware_downgrade_rd15': 'RD15 (BE3600 2.5G) последняя прошивка v1.0.68 исправила уязвимость.\nПожалуйста, понизьте до v1.0.65 или старше.', + 'firmware_downgrade_rd16': 'RD16 (BE3600 1G) последняя прошивка v1.0.40 исправила уязвимость.\nПожалуйста, понизьте до v1.0.34 или старше.', 'firmware_downgrade_tutorial': 'Руководство по понижению версии прошивки:\nhttps://github.com/uyez/lyq/releases/tag/be3600', 'firmware_downgrade_tool': 'Вы можете использовать инструмент восстановления роутера Xiaomi для понижения версии.', 'exploit_failed_title': 'ЭКСПЛОЙТ НЕ СРАБОТАЛ:',