웹사이트 검색

PHP 쉘을 사용하여 원격으로 Linux 쉘(터미널) 탐색


PHP 쉘 또는 쉘 PHPPHP(Php 하이퍼텍스트 전처리기)로 작성된 프로그램 또는 스크립트로, PHP 하이퍼텍스트 전처리기 >Linux 터미널(은 훨씬 더 넓은 개념임) 브라우저. PHP 셸을 사용하면 브라우저에서 대부분의 셸 명령을 실행할 수 있지만 제한 사항으로 인해 전부 실행할 수는 없습니다.

업데이트: 최근에 저는 완전한 Linux 터미널 액세스를 제공하는 'Wetty(Web + tty)'라는 매우 유망한 도구를 발견했습니다. HTTP 또는 HTTPS 프로토콜을 통해 마치 실제 또는 가상 터미널 앞에 앉아 있는 것처럼 모든 Linux 명령과 프로그램을 실행할 수 있습니다.

Wetty 설치 및 사용에 관한 자세한 내용은 웹 브라우저를 통해 Linux 터미널에 액세스하기 위해 Wetty를 설치하는 방법을 참조하세요.

PHP 셸TelnetSSH와 유사하게 원격 웹 서버에서 셸 명령을 실행하는 데 매우 유용합니다. 웹 서버에서 더 큰 파일이나 대용량 파일을 이동, 압축 해제 및 처리하는 데 유용할 수 있습니다. 사용자가 쉘 프로그램에 대한 실무 지식을 갖고 있다면 PHP 쉘을 사용하여 웹서버를 관리하고 유지하는 것이 훨씬 쉽습니다.

이미 TelnetSSH가 있었을 때, phpshell이 무엇이 필요한가라는 질문이 떠오를 수도 있습니다. 대답은 – 대부분의 경우 방화벽이 너무 제한적이어서 HTTP(S) 외에는 아무것도 통과하지 못합니다. 이 경우 phpshell을 사용하면 원격 서버에서 셸 액세스를 얻을 수 있습니다.

그러나 PHP Shell을 사용하여 GUI 프로그램이나 대화형 스크립트/프로그램을 실행할 수 없습니다. 제한이 있을 수 있지만 GUI를 비활성화하면 보안이 높아지므로 이 제한은 도움이 됩니다.

PHP 쉘 다운로드

최신 버전은 여기에서 다운로드할 수 있습니다:

  1. http://sourceforge.net/projects/phpshell/?source=dlp

PHP 쉘을 설치하는 방법

위에서 설명한 대로 PHP 셸PHP로 작성되었으므로 설치할 필요가 없습니다. 보관된 파일을 작업 중인 apache/ httpd 디렉토리이며, 물론 ApachePHP가 설치되어 있어야 합니다.

아파치와 PHP를 설치하세요

apt-get 명령을 사용하여 Debian 기반 시스템에 설치합니다.

apt-get install apache2 
apt-get install php5 libapache2-mod-auth-mysql php5-mysql
service apache2 start

yum 명령을 사용하여 Red Hat 기반 시스템에 설치합니다.

yum install httpd 
yum install php php-mysql
service httpd start

기본적으로 apache/http의 작업 디렉터리는 다음과 같습니다.

Debian 기반 배포판 /var/www

Red Hat 기반 배포판 /var/www/html

참고: 다른 폴더로 변경할 수 있으며 보안 조치로 권장됩니다.

다운로드한 PHP 셸 아카이브 파일을 Apache 작업 디렉터리로 이동합니다. 여기서는 Debian 시스템을 사용하고 있으므로 Apache 작업 디렉터리는 다음과 같습니다.

mv phpshell-2.4.tar.gz /var/www/

PHP 쉘 압축 풀기

tar -zxvf phpshell-2.4.tar.gz

압축 파일을 제거하세요.

rm -rf phpshell-2.4.tar.gz

보안 조치로 PHP 쉘 폴더의 이름을 추측하기 어려운 이름으로 바꿉니다. 예를 들어, phpshell(현재 tecmint-nix) 폴더로 이동하고 phpshell.php의 이름을 index.php 로 바꿉니다. 폴더 내용이 아닌 색인 페이지로 직접 리디렉션됩니다.

mv phpshell-2.4 tecmint-nix 
cd tecmint-nix/
mv phpshell.php index.php

좋습니다. 이제 웹 브라우저를 열고 "http://127.0.0.1/tecmint-nix"로 이동할 시간입니다.

기본적으로 사용자 이름 또는 비밀번호는 작동하지 않으므로 사용자 이름비밀번호를 수동으로 추가해야 합니다.

사용자 이름과 비밀번호를 생성하려면 "http://127.0.0.1/tecmint-nix/pwhash.php"와 같은 phpshell 폴더에 이미 있는 pwhash.php 스크립트를 호출하세요.

위 PHP 페이지에 사용자 이름비밀번호를 입력하고 '업데이트'를 클릭하세요.

결과 섹션에 명시된 대로 [user]의 config.php에 복사하여 붙여넣어 sha 라인을 그대로 추가해야 합니다. 부분.

원하는 편집기를 사용하여 config.php 파일을 엽니다.

nano config.php

라인을 추가하세요.

tecmint = "sha1:673a19a5:7e4b922b64a6321716370dad1fed192cdb661170"

[사용자 섹션]에 있는 것처럼 귀하의 sha1은 귀하의 사용자 이름비밀번호에 따라 고유하게 됩니다. .

현재 변경 사항을 적용하여 config.php 파일을 저장하고 종료합니다.

이제 로그인할 차례입니다. http://127.0.0.1/tecmint-nix를 방문하세요. '사용자 이름' 및 '비밀번호'를 사용하여 로그인하세요.

네, phpshell에 성공적으로 로그인했습니다. 이제 자신의 시스템에서 해당 명령과 스크립트를 실행하는 것처럼 대부분의 쉘 프로그램을 원활하게 실행할 수 있습니다.

PHP Shell의 특정 병목 현상

  1. 추가 입력은 지원되지 않습니다. 즉, 프로그램이 시작되면 대화형 스크립트를 사용할 수 없습니다.
  2. 모든 웹서버는 특정 시간(예: 30초)에 시간 초과되도록 구성됩니다. 이 제한은 phpshell이 아닌 webserver/Apache에 관한 것입니다.
  3. phpshell의 각 명령은 엄격히 하나의 라이너여야 합니다. Phpshell은 연속 명령이나 루프와 같은 여러 줄 명령을 이해하지 못합니다.

PHP 쉘을 비밀번호로 보호하는 것이 매우 중요하다는 점을 기억하세요. 그렇지 않으면 모든 사람이 파일을 엿보고 삭제할 수도 있습니다! PHP 셸 설치를 보호하는 데 시간을 투자하시기 바랍니다.

이 글의 목적은 쉘의 더 넓은 측면과 구현을 훨씬 명쾌하게 이해하도록 하는 것입니다.

지금은 그게 전부입니다. 저는 여러분이 읽고 싶어할 또 다른 흥미로운 주제를 가지고 곧 다시 찾아오겠습니다. 그때까지 tecmint에 계속 관심을 갖고 연결해 주세요. 즐기세요!