# Εντοπισμός και αφαίρεση webshell

> Εντοπισμός webshell μετά το PHP2Shell: βρείτε ύποπτα αρχεία PHP, διεργασίες και συνδέσεις, διασώστε τα ίχνη και αφαιρέστε σωστά τις κερκόπορτες.

Πηγή: https://phpsos.de/el/ratgeber/webshell-erkennen/  
Ημερομηνία: 25/10/2026  
Πάροχος: PHP SOS, Επείγουσα βοήθεια PHP και ασφάλεια διακομιστών. Άμεση βοήθεια μέσω WhatsApp: https://wa.me/491736494914?text=%CE%93%CE%B5%CE%B9%CE%B1%20%CF%83%CE%B1%CF%82%2C%20PHP%20SOS%2C%20%CF%87%CF%81%CE%B5%CE%B9%CE%B1%CE%B6%CF%8C%CE%BC%CE%B1%CF%83%CF%84%CE%B5%20%CE%B2%CE%BF%CE%AE%CE%B8%CE%B5%CE%B9%CE%B1%20%CE%BC%CE%B5%20%CF%84%CE%BF%CE%BD%20%CE%B4%CE%B9%CE%B1%CE%BA%CE%BF%CE%BC%CE%B9%CF%83%CF%84%CE%AE%20PHP%20%CE%BC%CE%B1%CF%82.%20%CE%95%CF%84%CE%B1%CE%B9%CF%81%CE%B5%CE%AF%CE%B1%3A%20%E2%80%A6%20%CE%99%CF%83%CF%84%CF%8C%CF%84%CE%BF%CF%80%CE%BF%CF%82%3A%20%E2%80%A6

**Εν συντομία:** Μια webshell την αναγνωρίζετε από νέα ή τροποποιημένα αρχεία PHP σε ασυνήθιστες θέσεις, από ξένες διεργασίες του χρήστη του διακομιστή ιστού και από ασυνήθιστες συνδέσεις. Διασώστε τα ίχνη προτού διαγράψετε οτιδήποτε και επαναφέρετε τον κώδικα από καθαρή πηγή. Ένα patch από μόνο του δεν αφαιρεί μια κερκόπορτα.

## Γιατί οι webshells αποτελούν θέμα μετά το PHP2Shell

Οι ευπάθειες CVE-2026-109618 και CVE-2026-109619 στην ίδια την PHP επιτρέπουν την απομακρυσμένη εκτέλεση κακόβουλου κώδικα χωρίς σύνδεση. Ένας προφανής στόχος μετά από μια επιτυχημένη επίθεση είναι μια μόνιμη κερκόπορτα, δηλαδή μια webshell. Αυτή παραμένει ακόμη και αν η PHP έχει στο μεταξύ ενημερωθεί.

Σύμφωνα με δημοσιεύματα, μια πρώτη απόπειρα επίθεσης παρατηρήθηκε ήδη στις 17.10.2026, ενώ τα patches ακολούθησαν στις 21.10. Όποιος ήταν ευάλωτος σε αυτό το διάστημα πρέπει να ελέγξει στοχευμένα. Επιβεβαιωμένα Indicators of Compromise δεν έχουν δημοσιευθεί μέχρι στιγμής. Η αναζήτηση στηρίζεται γι' αυτό σε παρατηρήσεις συμπεριφοράς και όχι σε έτοιμη λίστα.

> **Δράστε άμεσα:**
> Αν βρείτε webshell σε διακομιστή με δεδομένα πελατών: μη διαγράψετε βιαστικά. Πρώτα διασώστε τα τεκμήρια, έπειτα απομονώστε τον διακομιστή και σχεδιάστε τη συνέχεια της διαχείρισης.

## Πώς εντοπίζετε μια webshell: έλεγχος αρχείων

