
У моего модема есть порт telnet, и когда я вхожу в этот порт, я получаю root shell на устройстве. Команды очень ограничены, но на устройстве есть пустое место. Могу ли я установить что-то вроде nmap на это устройство? Менеджера пакетов нет, и я предполагаю, что эта система работает на этапе 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
Могу ли я также установить dropbear на это устройство?
# 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
решение1
Из вывода команд следует, что все файловые системы, смонтированные в режиме чтения-записи, являются временными, не подкрепленными энергонезависимой памятью. /dev/root
вероятно, является символической ссылкой на одно из устройств , другие разделы, скорее всего, предназначены для загрузчика и конфигурации mtdblockX
. Хотя там может быть некоторое свободное место, если вы перемонтируете его в режиме чтения-записи,nmap
несколько мегабайт большойуже, не говоря уже о его зависимостях, и вряд ли поместится на вашем устройстве, даже если бы там было свободное место.
Похоже, что ваше устройство поддерживает USB. В зависимости от вашего определения «установки», решением будет монтирование USB-флешки, предварительно заполненной исполняемыми файлами, которые вы хотите запустить, или даже использование доступных ftpd
для удаленного изменения ее содержимого.
Самая сложная часть — это получение программного обеспечения, которое будет работать на вашем устройстве. Вам нужна сборка, скомпилированная для процессора MIPS на вашем устройстве, поэтому может потребоваться кросс-компиляция или поиск уже скомпилированного для вашего устройства двоичного файла (или устройства с совместимым процессором, ядром, libc и т. д.).