Új hozzászólás Aktív témák

  • tlala

    addikt

    válasz Chris Kiki #2828 üzenetére

    Egy kis egyszerűsítést akartam írni Chris Kiki lenti nagyszerű leírásához (köszönjük!) az SSH megszerzéshez illetve bármelyik "magas wifi teljesítményű"/moddolt firmware felrakásához - de aztán arra gondoltam, hogy inkább az egész folyamatot újból leírom egy bejegyzésbe, nem csak a scriptet.

    1.) A választott firmware-t pl. trance89 kolléga gyűjteményéből (köszönjük!) töltheted le (amelyik fw nevében a "MI" szerepel, azok használhatóak továbbra is a MiWifi appal).
    Ha kezdő vagy, ajánlatos a moddolt globalt (miwifi_r3600_all_6510e_3.0.22_INT+SSH+txpwr.zip) letöltened, ebben angol nyelv is van - az 1.1.19-es fw újabb, de kínai nyelvű.
    A letöltött .zip fájlból bontsd ki a .bin végű moddolt fw fájlt, és nevezd át erre: r3600.bin (mert a lentebb olvasható parancssorok majd így fognak hivatkozni rá).
    Amire még szükség van a későbbiekben:
    WinSCP
    Putty

    2.) A router webes felületén keresztül felteszed a még hekkelhető régi 1.0.17-es firmware-t, majd újraindítod a routert (nem kell reset, csak újraindítás).

    3.) Ezt követően a megszokott módon belépsz a router felületre a böngészőben (192.168.31.1).
    Ezután nyomsz egy F12-t, ott a Console fülre kell kattintani (Chrome), majd be kell másolni a konzol ablakba ezt a scriptet (mezei Ctrl-C/Ctrl-V) és ENTER. Ennek eredményeként felugrik egy kis ablak, ahová be kell írni a választott SSH jelszót, ami az egyszerűség kedvéért legyen ez: admin -  az új firmware úgyis felülírja.

    A script:

    function getSTOK() {
    let match = location.href.match(/;stok=(.*?)\//);
    if (!match) {
    return null;
    }
    return match[1];
    }

    function execute(stok, command) {
    command = encodeURIComponent(command);
    let path = `/cgi-bin/luci/;stok=${stok}/api/misystem/set_config_iotdev?bssid=SteelyWing&user_id=SteelyWing&ssid=-h%0A${command}%0A`;
    console.log(path);
    return fetch(new Request(location.origin + path));
    }

    function enableSSH() {
    stok = getSTOK();
    if (!stok) {
    console.error('stok not found in URL');
    return;
    }
    console.log(`stok = "${stok}"`);

    password = prompt('Input new SSH password');
    if (!password) {
    console.error('You must input password');
    return;
    }

    execute(stok,
    `
    nvram set ssh_en=1
    nvram commit
    sed -i 's/channel=.*/channel=\\"debug\\"/g' /etc/init.d/dropbear
    /etc/init.d/dropbear start
    `
    )
    .then((response) => response.text())
    .then((text) => console.log(text));
    console.log('New SSH password: ' + password);
    execute(stok, `echo -e "${password}\\n${password}" | passwd root`)
    .then((response) => response.text())
    .then((text) => console.log(text));
    }

    enableSSH();

    Tehát a fenti scriptet a konzol ablakba másolni, utána ENTER, és a felugró ablakban az admin jelszót beírni, Ok-ra kattintani. 

    Innentől kezdve minden ugyanaz, mint korábban.

    4.) WinSCP indít.
    Fájlprotokoll: SCP (át kell állítani!),
    Kiszolgáló: 192.168.31.1,
    Port: 22,
    Felhasználónév: root,
    Jelszó: admin

    Belépés után lehet, hogy a router oldalon a mappaszintben feljebb kell lépned, lényeg, hogy keresd meg a tmp mappát, és oda másold be az r3600.bin firmware fájlt.

    5.) Putty-t elindítjuk.
    Host name: 192.168.31.1,
    Port: 22,
    Connection type: SSH
    majd "Open", és a felugró ablakban
    login as: root
    password: admin

    A következő parancsokat Ctrl-C-vel másolni, majd Puttyba kattintással lehet copy/paste-elni, majd ENTER.
    grep rootfs /proc/mtd

    Ennek az eredménye ez kell, hogy legyen:
    mtd12: 023c0000 00020000 "rootfs"
    mtd13: 023c0000 00020000 "rootfs_1"
    mtd17: 015cc000 0001f000 "ubi_rootfs"

    Következik Puttyban az alábbi parancs:
    nvram get flag_boot_rootfs

    Amire pedig kétféle eredmény lehetséges, 0 vagy 1 értéket kapunk.

    1 esetén beírjuk:
    ubiformat /dev/mtd12 -f /tmp/r3600.bin -s 2048 -O 2048

    0 esetén pedig:
    ubiformat /dev/mtd13 -f /tmp/r3600.bin -s 2048 -O 2048

    Majd sorban a következő 3 parancs jön (külön-külön, ENTER-rel egyenként beadva):
    nvram set flag_ota_reboot=1
    nvram commit
    reboot

    Készen is vagyunk!
    A router újra indul, ezt követően ajánlatos a router hátulján található reset gombbal alaphelyzetbe hozni, és újra beállítgatni.

    Figyelem!
    Az új firmware-kkel az SSH jelszó ismét visszaváltozik a root jelszóra, amelyet a https://www.oxygen7.cn/miwifi weboldalról tudsz kinyerni.
    Miután a fenti linkre kattintasz, a felugró ablakba beírod a routered sorozatszámát (ami a router webes felületére belépve a jobb alsó sarokban szerepel "SN" alatt). A sorozatszámot úgy kell beírni, ahogy ott látható, a / jellel együtt -ezt követően a weboldal kidobja a root jelszavadat. Érdemes új SSH jelszót beállítani.

Új hozzászólás Aktív témák