TP-Link EX530V Router’da Root ve Shell erişimi rehberi

teto1

Çalışkan
Katılım
6 Şubat 2026
Mesajlar
7
Beğeniler
8
Aynı zamanda şuradaki konunun çözümüdür. @mavezir

Son 1-2 haftadır canım sıkıldığından bu router ile uğraşıyorum. İlk olarak cihazı söküp CH341a ile seri bağlantısını kurdum (115200). Karşıma böyle bir bootlog geldi:
Kod:
EN7523DRAMC V0.2
dram_type = 5, speed = 1866
Final Impdance Cal Result: OCDP:0x1b, OCDN:0x1e, ODTP:0xa, ODTN:0xa
DDR1866 PLL setting init
[Dramc] PCDDR3 AC Timing update
Fire MRW command...
ModeReg.2, value.0x20 done
Fire MRW command...
ModeReg.3, value.0x0 done
Fire MRW command...
ModeReg.1, value.0x6 done
Fire MRW command...
ModeReg.0, value.0x1114 done
Fire MRW command...
ModeReg.1, value.0x86 done
Fire MRW command...
ModeReg.1, value.0x6 done
Calculate size.
DRAM size=512MB


U-Boot 2014.04-rc1 (Feb 08 2025 - 06:11:22)

DRAM:  496 MiB
EN7562CT
Now running in RAM - U-Boot at: 9ee05000
spi_nand_probe: mfr_id=0x2c, dev_id=0x34
Using Flash ECC.
Detected SPI NAND Flash :  _SPI_NAND_DEVICE_ID_F50L4G41XB, Flash Size=0x20000000
bmt pool size: 163
BMT & BBT Init Success
In:    serial
Out:   serial
Err:   serial
CPU0: found redistributor 0 region 0:9ee3db08
Net:   ecnt_eth
               Uip activated
Not found TC Phy
Not found TC Phy
Not found TC Phy
Not found TC Phy
Hit any key to stop autoboot:  0
Prepare to boot image0
bootm flag=0, states=70f
## Loading kernel from FIT Image at 81800200 ...
   Using 'conf@1' configuration
   Trying 'kernel@1' kernel subimage
     Description:  ECONET Linux kernel
     Type:         Kernel Image
     Compression:  lzma compressed
     Data Start:   0x818022a4
     Data Size:    2816811 Bytes = 2.7 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x80088000
     Entry Point:  0x80088000
     Hash algo:    sha1
     Hash value:   6af9be80dcc59691c168f620054450d053bc73d4
## Loading fdt from FIT Image at 81800200 ...
   Using 'conf@1' configuration
   Trying 'fdt@1' fdt subimage
     Description:  ECONET Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x818002fc
     Data Size:    7913 Bytes = 7.7 KiB
     Architecture: ARM
     Hash algo:    sha1
     Hash value:   73fbebcf3dfc0e0007752bdeff8c7c0f35611f24
   Booting using the fdt blob at 0x818002fc
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 9cdf8000, end 9cdfcee8 ... OK

Burada "Hit any key to stop autoboot: 0" ibaresi dikkatimi çekti. Fakat herhangi bir tuşa basmak yazılanın aksine autoboot işlemini daha da hızlandırıyor. Burada CTRL-C ye basarsınız kendinizi U-Boot shellinde buluyorsunuz:
Kod:
Hit any key to stop autoboot:  0
ECNT> ?
?       - alias for 'help'
base    - print or set address offset
bdinfo  - print Board Info structure
boot    - boot default, i.e., run 'bootcmd'
bootd   - boot default, i.e., run 'bootcmd'
bootflag- bootflag read/swap command

bootm   - boot application image from memory
chpart  - change active partition
cmp     - memory compare
coninfo - print console devices and information
cp      - memory copy
crc32   - checksum calculation
dcache  - enable or disable data cache
echo    - echo args to console
editenv - edit environment variable
efuse   - efuse - efuse command

env     - environment handling commands
exit    - exit script
false   - do nothing, unsuccessfully
fdt     - flattened device tree utility commands
fip_test- fip_test - test command

flash   - flash - flash command

go      - start application at address 'addr'
help    - print command description/usage
icache  - enable or disable instruction cache
imginfo - imginfo - Show tclinux.bin version command

iminfo  - print header information for application image
imxtract- extract a part of a multi-image
itest   - return true/false on integer compare
loadb   - load binary file over serial line (kermit mode)
loads   - load S-Record file over serial line
loadx   - load binary file over serial line (xmodem mode)
loady   - load binary file over serial line (ymodem mode)
loop    - infinite loop on address range
md      - memory display
mm      - memory modify (auto-incrementing address)
mtd     - mtd - mtd  command

mtdparts- define flash/nand partitions
mw      - memory write (fill)
nm      - memory modify (constant address)
ping    - send ICMP ECHO_REQUEST to network host
printenv- print environment variables
reset   - Perform RESET of the CPU
run     - run commands in an environment variable
saveenv - save environment variables to persistent storage
setenv  - set environment variables
showvar - print local hushshell variables
sleep   - delay execution for some time
source  - run script from memory
sr_test - sr_test - test command

test    - minimal test like /bin/sh
tftpboot- boot image via network using TFTP protocol
true    - do nothing, successfully
version - print monitor, compiler and linker version
ECNT>

Burada ilk adımım bir root shell'i edinmekti. Bunun için önce "flash tpimg" yazıp ardından "printenv" yazarak geçerli bootargs'ı almanız gerekli:


