WPScan: Εκατομμύρια websites σε όλο το κόσμο έχουν δημιουργηθεί από το πολύ γνωστό CMS εργαλείο που ονομάζεται WordPress. Αν το website σας είναι ένα από αυτά, γνωρίζετε για τις ευπάθειές του και πιο συγκεκριμένα για αυτές που σχετίζονται με το WordPress; Αν θέλετε να μάθετε πως μπορείτε να κρατήσετε ασφαλές το website σας από τέτοιες επιθέσεις, συνεχίστε να διαβάζετε.
Tο πιο δημοφιλές εργαλείο εύρεσης ευπαθειών που σχετίζονται με το WordPress, ονομάζεται WPScan και είναι ένα open source εργαλείο γραμμένο σε Ruby. Μπορείτε να το χρησιμοποιήσετε για να σκανάρετε το webiste σας για ευπάθειες που αφορούν την core WordPress έκδοση, τα plugins αλλά και τα themes που χρησιμοποιείτε. Επίσης, μπορείτε να εντοπίσετε αδύναμους κωδικούς πρόσβασης, χρήστες και θέματα παραμετροποιήσεων ασφαλείας. Η βάση δεδομένων που χρησιμοποιεί το WPScan με σκοπό την εύρεση των παραπάνω βρίσκεται στο πολύ γνωστό site wpvulndb.com και ανανεώνεται συνεχώς.
Πως να το εγκαταστήσετε;
Το WPScan βρίσκεται προ-εγκατεστημένο στα παρακάτω Linux distos:
Linux Ubuntu
Ένα φεγγάρι που εξαφανίστηκε ίσως διαμόρφωσε τον Άρη
StealC: Κατάχρηση kiosk mode του browser για κλοπή password
Λογισμικό ακουστικών βαρηκοΐας εγκρίθηκε για τα AirPods Pro
Για την εγκατάσταση σε περιβάλλον Ubuntu αρχικά εγκαταστήστε τα απαραίτητα dependencies:
sudo apt install libcurl4-openssl-dev libxml2 libxml2-dev libxslt1-dev ruby-dev build-essential libgmp-dev zlib1g-dev |
Στη συνέχεια – αν δεν υπάρχει ήδη εγκατεστημένο – εγκαταστήστε το git με σκοπό να κάνετε clone το git repository του WPScan:
sudo apt install git git clone https://github.com/wpscanteam/wpscan.git |
Ολοκληρώστε την εγκατάσταση με τις παρακάτω εντολές:
cd wpscan sudo gem install bundler bundle install –without test development |
Linux Debian
Σε περιβάλλον debian, εγκαταστήστε τα απαραίτητα dependencies, κάντε clone το git repository του WPScan και στη συνέχεια εγκαταστήστε το:
sudo apt install git ruby ruby-dev libcurl4-openssl-dev make zlib1g-dev git clone https://github.com/wpscanteam/wpscan.git cd wpscan sudo gem install bundler bundle install –without test development |
Windows
Αν επιθυμείτε να εγκαταστήσετε το WPScan σε περιβάλλον windows θα πρέπει να ακολουθήσετε τα παρακάτω βήματα:
- Εγκατάσταση Ruby
- Κατεβάστε το zip αρχείο που περιέχει τον installer της Ruby.
- Αποσυμπιέστε το φάκελο και εκτελέστε το αρχείο
- Διαλέξτε την επιθυμητή γλώσα και αποδεχτείτε το License Agreement.
- Διαλέξτε το φάκελο εγκατάστασης (ιδανικά στο path C:\Ruby**)
- Εγκατάσταση DevKit
- Κατεβάστε το DevKit για χρήση με Ruby έκδοσης 2.0 και μεγαλύτερη.
- Αποσυμπιέστε το φάκελο και εκτελέστε το αρχείο (αλλάξτε το default path σε C:\DevKit)
- Ανοίξτε command prompt με δικαιώματα διαχειριστή
- Περιηγηθείτε στο φάκελο εγκατάστασης χρησιμοποιώντας την εντολή cd C:\DevKit και στη συνέχεια εκτελέστε τις παρακάτω εντολές για να ολοκληρώσετε το binding του DevKit με τη Ruby:
ruby dk.rb init ruby dk.rb install |
- Εγκατάσταση cURL
- Κατεβάστε το εργαλείο cURL από εδώ και εκτελέστε τον wizard εγκατάστασης.
- Βεβαιωθείτε ότι κατά το setup έχετε επιλέξει για εγκατάσταση C headers, αρχεία lib και dll.
-
- Η εγκατάσταση πρέπει να γίνει στο filepath C:\Program Files (x86)\cURL.
- Ελέγξτε ότι το αρχείο libcurl.dll εγκαταστάθηκε επιτυχώς εδώ: C:\Program Files (x86)\cURL\dlls
- Εγκατάσταση WPScan
- Κατεβάστε το zip αρχείο που περιέχει τον installer από εδώ.
- Αποσυμπιέστε το φάκελο και εκτελέστε το αρχείο
- Διαλέξτε το φάκελο εγκατάστασης (C:\wpscan)
- Αποσυμπιέστε το data.zip στο φάκελο C:\wpscan με σκοπό να δημιουργηθεί το C:\wpscan\data
- Αντιγράψτε το libvurl.dll αρχείο στο filepath C:\Ruby22\bin
- Εγκατάσταση Ruby Gems
- Ανοίξτε command prompt
- Περιηγηθείτε στο C:\wpscan και
- Εκτελέστε τις παρακάτω εντολές:
gem install bundler gem install typhoeus gem install rspec-its gem install ruby-progressbar gem install nokogiri gem install terminal-table gem install webmock gem install simplecov gem install rspec gem install xml-simple gem install yajl-ruby gem install bundler && bundle install –without test |
Για να εκκινήσετε το WPScan, ενώ βρίσκεται στο φάκελο C:\wpscan εκτελέστε τη παρακάτω εντολή:
ruby wpscan.rb |
Πως να το χρησιμοποιήσετε
Ας δούμε τώρα μερικές από τις εντολές που μπορούμε να χρησιμοποιήσουμε με το WPScan.
Αρχικά μπορούμε να δούμε όλες τις δυνατές επιλογές που έχουμε εκτελώντας wpscan –help
root@kali-elena:~# wpscan --help _______________________________________________________________ __ _______ _____ \ \ / / __ \ / ____| \ \ /\ / /| |__) | (___ ___ __ _ _ __ (r) \ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \ \ /\ / | | ____) | (__| (_| | | | | \/ \/ |_| |_____/ \___|\__,_|_| |_| WordPress Security Scanner by the WPScan Team Version 3.6.3 Sponsored by Sucuri - https://sucuri.net @_WPScan_, @ethicalhack3r, @erwan_lr, @_FireFart_ _______________________________________________________________ Usage: wpscan [options] --url URL The URL of the blog to scan Allowed Protocols: http, https Default Protocol if none provided: http This option is mandatory unless update or help or hh or version is/are supplied -h, --help Display the simple help and exit --hh Display the full help and exit --version Display the version and exit -v, --verbose Verbose mode --[no-]banner Whether or not to display the banner Default: true -o, --output FILE Output to FILE -f, --format FORMAT Output results in the format supplied Available choices: cli-no-colour, cli-no-color, cli, json --detection-mode MODE Default: mixed Available choices: mixed, passive, aggressive --user-agent, --ua VALUE --random-user-agent, --rua Use a random user-agent for each scan --http-auth login:password -t, --max-threads VALUE The max threads to use Default: 5 --throttle MilliSeconds Milliseconds to wait before doing another web request. If used, the max threads will be set to 1. --request-timeout SECONDS The request timeout in seconds Default: 60 --connect-timeout SECONDS The connection timeout in seconds Default: 30 --disable-tls-checks Disables SSL/TLS certificate verification --proxy protocol://IP:port Supported protocols depend on the cURL installed --proxy-auth login:password --cookie-string COOKIE Cookie string to use in requests, format: cookie1=value1[; cookie2=value2] --cookie-jar FILE-PATH File to read and write cookies Default: /tmp/wpscan/cookie_jar.txt --force Do not check if the target is running WordPress --[no-]update Whether or not to update the Database --wp-content-dir DIR The wp-content directory if custom or not detected, such as "wp-content" --wp-plugins-dir DIR The plugins directory if custom or not detected, such as "wp-content/plugins" -e, --enumerate [OPTS] Enumeration Process Available Choices: vp Vulnerable plugins ap All plugins p Plugins vt Vulnerable themes at All themes t Themes tt Timthumbs cb Config backups dbe Db exports u User IDs range. e.g: u1-5 Range separator to use: '-' Value if no argument supplied: 1-10 m Media IDs range. e.g m1-15 Note: Permalink setting must be set to "Plain" for those to be detected Range separator to use: '-' Value if no argument supplied: 1-100 Separator to use between the values: ',' Default: All Plugins, Config Backups Value if no argument supplied: vp,vt,tt,cb,dbe,u,m Incompatible choices (only one of each group/s can be used): - vp, ap, p - vt, at, t --exclude-content-based REGEXP_OR_STRING Exclude all responses matching the Regexp (case insensitive) during parts of the enumeration. Both the headers and body are checked. Regexp delimiters are not required. --plugins-detection MODE Use the supplied mode to enumerate Plugins, instead of the global (--detection-mode) mode. Default: passive Available choices: mixed, passive, aggressive --plugins-version-detection MODE Use the supplied mode to check plugins versions instead of the --detection-mode or --plugins-detection modes. Default: mixed Available choices: mixed, passive, aggressive --plugins-threshold THRESHOLD Raise an error when the number of detected plugins via known locations reaches the threshold. Set to 0 to ignore the threshold. Default: 100 --themes-threshold THRESHOLD Raise an error when the number of detected themes via known locations reaches the threshold. Set to 0 to ignore the threshold. Default: 20 -P, --passwords FILE-PATH List of passwords to use during the password attack. If no --username/s option supplied, user enumeration will be run. -U, --usernames LIST List of usernames to use during the password attack. Examples: 'a1', 'a1,a2,a3', '/tmp/a.txt' --multicall-max-passwords MAX_PWD Maximum number of passwords to send by request with XMLRPC multicall Default: 500 --password-attack ATTACK Force the supplied attack to be used rather than automatically determining one. Available choices: wp-login, xmlrpc, xmlrpc-multicall --stealthy Alias for --random-user-agent --detection-mode passive --plugins-version-detection passive [!] To see full list of options use --hh. |
Η παρακάτω εντολή θα μας επιτρέψει να σκανάρουμε το website μας για ευπάθειες
wpscan –url www.mysite.gr
Αν θέλουμε να ελέγξουμε το site μας για ευπαθή plugin τότε πρέπει να χρησιμοποιήσουμε την παράμετρο –enumerate vp
wpscan –url www.mysite.gr –enumerate vp
Από τα αποτελέσματα θα δούμε αρκετές πληροφορίες και σε περίπτωση που υπάρχει κάποιο ευπαθές plugin θα το δούμε δίπλα από ένα κόκκινο θαυμαστικό. Σε μια τέτοια περίπτωση θα πρέπει να προχωρήσουμε σε άμεσο update.
Αν θέλουμε να ελέγξουμε για ευπαθή themes, η παράμετρος –enumerate vt θα μας βοηθήσει.
wpscan –url www.mysite.gr –enumerate vt
Επίσης, μπορούμε να δούμε τη λίστα με τους χρήστες και τα δικαιώματά τους χρησιμοποιώντας τη παράμετρο enumerate -u
wpscan –url www.mysite.gr –enumerate u
Περιμένουμε τα σχόλιά σας. Πως σας φάνηκες το WΡScan; Θα το χρησιμοποιήσετε;