Εξερεύνηση του Linux Shell (Terminal) από απόσταση με χρήση PHP Shell


Το PHP Shell ή το Shell PHP είναι ένα πρόγραμμα ή σενάριο γραμμένο σε PHP (Php Hypertext Preprocessor) που παρέχει Τερματικό Linux (Το Shell είναι μια πολύ ευρύτερη έννοια) στο πρόγραμμα περιήγησης. Το PHP Shell σάς επιτρέπει να εκτελείτε τις περισσότερες εντολές φλοιού στο πρόγραμμα περιήγησης, αλλά όχι όλες λόγω των περιορισμών του.

Ενημέρωση: Πρόσφατα, βρήκα ένα πολλά υποσχόμενο εργαλείο που ονομάζεται 'Wetty (Web + tty)', το οποίο παρέχει ένα πλήρες Linux πρόσβαση τερματικού μέσω πρωτοκόλλου HTTP ή HTTPS και σας δίνει τη δυνατότητα να εκτελείτε όλες τις εντολές και τα προγράμματα Linux σαν να κάθεστε μπροστά σε ένα πραγματικό ή εικονικό τερματικό.

Για περισσότερες πληροφορίες σχετικά με την εγκατάσταση και τη χρήση του Wetty επισκεφθείτε: Πώς να εγκαταστήσετε το Wetty για πρόσβαση στο τερματικό Linux μέσω του προγράμματος περιήγησης Ιστού

Το PHP Shell είναι πολύ χρήσιμο για την εκτέλεση εντολών Shell σε απομακρυσμένο διακομιστή ιστού, παρόμοιο με το Telnet και το SSH. Μπορεί να είναι χρήσιμο για τη μετακίνηση, την αποσυμπίεση και το χειρισμό μεγαλύτερων αρχείων ή μαζικών αρχείων στον Web-Server. Η διαχείριση και η συντήρηση ενός διακομιστή ιστού χρησιμοποιώντας το PHP Shell είναι πολύ πιο εύκολη, υπό την προϋπόθεση ότι ο χρήστης έχει εργασιακές γνώσεις σχετικά με τα προγράμματα Shell.

Όταν υπήρχε ήδη το Telnet και το SSH, ποια είναι η ανάγκη του phpshell, είναι μια ερώτηση που μπορεί να έρχεται στο μυαλό σας. Η απάντηση είναι – σε πολλές περιπτώσεις, το τείχος προστασίας είναι τόσο περιοριστικό που τίποτα, εκτός από το HTTP(S), δεν περνάει, σε αυτήν την περίπτωση το phpshell σάς επιτρέπει να αποκτήσετε πρόσβαση στο φλοιό σε έναν απομακρυσμένο διακομιστή.

Ωστόσο, δεν μπορείτε να εκτελέσετε ένα πρόγραμμα GUI ή ένα διαδραστικό σενάριο/πρόγραμμα χρησιμοποιώντας PHP Shell, θα μπορούσε να είναι περιορισμός, αλλά αυτός ο περιορισμός είναι ευλογία, καθώς η απενεργοποίηση GUI σημαίνει υψηλότερη ασφάλεια.

Κατεβάστε το PHP Shell

Μπορείτε να κατεβάσετε την πιο πρόσφατη έκδοση από εδώ:

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

Πώς να εγκαταστήσετε το PHP Shell

Όπως αναφέρθηκε παραπάνω το PHP Shell είναι γραμμένο σε PHP, επομένως δεν χρειάζεται να το εγκαταστήσετε, απλώς μετακινήστε το αρχειοθετημένο αρχείο στο λειτουργικό apache/ Κατάλογος httpd και φυσικά πρέπει να έχετε εγκατεστημένα τα Apache και PHP.

Εγκαταστήστε Apache και PHP

Εγκαταστήστε σε συστήματα που βασίζονται στο Debian χρησιμοποιώντας την εντολή apt-get.

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

Εγκαταστήστε σε συστήματα που βασίζονται σε Red Hat χρησιμοποιώντας την εντολή yum.

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

Ο προεπιλεγμένος κατάλογος εργασίας του apache/http είναι:

σε διανομή που βασίζεται στο Debian /var/www

σε διανομή με βάση το Red Hat /var/www/html

Σημείωση: Μπορεί να αλλάξει σε οποιονδήποτε άλλο φάκελο και συνιστάται ως μέτρο ασφαλείας.

Μετακινήστε το ληφθέν αρχείο αρχειοθέτησης PHP Shell στον κατάλογο εργασίας του 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

Ωραία, ήρθε η ώρα να ανοίξετε το πρόγραμμα περιήγησής σας στο Web και να μεταβείτε στη διεύθυνση http://127.0.0.1/tecmint-nix.

Από προεπιλογή, κανένα όνομα χρήστη ή κωδικός πρόσβασης δεν θα λειτουργεί, επομένως πρέπει να προσθέσετε όνομα χρήστη και κωδικό πρόσβασης με μη αυτόματο τρόπο.

Για να δημιουργήσετε ένα όνομα χρήστη και έναν κωδικό πρόσβασης, καλέστε το σενάριο pwhash.php που βρίσκεται ήδη στο φάκελο phpshell όπως http://127.0.0.1/tecmint-nix/pwhash.php.

Εισαγάγετε Όνομα χρήστη και κωδικό πρόσβασης στην παραπάνω σελίδα php και κάντε κλικ στην επιλογή Ενημέρωση.

Όπως αναφέρεται στην ενότητα Αποτελέσματα, πρέπει να προσθέσετε τη γραμμή sha ως έχει, αντιγράφοντας και επικολλώντας στο config.php στο [χρήστης] Ενότητα.

Ανοίξτε το αρχείο 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 δευτερόλεπτα. Αυτός ο περιορισμός αφορά webserver/Apache και όχι phpshell.
  3. Κάθε εντολή στο phpshell πρέπει να είναι αυστηρά μία γραμμή. Το Phpshell δεν κατανοεί την εντολή στη συνέχεια ή μια εντολή πολλαπλών γραμμών όπως στους βρόχους.

Να θυμάστε ότι είναι πολύ σημαντικό να έχετε το PHP Shell προστατεύεται με κωδικό πρόσβασης, διαφορετικά όλοι θα μπορούν να παρακολουθούν τα αρχεία σας και ίσως να μπορούν επίσης να τα διαγράψουν! Αφιερώστε χρόνο για να προστατέψετε την εγκατάσταση του PHP Shell.

Αυτό το άρθρο έχει σκοπό να σας ενημερώσει για την ευρύτερη πτυχή και την εφαρμογή του κελύφους με πολύ διαυγή τρόπο.

Αυτά είναι όλα προς το παρόν, από εμένα. Σύντομα θα είμαι ξανά εδώ με ένα άλλο ενδιαφέρον θέμα που θα λατρέψετε να διαβάσετε. Μέχρι τότε, μείνετε συντονισμένοι και συνδεδεμένοι στο tecmint. Απολαύστε!