"bootargs" da olan "username" ve "password" hiçbir şeyi temsil etmiyor. GPL kaynak koduna göre u-boot'a erişim için kullanıcı adı ve şifre isteme özelliği var. Eğer etkin olsaydı, kullanıcı adı ve şifre buradakiler olurdu.

Ardından sonuna "init=/bin/sh" ekleyin ve değiştirin (buradakini kopyalamayın, sizdeki farklı olabilir!):
Kod:
set bootargs "sdram_conf=0x00108893 vendor_name=ECONET Technologies Corp. product_name=xPON ONU ethaddr=xx:xx:xx:xx:xx:xx snmp_sysobjid=1.2.3.4.5 country_code=ff ether_gpio=0c power_gpio=1515 username=telecomadmin password=nE7jA%5m dsl_gpio=0b internet_gpio=02 multi_upgrade_gpio=0b020400000000000000000000000000 onu_type=2 qdma_init=33 root=/dev/mtdblock5 ro console=ttyS0,115200n8 earlycon bootflag=0 serdes_sel=0 init=/bin/sh"

Boot prosedürünü devam ettirmek için "printenv bootcmd" yazıp "bootm 81800200" kısmını komut olarak girebilirsiniz. Bende adres 81800200 idi fakat farklı firmwarelerde farklı olabilir.

Karşınıza aşağı yukarı böyle bir prompt çıkacak:


Burada root kullanıcısının şifresini öğrenmek için "cat /etc/passwd.bak" yazdığımda içeriği şöyle çıktı:
Kod:
/ # cat /etc/passwd.bak
dropbear:x:500:500:dropbear:/var/tmp/dropbear:/bin/sh
nobody:*:0:0:nobody:/:/bin/sh
guest:*:0:0:guest:/var/usbdisk/:/bin/sh
admin:I55OiXWnKr89Y:0:0:root:/:/bin/sh

Anladığım kadarıyla buradaki admin kullanıcısının şifresi cihaz bazlı değil. Şifrenin hashini arattığımda buradaki makaleden şifrenin "spbu100e" olduğunu öğrendim. Hazır bu ortamdayken bir tane usb disk takıp aşağıdaki komutlarla flash yedeklerini de alabilirsiniz:
Kod:
mkdir -p /dev/pts
mount -a
mount -t sysfs /sys /sys
insmod /lib/modules/kmdir/kernel/drivers/usb/storage/usb-storage.ko

mkdir /var/mnt
mount /dev/sda1 /var/mnt # Bu farklı olabilir

cat /proc/mtd # Partitionları görüntülemek için

dd if=/dev/mtdX of=/var/mnt/mtdX.bin # mtdX->mtd0,mtd1,mtd2 gibi...

Cihazı kapatıp açarak normal bir şekilde açtığınızda admin:spbu100e ile giriş yapabilirsiniz.
Bahsettiğim makaleden misc partitiondaki configi çözdüğünüzde sUser kullanıcısının şifresini TR-069 ile bulaşmadan alabilirsiniz.
(veya misc dumpını bir hex editörde açıp, 0x0008fd40 adresine gidip, ilk 10 byte ı kopyalarsanız varsayılan sUser şifresini alabilirsiniz)

Buradan sonrası hayal gücünüze kalmış.
Daha çok erken olmakla birlikte yapılması gereken çok şey var.
 
Hocam merhaba, Superonline’ın verdiği router’a OpenWrt kurabilir miyiz? Bu konudaki bilgilerle bu mümkünse ek bir rehber yapabilir misiniz, nasıl kurulacağıyla ilgili? @teto1
 
Hocam Firmware dosyasını dump ettiyseniz paylaşma şansınız var mı?

Config dosyasını düzenleyerek basit bir şekilde root kullanıcısın şifresini değiştirme ve bulma yapabiliriz diye düşünüyorum. Modeme root erişimim var fakat Shell erişimim olmadığı için pek bir ilerleme kaydedemedim.
 
Son düzenleyen: Moderatör:
Root erişimini nasıl aldınız?
 
Root erişimini sağlayabilecek bir uygulama geliştirdik. Eski sürümde sorunsuz çalışıyor, yeni sürümde henüz bağlantı kuramadık. Testler sorunsuz geçerse paylaşım yapacağız.

Root erişimini nasıl aldınız?
 
Root erişimini sağlayabilecek bir uygulama geliştirdik. Eski sürümde sorunsuz çalışıyor, yeni sürümde henüz bağlantı kuramadık. Testler sorunsuz geçerse paylaşım yapacağız.

Bekliyoruz hocam. Bu hali tamamen işlevsiz. Ucuz routerdan farkı yok.

@Recep Baltaş @Ferdi Burak hocam yöntemi bulmuşsunuz teşekkürler sabırsızlıkla bekliyoruz paylaşmanızı. Konu ne zaman gelir bilgi verebilir misiniz?
 
Son düzenleyen: Moderatör:

Shell erişimini ben RS232 ile yaptım, cihazı açmadan mümkün mü emin değilim açıkçası. Bahsettiğim makalede arkadaş ssh serverını değiştirdi SSH ile girebilmek için.
 

Hocam @Recep Baltaş root yöntemini paylaşacak da eğer vaktiniz varsa uygun bir zamanda bu cihaza OpenWrt kurulum ve ISS'ye iade ederken mümkünse geri stock firmware dönüş rehberi yapabilir misiniz?
 
Son düzenleyen: Moderatör:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…