Udforskning af Linux Shell (Terminal) eksternt ved hjælp af PHP Shell


PHP Shell eller Shell PHP er et program eller script skrevet i PHP (Php Hypertext Preprocessor), der giver Linux Terminal (Shell er et meget bredere koncept) i Browser. Med PHP Shell kan du udføre de fleste shell-kommandoer i browseren, men ikke alt på grund af dens begrænsninger.

Opdatering: For nylig har jeg fundet et meget lovende værktøj kaldet 'Wetty (Web + tty)', som giver en komplet Linux-terminaladgang over en HTTP- eller HTTPS-protokol og giver dig mulighed for at udføre alle Linux-kommandoer og programmer, som om du sad foran en ægte eller virtuel terminal.

For mere information om installation og brug af Wetty besøg: Sådan installeres Wetty for at få adgang til Linux Terminal via webbrowser

PHP Shell er meget nyttigt ved udførelse af Shell-kommandoer på fjernwebserver, svarende til Telnet og SSH. Det kan være nyttigt at flytte, pakke ud og håndtere større filer eller bulkfiler på webserveren. Administration og vedligeholdelse af en webserver ved hjælp af PHP Shell er meget lettere, forudsat at brugeren har arbejdskendskab til Shell-programmer.

Når der allerede var Telnet og SSH, hvad er behovet for phpshell, er et spørgsmål, der kan komme til at tænke på dig. Svaret er - i mange tilfælde er firewallen så begrænsende, at intet, bortset fra HTTP (S), kommer igennem, i så fald giver phpshell dig adgang til shell-adgangen på en ekstern server.

Du kan dog ikke udføre et GUI-program eller et interaktivt script/program ved hjælp af PHP Shell. Det kan være, at det er begrænsning, men denne begrænsning er en velsignelse, da GUI-deaktivering betyder højere sikkerhed.

Download PHP Shell

Den seneste version kan downloades herfra:

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

Sådan installeres PHP Shell

Som nævnt ovenfor er PHP Shell skrevet i PHP, så du behøver ikke at installere det, bare flyt den arkiverede fil til din fungerende apache/httpd-mappe, og selvfølgelig skal du have Apache og PHP installeret.

Installer på Debian-baserede systemer ved hjælp af apt-get-kommandoen.

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

Installer på Red Hat-baserede systemer ved hjælp af kommandoen yum.

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

Som standard arbejdskatalog for apache/http er:

på Debian-baseret distro/var/www

på Red Hat-baseret distro/var/www/html

Bemærk: Det kan ændres til enhver anden mappe, og det anbefales som en sikkerhedsforanstaltning.

Flyt den downloadede PHP Shell arkivfil til Apache arbejdskatalog. Her bruger jeg Debian-systemet, så min Apache-arbejdsmappe er.

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

Udpak php-skal

# tar -zxvf phpshell-2.4.tar.gz

Fjern den komprimerede fil.

# rm -rf phpshell-2.4.tar.gz

Omdøb php shell-mappen til noget, der er svært at gætte, som en sikkerhedsforanstaltning. For eksempel flytter jeg til mappen phpshell (nu tecmint-nix) og omdøber phpshell.php til index.php, så du omdirigeres direkte til indekssiden og ikke indholdet af mappen.

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

Fint, det er tid til at åbne din webbrowser og navigere til “http://127.0.0.1/tecmint-nix“.

Som standard fungerer intet brugernavn eller adgangskode, hvorfor du skal tilføje brugernavn og adgangskode manuelt.

For at oprette et brugernavn og en adgangskode skal du ringe til pwhash.php-scriptet allerede i phpshell-mappen som “http://127.0.0.1/tecmint-nix/pwhash.php“.

Indtast brugernavn og adgangskode på ovenstående php-side, og klik på 'Opdater'.

Som nævnt i resultatsektionen skal du tilføje sha-linjen som ved at kopiere og indsætte i config.php i [bruger] -sektionen.

Åbn config.php-fil ved hjælp af din foretrukne editor.

# nano config.php

Tilføj linjen.

tecmint = "sha1:673a19a5:7e4b922b64a6321716370dad1fed192cdb661170"

Som det er i [brugerafsnittet], vil din sha1 naturligvis være unik baseret på dit brugernavn og din adgangskode.

Gem config.php-filen med de aktuelle ændringer, og afslut den.

Nu er det tid til at logge ind. Besøg http://127.0.0.1/tecmint-nix. Log ind med dit 'Brugernavn' og 'Adgangskode'.

Ja, du har med succes logget ind på din phpshell. Nu kan du udføre mest shell-programmet så glat, som hvis du kører disse kommandoer og scripts på dit eget system.

Visse flaskehalse i PHP Shell

  1. Intet yderligere input understøttes, dvs. når et program er lanceret, kan der ikke bruges et interaktivt script.
  2. Al webserveren er konfigureret til timeout på en bestemt tidsramme, f.eks. 30 sek. Denne begrænsning er webserver/Apache og ikke phpshell.
  3. Hver kommando i phpshell skal være strengt en linie. Phpshell forstår ikke kommando i fortsættelse eller en kommando med flere linjer som i sløjfer.

Husk, at det er meget vigtigt at have PHP Shell-adgangskode beskyttet, ellers vil alle være i stand til at snuse i dine filer og måske også være i stand til at slette dem! Tag dig tid til at beskytte din installation af PHP Shell.

Denne artikel har til formål at gøre dig opmærksom på det bredere aspekt og implementering af shell på en meget klar måde.

Det er alt for nu, fra mig. Jeg vil snart være her igen med et andet interessant emne, som folk vil elske at læse. Indtil da skal du holde dig opdateret og tilsluttet tecmint. God fornøjelse!