Ich habe eine Shell auf einem eingebetteten Gerät erhalten, eine /bin/sh
Shell, aber sie ist äußerst eingeschränkt. Sie ermöglicht mir nur die Ausführung einiger Befehle mit bestimmten Argumenten wie ifconfig
, oder iptables
, oder cat
(aber nicht cat whateverIwant
, nur cat /proc/cpuusage
zum Beispiel). Ich konnte diese Shell umgehen und jeden beliebigen Befehl ausführen. Grundsätzlich kann ich versuchen, jeden beliebigen Befehl auszuführen (sagen wir zum Beispiel), ping
aber sh
ich bin nicht dazu berechtigt.
Fehler: Versuch, in eine vorhandene Datei zu schreiben
/bin/sh: cannot create /bin/ping: Text file busy
Versuch, Ping auszuführen
/bin/sh: Access Denied.
Das Szenario ist also, dass ich nur sehr spezifische, nutzlose Befehle ausführen kann und außerdem in der Lage war, in Dateien zu schreiben und Dateinamen zu lesen (keine Dateien zu lesen). Beachten Sie, dass ich bestimmte Dateien, d. h. in verwendete Binärdateien, nicht schreiben kann, aber ich kann neue Dateien schreiben. Die einzige Idee, die mir beim Ausführen von Code helfen würde, ist die Verwendung einer Art „DLL-Hijacking“-Methode, wie sie in Windows verwendet wird, aber ich weiß nicht, ob das überhaupt machbar ist.
BEARBEITEN: Zusätzliche Informationen -> Das Gerät hat 2 USB-Anschlüsse und einen FTP-Dienst. Ich verbinde mich über Telnet.
Antwort1
Versuchen Sie, Ihren Code in /tmp auszuführen. Sie können Ihren Code hier abrufen, ausführbar machen und ausführen.