Skip to content

Instantly share code, notes, and snippets.

@ndunks
Last active April 30, 2024 08:58
Show Gist options
  • Star 18 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save ndunks/d767eb572a916a8349b69cdf3b75a341 to your computer and use it in GitHub Desktop.
Save ndunks/d767eb572a916a8349b69cdf3b75a341 to your computer and use it in GitHub Desktop.
Manual help untuk Modem Indihome TELNET ZTE F609

Telnet Manual Modem Indihome

Saya sering lupa, jadi tulis aja di gist.

Login Root via Telnet

telnet 192.168.1.1
login: root
pass : Zte521

List Konfigurasi Telnet

sendcmd 1 DB p TelnetCfg

Ganti password user 'root' telnet

sendcmd 1 DB set TelnetCfg 0 TS_UPwd yournewpassword

List User untuk login Web Interface

sendcmd 1 DB p DevAuthInfo

Ganti Password user 'admin' Web Interface

sendcmd 1 DB set DevAuthInfo 0 Pass yournewpassword

More Info

Save DB

sendcmd 1 DB save

List Tabel dalam Database

sendcmd 1 DB all

Lihat isi tabel

sendcmd 1 DB p {TableName}
sendcmd 1 DB p DevAuthInfo
@ndunks
Copy link
Author

ndunks commented Sep 20, 2020

@ChrisG661 thanks bro. ini bisa buat F609 yang baru ya? soalnya saya juga ada script python tpi gak work utk semua F609..

@ChrisG661
Copy link

@ndunks Iya, untuk decode tidak usah pakai argumen tambahan, untuk encode kembali gunakan argument di atas

@ndunks
Copy link
Author

ndunks commented Sep 20, 2020

siap. btw, saya ngalamin dibeberapa modem ada yg password admin nya ganti2 sendiri. untung masih ada akses telnet dan ftp jadi bsa donlod config dan baca pass adminya. tapi setiap abis diganti password, pasti berubah lagi. apakah situ ngalamin juga? kalo emang itu remote dari pihak telkom ya nggak masalah, nah saya khawatirnya udah ada penyusup yg menjadikan modem kita jadi botnet.

@ChrisG661
Copy link

Benar, password admin Web UI sudah diganti-ganti secara random. Untuk pihak yang mengganti password, saya kurang tahu. Agar tetap bisa akses setting admin di Web UI dan password tidak berubah, tambah akun baru dengan level sama dengan admin. Kalau masih ada akses telnet, boleh langsung dengan telnet tambah user, tapi lebih mudah dengan backup restore file config (cara ini juga dapat dilakukan jika hanya mempunyai akses user dengan USB Backup).

  1. Cari table <Tbl name="DevAuthInfo" RowCount="6"> dalam file config yang sudah decoded. RowCount tidak harus 6.
  2. Tambah row user baru pada akhir table seperti berikut:
<Row No="6">
<DM name="ViewName" val="IGD.AU7"/>
<DM name="Enable" val="1"/>
<DM name="AppID" val="1"/>
<DM name="User" val="<nama user>"/>
<DM name="Pass" val="<password>"/>
<DM name="Level" val="1"/>
<DM name="Extra" val=""/>
<DM name="ExtraInt" val="0"/>
</Row>

Tambahkan RowCount menjadi total row setelah menambah user, di sini adalah 7
3. Encode kembali file config, upload dan restore dari router.
Row No,ViewName disesuaikan dengan value row sebelumnya. Value ViewName dimulai dari 1, jadi yang paling terakhir di sini adalah 7
Value yang membuka setting admin adalah Level, level 1 setara dengan akses admin.
Hal yang saya temui dalam file pengaturan SSH router adalah adanya authorized key dari pihak ZTE (backdoor?), tetapi dari IPtables, tidak mengizinkan akses SSH dari internet. Jangan mencoba remount filesystem root menjadi readwrite dan mengubah file root selain direktori /userconfig, karena dapat merusak filesystem dan router menjadi bricked. Karena arsitektur F609 armv7, dapat mengupload melalui tftp dan menggunakan binary busybox yang full dan binary lain dalam direktori /userconfig, tetapi direktori ini akan terhapus setelah reboot router.

