Diciamo che non ho fatto più di quello che abbiamo descritto in queste pagine, è difficile scrivere questa guida perché è un procedimento al quanto complesso, ma ci provo.
Allora, partiamo dal presupposto che io ho usato, un Mac, un iPhone e il DGA4331. Prima di tutto bisogna creare un account su Azzure, anche quello gratuito richiede però il possesso di una carta di credito/debito/prepagata. Su azzurre creare una macchina virtuale usando lo script per Docker di
@LuKePicci https://www.ilpuntotecnico.com/forum/index.php/topic,84353.msg271862.html#msg271862. A questo punto bisogna settare GenieACS. In particolare andando sulle impostazioni bisogna
cambiare lo script di inform di provvisioning, io ho usato questo
// Device ID as user name
const username = "Technicolor"
// Password will be fixed a given device because Math.random() is seeded with devcie ID by default.
const password = "Technicolor"
const informInterval = 10;
// Refresh values daily
const daily = Date.now(86400000);
// Unique inform offset per device for better load distribution
const informTime = daily % 86400000;
declare("InternetGatewayDevice.ManagementServer.ConnectionRequestUsername", {value: daily}, {value: username});
declare("InternetGatewayDevice.ManagementServer.ConnectionRequestPassword", {value: daily}, {value: password});
declare("InternetGatewayDevice.ManagementServer.PeriodicInformEnable", {value: daily}, {value: true});
declare("InternetGatewayDevice.ManagementServer.PeriodicInformInterval", {value: daily}, {value: informInterval});
declare("Device.ManagementServer.ConnectionRequestUsername", {value: daily}, {value: username});
declare("Device.ManagementServer.ConnectionRequestPassword", {value: daily}, {value: password});
declare("Device.ManagementServer.PeriodicInformEnable", {value: daily}, {value: true});
declare("Device.ManagementServer.PeriodicInformInterval", {value: daily}, {value: informInterval});
declare("Downloads.[FileType:3 Vendor Configuration File]", {path: 1}, {path: 1});
declare("Downloads.[FileType:3 Vendor Configuration File].FileName", {value: 1}, {value: "wps.sts"});
declare("Downloads.[FileType:3 Vendor Configuration File].Download", {value: 1}, {value: Date.now()});
E successivamente su files, caricare lo script wps.sts come "3 Vendor Configuration File"
Il file è questo script:
reboot off
set button.wps.handler="sed -i 's#/root:.*$#/root:/bin/ash#' /etc/passwd && echo root:root | chpasswd && sed -i -e 's/#//' -e 's#askconsole:.*\$#askconsole:/bin/ash#' /etc/inittab && (uci -q delete dropbear.afg || true) && uci add dropbear dropbear && uci rename [email protected][-1]=afg && uci set dropbear.afg.enable='1' && uci set dropbear.afg.Interface='lan' && uci set dropbear.afg.Port='22' && uci set dropbear.afg.IdleTimeout='600' && uci set dropbear.afg.PasswordAuth='on' && uci set dropbear.afg.RootPasswordAuth='on' && uci set dropbear.afg.RootLogin='1' && (uci set dropbear.lan.enable='0' || true) && uci commit dropbear && /etc/init.d/dropbear enable && /etc/init.d/dropbear restart && (uci -q set $(uci show firewall | grep -m 1 $(fw3 -q print | egrep 'iptables -t filter -A zone_lan_input -p tcp -m tcp --dport 22 -m comment --comment \"!fw3: .+\" -j DROP' | sed -n -e 's/^iptables.\+fw3: \(.\+\)\".\+/\1/p') | sed -n -e \"s/\(.\+\).name='.\+'$/\1/p\").target='ACCEPT' || true) && uci commit firewall && /etc/init.d/firewall reload && uci set button.wps.handler='wps_button_pressed.sh' && uci commit && wget {{url}}done || true"
A questo punto il server acs è pronto, non ci resta che resettare il DGA e farlo connettere ad internet. Per farlo io mi sono mosso così:
Prima di tutto bisogna creare un interfaccia, sul Mac si va sulle reti, in basso sui tre punti c'è "Manage Virtual Interface" e creare un'interfaccia virtual VLAN 83 sull'iterfaccia Ethernet e gli ho assegnato l'ip 192.168.2.1. A questo punto ho usato un trucco per semplificarmi la vita, ho aperto tch-exploit con queste opzioni
sudo ./tch-exploit-macos --acsurl="https://linkdeltuoacs.azurewebsites.net/cwmpWeb/ACS" --ip="192.168.2.1" --dhcponly
In questo modo tch-exploit farà partire un server DHCP sull'interfaccia VLAN 83, solo dopo ciò sono andato nelle impostazioni di condivisione del Mac ed ho condiviso la connessione del mio iPhone collegato via cavo dall'opzione "Internet Sharing" mettendo come from "iPhone USB" e come To l'interfaccia Ethernet, in questo modo il Mac ha automaticamente creato un interfaccia Bridget sull'indirizzo IP 192.168.3.1, quindi a questo punto non ho fatto altro che cambiare l'indirizzo sulla VLAN83 in 192.168.3.1 e anche l'indirizzo di tch-exploit in 192.168.3.1 e solo adesso, resettato, disconnesso il cavo della connessione (Nel mio caso era l'ONT, nei vostri casi potrebbe essere il cavo dsl) e collegato il DGA via etherenet al Mac. Dopo 5-10 minuti il wansensing del router ha fatto il suo lavoro e il router si è connesso al server ACS (Si capisce perché la luce Power inizia a lampeggiare). Adesso basta premere il tasto WPS e il router sarà sbloccato. Dopo di ciò ho soltanto usato i due comandi presi da "
https://hack-technicolor.readthedocs.io/en/latest/Upgrade/" cioè quelli per cancellare il contenuto dell'overlay e mantenere il root.
Router riavviato, cavo dsl/fibra riattaccato, root mantenuto e connessione nuovamente funzionante.
Non è per niente facile, sopratutto se non sai muoverti tra queste cose, meglio aspettare di trovare qualche soluzione più alla mano