
Meu modem tem uma porta telnet e quando faço login nessa porta recebo um shell root no dispositivo. Os comandos são muito limitados, mas há espaço vazio no dispositivo. Posso instalar algo como nmap neste dispositivo? Não há gerenciador de pacotes e acho que este sistema está rodando no init 1.
# cat /proc/partitions
major minor #blocks name
31 0 128 mtdblock0
31 1 64 mtdblock1
31 2 64 mtdblock2
31 3 1152 mtdblock3
31 4 6784 mtdblock4
31 5 8192 mtdblock5
# uname -a
Linux Air5453 2.6.30 #1 Wed Dec 3 18:43:00 EET 2014 mips GNU/Linux
# free
total used free shared buffers
Mem: 59456 35008 24448 0 4048
Swap: 0 0 0
Total: 59456 35008 24448
# busybox
BusyBox v1.14.1 (2014-12-03 18:47:37 EET) multi-call binary
Copyright (C) 1998-2008 Erik Andersen, Rob Landley, Denys Vlasenko
and others. Licensed under GPLv2.
See source distribution for full notice.
Usage: busybox [function] [arguments]...
or: function [arguments]...
BusyBox is a multi-call binary that combines many common Unix
utilities into a single executable. Most people will create a
link to busybox for each function they wish to use and BusyBox
will act like whatever it was invoked as!
Currently defined functions:
[, [[, arp, ash, basename, blkid, cat, chmod, cp, cut, date, depmod,
dhcprelay, dmesg, dumpleases, echo, egrep, eject, false, fgrep,
findfs, free, ftpd, fuser, getty, grep, halt, hostname, httpd,
ifconfig, init, inotifyd, insmod, kill, killall, klogd, ln, login,
ls, lsmod, lzmacat, makedevs, mdev, mkdir, mkdosfs, mkfs.vfat,
modprobe, mount, mv, pidof, ping, poweroff, ps, pwd, reboot, rm,
rmmod, route, sh, sleep, tar, telnetd, test, tftp, top, touch,
traceroute, true, udhcpc, udhcpd, umount, uname, unlzma, uptime,
vconfig, wget, which
Também posso instalar o dropbear neste dispositivo?
# clear
-sh: clear: not found
# mount
rootfs on / type rootfs (rw)
/dev/root on / type squashfs (ro,relatime)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
ramfs on /var type ramfs (rw,relatime)
ramfs on /dev type ramfs (rw,relatime)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
none on /proc/bus/usb type usbfs (rw,relatime)
# cat /proc/mounts
rootfs / rootfs rw 0 0
/dev/root / squashfs ro,relatime 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
ramfs /var ramfs rw,relatime 0 0
ramfs /dev ramfs rw,relatime 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
none /proc/bus/usb usbfs rw,relatime 0 0
Responder1
A partir da saída dos comandos, parece que todos os sistemas de arquivos montados em leitura e gravação são temporários, não suportados por memória não volátil. /dev/root
é provavelmente um link simbólico para um dos mtdblockX
dispositivos, as outras partições provavelmente serão para o bootloader e configuração. Embora possa haver algum espaço livre se você remontá-lo para leitura e gravação, nmap
évários megabytes de tamanhojá, sem falar nas dependências, e é improvável que caiba no seu dispositivo, mesmo que haja espaço livre.
Parece que seu dispositivo tem suporte para USB. Dependendo da sua definição de "instalar", uma solução seria montar uma unidade flash USB pré-preenchida com os binários que deseja executar ou até mesmo usar os disponíveis ftpd
para modificar seu conteúdo remotamente.
O difícil é adquirir o software que rodará no seu aparelho. Você precisa de uma compilação compilada para o processador MIPS no seu dispositivo, portanto, isso pode exigir compilação cruzada ou encontrar um binário já compilado para o seu dispositivo (ou um dispositivo com processador, kernel, libc e outros compatíveis).