Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to clean a Hacked WordPress website [Workshop] - Μάκης Μουρελάτος

How to clean a Hacked WordPress website [Workshop] - Μάκης Μουρελάτος

WordCamp Athens 2019

Στο πρώτο μέρος του Workshop θα γίνει μία παρουσίαση των θεωριών ασφάλειας υπολογιστικών συστημάτων και λογισμικού και των διαφορετικών τύπων παραβίασης μιας WordPress ιστοσελίδας. Στο δεύτερο μέρος θα αναφέρουμε τους τρόπους με τους οποίους κάποιος μπορεί να καταλάβει πως η WordPress εγκατάστασή του έχει παραβιαστεί. Στο τρίτο και πιο πρακτικό μέρος θα επιλέξουμε μία από τις κατηγορίες παραβιάσεων (Malware Redirect) του πρώτου μέρους και θα δείξουμε πως μπορούμε να την αφαιρέσουμε (καθαρίσουμε) από την WordPress εγκατάσταση μας. Τέλος, στο τέταρτο και τελευταίο μέρος του Workshop θα δείξουμε τις πρακτικές που πρέπει να ακολουθήσει ο διαχειριστής μιας WordPress εγκατάστασης ώστε να ελαχιστοποιήσει τις πιθανότητες να παραβιαστεί η ιστοσελίδα του.

