2008-04-28_10-35-30
Servei de la Universitat de València

Hacking the NAS. Part II

En aquesta segona entrega, mostraré com accedir com a usuari root al NAS econòmic FT3563-BT amb suport de Bittorrent.
Una vegada obert, podem veure les característiques tècniques que son:

  • Processador Str9104 basat amb un arm922
  • Targeta de Xarxa IP101A
  • Pont USB-IDE/SATA JM20337
  • 32MB de RAM (256Mb) i 8MB Flash (64Mb).

Aquest NAS, funciona amb linux, i i et permet formatar el disc amb XFS.
Per defecte, et fa una partició de Swap i una partició on desa alguns arxius de configuració, com per exemple, els arxius de configuració de Bittorrent, el passwd!!! i el smb.conf.
Aquestes particions no estan disponibles si et conectes per xarxa, però en canvi, si fas ús de la connexió USB si que ho estan. Així doncs sols ens cal un PC amb Linux i suport de XFS per a modificar les configuracions.
El que ens interessa, el smb.conf.
Mirant les opcions de configuració del samba 3.0.8, podem veure que hi han opcions que et permeten executar programes prèviament (o a posteriori) d'una connexió. Son:

  • prexec = nomexecutable ... (postexec = ...) <-Executa una ordre quan algú es conecta al recurs (l'executa com al mateix usuari)
  • root preexec = ... <- En aquest cas executa l'ordre com a usuari root

Voila!!!! Doncs, sols tenim que conectar per USB el disc al PC, i editar el smb.conf per a que al connectar-nos a un recurs execute un programa com a usuari root.
En el meu cas, el programa escollit és el netcat, que el podeu baixar compilat per a arm de la pagina de emdebian o des d'aquesta web
Així doncs, copiem el netcat a la partició XFS i el marquem com a executable (chmod +x netcat).
Editem l'arxiu smb.conf i en un recurs compartit li afegim la següent línia:
root preexec = /conf/netcat -e /bin/ash -l -p 10000
on estem diguent-li que execute el netcat amb els paràmetres d'escoltar (-l), que faça d'interfície amb el shell (-e /bin/ash) i que ens coenctem a ell pel port 10000 (-p 10000).
Així doncs, simplement ens em de connectar a aquest recurs (en el meu cas sh_toni) per a que inicie el netcat com a root.
Des del PC, emprarem també el netcat per a conectar-nos al NAS:
netcat 192.168.16.1 10000 (en cas de que el NAS tinga la IP 192.168.16.1)
i ja podrem executar programes, com per exemple:

ls / <=fa un llistat de l'arrel
dd if=/dev/mtd0 of=/mnt/data/public/mtd0.bin <= copia la primera part de la flash al disc dur (recurs Public). Hem de tenir en compte que la flash està partida amb 3 parts (/dev/mtd[0-2] i que si les juntem obtindrem el firmware. Açò ho podrem veure fent un:
dmesg

L'eixida del dmesg (junt amb free, mount i df):

Linux version 2.4.27-star (root@localhost.localdomain) (gcc version 3.3.6) #1308 Thu Mar 15 15:55:00 CST 2007
CPU: FA526id(wb) revision 1
ICache:16KB enabled, DCache:16KB enabled, BTB support
Machine: STAR_STR9100
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS0,38400 root=/dev/ram0 initrd=0x00900000,10M mem=32M@0x00000000
Relocating machine vectors to 0xffff0000
IRQ Timer1 at interrupt number 0x0 and clock 100000000(Hz)
Calibrating delay loop... 153.60 BogoMIPS
Memory: 32MB = 32MB total
Memory: 19328KB available (1952K code, 575K data, 220K init)
max_threads is :512 @@@@@@@@@@@@@@@@@
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
POSIX conformance testing by UNIFIX
CPU clock is 200 !!!!!!!!
PCI: bus0: Fast back to back transfers disabled
pci bridge found
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
do initcalls start
Starting kswapd
NTFS driver v1.1.22 [Flags: R/W]
SGI XFS with no debug enabled
i2c-core.o: i2c core module version 2.6.1 (20010830)
i2c-algo-bit.o: i2c bit algorithm module
pty: 256 Unix98 ptys configured
Str9100 Serial Driver version 5.05c (2001-07-08) with no serial options enabled
ttyS00 at 0xf7800000 (irq = 10) is a Star_UART
!!!!!!!!!!!!!mac is: 0:b:2b:c0:64:83
RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
loop: loaded (max 8 devices)
PPP generic driver version 2.4.2
PPP Deflate Compression module registered
PPP BSD Compression module registered
SCSI subsystem driver Revision: 1.00
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2
kmod: failed to exec /sbin/modprobe -s -k scsi_hostadapter, errno = 2

Amd/Fujitsu Extended Query Table v1.3 at 0x0040

number of CFI chips: 1
cfi_cmdset_0002: Disabling fast programming due to code brokenness.
Creating 3 MTD partitions on "str9100_flash":
0x00000000-0x00020000 : "Armboot"
0x00020000-0x007e0000 : "Kernel & Ramdisk"
0x007e0000-0x00800000 : "configure"
ftl_cs: FTL header not found.
ftl_cs: FTL header not found.
ftl_cs: FTL header not found.
i2c-core.o: adapter STR9100 I2C Adapter registered as adapter 0.
usb.c: registered new driver hub
hcd.c: ehci_hcd @ EHCI, EHCI_HCdriver
hcd.c: irq 24, pci mem fcc00000
usb.c: new USB bus registered, assigned bus number 1
hub.c: USB hub found
hub.c: 2 ports detected
host/usb-ohci.c: USB OHCI at membase 0xc3819000, IRQ 23
host/usb-ohci.c: usb-OHCI, OHCI_HCdriver
usb.c: new USB bus registered, assigned bus number 2
hub.c: USB hub found
hub.c: 2 ports detected
usb.c: registered new driver usblp
printer.c: v0.13: USB Printer Device Class driver
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 4096)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: AppleTalk 0.18a for Linux NET4.0
NetWinder Floating Point Emulator V0.97 (double precision)
do initcalls end
RAMDISK: Compressed image found at block 0
Freeing initrd memory: 10240K
VFS: Mounted root (ext2 filesystem) readonly.
Freeing init memory: 220K
UART IRQ_ports = c02a6018
UART IRQ at interrupt number 0xa
hub.c: new USB device EHCI-2, assigned address 2
scsi0 : SCSI emulation for USB Mass Storage devices

  • Vendor: MAXTOR S Model: TM3500320AS Rev:
    Type: Direct-Access ANSI SCSI revision: 02

port:50
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
X1205: I2C based RTC driver.
i2c-core.o: driver X1205 registered.
X1205: found X1205 on STR9100 I2C Adapter
ccr_write_enable: verify SR failed
i2c-core.o: client [X1205] registered to adapter [STR9100 I2C Adapter](pos. 0).
X1205: i2c_add_driver RTC driver.
X1205: misc_register RTC driver.
atr is 0
Partition check:
sda: sda1 sda2 sda3
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 2
ccr_write_enable: verify SR failed
Adding Swap: 473908k swap-space (priority -1)
XFS mounting filesystem sd(8,2)
Ending clean XFS mount for filesystem: sd(8,2)
XFS mounting filesystem sd(8,3)
ccr_write_enable: verify SR failed
Ending clean XFS mount for filesystem: sd(8,3)
....................free.................
total used free shared buffers
Mem: 29788 28648 1140 0 308
Swap: 473908 2080 471828
Total: 503696 30728 472968
....................mount.................
/dev/ram0 on / type ext2 (rw)
none on /proc type proc (rw)
/dev/sda2 on /conf type xfs (rw)
/dev/sda3 on /mnt/data type xfs (rw)
....................df.................
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/ram0 15863 14413 631 96% /
/dev/sda2 109888 264 109624 0% /conf
/dev/sda3 487650496 63216104 424434392 13% /mnt/data


Amb tot açò ja tenim un punt de partida per a ajustar a les nostres necessitats aquest sistema.

tornar