@ndunks
Copy link
Author

ndunks commented Sep 20, 2020

Siap thanks ilmunya, itu solusi yang tepat utk modem yg punya penyakit 'randomly changed' wkwkwk.
btw, jalur koneksi WAN indihome ada beberapa, bisa juga mereka akses bukan dari jaringan WAN internet (PPOE), tapi dari WAN yang DHCP (VoIP), jadi mungkin itu akses khusus dari telkomnya.
utk upload binary emang work, tapi dari shell ASH nya kita nggak bisa invoke/ekskusi binary lain. jadi kaya ada SE Policy gitu. adakah triknya bang untuk bypass itu biar bisa masukin script/binary custom dan jalan di dlm router?

@ChrisG661
Copy link

Untuk mengeksekusi binary/script lain, coba tambah permission execute ke filenya - chmod +x file. Saya sendiri sudah mencoba menggunakan script untuk refresh IP WAN.

@ndunks
Copy link
Author

ndunks commented Sep 20, 2020

via SSH or telnet masuknya?

@ChrisG661
Copy link

Iya, ganti permission lewat SSH atau telnet

@indihome2020
Copy link

buat disable acs/cwmp di zte f609 gmn ya kak ? trims

@apriady
Copy link

apriady commented Dec 24, 2020

@ndunks untuk decode config zte terbaru gimana commandnya yak bro?
soalnya coba tanpa pakai argument apapun, cuma pakai argumen input file dan output file, dapet error ini :
Error -3 while decompressing data: incorrect header check

@im-not-a-robot
Copy link