Transcript

  1. HACKED WORDPRESS CLEANUP 2019 ATHENS WORDCAMP WORKSHOP

  2. Who am I? Gerasimos Mourelatos WordPress Warrior / Security Aficionado

    / Dad Makis Mourelatos
  3. 1. INFOSECURITY PRINCIPLES & WORDPRESS MALWARE TYPES 2. WORDPRESS HACKED?

    (ΤΙ ΕΓΙΝΕ ΡΕ ΠΑΙΔΙΑ?) 3. CLEANING A WORDPRESS MALWARE REDIRECT 4. HOW TO SECURE OUR WORDPRESS SITE WORKSHOP INDEX
  4. ΟΙ DEFAULT ΡΥΘΜΙΣΕΙΣ ΘΑ ΠΡΕΠΕΙ ΝΑ ΕΙΝΑΙ ΟΣΟ ΓΙΝΕΤΑΙ ΠΙΟ

    ΑΣΦΑΛΕΙΣ ΑΚΟΜΑ ΚΑΙ ΑΝ ΑΥΤΟ ΕΠΗΡΕΑΖΕΙ ΤΗΝ ΕΥΚΟΛΙΑ ΧΕΙΡΙΣΜΟΥ ΑΠΟ ΤΟΝ ΧΡΗΣΤΗ SECURITY BY DEFAULT
  5. SECURE BY DESIGN Ο ΣΧΕΔΙΑΣΜΟΣ ΘΑ ΠΡΕΠΕΙ ΝΑ ΕΧΕΙ ΛΑΒΕΙ

    ΥΠΟΨΙΝ ΤΗΝ ΠΙΘΑΝΟΤΗΤΑ ΠΑΡΑΒΙΑΣΗΣ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ ΚΑΙ ΝΑ ΕΧΕΙ ΔΗΜΙΟΥΡΓΗΣΕΙ ΤΙΣ ΑΝΤΙΣΤΟΙΧΕΣ ΔΙΚΛΕΙΔΕΣ ΑΣΦΑΛΕΙΑΣ
  6. SECURITY THROUGH OBSCURITY Η ΠΟΛΙΤΙΚΗ (ΨΕΥΔΟ)ΑΣΦΑΛΕΙΑΣ ΟΠΟΥ Ο Ο ΧΕΙΡΙΣΜΟΣ

    ΕΝΟΣ ΣΥΣΤΗΜΑΤΟΣ ΕΙΝΑΙ ΔΙΑΘΕΣΙΜΟΣ ΜΟΝΟ ΣΕ ΣΥΓΚΕΚΡΙΜΕΝΑ ΑΤΟΜΑ 1
  7. SECURITY THROUGH MINORITY OR OBSOLESCENCE MIA AKOMA ΠΟΛΙΤΙΚΗ (ΨΕΥΔΟ)ΑΣΦΑΛΕΙΑΣ ΠΟΥ

    ΣΤΗΡΙΖΕΤΑΙ ΣΤΗΝ ΣΠΑΝΙΟΤΗΤΑ ΚΑΙ ΑΡΧΑΙΟΤΗΤΑ ΤΟΥ ΛΟΓΙΣΜΙΚΟΥ ΠΟΥ ΧΡΗΣΙΜΟΠΟΙΕΙΤΑΙ
  8. PRESUMED SECURITY Η ΑΣΦΑΛΕΙΑ ΠΡΟΕΡΧΕΤΑΙ(ΨΕΥΔΩΣ) ΑΠΟ ΤΗΝ ΔΗΜΟΦΙΛΙΑ ΚΑΙ ΤΗΝ

    ΦΗΜΗ ΠΟΥ ΕΧΕΙ ΤΟ ΣΥΣΤΗΜΑ. Π.Χ. ΙΣΤΟΣΕΛΙΔΑ ΤΟΥ FBI.
  9. ΤΥΠΟΙ ΠΑΡΑΒΙΑΣΕΩΝ • MALICIOUS REDIRECTS • BACKDOOR ATTACKS • DRIVE

    BY DOWNLOADS • SEO SPAM HACKS
  10. MALICIOUS REDIRECTS • .HTACCESS REDIRECTS • PHP ENCODED REDIRECTS (INDEX.PHP,

    HEADER.PHP, FOOTER.PHP) • REDIRECT IS HIDDEN
  11. BACKDOOR ATTACK • ΠΑΡΑΒΙΑΣΗ ΜΕΣΩ COMMAND LINE(SSH) ‘Η EXPLOIT KIT

    • Ο ΕΠΙΤΙΘΕΜΕΝΟΣ ΜΠΟΡΕΙ ΝΑ ΑΠΟΚΤΗΣΕΙ ΠΡΟΣΒΑΣΗ ΣΕ ΟΛΟ ΤΟ SERVER
  12. DRIVE BY DOWNLOAD • SCRIPT INJECTION • CONDITIONAL MALWARE

  13. SEO SPAM HACK(PHARMA-J APANESE) • SPAM INJECTIONS • ΕΜΦΑΝΙΖΕΤΑΙ ΚΥΡΙΩΣ

    ΣΤΑ ΑΠΟΤΕΛΕΣΜΑΤΑ ΤΩΝ ΜΗΧΑΝΩΝ ΑΝΑΖΗΤΗΣΗΣ • ΣΤΟΧΟΣ ΕΙΝΑΙ ΤΟ SPAMMING ΚΑΙ ΟΧΙ Η ΜΕΤΑΔΟΣΗ MALWARE
  14. • HOMEPAGE REDIRECTS • SUDDEN DPAM COMMENT SPIKE • SLOW

    WEBSITE RESPONSE TIME • BANNERS POP UP SIGNS OF A HACKED WORDPRESS SITE
  15. 2

  16. ΤΙ ΕΓΙΝΕ ΡΕ ΠΑΙΔΙΑ?

  17. None
  18. JAPANESE KEYWORD HACK

  19. DE-INDEXED SITE site:gonewiththe.wind

  20. ALL YOUR BASE BELONG TO US 3

  21. GOOGLE SEARCH CONSOLE WARNING GSC →SECURITY & MANUAL ACTIONS

  22. ONLINE TOOLS Google Tools Virus Total 4

  23. MALWARE REDIRECTS INFECTED .HTACCESS FILE 5

  24. $tmp= base64_encode(' Welcome to WordCamp Athens 2019'); WEIRD NAMED PHP,

    J S, ICO FILES eval(base64_decode('V2 VsY29tZSB0byBXb3J kQ 2FtcCBBdGhlbnMgMjAx OQ= = '); eval(gzinflate(base64_d ecode('UFVOS1MlMjBO T1QlMjBERUFEJ TIx'); 6
  25. WORDPRESS MALICIOUS REDIRECT HACK FIX

  26. BACKUP!!!!! BACKUP!!!!! BACKUP!!!!! 1. WORDPRESS SITE FILES 2. WORDPRESS SITE

    DATABASE 3. ARCHIVE AND DOWNLOAD
  27. DATABASE HOSTING PANEL ΔΙΑΓΡΑΦΗ ΠΑΛΙΟΥ DB USER & ΔΗΜΙΟΥΡΓΙΑ ΝΕΟΥ

    ΣΥΝΔΕΣΗ ΤΟΥ DB USER ΜΕ ΤΗ DATABASE ΕΛΕΓΧΟΣ DATABASE ΜΕΣΩ PHPMYADMIN ΓΙΑ ΠΕΡΙΕΡΓΕΣ ΕΓΓΡΑΦΕΣ(Π.Χ. ΣΤΟ WP_OPTIONS) ΑΛΛΑΓΗ ADMINISTRATOR USERNAMES ΜΕΣΩ PHPMYADMIN 7
  28. WP-CONFIG.PHP • ΑΛΛΑΓΗ DATABASE LOGIN DETAILS • ΑΛΛΑΓΗ AUTH KEYS

    8
  29. WP-CONFIG.PHP ΕΛΕΓΧΟΣ ΓΙΑ SCRIPT-CODE INJECTION 9

  30. ΑΛΛΑΓΗ ADMIN PASSWORD & SESSION LOGOUT

  31. ΕΛΕΓΧΟΣ ADMIN USER ACCOUNTS

  32. UPDATE WORDPRESS

  33. UPDATE PREMIUM THEMES & PLUGINS REMOVE NOT RENEWED COMPONENTS

  34. UPDATE REPOSITORY THEMES AND PLUGINS

  35. FILES • ΔΙΑΓΡΑΦΗ ΚΑΙ ΕΠΑΝΕΓΚΑΤΑΣΤΑΣΗ WORDPRESS CORE DIRECTORIES & FILES

    • ΔΙΑΓΡΑΦΗ CACHE (WP-CONTENT/CACHE/) • ΔΙΑΓΡΑΦΗ FILE AND DATABASE BACKUPS • ΕΛΕΓΧΟΣ ΓΙΑ .PHP/.JS/.ICO FILES (WP-CONTENT/UPLOADS)
  36. LAST BUT NOT LEAST ... REPEAT FOR ALL WORDPRESS SITES

    UNDER THE SAME HOSTING ACCOUNT
  37. WORDPRESS SECURITY & MAINTENANCE

  38. • MANAGED WORDPRESS HOSTING • DAILY WORDPRESS BACKUP SERVICE •

    NEVER HOST YOUR EMAIL WITH YOUR SITE HOSTING USE A SECURE WORDPRESS HOSTING SERVICE
  39. • DNS LEVEL FIREWALL FILTERS TRAFFIC BEFORE REACHING YOUR WEB

    SERVER • APPLICATION LEVEL LEVEL FIREWALL FILTERS TRAFFIC AFTER REACHING YOUR WEB SERVER USE A FIREWALL SERVICE
  40. • KEEP YOUR WORDPRESS INSTALLATION UPDATED • MAINTAIN ONLY THE

    NEEDED(ACTIVE) THEMES AND PLUGINS • USE ONLY MODERN THEMES AND PLUGINS WORDPRESS HOUSEKEEPING
  41. • BACKUP YOUR SITE. OFF-SITE, AUTOMATED AND INCREMENTAL (IF POSSIBLE)

    • NEVER EVER USE NULLED THEMES OR PLUGINS WORDPRESS ELEMENTS
  42. • FORCE SSL • DISABLE XML-RPC WHEN POSSIBLE • RENAME

    WP LOGIN URL LOGIN HARDENING 10
  43. • LIMIT LOGIN ATTEMPTS • USE 2FA • USE .HTACCESS

    TO LIMIT LOGIN ONLY FOR SPECIFIC IP(s) LOGIN HARDENING 11
  44. • ALLOW 1 OR 2 ADMINS MAX FOLLOW THE LEAST

    PRIVILEGE PRINCIPAL • USE DIFFICULT TO GUESS PASSWORDS • RANDOMIZE ADMIN USERNAMES USER ACCOUNT SECURITY
  45. FILE ACCESS HARDENING • DISABLE PLUGIN AND THEME EDITOR (WP-CONFIG.PHP)

    • DISALLOW ACCESS TO WP- CONFIG.PHP (.HTACCESS) • DISABLE .PHP FILE EXECUTION UNDER WP- CONTENT/UPLOADS & WP-INCLUDES (.HTACCESS) < files wp-config.php> order allow,deny deny from all < /files> define('DISALLOW_FILE_EDIT', true); < Files *.php> deny from all < /Files> 12
  46. FILE ACCESS HARDENING • CREATE NEW SECRET KEYS (WP-CONFIG.PHP) •

    DISABLE DIRECTORY LISTING Options All -Indexes (.HTACCESS) • REMOVE ALL DEMO AND STAGING SITES 13
  47. EXTRA FILE ACCESS HARDENING • DIRS: 0755 FILES: 0644 •

    WP-CONFIG.PHP: 0600 .HTACCESS: 0600 • MONITOR FILE CHANGES
  48. MYSQL DATABASE HARDENING • DO NOT ALLOW REMOTE CONNECTIONS •

    DO NOT SHARE THE SAME DATABASE USER WITH A NUMBER OF DATABASES • DO NOT SHARE THE SAME DATABASE FOR ALL YOUR WORDPRESS SITES
  49. • DO NOT SHARE PASSWORDS • USE A PASSWORD MANAGER

    • STOP USING PUBLIC WIFI DUE DILIGENCE 14
  50. • https://wordpress.org/plugins/limit-login-attempts-reloaded • https://wordpress.org/plugins/miniorange-2-factor-authentication • https://wordpress.org/plugins/wp-ban/ • https://wordpress.org/plugins/aryo-activity-log/ • https://wpsecuritychecklist.org/items/

    • https://docs.google.com/presentation/d/1_7YSUXxCtFe25AREgvwMqKBCUIaiQZCXJ 74L5EWgyqo/ edit# slide= id.g14d70bd10a_0_61 • https://www.owasp.org/index.php/OWASP_Wordpress_Security_Implementation_Guideline • https://wordpress.org/about/security/ • https://codex.wordpress.org/Hardening_WordPress • https://developers.google.com/web/fundamentals/security/hacked/ • https://techcrunch.com/2019/05/10/eyedisk-encrypted-flash-drive-unhackable/ USEFUL RESOURCES
  51. Makis Mourelatos