Pesquisa de site

Explorando Linux Shell (Terminal) remotamente usando PHP Shell


PHP Shell ou Shell PHP é um programa ou script escrito em PHP (Php Hypertext Preprocessor) que fornece Terminal Linux (Shell é um conceito muito mais amplo) no Navegador. PHP Shell permite executar a maioria dos comandos shell no navegador, mas não todos devido às suas limitações.

Atualização: Recentemente, encontrei uma ferramenta muito promissora chamada 'Wetty (Web + tty)', que fornece acesso completo ao terminal Linux através de um protocolo HTTP ou HTTPS e permite executar todos os comandos e programas do Linux como se você estivesse sentado na frente de um terminal real ou virtual.

Para obter mais informações sobre a instalação e uso do Wetty, visite: Como instalar o Wetty para acessar o terminal Linux pelo navegador da Web

PHP Shell é muito útil na execução de comandos Shell em servidores web remotos, semelhante ao Telnet e SSH. Pode ser útil para mover, descompactar e manipular arquivos maiores ou em massa no servidor Web. Administrar e manter um servidor web usando PHP Shell é muito mais fácil, desde que o usuário tenha conhecimento prático de programas Shell.

Quando já existiam Telnet e SSH, qual a necessidade do phpshell, é uma pergunta que pode vir à sua mente. A resposta é – em muitos casos, o firewall é tão restritivo que nada, além do HTTP(S), passa, nesse caso o phpshell permite que você obtenha acesso ao shell em um servidor remoto.

No entanto, você não pode executar um programa GUI ou um script/programa interativo usando PHP Shell. Pode ser uma limitação, mas essa limitação é uma vantagem, pois a desativação da GUI significa maior segurança.

Baixar PHPShell

A versão mais recente pode ser baixada aqui:

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

Como instalar o shell PHP

Como dito acima, PHP Shell é escrito em PHP então você não precisa instalá-lo, basta mover o arquivo arquivado para seu apache/ diretório httpd e, claro, você deve ter o Apache e o PHP instalados.

Instale Apache e PHP

Instale em sistemas baseados em Debian usando o comando apt-get.

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

Instale em sistemas baseados em Red Hat usando o comando yum.

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

Por padrão, o diretório de trabalho do apache/http é:

na distribuição baseada em Debian /var/www

na distribuição baseada em Red Hat /var/www/html

Nota: Pode ser alterado para qualquer outra pasta e é recomendado como medida de segurança.

Mova o arquivo PHP Shell baixado para o diretório de trabalho do Apache. Aqui estou usando o sistema Debian, então meu diretório de trabalho do Apache é.

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

Descompacte o shell do php

tar -zxvf phpshell-2.4.tar.gz

Remova o arquivo compactado.

rm -rf phpshell-2.4.tar.gz

Renomeie a pasta do shell php para algo difícil de adivinhar, como medida de segurança. Por exemplo, mudo para a pasta phpshell (agora tecmint-nix) e renomeio phpshell.php para index.php para que você seja redirecionado diretamente para a página de índice e não para o conteúdo da pasta.

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

Tudo bem, é hora de abrir seu navegador da Web e navegar até “http://127.0.0.1/tecmint-nix“.

Por padrão, nenhum nome de usuário ou senha funcionará, portanto você precisa adicionar nome de usuário e senha manualmente.

Para criar um nome de usuário e senha chame o script pwhash.php já na pasta phpshell como “http://127.0.0.1/tecmint-nix/pwhash.php“.

Digite Nome de usuário e senha na página php acima e clique em ‘Atualizar‘.

Conforme declarado na seção Resultado, você precisa adicionar a linha sha copiando e colando em config.php no [user] seção.

Abra o arquivo config.php usando seu editor favorito.

nano config.php

Adicione a linha.

tecmint = "sha1:673a19a5:7e4b922b64a6321716370dad1fed192cdb661170"

Como está na [seção de usuário], obviamente seu sha1 será único com base em seu nome de usuário e senha .

Salve o arquivo config.php com as alterações atuais e saia dele.

Agora é hora de fazer login. Visite http://127.0.0.1/tecmint-nix. Faça login usando seu ‘Nome de usuário‘ e ‘Senha‘.

Sim, você fez login com sucesso no seu phpshell. Agora você pode executar a maior parte do programa shell tão suavemente como se estivesse executando esses comandos e scripts em seu próprio sistema.

Certos gargalos do PHP Shell

  1. Nenhuma entrada adicional suportada, ou seja, uma vez iniciado um programa, nenhum script interativo pode ser usado.
  2. Todo o servidor web está configurado para atingir o tempo limite em um determinado período de tempo, digamos 30 segundos. Esta limitação é do servidor web/Apache e não do phpshell.
  3. Cada comando no phpshell deve ser estritamente um liner. Phpshell não entende comando em continuação ou comando multilinhas como em loops.

Lembre-se que é muito importante ter o PHP Shell protegido por senha, ou então todos poderão bisbilhotar seus arquivos e talvez também excluí-los! Reserve um tempo para proteger sua instalação do PHP Shell.

Este artigo tem como objetivo conscientizá-lo sobre o aspecto mais amplo e a implementação do shell de uma forma muito lúcida.

Isso é tudo por agora, de mim. Em breve estarei aqui novamente com outro tópico interessante que vocês vão adorar ler. Até lá, fique atento e conectado ao tecmint. Aproveite!