@ChrisG661 di tempat saya terjadi banyak command yang 'access denied' (/bin/sh access denied'), walaupun secara permission saya lihat 755. Sepertinya ada pembatasan fungsi module yang dimasukkan ke f609. Ada solusi mungkin?

@ndunks
Copy link
Author

ndunks commented Feb 21, 2021

@im-not-a-robot sama kasusnya kaya punya saya, proteksi semacam SELinux. jadi kayak ada label/permissionya di suatu tempat. entah di dalem ash (busybox) atau di config. mereka kan build OSnya from scratch jadi bisa nambahin limit tersebut dalam kodingnya.

@rikoari
Copy link

rikoari commented Jul 10, 2021

“List Tabel dalam Database“

Halo mas, tabelnya ada apa aja ya?
Kebetulan saya langganan C** dan Tr** yang port 2 sampai 4 nya mati, dari web sudah diatur tapi tetap mati, lampu pun gak nyala.

Apakah ada tabel yg mengatur port2 itu ya? Atau dari level firmware?

Thanks.

@ndunks
Copy link
Author

ndunks commented Jul 11, 2021

skrng udh ga bisa list table all, access denied,, untuk port-binding biasanya di interface web-nya ada,, cuman kudu jari user yg bener2 admin level,

@mazdel
Copy link

mazdel commented Sep 19, 2021

halo mas @ndunks @ChrisG661 dan mas-mas sekalian . apakah tool config decryptor zte-config-utility masih work untuk f609 yang sekarang ya? saya coba decrypt kok gagal terus dgn pesan error "Malformed decrypted payload, probably used the wrong key!"

@Bobu5
Copy link

Bobu5 commented Oct 6, 2021

halo mas @ndunks @ChrisG661 dan mas-mas sekalian . apakah tool config decryptor zte-config-utility masih work untuk f609 yang sekarang ya? saya coba decrypt kok gagal terus dgn pesan error "Malformed decrypted payload, probably used the wrong key!"

saya juga dapat error yg sama, untuk saya , decrypt dahulu pakai RouterPassView [download: routerpassview.zip]
kalau pakai linux bukanya pake wine, lalu edit pakai aplikasi yg agan ingin pakai, kalau saya pakai Visual Studio Code , lalu baru di encode pakai script zte-config-utility

@Bobu5
Copy link

Bobu5 commented Oct 6, 2021

mohon maaf gan sedikit OOT, tapi apakah ada cara untuk meremove limit user yg terlogin ke web admin seperti ini gan?
image

@misbahulihsan
Copy link

Untuk mengedit file cfg atau bin backup, gunakan user biasa (bukan admin) dan lakukan USB Backup ke storage USB mis. flashdisk. Kemudian decode file backup dengan utility ini, ganti value TS_Enable atau SSH_Enable (disarankan enable SSH daripada telnet) pada file yang sudah decoded. Encode lagi menggunakan utility tadi dengan script encode utility dan argument --signature F609 --payload-type 2 --include-unencrypted-length --version 1 decoded.xml encoded.bin

Maaf mau nanya, aku sudah coba tapi muncul error seperti ini

Signature: F609
Trying key: b'MIK@0STzKpB%qJZe'
Trying key: b'MIK@0STzKpB%qJZf'
Trying key: b'402c38de39bed665'
Trying key: b'Q#Zxn*x3kVLc\x00\x00\x00\x00'
Trying key: b'Wj\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Trying key: b'm8@96&ZG3Nm7N&Iz'
Trying key: b'GrWM2Hz&LTvz&f^5'
Trying key: b'GrWM3Hz&LTvz&f^9'
Trying key: b'Renjx%2$CjM\x00\x00\x00\x00\x00'
Trying key: b'tHG@Ti&GVh@ql3XN'
Trying key: b'SDEwOE5WMi41Uk9T'
None of the known keys matched.

Ini keys nya gak sesuai berarti ya ? apa ada keys lain yang bisa dicoba ?

@Merul02
Copy link

Merul02 commented Jan 2, 2023

Untuk mengedit file cfg atau bin backup, gunakan user biasa (bukan admin) dan lakukan USB Backup ke storage USB mis. flashdisk. Kemudian decode file backup dengan utility ini, ganti value TS_Enable atau SSH_Enable (disarankan enable SSH daripada telnet) pada file yang sudah decoded. Encode lagi menggunakan utility tadi dengan script encode utility dan argument --signature F609 --payload-type 2 --include-unencrypted-length --version 1 decoded.xml encoded.bin

thanks bro ternyata masih work , saya menggunakan termux sebagai media nya , config.bin modem ind*h** f609

@ndunks
Copy link
Author

ndunks commented Jan 2, 2023

Siap thanks ilmunya, itu solusi yang tepat utk modem yg punya penyakit 'randomly changed' wkwkwk. btw, jalur koneksi WAN indihome ada beberapa, bisa juga mereka akses bukan dari jaringan WAN internet (PPOE), tapi dari WAN yang DHCP (VoIP), jadi mungkin itu akses khusus dari telkomnya. utk upload binary emang work, tapi dari shell ASH nya kita nggak bisa invoke/ekskusi binary lain. jadi kaya ada SE Policy gitu. adakah triknya bang untuk bypass itu biar bisa masukin script/binary custom dan jalan di dlm router?

Btw, untuk ini udah bisa sya bypass, jadi bisa eksekusi semua command: https://github.com/ndunks/modem-indihome-f609#rooting-modem-indihome-zte-f609-full-access

@Merul02
Copy link

Merul02 commented Mar 19, 2023

trimakasih, saya sudah berhasil berubah config.bin ke config.xml ( Ont F609 ) V5.3
solusi nya ternyata menggunakan 2 metode untuk decode menjadi config.xml
hal yg perlu di lakukan merubah config.bin menjadi config.zlib terlebih dahulu.
baru dari config.zlib menjadi config.xml

skrng yg perlu saya lakukan hanya membukus ulang menjadi config.bin

@allenlouf
Copy link

Untuk mengedit file cfg atau bin backup, gunakan user biasa (bukan admin) dan lakukan USB Backup ke storage USB mis. flashdisk. Kemudian decode file backup dengan utility ini, ganti value TS_Enable atau SSH_Enable (disarankan enable SSH daripada telnet) pada file yang sudah decoded. Encode lagi menggunakan utility tadi dengan script encode utility dan argument --signature F609 --payload-type 2 --include-unencrypted-length --version 1 decoded.xml encoded.bin

Kalo file nya cfg apa nanti pas encode harus cfg lg atau bisa bin?

Untuk mengeksekusi binary/script lain, coba tambah permission execute ke filenya - chmod +x file. Saya sendiri sudah mencoba menggunakan script untuk refresh IP WAN.

Kalo boleh share scriptnya suhu, saya lg coba hosting personal nextcloud

@Bobu5
Copy link

Bobu5 commented Mar 27, 2023

Untuk mengeksekusi binary/script lain, coba tambah permission execute ke filenya - chmod +x file. Saya sendiri sudah mencoba menggunakan script untuk refresh IP WAN.

Kalo boleh share scriptnya suhu, saya lg coba hosting personal nextcloud

kalo saran saya mending pake cloudflare tunnel atau semacamnya saja gan, saya juga selfhost nextcloud dirumah dan pake cloudflare tunnel lumayan kenceng dan load time tidak jauh lebih lambat dibandingkan jika dibandingkan dengan menggunakan ip public, ditambah benefit keamanan juga dapet

@lexavey
Copy link

lexavey commented Jun 11, 2023

solusi nya ternyata menggunakan 2 metode untuk decode menjadi config.xml
hal yg perlu di lakukan merubah config.bin menjadi config.zlib terlebih dahulu.
baru dari config.zlib menjadi config.xml

import zlib

with open('config.bin', 'rb') as bin_file:
    bin_data = bin_file.read()

compressed_data = zlib.compress(bin_data, zlib.Z_BEST_COMPRESSION)

with open('config.zlib', 'wb') as zlib_file:
    zlib_file.write(compressed_data)

with open('config.zlib', 'rb') as zlib_file:
    zlib_data = zlib_file.read()

decompressed_data = zlib.decompress(zlib_data)

with open('config.xml', 'wb') as xml_file:
    xml_file.write(decompressed_data)

Gini ya mas ?
Ga bisa, tolong kasih penjelasan lagi mas

@Merul02
Copy link

Merul02 commented Jun 12, 2023

solusinya ternyata menggunakan 2 metode untuk decode menjadi config.xml
hal yg perlu di lakukan merubah config.bin menjadi config.zlib terlebih dahulu.
baru dari config.zlib menjadi config.xml

import zlib

with open('config.bin', 'rb') as bin_file:
    bin_data = bin_file.read()

compressed_data = zlib.compress(bin_data, zlib.Z_BEST_COMPRESSION)

with open('config.zlib', 'wb') as zlib_file:
    zlib_file.write(compressed_data)

with open('config.zlib', 'rb') as zlib_file:
    zlib_data = zlib_file.read()

decompressed_data = zlib.decompress(zlib_data)

with open('config.xml', 'wb') as xml_file:
    xml_file.write(decompressed_data)

Gini ya mas? Ga bisa, tolong kasih penjelasan lagi mas

di cek dlu mas , file config.bin pnya kmu.
cara python3 examples/info.py (nama folder )/pilih filenya.bin

tujuan nya untuk mengetahui type payload nya.

contoh :
python3 examples/info.py zte/config.bin

Signature: F609
Payload Type: 2 (ZLIB)
Payload Start: 76
Decompressed size: 145853 bytes
2nd last chunk: 13713
Chunk size: 65536 bytes
Payload CRC: 2981513541
Header CRC: 530155917
root@localhost:~/zte-config-utility#

@bembenk18
Copy link

--signature F609 --payload-type 2 --include-unencrypted-length --version 1

untuk key f609 apa ya mas?

@ridhafatahillah
Copy link

Merul02

payload type 2 bisa pakai key yanh mana mas?

@Merul02
Copy link

Merul02 commented Sep 20, 2023

--signature F609 --payload-type 2 --include-unencrypted-length --version 1

untuk key f609 apa ya mas?

sya jarang liat github klo mau bertanya bisa langsung japri saya via telegram t.me/Thetanozz

@Merul02
Copy link

Merul02 commented Sep 28, 2023

--signature F609 --payload-type 2 --include-unencrypted-length --version 1

untuk key f609 apa ya mas?

gk pke key , gk ada key yg cocok
cukup pke metode zlib+aes

@yooman1213
Copy link

@ndunks mas kok ini saya masih "connection Timeout" saat connect telnet...
saya sudah aktifin "TS_Enable" nya yang dari "0" ke "1" tapi masih gak bisa connect via telnet...

dan btw untuk aktifin SSH bagaimana yaa min...

maklum masih noob bang... mohon bantuannya

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment