Επίθεση brute force μέσω XML-RPC σε WordPress
Το XML-RPC (XML Remote Procedure Call) είναι ένα πρωτόκολλο επικοινωνίας που επιτρέπει σε εφαρμογές να επικοινωνούν μεταξύ τους μέσω του διαδικτύου. Το WordPress XML-RPC είναι μια υλοποίηση του πρωτοκόλλου XML-RPC που χρησιμοποιείται από το σύστημα διαχείρισης περιεχομένου (CMS) WordPress.
Το XML-RPC του WordPress παρέχει ένα σύνολο από δημόσιες μεθόδους που επιτρέπουν στους χρήστες να εκτελούν λειτουργίες στο WordPress μέσω απομακρυσμένων κλήσεων. Μερικές από τις κύριες λειτουργίες που μπορούν να πραγματοποιηθούν μέσω XML-RPC περιλαμβάνουν τη δημοσίευση νέων άρθρων, την επεξεργασία άρθρων, τη λήψη λίστας κατηγοριών και άλλες λειτουργίες διαχείρισης περιεχομένου.
Συνήθως, όταν επιχειρούμε να δοκιμάσουμε με επίθεση bruteforce για έναν κωδικό πρόσβασης, το σύστημα βλέπει μια προσπάθεια σύνδεσης για κάθε κωδικό πρόσβασης που δοκιμάζουμε.
Μόλις φτάσουμε σε κάποιο όριο προσπαθειών, το σύστημα θα μας κλειδώσει έξω.
Ωστόσο, το XMLRPC έχει ένα σύστημα “system.multicall” όπου μπορούμε να στείλουμε εκατοντάδες ή χιλιάδες κωδικούς πρόσβασης με ένα μόνο αίτημα HTTP. Ο χάκερ μπορεί να χρησιμοποιήσει το XMLRPC για την παρουσίαση χιλιάδων διαπιστευτηρίων χωρίς τον κίνδυνο κλειδώματος ή άλλης παρεμβολής από συσκευές ασφαλείας.
Το XMLRPC κυκλοφόρησε στο WordPress 2.6 και από την έκδοση 3.5, είναι ενεργοποιημένο από προεπιλογή. Αυτή η ευπάθεια έχει αντιμετωπιστεί σε νεότερες εκδόσεις του WordPress, αλλά γνωρίζουμε όλοι ότι υπάρχουν εκατομμύρια μη ενημερωμένοι ιστότοποι WordPress στο Διαδίκτυο. Απλώς πρέπει να είμαστε προσεκτικοί.
Βήμα #1: Λήψη και εγκατάσταση του WordPress XML-RPC Brute Force
Το πρώτο βήμα, φυσικά, είναι να εκκινήσετε το Kali και να ανοίξετε ένα τερματικό. Διότι αυτό το εργαλείο ΔΕΝ είναι ενσωματωμένο στο Kali, θα πρέπει να το κατεβάσουμε και να το εγκαταστήσουμε. Αυτό σημαίνει ότι αν χρησιμοποιείτε μια διαφορετική έκδοση του Linux, αυτές οι οδηγίες θα λειτουργήσουν εξίσου καλά και για εσάς.
Μπορούμε να αποκτήσουμε αυτό το εργαλείο από το github.com, οπότε χρειάζεται μόνο να χρησιμοποιήσουμε την εντολή git clone για να το ανακτήσουμε, όπως παρακάτω:
kali > git clone http://github.com/1N3/WordPress-XMLRPC-Brute-Force-Exploit
Τώρα που κατεβάσαμε το εργαλείο στο σύστημά μας, ας επιβεβαιώσουμε ότι βρίσκεται εκεί.
kali > ls -l
Όπως μπορούμε να δούμε παραπάνω, δημιουργήσαμε έναν κατάλογο με το όνομα WordPress-XMLRPC-Brute-Force-Exploit. Τώρα, ας μεταβούμε σε αυτόν τον κατάλογο.
kali > cd WordPress-XMLRPC-Brute-Force-Exploi
t
Όπως μπορείτε να δείτε παραπάνω, υπάρχουν δύο εκδόσεις, μια λίστα κωδικών πρόσβασης και ένα αρχείο README. Θα χρησιμοποιήσουμε την έκδοση v2.
Βήμα #2: Εύρεση Χρηστών με το wpscan
Τώρα που έχουμε το εργαλείο μας έτοιμο για χρήση, ας χρησιμοποιήσουμε και το wpscan για να βρούμε ορισμένους χρήστες από μια ιστοσελίδα WordPress.
Βρήκα αυτόν τον ιστότοπο χρησιμοποιώντας μερικές από τις Google hacks που περιέγραψα στο άρθρο μου για τον εντοπισμό ιστότοπων WordPress.
Για να βρούμε τους users μπορούμε να το κάνουμε με την παρακάτω εντολή
kali > wpscan -u <domain> --enumerate u
Στο <domain> θα βάλετε την σελίδα που θέλετε!!
Όταν το wpscan αρχίσει ψάχνει με την παραπάνω εντολή, εντοπίζει την εκδοση του wordpress για παράδειγμα αυτη η σελίδα που δοκιμάζω εγώ χρησιμοποιείWordPress 4.6.1 και στη συνέχεια ψάχνει για όλους τους(users) όπως φαίνεται στην εικόνα.
Τώρα που έχουμε τους χρήστες, ας δούμε αν μπορούμε να εκτελέσουμε μια επίθεση Brute-Force χρησιμοποιώντας το XMLRPC!
Εμεις στο παραδειγμά μας θα χρησιμοποιήσουμε τον χρήστη taskfleet, δηλαδή το bruteforce θα γίνει σε αυτον.
Βήμα #3: Επίθεση Brute Force την μέθοδο XMLRPC
Το τελικός βήμα είναι να χρησιμοποιήσουμε το εργαλείο XMLRPC στους παραπάνω χρήστες που βρήκαμε με το wpscan.
Όταν βρείτε τον σωστό κωδικό πρόσβασης, το πρόγραμμα θα σταματήσει και θα σας δείξει τον κωδικό.
Πριν χρησιμοποιήσουμε, θα πρέπει να δόσουμε την παρακάτω εντολή για να αλλάξουμε τα δικαιώματα στο αρχείο και να το κάνουμε εκτελέσιμο.
kali > chmod 755 wordpress-xmlrpc-brute-v2.py
Τώρα ας το τρέξουμε
kali > ./wordpress-xmlrpc-brute-v2.py
Και μετα
python xmlrpc_exploit.py http://ο-ιστοτοπός-σας.com/xmlrpc.php αρχείο-κωδικών.txt ονομα-στοχου
Αντικαταστήστε το “http://ο-ιστοτοπός-σας.com/xmlrpc.php” με τον ιστότοπου WordPress σας, το “αρχείο-κωδικών.txt” με τη διαδρομή του αρχείου κωδικών πρόσβασης σας και το “ονομα-στοχου” με το όνομα χρήστη που θέλετε να επιτεθείτε. Το όνομα χρήστη είναι αυτα που πήραμε παραπάνω με το wpscan.
Σε περίπτωση που ο βρεθεί ο κωδικός θα σας εμφανίσει κάτι σαν το παρακάτω
Σε λίγα λεπτά, βρήκαμε τον κωδικό πρόσβασης για τον χρήστη “taskfleet”. Με αυτόν τον κωδικό πρόσβασης, τώρα συνδεόμαστε (wp-login) και έχουμε πλήρη έλεγχο αυτού του ιστότοπου!