Οι περισσότερες webshells είναι αρχεία PHP στον κατάλογο του ιστού. Ύποπτα είναι αρχεία που δημιουργήθηκαν ή τροποποιήθηκαν μετά τις 17.10., αρχεία PHP σε φακέλους uploads και cache, καθώς και αρχεία με συσκοτισμένο κώδικα. Οι παρακάτω εντολές δεν αλλάζουν τίποτα, απλώς απαριθμούν:

```bash
# Αρχεία PHP που τροποποιήθηκαν από τις 17.10.2026
find /var/www -type f -name "*.php*" -newermt "2026-10-17" -ls

# Αρχεία PHP σε φακέλους upload, cache ή tmp
find /var/www -type f -name "*.php*" \( -path "*upload*" -o -path "*cache*" -o -path "*tmp*" \) -ls

# Τυπική συσκότιση: eval σε συνδυασμό με αποκωδικοποίηση
grep -rlE "eval\s*\(\s*(base64_decode|gzinflate|str_rot13|gzuncompress)" /var/www --include="*.php"

# Ασυνήθιστα μακριές γραμμές δείχνουν συχνά συμπιεσμένο κώδικα
grep -rlE ".{3000,}" /var/www --include="*.php"
```

Τα αποτελέσματα είναι ενδείξεις, όχι αποδείξεις. Ορισμένα plugins χρησιμοποιούν νόμιμα κωδικοποιημένο κώδικα. Συγκρίνετε τα ύποπτα αρχεία με το αρχικό πακέτο του κατασκευαστή. Η πιο αξιόπιστη μέθοδος είναι η σύγκριση με αθροίσματα ελέγχου ή με ένα σύστημα ελέγχου εκδόσεων όπως το Git:

```bash
# Αποκλίσεις από την τελευταία γνωστή κατάσταση στο αποθετήριο Git
git -C /var/www/projekt status --porcelain
```

Μια χρονοσφραγίδα μπορεί να είναι πλαστή. Μην βασίζεστε γι' αυτό μόνο στην ημερομηνία τροποποίησης ενός αρχείου.

### Ποια χαρακτηριστικά κάνουν ένα αρχείο ύποπτο

| Χαρακτηριστικό | Γιατί προκαλεί υποψία |
|---|---|
| Αρχείο PHP σε φάκελο uploads ή εικόνων | Εκεί πρέπει να υπάρχουν μόνο μέσα (media) |
| Διπλή κατάληξη όπως `.jpg.php` ή `.php.png` | Μεταμφίεση σε ακίνδυνο αρχείο |
| Πολύ μακριές γραμμές χωρίς αλλαγή γραμμής | Τυπικό για συμπιεσμένο ή κρυπτογραφημένο κώδικα |
| Όνομα αρχείου παρόμοιο με αρχείο του πυρήνα, αλλά όχι στο αρχικό πακέτο | Μεταμφίεση σε γνωστό περιβάλλον |
| Ο ιδιοκτήτης ή τα δικαιώματα διαφέρουν από τα γειτονικά αρχεία | Το αρχείο δημιουργήθηκε με άλλον τρόπο |

Όσο περισσότερα χαρακτηριστικά συντρέχουν, τόσο μεγαλύτερη είναι η πιθανότητα ευρήματος. Ανοίξτε τα ύποπτα αρχεία μόνο ως κείμενο, ποτέ μέσω του προγράμματος περιήγησης, διότι μια κλήση μέσω του ιστότοπου θα εκτελούσε τον κώδικα.

## Έλεγχος διεργασιών, συνδέσεων και cronjobs

Μια ενεργή webshell αφήνει συχνά ίχνη εκτός του συστήματος αρχείων. Ο χρήστης του διακομιστή ιστού, π.χ. `www-data`, `apache` ή `nginx`, συνήθως δεν ξεκινά shells, εργαλεία δικτύου ή μεταγλωττιστές.

```bash
# Διεργασίες των τυπικών χρηστών του διακομιστή ιστού
ps -eo user,pid,ppid,lstart,cmd | grep -E "^(www-data|apache|nginx)"

# Ανοιχτές συνδέσεις δικτύου με την αντίστοιχη διεργασία
sudo ss -tunap | grep -E "php|www-data|apache|nginx"

# Προγραμματισμένες εργασίες του χρήστη του διακομιστή ιστού
sudo crontab -u www-data -l
ls -la /etc/cron.d /var/spool/cron 2>/dev/null
```

