Wordpress
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Χρησιμοποιήστε Trickest για να δημιουργήσετε και να αυτοματοποιήσετε ροές εργασίας που υποστηρίζονται από τα πιο προηγμένα εργαλεία της κοινότητας. Αποκτήστε πρόσβαση σήμερα:
Βασικές Πληροφορίες
Τα αρχεία που έχουν ανεβεί πηγαίνουν στο:
http://10.10.10.10/wp-content/uploads/2018/08/a.txt
Τα αρχεία θεμάτων μπορούν να βρεθούν στο /wp-content/themes/, οπότε αν αλλάξετε κάποιο php του θέματος για να αποκτήσετε RCE, πιθανότατα θα χρησιμοποιήσετε αυτή τη διαδρομή. Για παράδειγμα: Χρησιμοποιώντας θέμα twentytwelve μπορείτε να έχετε πρόσβαση στο 404.php αρχείο στο: /wp-content/themes/twentytwelve/404.php
Μια άλλη χρήσιμη διεύθυνση URL θα μπορούσε να είναι: /wp-content/themes/default/404.php
Στο wp-config.php μπορείτε να βρείτε τον κωδικό πρόσβασης root της βάσης δεδομένων.
Προεπιλεγμένες διαδρομές σύνδεσης για έλεγχο: /wp-login.php, /wp-login/, /wp-admin/, /wp-admin.php, /login/
Κύρια Αρχεία WordPress
index.php
license.txt
περιέχει χρήσιμες πληροφορίες όπως την έκδοση του WordPress που είναι εγκατεστημένη.wp-activate.php
χρησιμοποιείται για τη διαδικασία ενεργοποίησης μέσω email κατά την εγκατάσταση ενός νέου ιστότοπου WordPress.Φάκελοι σύνδεσης (μπορεί να έχουν μετονομαστεί για να κρυφτούν):
/wp-admin/login.php
/wp-admin/wp-login.php
/login.php
/wp-login.php
xmlrpc.php
είναι ένα αρχείο που αντιπροσωπεύει μια δυνατότητα του WordPress που επιτρέπει τη μετάδοση δεδομένων με HTTP που λειτουργεί ως μηχανισμός μεταφοράς και XML ως μηχανισμός κωδικοποίησης. Αυτός ο τύπος επικοινωνίας έχει αντικατασταθεί από το WordPress REST API.Ο φάκελος
wp-content
είναι ο κύριος κατάλογος όπου αποθηκεύονται τα πρόσθετα και τα θέματα.wp-content/uploads/
Είναι ο κατάλογος όπου αποθηκεύονται οποιαδήποτε αρχεία έχουν ανεβεί στην πλατφόρμα.wp-includes/
Αυτός είναι ο κατάλογος όπου αποθηκεύονται τα βασικά αρχεία, όπως πιστοποιητικά, γραμματοσειρές, αρχεία JavaScript και widgets.wp-sitemap.xml
Στις εκδόσεις WordPress 5.5 και μεγαλύτερες, το WordPress δημιουργεί ένα αρχείο sitemap XML με όλες τις δημόσιες αναρτήσεις και τους δημόσια ερωτήσιμους τύπους αναρτήσεων και ταξινομήσεις.
Μετά την εκμετάλλευση
Το αρχείο
wp-config.php
περιέχει πληροφορίες που απαιτούνται από το WordPress για να συνδεθεί στη βάση δεδομένων, όπως το όνομα της βάσης δεδομένων, ο διακομιστής της βάσης δεδομένων, το όνομα χρήστη και τον κωδικό πρόσβασης, τα κλειδιά και τα άλατα αυθεντικοποίησης, και το πρόθεμα του πίνακα της βάσης δεδομένων. Αυτό το αρχείο ρύθμισης μπορεί επίσης να χρησιμοποιηθεί για να ενεργοποιήσει τη λειτουργία DEBUG, η οποία μπορεί να είναι χρήσιμη στην αποσφαλμάτωση.
Δικαιώματα Χρηστών
Διαχειριστής
Συντάκτης: Δημοσιεύει και διαχειρίζεται τις αναρτήσεις του και άλλων
Συγγραφέας: Δημοσιεύει και διαχειρίζεται τις δικές του αναρτήσεις
Συμβολαιογράφος: Γράφει και διαχειρίζεται τις αναρτήσεις του αλλά δεν μπορεί να τις δημοσιεύσει
Συνδρομητής: Περιηγείται στις αναρτήσεις και επεξεργάζεται το προφίλ του
Παθητική Αρίθμηση
Λάβετε την έκδοση WordPress
Ελέγξτε αν μπορείτε να βρείτε τα αρχεία /license.txt
ή /readme.html
Μέσα στον κώδικα πηγής της σελίδας (παράδειγμα από https://wordpress.org/support/article/pages/):
grep
meta name
CSS link files
JavaScript files
Λάβετε Πρόσθετα
Λάβετε Θέματα
Εξαγωγή εκδόσεων γενικά
Χρησιμοποιήστε Trickest για να δημιουργήσετε και να αυτοματοποιήσετε ροές εργασίας που υποστηρίζονται από τα πιο προηγμένα εργαλεία της κοινότητας. Αποκτήστε πρόσβαση σήμερα:
Ενεργή αρίθμηση
Πρόσθετα και Θέματα
Πιθανότατα δεν θα μπορέσετε να βρείτε όλα τα πρόσθετα και τα θέματα που είναι διαθέσιμα. Για να τα ανακαλύψετε όλα, θα χρειαστεί να εκτελέσετε ενεργά Brute Force μια λίστα από πρόσθετα και θέματα (ελπίζουμε για εμάς ότι υπάρχουν αυτοματοποιημένα εργαλεία που περιέχουν αυτές τις λίστες).
Χρήστες
ID Brute: Λαμβάνετε έγκυρους χρήστες από έναν ιστότοπο WordPress εκτελώντας Brute Force στους αναγνωριστικούς αριθμούς χρηστών:
Αν οι απαντήσεις είναι 200 ή 30X, αυτό σημαίνει ότι το id είναι έγκυρο. Αν η απάντηση είναι 400, τότε το id είναι άκυρο.
wp-json: Μπορείτε επίσης να προσπαθήσετε να αποκτήσετε πληροφορίες σχετικά με τους χρήστες κάνοντας ερώτηση:
Ένα άλλο /wp-json/
endpoint που μπορεί να αποκαλύψει κάποιες πληροφορίες σχετικά με τους χρήστες είναι:
Σημειώστε ότι αυτό το endpoint εκθέτει μόνο χρήστες που έχουν κάνει μια ανάρτηση. Μόνο πληροφορίες σχετικά με τους χρήστες που έχουν ενεργοποιήσει αυτή τη δυνατότητα θα παρέχονται.
Επίσης σημειώστε ότι /wp-json/wp/v2/pages θα μπορούσε να διαρρεύσει διευθύνσεις IP.
Εξακρίβωση ονόματος χρήστη σύνδεσης: Όταν συνδέεστε στο
/wp-login.php
το μήνυμα είναι διαφορετικό αν το υποδεικνυόμενο όνομα χρήστη υπάρχει ή όχι.
XML-RPC
Εάν το xml-rpc.php
είναι ενεργό μπορείτε να εκτελέσετε brute-force πιστοποιητικών ή να το χρησιμοποιήσετε για να εκκινήσετε επιθέσεις DoS σε άλλους πόρους. (Μπορείτε να αυτοματοποιήσετε αυτή τη διαδικασία χρησιμοποιώντας αυτό για παράδειγμα).
Για να δείτε αν είναι ενεργό προσπαθήστε να αποκτήσετε πρόσβαση στο /xmlrpc.php και στείλτε αυτό το αίτημα:
Έλεγχος
Διαπιστευτήρια Bruteforce
wp.getUserBlogs
, wp.getCategories
ή metaWeblog.getUsersBlogs
είναι μερικές από τις μεθόδους που μπορούν να χρησιμοποιηθούν για brute-force διαπιστευτηρίων. Αν μπορέσετε να βρείτε οποιαδήποτε από αυτές, μπορείτε να στείλετε κάτι σαν:
Το μήνυμα "Λάθος όνομα χρήστη ή κωδικός" μέσα σε μια απάντηση κωδικού 200 θα πρέπει να εμφανίζεται αν τα διαπιστευτήρια δεν είναι έγκυρα.
Χρησιμοποιώντας τα σωστά διαπιστευτήρια μπορείτε να ανεβάσετε ένα αρχείο. Στην απάντηση, η διαδρομή θα εμφανίζεται (https://gist.github.com/georgestephanis/5681982)
Επίσης, υπάρχει ένας ταχύτερος τρόπος για να κάνετε brute-force τα διαπιστευτήρια χρησιμοποιώντας system.multicall
καθώς μπορείτε να δοκιμάσετε αρκετά διαπιστευτήρια στην ίδια αίτηση:
Παράκαμψη 2FA
Αυτή η μέθοδος προορίζεται για προγράμματα και όχι για ανθρώπους, και είναι παλιά, επομένως δεν υποστηρίζει 2FA. Έτσι, αν έχετε έγκυρα διαπιστευτήρια αλλά η κύρια είσοδος προστατεύεται από 2FA, μπορείτε να εκμεταλλευτείτε το xmlrpc.php για να συνδεθείτε με αυτά τα διαπιστευτήρια παρακάμπτοντας το 2FA. Σημειώστε ότι δεν θα μπορείτε να εκτελέσετε όλες τις ενέργειες που μπορείτε να κάνετε μέσω της κονσόλας, αλλά μπορεί να μπορείτε να φτάσετε σε RCE όπως το εξηγεί ο Ippsec στο https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s
DDoS ή σάρωση θυρών
Αν μπορείτε να βρείτε τη μέθοδο pingback.ping μέσα στη λίστα, μπορείτε να κάνετε το Wordpress να στείλει μια αυθαίρετη αίτηση σε οποιονδήποτε host/port. Αυτό μπορεί να χρησιμοποιηθεί για να ζητήσετε χιλιάδες Wordpress ιστοσελίδες να προσεγγίσουν μία τοποθεσία (έτσι προκαλείται ένα DDoS σε αυτή την τοποθεσία) ή μπορείτε να το χρησιμοποιήσετε για να κάνετε το Wordpress να σκανάρει κάποιο εσωτερικό δίκτυο (μπορείτε να υποδείξετε οποιαδήποτε θύρα).
Αν λάβετε faultCode με τιμή μεγαλύτερη από 0 (17), σημαίνει ότι η θύρα είναι ανοιχτή.
Ρίξτε μια ματιά στη χρήση του system.multicall
στην προηγούμενη ενότητα για να μάθετε πώς να εκμεταλλευτείτε αυτή τη μέθοδο για να προκαλέσετε DDoS.
DDoS
wp-cron.php DoS
Αυτό το αρχείο συνήθως υπάρχει κάτω από τη ρίζα της ιστοσελίδας Wordpress: /wp-cron.php
Όταν αυτό το αρχείο είναι προσβάσιμο, εκτελείται ένα "βαρύ" MySQL query, οπότε θα μπορούσε να χρησιμοποιηθεί από επιτιθέμενους για να προκαλέσει μια DoS.
Επίσης, από προεπιλογή, το wp-cron.php
καλείται σε κάθε φόρτωση σελίδας (κάθε φορά που ένας πελάτης ζητά οποιαδήποτε σελίδα Wordpress), το οποίο σε ιστοσελίδες με υψηλή επισκεψιμότητα μπορεί να προκαλέσει προβλήματα (DoS).
Συνιστάται να απενεργοποιήσετε το Wp-Cron και να δημιουργήσετε ένα πραγματικό cronjob μέσα στον διακομιστή που να εκτελεί τις απαραίτητες ενέργειες σε τακτά χρονικά διαστήματα (χωρίς να προκαλεί προβλήματα).
/wp-json/oembed/1.0/proxy - SSRF
Δοκιμάστε να αποκτήσετε πρόσβαση στο https://worpress-site.com/wp-json/oembed/1.0/proxy?url=ybdk28vjsa9yirr7og2lukt10s6ju8.burpcollaborator.net και η ιστοσελίδα Worpress μπορεί να σας κάνει ένα αίτημα.
Αυτή είναι η απάντηση όταν δεν λειτουργεί:
SSRF
Αυτό το εργαλείο ελέγχει αν η methodName: pingback.ping και για τη διαδρομή /wp-json/oembed/1.0/proxy και αν υπάρχει, προσπαθεί να τις εκμεταλλευτεί.
Automatic Tools
Αποκτήστε πρόσβαση αντικαθιστώντας ένα bit
Περισσότερο από μια πραγματική επίθεση, αυτό είναι μια περιέργεια. Στο CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man θα μπορούσατε να αλλάξετε 1 bit από οποιοδήποτε αρχείο wordpress. Έτσι, θα μπορούσατε να αλλάξετε τη θέση 5389
του αρχείου /var/www/html/wp-includes/user.php
για να NOP την NOT (!
) λειτουργία.
Panel RCE
Τροποποίηση ενός php από το θέμα που χρησιμοποιείται (απαιτούνται διαπιστευτήρια διαχειριστή)
Εμφάνιση → Επεξεργαστής Θέματος → 404 Πρότυπο (στα δεξιά)
Αλλάξτε το περιεχόμενο για ένα php shell:
Αναζητήστε στο διαδίκτυο πώς μπορείτε να αποκτήσετε πρόσβαση σε αυτή τη ενημερωμένη σελίδα. Σε αυτή την περίπτωση, πρέπει να αποκτήσετε πρόσβαση εδώ: http://10.11.1.234/wp-content/themes/twentytwelve/404.php
MSF
Μπορείτε να χρησιμοποιήσετε:
to get a session.
Plugin RCE
PHP plugin
Ενδέχεται να είναι δυνατή η μεταφόρτωση αρχείων .php ως plugin. Δημιουργήστε το php backdoor σας χρησιμοποιώντας για παράδειγμα:
Στη συνέχεια, προσθέστε ένα νέο plugin:
Μεταφορτώστε το plugin και πατήστε Εγκατάσταση Τώρα:
Κάντε κλικ στο Προχώρα:
Πιθανώς αυτό δεν θα κάνει τίποτα φαινομενικά, αλλά αν πάτε στα Μέσα, θα δείτε το shell σας να έχει μεταφορτωθεί:
Αποκτήστε πρόσβαση σε αυτό και θα δείτε τη διεύθυνση URL για να εκτελέσετε το reverse shell:
Uploading and activating malicious plugin
Αυτή η μέθοδος περιλαμβάνει την εγκατάσταση ενός κακόβουλου plugin που είναι γνωστό ότι είναι ευάλωτο και μπορεί να εκμεταλλευτεί για να αποκτήσει ένα web shell. Αυτή η διαδικασία πραγματοποιείται μέσω του πίνακα ελέγχου του WordPress ως εξής:
Plugin Acquisition: Το plugin αποκτάται από μια πηγή όπως το Exploit DB όπως εδώ.
Plugin Installation:
Μεταβείτε στον πίνακα ελέγχου του WordPress, στη συνέχεια πηγαίνετε στο
Dashboard > Plugins > Upload Plugin
.Μεταφορτώστε το αρχείο zip του κατεβασμένου plugin.
Plugin Activation: Μόλις το plugin εγκατασταθεί επιτυχώς, πρέπει να ενεργοποιηθεί μέσω του πίνακα ελέγχου.
Exploitation:
Με το plugin "reflex-gallery" εγκατεστημένο και ενεργοποιημένο, μπορεί να εκμεταλλευτεί καθώς είναι γνωστό ότι είναι ευάλωτο.
Το Metasploit framework παρέχει μια εκμετάλλευση για αυτήν την ευπάθεια. Φορτώνοντας το κατάλληλο module και εκτελώντας συγκεκριμένες εντολές, μπορεί να δημιουργηθεί μια συνεδρία meterpreter, παρέχοντας μη εξουσιοδοτημένη πρόσβαση στον ιστότοπο.
Σημειώνεται ότι αυτή είναι μόνο μία από τις πολλές μεθόδους για την εκμετάλλευση ενός ιστότοπου WordPress.
Το περιεχόμενο περιλαμβάνει οπτικά βοηθήματα που απεικονίζουν τα βήματα στον πίνακα ελέγχου του WordPress για την εγκατάσταση και ενεργοποίηση του plugin. Ωστόσο, είναι σημαντικό να σημειωθεί ότι η εκμετάλλευση ευπαθειών με αυτόν τον τρόπο είναι παράνομη και ανήθικη χωρίς την κατάλληλη εξουσιοδότηση. Αυτές οι πληροφορίες θα πρέπει να χρησιμοποιούνται υπεύθυνα και μόνο σε νομικό πλαίσιο, όπως η δοκιμή διείσδυσης με ρητή άδεια.
Για πιο λεπτομερή βήματα ελέγξτε: https://www.hackingarticles.in/wordpress-reverse-shell/
From XSS to RCE
WPXStrike: WPXStrike είναι ένα script σχεδιασμένο να κλιμακώνει μια Cross-Site Scripting (XSS) ευπάθεια σε Remote Code Execution (RCE) ή άλλες κρίσιμες ευπάθειες στο WordPress. Για περισσότερες πληροφορίες ελέγξτε αυτή την ανάρτηση. Παρέχει υποστήριξη για τις εκδόσεις Wordpress 6.X.X, 5.X.X και 4.X.X και επιτρέπει να:
Privilege Escalation: Δημιουργεί έναν χρήστη στο WordPress.
(RCE) Custom Plugin (backdoor) Upload: Μεταφορτώστε το προσαρμοσμένο plugin (backdoor) σας στο WordPress.
(RCE) Built-In Plugin Edit: Επεξεργαστείτε τα ενσωματωμένα plugins στο WordPress.
(RCE) Built-In Theme Edit: Επεξεργαστείτε τα ενσωματωμένα θέματα στο WordPress.
(Custom) Custom Exploits: Προσαρμοσμένες εκμεταλλεύσεις για τρίτα plugins/θέματα WordPress.
Post Exploitation
Extract usernames and passwords:
Αλλαγή κωδικού πρόσβασης διαχειριστή:
Wordpress Plugins Pentest
Επιφάνεια Επίθεσης
Η γνώση του πώς ένα plugin του Wordpress μπορεί να εκθέσει λειτουργικότητα είναι το κλειδί για να βρείτε ευπάθειες στη λειτουργικότητά του. Μπορείτε να βρείτε πώς ένα plugin μπορεί να εκθέσει λειτουργικότητα στα παρακάτω σημεία και μερικά παραδείγματα ευάλωτων plugins σε αυτή την ανάρτηση στο blog.
wp_ajax
Ένας από τους τρόπους με τους οποίους ένα plugin μπορεί να εκθέσει συναρτήσεις στους χρήστες είναι μέσω των χειριστών AJAX. Αυτοί μπορεί να περιέχουν σφάλματα λογικής, εξουσιοδότησης ή ταυτοποίησης. Επιπλέον, είναι αρκετά συχνό ότι αυτές οι συναρτήσεις θα βασίζονται τόσο στην ταυτοποίηση όσο και στην εξουσιοδότηση στην ύπαρξη ενός wordpress nonce το οποίο οποιοσδήποτε χρήστης που έχει ταυτοποιηθεί στην εγκατάσταση του Wordpress μπορεί να έχει (ανεξάρτητα από τον ρόλο του).
Αυτές είναι οι συναρτήσεις που μπορούν να χρησιμοποιηθούν για να εκθέσουν μια λειτουργία σε ένα plugin:
Η χρήση του nopriv
καθιστά το endpoint προσβάσιμο από οποιονδήποτε χρήστη (ακόμα και από μη αυθεντικοποιημένους).
Επιπλέον, αν η συνάρτηση απλώς ελέγχει την εξουσιοδότηση του χρήστη με τη συνάρτηση wp_verify_nonce
, αυτή η συνάρτηση ελέγχει απλώς αν ο χρήστης είναι συνδεδεμένος, συνήθως δεν ελέγχει τον ρόλο του χρήστη. Έτσι, οι χρήστες με χαμηλά προνόμια μπορεί να έχουν πρόσβαση σε ενέργειες με υψηλά προνόμια.
REST API
Είναι επίσης δυνατό να εκθέσετε συναρτήσεις από το wordpress καταχωρώντας μια rest AP χρησιμοποιώντας τη συνάρτηση register_rest_route
:
Ο permission_callback
είναι μια συνάρτηση callback που ελέγχει αν ένας συγκεκριμένος χρήστης είναι εξουσιοδοτημένος να καλέσει τη μέθοδο API.
Αν χρησιμοποιηθεί η ενσωματωμένη συνάρτηση __return_true
, απλώς θα παραλείψει τον έλεγχο δικαιωμάτων χρήστη.
Άμεση πρόσβαση στο αρχείο php
Φυσικά, το Wordpress χρησιμοποιεί PHP και τα αρχεία μέσα στα plugins είναι άμεσα προσβάσιμα από το διαδίκτυο. Έτσι, σε περίπτωση που ένα plugin εκθέτει οποιαδήποτε ευάλωτη λειτουργικότητα που ενεργοποιείται απλώς με την πρόσβαση στο αρχείο, θα είναι εκμεταλλεύσιμο από οποιονδήποτε χρήστη.
Προστασία WordPress
Τακτικές Ενημερώσεις
Βεβαιωθείτε ότι το WordPress, τα plugins και τα θέματα είναι ενημερωμένα. Επίσης, επιβεβαιώστε ότι η αυτόματη ενημέρωση είναι ενεργοποιημένη στο wp-config.php:
Επίσης, εγκαταστήστε μόνο αξιόπιστα πρόσθετα και θέματα WordPress.
Πρόσθετα Ασφαλείας
Άλλες Συστάσεις
Αφαιρέστε τον προεπιλεγμένο χρήστη admin
Χρησιμοποιήστε ισχυρούς κωδικούς πρόσβασης και 2FA
Περιοδικά ελέγξτε τα δικαιώματα των χρηστών
Περιορίστε τις προσπάθειες σύνδεσης για να αποτρέψετε επιθέσεις Brute Force
Μετονομάστε το αρχείο
wp-admin.php
και επιτρέψτε πρόσβαση μόνο εσωτερικά ή από συγκεκριμένες διευθύνσεις IP.
Χρησιμοποιήστε Trickest για να δημιουργήσετε και να αυτοματοποιήσετε ροές εργασίας με τη βοήθεια των πιο προηγμένων εργαλείων της κοινότητας. Αποκτήστε Πρόσβαση Σήμερα:
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Last updated