A leírásom és a hozzá szükséges fájlok ebből a topikból lettek összeollózva. Köszönet jár az alábbi kollégáknak az értékes tippekért, tanácsokért valamint saját tárhelyükön megosztott fájlokért.
trance89
tlala
takcslajos1
lafaty80
Tonyk
"A gyári fw irdatlan mennyiségű adatot küldözget haza (a webuin is minden egyes kattintás logolva van) emellett nonstop pingelgeti a kínai szervereket, aki kicsit is odafigyel az adatai védelmére érdemes elgondolkoznia ezen.." trance89
Ugyanez a helyzet a patchelt, de Mi szolgáltatásokat tartalmazó firmwerekkel is
Mi szolgáltatás = adatküldés
Hirdetés
El kell dönteni, hogy a MiWifi alkalmazás a fontosabb, vagy az, hogy ne küldözgessen adatokat a router az engedélyünk nélkül.
A művelethez szükséges alkalmazások és fájlok:
a legegyszerűbb, ha csináltok mondjuk a "D:" meghajtó gyökerébe egy ax3600 mappát, és mindent bele töltötök egyesével.
-Python 3.6
-ax3600-files-master
-Putty
-WinSCP
-Rollback firmware 1.0.17
-1.1.19-es kínai firmware- (MiWifi kompatibilis, legfrissebb wifi driverek)
Ha valakinek esetleg nem kell a MiWifi kompatibilitás, de cserébe nem küldözget a routere adatokat, akkor neki erre van szüksége:
miwifi_r3600_firmware_aba17_1.1.19+SSH+txpwr.zip
és az ebből kicsomagolt firmware-t használja majd r3600.bin néven később
A fentiek közül 3 programot csak szimplán fel kell telepíteni.
-Putty (SSH elérés)
-WinSCP (fájlok másolása a routerre oda/vissza)
-Python (telepítés végén bepipálni a python add PATH részt)
ezeket pedig kicsomagolni:
ax3600-files-master.zip tartalmát kicsomagolni a mappánkba
miwifi_r3600_firmware_aba17_1.1.19+SSH+MI+txpwr.zip tartalmát kicsomagolni, majd átnevezni erre: r3600.bin
valahogy így fog kinézni a mappánk tartalma:
2. Rollback firmware
fel kell rakni a router menüjéből egy régebbi firmware-t aminek a segítségével lesz SSH elérésünk
miwifi_r3600_firmware_5da25_1.0.17.bin (router oldalán Settings (2. fül felül) >> Status (utolsó sárga ikon))
a lapon az első gomb, betallózod a firmware-t és elindítod a frissítést
megvárod amíg újra elindul a router, belépsz ismét a főmenübe amit megelőz újra pár alap beállítás.
3. SSH engedélyezés
Ha a router főmenüben vagy, nyomsz egy F12 gombot, felugrik egy ablak ahol átkattintasz a console fülre és beilleszted ezt:
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();
a felugró ablakban megadod az SSH-hoz szükséges jelszót, ami legyen admin
4. SSH bejelentkezés
Putty program indít, a képen szereplő adatok beállítása és OPEN
- felh név: root
- jelszó: admin (nem fogod látni miközben írod be a jelszót, de a végén enter)
a zöld villogó kurzor után beilleszted az alábbi parancsokat
5. Bdata kinyerés
Putty parancs
nanddump -f /tmp/bdata_mtd9.img /dev/mtd9
6. WinSCP bejelentkezés
SCP protokollt használd, port: 22
a két ablak között lehet másolgatni F5 gombbal
7. Bdata másolása a PC-re
WinSCP művelet
/tmp/bdata_mtd9.img másolása ./ax3600-files-master/scripts könyvtárba
azaz a router temp mappájában létrejött bdata_mtd9.img fájlt kell átmásolni a D meghajtón létrehozott ax3600-files-master SCRIPTS mappájába
8. Parancssor (CMD) indítása
Parancssor megnyitása (start menüben elkezded gépelni (cmd)
9. SCRIPTS mappa megnyitása
A scripts mappa megnyitása parancssorból
d:
entercd ax3600
entercd ax3600-files-master
entercd scripts
enter
10. Bdata módosítása
CMD parancs
kiadjuk az alábbi parancsot a scripts mappából
(ezzel lesz állandó SSH, telnet és CN lesz az országkód)
header.py modify --country CN bdata_mtd9.img bdata_mtd9.img.modified
11. Crash_unlock másolása a routerre
WinSCP művelet
D: meghajtón található crash mappa tartalmát átmásolni a router tmp mappájába (winSCP-vel)
./ax3600-files-master/crash/crash_unlock.img másolása /tmp könyvtárba
12. Crash_unlock futtatása a routeren
Putty-ba írandó parancs
mtd write /tmp/crash_unlock.img crash
enter
13. Router újraindítása
Putty-ba írandó parancs
reboot
enter
14. Módosított Bdata másolása a routerre
WinSCP művelet
D meghajtóról másolunk a routerre
./ax3600-files-master/scripts/bdata_mtd9.img.modified másolása /tmp könyvtárba
15. A módosított Bdata futtatása a routeren
Putty parancs (újra bejelentkezés, ha az ablak felül inactive-ot mutatna)
mtd write /tmp/bdata_mtd9.img.modified bdata
enter
16. Router újraindítása
Putty parancs
reboot
enter
17. Putty parancsok egyesével, ha inactive, előtte újra bejelentkezni
sed -i 's/channel=.*/channel=\"debug\"/g' /etc/init.d/dropbear
enter
/etc/init.d/dropbear start
enter
echo -e 'admin\nadmin' | passwd root
enter
mtd erase crash
enter
reboot
enter
nvram set CountryCode=CN
majd ENTER (ez átírja CN-re az értéket)
nvram commit
majd ENTER (ez véglegesíti az átírást)
18. A legújabb firmware routerre másolása
WinSCP másolás
a r3600.bin firmware fájlt bemásolni a router tmp mappájába
19. Putty parancsok (inaktív ablak esetén újra bejelentkezés)
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
CSINÁLJ RESET-ET A HÁTSÓ GOMBBAL (KB 10 MÁSODPERCIG TARTSD NYOMVA)
Régió kód ellenőrzése:
1. lépj be a router web-es felületére (főmenü), és másold ki a saját stok azonosítód valahova
(stok azonosítót csak azután fogsz látni, amikor már be vagy jelentkezve a router admin menüjében, és végig vitted a kezdő beállítás varázslót. Ezt minden firmware frissítés és reset után végig kell kattintgatni)
2. az alábbi kódban szereplő stok azonosítót cseréld ki arra, amit az előbb feljegyeztél
http://192.168.31.1/cgi-bin/luci/;stok=d5df39a297daff7e325df31f16724619/api/xqsystem/country_code
3. ENTER
4. a kapott szövegben nézd meg az első részt, ha mindent jól csináltál akkor ezt kapod
{"current":"CN"
Firmware frissítés a későbbiekben
"tlala" Mivel a módosított fw-ek már tartalmaznak egy xqflash scriptet, így frissítés esetén nem kell a teljes procedúrát végigcsinálni, csak bemásoljuk WinSCP-vel a friss fw-t (r3600.bin-re átnevezve) a tmp mappába és kiadjuk ezt a két parancsot egymás után Putty alatt SSH-n:
xqflash /tmp/r3600.bin
reboot