Ύποπτες είναι οι μόνιμες εξερχόμενες συνδέσεις προς άγνωστους προορισμούς, οι διεργασίες με κρυπτικά ονόματα και τα cronjobs που κατεβάζουν αρχεία από το διαδίκτυο. Ελέγξτε επιπλέον τα logs πρόσβασης για αιτήματα προς αρχεία που δεν υπήρχαν πριν. Πώς γίνεται αυτό, περιγράφει ο οδηγός [Ανάλυση των logs του διακομιστή ιστού μετά από επίθεση](https://phpsos.de/el/ratgeber/logfiles-auswerten/).

## Διάσωση ιχνών πριν από την αφαίρεση

Όποιος διαγράψει πρώτα χάνει την απάντηση στα σημαντικότερα ερωτήματα: Πώς μπήκε ο επιτιθέμενος, τι είδε, ποια δεδομένα επηρεάζονται; Τις απαντήσεις αυτές τις χρειάζεστε για μια πιθανή γνωστοποίηση βάσει ΓΚΠΔ, για τους ασφαλιστές και για την απόφαση αν κινδυνεύουν και άλλα συστήματα.

Λογική σειρά:

1. Τεκμηριώστε την κατάσταση: λίστα διεργασιών, συνδέσεις δικτύου, συνδεδεμένοι χρήστες.
2. Αντιγράψτε τα ύποπτα αρχεία και τα logs μαζί με άθροισμα ελέγχου, χωρίς να τα ανοίξετε ή να τα εκτελέσετε.
3. Αν είναι δυνατό, δημιουργήστε ένα είδωλο του συστήματος ή ένα snapshot της εικονικής μηχανής.
4. Αποσυνδέστε τον διακομιστή από το δίκτυο ή περιορίστε σημαντικά την πρόσβαση.

Σε συστήματα με ευαίσθητα δεδομένα ή πιθανή δικαστική διένεξη, η διάσωση πρέπει να γίνει με ορθή εγκληματολογική διαδικασία. Το υπόβαθρο θα βρείτε στη σελίδα [Εγκληματολογική ανάλυση IT μετά από επίθεση σε διακομιστή ιστού](https://phpsos.de/el/leistungen/it-forensik/).

## Σωστή αφαίρεση των webshells

Η διαγραφή ενός μεμονωμένου αρχείου σπάνια είναι το τέλος. Οι επιτιθέμενοι δημιουργούν συχνά πολλές προσβάσεις: περισσότερα αρχεία σε κρυφά σημεία, εγγραφές σε αρχεία διαμόρφωσης όπως `.htaccess` ή `.user.ini`, νέους λογαριασμούς διαχειριστή στην εφαρμογή ή cronjobs. Ένας αξιόπιστος καθαρισμός ακολουθεί αυτά τα βήματα:

- Φέρτε την PHP σε διορθωμένη κατάσταση (8.5.12, 8.4.27, 8.3.36, 8.2.35 ή επιβεβαιωμένο backport) και επανεκκινήστε όλες τις διεργασίες PHP.
- Στήστε ξανά τον κώδικα της εφαρμογής από καθαρή πηγή, αντί να επισκευάζετε μεμονωμένα αρχεία.
- Μεταφέρετε μόνο ελεγμένο περιεχόμενο, όπως uploads και βάση δεδομένων, και αναζητήστε εκεί στοχευμένα κώδικα που έχει εισαχθεί κρυφά.
- Αλλάξτε όλα τα διαπιστευτήρια: βάση δεδομένων, SSH, FTP, λογαριασμούς διαχειριστή, κλειδιά API.
- Περιορίστε τα δικαιώματα εγγραφής του διακομιστή ιστού στα απολύτως απαραίτητα και αποτρέψτε την εκτέλεση PHP στους φακέλους uploads.

Για το WordPress υπάρχουν δικά του τυπικά κρησφύγετα, που περιγράφει ο οδηγός [Εντοπισμός κερκόπορτων στο WordPress](https://phpsos.de/el/ratgeber/backdoor-wordpress-finden/). Στη συνέχεια ο ιστότοπος πρέπει να παρακολουθείται στενότερα για κάποιο διάστημα, ώστε να εντοπιστεί νωρίς μια νέα πρόσβαση.

## Πώς βοηθά συγκεκριμένα η PHP SOS;

- Διασώζουμε logs, αρχεία και την κατάσταση του συστήματος με ανιχνεύσιμο τρόπο, πριν αλλάξει οτιδήποτε.
- Αναζητούμε κερκόπορτες σε αρχεία, βάση δεδομένων, cronjobs και διαμόρφωση και αξιολογούμε τα ευρήματα.
- Στήνουμε ξανά την εφαρμογή από καθαρή πηγή, αλλάζουμε τις προσβάσεις και θωρακίζουμε τον διακομιστή.
- Τεκμηριώνουμε το περιστατικό μέχρι να ολοκληρωθεί, ως βάση για γνωστοποιήσεις και ασφαλιστές.

Τη διαδικασία ενός καθαρισμού περιγράφει η υπηρεσία [Αφαίρεση κακόβουλου λογισμικού και webshells](https://phpsos.de/el/leistungen/malware-entfernung/).


## Συχνές ερωτήσεις

**Τι είναι μια webshell;**  
Μια webshell είναι ένα αρχείο που έχει εισαχθεί κρυφά, συνήθως PHP, μέσω του οποίου οι επιτιθέμενοι μπορούν να ελέγχουν τον διακομιστή από απόσταση. Συχνά μεταμφιέζεται σε ακίνδυνο αρχείο με ανεπίφαντο όνομα και παραμένει ενεργή ακόμη και μετά από μια ενημέρωση.

**Βρίσκει ένα antivirus κάθε webshell;**  
Όχι. Οι σαρωτές αναγνωρίζουν γνωστά μοτίβα, ενώ νέες ή έντονα συσκοτισμένες παραλλαγές διαφεύγουν. Για το PHP2Shell δεν υπάρχουν επιπλέον δημοσιευμένα, επιβεβαιωμένα Indicators of Compromise, γι' αυτό η ανάλυση συμπεριφοράς είναι σημαντικότερη από μια λίστα υπογραφών.

**Αρκεί να διαγράψω το αρχείο που βρήκα;**  
Συνήθως όχι. Οι επιτιθέμενοι δημιουργούν συχνά πολλαπλές προσβάσεις, όπως περισσότερα αρχεία, cronjobs ή νέους λογαριασμούς διαχειριστή. Χωρίς ανάλυση της αιτίας και αλλαγή όλων των διαπιστευτηρίων, μια νέα πρόσβαση είναι πιθανή.

**Πρέπει να κάνω κάποια γνωστοποίηση αν βρω webshell;**  
Αν ενδέχεται να επηρεάζονται προσωπικά δεδομένα, μπορεί να υπάρχει υποχρέωση γνωστοποίησης βάσει ΓΚΠΔ, κατά κανόνα εντός 72 ωρών. Ξεκαθαρίστε το με τον υπεύθυνο προστασίας δεδομένων ή με δικηγόρο· αυτό δεν αποτελεί νομική συμβουλή.

## Πηγές

- [php.net: Ανακοινώσεις ασφαλείας](https://www.php.net/)
- [OWASP Cheat Sheet Series](https://cheatsheetseries.owasp.org/)
- [BSI: Ομοσπονδιακή Υπηρεσία Ασφάλειας Πληροφοριών (Γερμανία)](https://www.bsi.bund.de/)
- [ΓΚΠΔ άρθρο 33: Γνωστοποίηση στην εποπτική αρχή](https://dsgvo-gesetz.de/art-33-dsgvo/)
