
Mein Modem hat einen Telnet-Port und wenn ich mich an diesem Port anmelde, erhalte ich eine Root-Shell im Gerät. Die Befehle sind sehr begrenzt, aber es gibt freien Speicherplatz im Gerät. Kann ich so etwas wie nmap auf diesem Gerät installieren? Es gibt keinen Paketmanager und ich vermute, dieses System läuft bei 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
Kann ich Dropbear auch auf diesem Gerät installieren?
# 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
Antwort1
Aus der Ausgabe der Befehle geht hervor, dass alle schreibgeschützten Dateisysteme temporär sind und nicht durch nichtflüchtigen Speicher gesichert sind. /dev/root
ist wahrscheinlich ein symbolischer Link zu einem der mtdblockX
Geräte, die anderen Partitionen sind wahrscheinlich für den Bootloader und die Konfiguration. Obwohl dort möglicherweise etwas freier Speicherplatz vorhanden ist, wenn Sie es schreibgeschützt erneut mounten, nmap
istmehrere Megabyte großbereits vorhanden, ganz zu schweigen von den Abhängigkeiten, und würde wahrscheinlich nicht auf Ihr Gerät passen, selbst wenn freier Speicherplatz vorhanden wäre.
Es sieht so aus, als ob Ihr Gerät USB-Unterstützung hat. Abhängig von Ihrer Definition von „installieren“ wäre eine Lösung, einen USB-Stick zu mounten, den Sie bereits mit den Binärdateien bestückt haben, die Sie ausführen möchten, oder sogar die verfügbaren zu verwenden, ftpd
um dessen Inhalt remote zu ändern.
Der schwierige Teil ist die Beschaffung der Software, die auf Ihrem Gerät läuft. Sie benötigen eine Version, die für den MIPS-Prozessor Ihres Geräts kompiliert ist. Daher ist möglicherweise eine Cross-Compilierung oder das Suchen einer bereits für Ihr Gerät kompilierten Binärdatei (oder ein Gerät mit kompatiblem Prozessor, Kernel, libc usw.) erforderlich.