Búsqueda de sitios web

Explorando Linux Shell (Terminal) de forma remota usando PHP Shell


PHP Shell o Shell PHP es un programa o script escrito en PHP (Preprocesador de Hipertexto PHP) que proporciona Terminal Linux (Shell es un concepto mucho más amplio) en el Navegador. PHP Shell le permite ejecutar la mayoría de los comandos de shell en el navegador, pero no todos debido a sus limitaciones.

Actualización: Recientemente, encontré una herramienta muy prometedora llamada 'Wetty (Web + tty)', que proporciona un acceso completo a la terminal Linux. a través de un protocolo HTTP o HTTPS y le permite ejecutar todos los comandos y programas de Linux como si estuviera sentado frente a una terminal real o virtual.

Para obtener más información sobre la instalación y el uso de Wetty, visite: Cómo instalar Wetty para acceder a la terminal Linux a través del navegador web

PHP Shell es muy útil para ejecutar comandos Shell en un servidor web remoto, similar a Telnet y SSH. Puede resultar útil para mover, descomprimir y manejar archivos más grandes o archivos masivos en un servidor web. Administrar y mantener un servidor web utilizando PHP Shell es mucho más fácil, siempre que el usuario tenga conocimientos prácticos de los programas Shell.

Cuando ya existían Telnet y SSH, cuál es la necesidad de phpshell, es una pregunta que puede venir a su mente. La respuesta es: en muchos casos, el firewall es tan restrictivo que nada, aparte de HTTP(S), pasa, en ese caso phpshell le permite obtener acceso al shell en un servidor remoto.

Sin embargo, no puede ejecutar un programa GUI o un script/programa interactivo usando PHP Shell. Podría ser una limitación, pero esta limitación es una bendición, ya que deshabilitar la GUI significa mayor seguridad.

Descargar PHP Shell

La última versión se puede descargar desde aquí:

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

Cómo instalar PHP Shell

Como se indicó anteriormente, PHP Shell está escrito en PHP, por lo que no necesita instalarlo, simplemente mueva el archivo comprimido a su apache de trabajo. httpd y por supuesto debes tener Apache y PHP instalados.

Instalar Apache y PHP

Instale en sistemas basados en Debian usando el comando apt-get.

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

Instale en sistemas basados en Red Hat usando el comando yum.

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

Por defecto, el directorio de trabajo de apache/http es:

en la distribución basada en Debian /var/www

en la distribución basada en Red Hat /var/www/html

Nota: Se puede cambiar a cualquier otra carpeta y se recomienda como medida de seguridad.

Mueva el archivo PHP Shell descargado al directorio de trabajo de Apache. Aquí estoy usando el sistema Debian, por lo que mi directorio de trabajo Apache es.

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

Descomprimir el shell php

tar -zxvf phpshell-2.4.tar.gz

Elimina el archivo comprimido.

rm -rf phpshell-2.4.tar.gz

Cambie el nombre de la carpeta php shell a algo difícil de adivinar, como medida de seguridad. Por ejemplo, me muevo a la carpeta phpshell (ahora tecmint-nix) y cambio el nombre de phpshell.php a index.php. para que sea redirigido directamente a la página de índice y no al contenido de la carpeta.

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

Bien, es hora de abrir su navegador web y navegar hasta "http://127.0.0.1/tecmint-nix".

De forma predeterminada, ningún nombre de usuario o contraseña funcionará, por lo tanto, deberá agregar el nombre de usuario y la contraseña manualmente.

Para crear un nombre de usuario y contraseña, llame al script pwhash.php que ya se encuentra en la carpeta phpshell como “http://127.0.0.1/tecmint-nix/pwhash.php”.

Ingrese nombre de usuario y contraseña en la página PHP anterior y haga clic en 'Actualizar'.

Como se indica en la sección Resultado, debe agregar la línea sha copiándola y pegándola en config.php en el [usuario] sección.

Abra el archivo config.php usando su editor favorito.

nano config.php

Agrega la línea.

tecmint = "sha1:673a19a5:7e4b922b64a6321716370dad1fed192cdb661170"

Como está en la [sección de usuario], obviamente su sha1 será único según su nombre de usuario y contraseña. .

Guarde el archivo config.php con los cambios actuales y salga.

Ahora es el momento de iniciar sesión. Visita http://127.0.0.1/tecmint-nix. Inicie sesión con su 'Nombre de usuario' y 'Contraseña'.

Sí, has iniciado sesión correctamente en tu phpshell. Ahora puede ejecutar la mayor parte del programa Shell con la misma facilidad que si estuviera ejecutando esos comandos y scripts en su propio sistema.

Ciertos cuellos de botella de PHP Shell

  1. No se admiten entradas adicionales, es decir, una vez que se inicia un programa, no se puede utilizar ningún script interactivo.
  2. Todo el servidor web está configurado para que se agote el tiempo de espera en un período de tiempo determinado, digamos 30 segundos. Esta limitación es del servidor web/Apache y no de phpshell.
  3. Cada comando en phpshell debe ser estrictamente de una sola línea. Phpshell no entiende el comando de continuación o un comando de varias líneas como en los bucles.

Recuerde que es muy importante tener PHP Shell protegido con contraseña, de lo contrario, todos podrán espiar sus archivos y tal vez también eliminarlos. Tómese el tiempo para proteger su instalación de PHP Shell.

Este artículo tiene como objetivo informarle sobre el aspecto más amplio y la implementación de Shell de una manera mucho más lúcida.

Eso es todo por ahora, de mi parte. Pronto estaré aquí nuevamente con otro tema interesante que a ustedes les encantará leer. Hasta entonces, estad atentos y conectados a tecmint. ¡Disfruta!