You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
68 lines
1.5 KiB
Python
68 lines
1.5 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import os
|
|
import sys
|
|
import time
|
|
|
|
import xmir_base
|
|
from gateway import *
|
|
|
|
|
|
gw = Gateway(detect_device = False, detect_ssh = False)
|
|
|
|
if len(sys.argv) > 1:
|
|
ip_addr = sys.argv[1]
|
|
if not ip_addr:
|
|
die("You entered an empty IP-address!")
|
|
gw.ip_addr = ip_addr
|
|
|
|
gw.set_timeout(4)
|
|
gw.detect_device()
|
|
if gw.status < 1:
|
|
die(f"Xiaomi Mi Wi-Fi device not found (IP: {gw.ip_addr})")
|
|
|
|
dn = gw.device_name
|
|
|
|
if gw.model_id > 0 and gw.model_id < gw.get_modelid_by_name('R2100'):
|
|
import connect1 # c_upload/netspeed
|
|
sys.exit(0)
|
|
|
|
#if dn in 'R2100 R2350 RM1800 RM2100 RA67':
|
|
# import connect2
|
|
# sys.exit(0)
|
|
|
|
#if dn == 'R3600' and gw.rom_version == '1.0.17':
|
|
# import connect2
|
|
# sys.exit(0)
|
|
|
|
#if dn == 'RA70' and gw.rom_version.startswith('3.'):
|
|
# import connect4
|
|
# sys.exit(0)
|
|
|
|
#if dn in 'R3600 RA69 RA70 RA72 RB03':
|
|
# import connect3
|
|
# sys.exit(0)
|
|
|
|
#if dn in 'RA80 RA82 RB01 RB03 RB06 RB08':
|
|
# import connect4
|
|
# 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)
|
|
|
|
exp_modules = [
|
|
'connect6', # arn_switch/start_binding
|
|
'connect5', # smartcontroller
|
|
]
|
|
for mod_name in exp_modules:
|
|
try:
|
|
import_module(mod_name, gw)
|
|
break # Ok
|
|
except ExploitNotWorked as e:
|
|
print('WARN:', str(e))
|
|
continue # try next module
|
|
except Exception:
|
|
raise
|