제한된 BusyBox 셸

일부 임베디드 장치를 테스트하고 있는데 문서가 부족합니다. 장치에 텔넷을 연결하면 제한된 셸만 얻습니다.

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 

이것은 제한된 셸이며 명확하지 않습니다. 어떻게 전체 셸을 사용할 수 있나요?

답변

  • 필요한 명령은 chsh (셸 변경)입니다. 이는 shadow 또는 shadow-utils 패키지.
  • /etc/password를 수동으로 편집하여 쉘을 변경할 수도 있습니다. /bin/ash 다른 항목으로 :

    하지만 => 새 셸이 존재하지 않으면 잠길 수 있으므로주의하세요. !!!


root를 사용하여 위 중 하나를 수행합니다.

Answer

BusyBox는 주로 크기 최적화에 중점을두고 있으며 명령은 컴파일 시간 동안 luded / included. 따라서 추가 정보를 제공하지 않으면 매우 제한된 설치된 구성 요소 인 것 같습니다.

하지만 분명해야합니다. 이것은 장치의 펌웨어가 그 자체로 특정 유틸리티를 지원하지 않는다는 것을 의미하지는 않습니다. 이것이 명확하지 않다면 FAQ-Busybox 란 무엇입니까 섹션을 살펴 보시기 바랍니다. 일부 인용에서는이를 명확하게 설명해야합니다.

“FTP를 활성화 할 수 있습니까?” – “우리는”Foomatic-9000 펌웨어가 ftpd 애플릿이 활성화 된 Busybox 바이너리와 함께 제공되는지 여부를 모릅니다. (셸 프롬프트에 액세스 할 수있는 경우 “busybox ftpd –help”를 실행 해보십시오). 그렇다면 아마도 활성화 할 수있을 것입니다. 안타깝게도 Foomatic-9000 펌웨어가 다양한 서비스의 시작 및 중지를 관리하는 방법 (이미 ftpd 서비스가 비활성화되어있는 경우) 또는 Foomatic-9000에서 새 서비스를 생성하고 활성화하는 방법 ( 인터넷 검색을 시도해보세요. “

“SCP를 활성화 할 수 있습니까? ” – “Busybox-1.23.4에는 scp 애플릿이 없습니다. 그러나 Foomatic-9000에는 scp가 설치되어있을 수 있으며 (예 : dropbear가 설치되어있는 경우) 활성화 할 수 있습니다. 그렇지 않은 경우 빌드가 가능할 수 있습니다. 자체 scp 도구를 설치합니다. 인터넷 검색을 시도해보세요. “

제한된 기능에 집중하기보다는 특정 장치와 설치된 펌웨어에 더 집중해야합니다. Busybox 자체에 연결된 구성 요소 집합입니다.

설명

  • 좋습니다. cli 명령을 잊어 버렸습니다.

Answer

안타깝게도 요즘 대부분의 임베디드 장치 (예 : 라우터, IoT 장치 등)는 사용자가 내부 시스템에 액세스하지 못하도록 차단합니다. “해킹하거나 수정하지 마십시오. 이는 보호 기능이 항상 그다지 효과적이지는 않지만 mirai와 같은 봇넷의 작동을 방지하기위한 조치입니다.

제한된 busybox shell은 매우 일반적인 시나리오입니다. 운 좋게 말하면 다음과 같습니다. 일반적으로 busybox에는 기본 쉘이 필요합니다. ” 모든 종류의 사용자 인터페이스 (예 : telnet 또는 ssh). 즉, 해당 셸을 우회하고 기본 셸에서 명령을 실행할 수 있습니다 (예 : / bin / sh는 매우 일반적입니다).

busybox 샌드 박스를 이스케이프하기 전에 다음 :

  • 제조업체가이 기술을 패치하기 위해 busybox 셸을 수정했을 수 있습니다.
  • 기본 셸은 (전체 또는 부분) 권한이없는 셸일 수 있습니다. 즉, 명령을 실행할 수 있어도 작동하지 않거나 “충분한 권한이 없다는 메시지가 표시 될 수 있습니다.
  • 기본 셸은 다른 제한된 셸 (일반적이지 않음) 일 수도 있습니다.

준비가되면 다음 “트릭”을 시도 할 수 있습니다. (모든 의존 쉘 연산자)

다음과 같은 시도

echo "Hello World" & <your command> 

다음과 같은 경우 명령을 실행합니다.

  1. 바이너리를 사용할 수 있습니다 (기본적으로 시스템에 설치된 경우)
  2. 셸이 액세스 할 수 있습니다 (권한)

다음과 같은 다른 방법이 있습니다.

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

및 기타 변형 인터넷을 통해 찾거나 직접 시도 할 수 있습니다.

편집 : 쉘에서 탈출하여 추가 실행을 얻을 수있는 방법의 예를 추가하기 위해 편집 중입니다.

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

또는 직접 ./yourbinary

그게 아이디어입니다. chmod에 관해서는 죄송하지만 실행 권한을 부여하는 정확한 인수를 기억하지 못합니다.

EDIT2 : 쉘이 ash라고 표시하는 것을 발견했습니다. 따라서 busybox가 실행중인 (자동화 된) 스크립트에서 실행되었을 것입니다. 재에서. 이 경우 / bin / ash 셸에서 직접 명령을 실행하려고합니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다