Midsun Posted August 3, 2023 Share Posted August 3, 2023 Γεια σας, Τις τελευταίες δύο μέρες φτιάχνω ένα χακαρισμένο PrestaShop και είπα να μοιραστώ μαζί σας τι έκανα. Βασικά αυτό που κάνει το συγκεκριμένο hack, είναι να εμφανίζει στο checkout μια ψεύτικη φόρμα για να βάλει ο πελάτης τα στοιχεία της κάρτας του, απενεργοποιώντας ταυτόχρονα όλες τις άλλες μεθόδους πληρωμής. Είναι το ίδιο με αυτό εδώ (μπορείτε να δείτε πως μοιάζει η φόρμα). Κάτι σημαντικό που παρατήρησα, είναι ότι αν είστε συνδεδεμένοι ως admin στο back-office και επισκεφτείτε το checkout τότε όλα φαίνονται εντάξει. Αν όμως αποσυνδεθείτε και κάνετε refresh στο checkout, τότε θα δείτε την ψεύτικη φόρμα. Αυτό κάνει πιο δύσκολο τον εντοπισμό της μόλυνσης από τους admins. Ευτυχώς υπήρχε αντίγραφο ασφαλείας πριν την μόλυνση και έτσι βρήκα σχετικά εύκολα αρχεία που προστέθηκαν ή άλλαξαν. Κατέβασα το αντίγραφο ασφαλείας και την μολυσμένη ιστοσελίδα και χρησιμοποίησα το δωρεάν πρόγραμμα WinMerge για να συγκρίνω ακόμη και την πιο μικρή αλλαγή. Μπορεί η μόλυνση να διαφέρει για τον καθένα. Πιο κάτω είναι τα δικά μου ευρήματα: Νέα Αρχεία που δημιουργήθηκαν (Το ΧΧΧΧΧ μπορεί να είναι ένα οποιοδήποτε όνομα με τυχαίους χαρακτήρες πχ. ΒEf7u.php): public_html/app/Mage.php public_html/media -> άδειο αρχείο χωρίς προέκταση public_html/img/ΧΧΧΧΧ.png -> Δεν είναι αρχείο εικόνας, περιέχει κρυπτογραφημένο κώδικα public_html/js/jquery/plugins/validate/localization/ΧΧΧΧΧΧ.php public_html/js/jquery/plugins/validate/localization/ΧΧΧΧΧΧ.webp -> Δεν είναι αρχείο εικόνας public_html/js/tiny_mce/plugins/insertdatetime/ΧΧΧΧΧΧΧ.jpg -> Δεν είναι αρχείο εικόνας public_html/js/tiny_mce/plugins/insertdatetime/ΧΧΧΧΧΧΧ.php Αρχεία που τροποποιήθηκαν: public_html/classes/controller/Controller.php public_html/classes/controller/FrontController.php public_html/classes/controller/ModuleFrontController.php public_html/classes/shop/Shop.php public_html/classes/Context.php public_html/classes/Dispatcher.php public_html/classes/Hook.php public_html/classes/PrestaShopAutoload.php public_html/classes/Product.php public_html/classes/Store.php public_html/classes/Tools.php public_html/controllers/admin/AdminLoginController.php public_html/controllers/front/IndexController.php public_html/vendor/smarty/smarty/libs/Smarty.class.php Αφότου καθαρίσετε τα αρχεία, να αλλάξετε όλα τα passwords των admin, της βάσης δεδομένων και να αλλάξετε και το url του admin login. Από ότι φαίνεται ο κώδικας στο τροποποιημένο AdminLoginController.php κλέβει τα συνθηματικά των admin. Τώρα το checkout δουλεύει κανονικά, αλλά δυστυχώς δεν έχω ακόμη εντοπίσει το αρχικό σημείο εισόδου, έτσι υπάρχει ο κίνδυνος επαναμόλυνσης. Link to comment Share on other sites More sharing options...
sanctusmob Posted August 4, 2023 Share Posted August 4, 2023 Δεν μας είπες version του PS. Έχεις περάσει το patch για το smarty που στην ουσία απενεργοποιεί την λειτουργία caching type MySQL? Link to comment Share on other sites More sharing options...
Prestag0od Posted August 4, 2023 Share Posted August 4, 2023 (edited) Ο @sanctusmob εννοεί το παρακάτω. Βρες στο αρχείο config/smarty.config.inc.php και δες εαν υπάρχουν οι γραμμές 43-46 (PrestaShop 1.7) ή 40-43 (PrestaShop 1.6) και αφαίρεσέ τες. if (Configuration::get('PS_SMARTY_CACHING_TYPE') == 'mysql') { include _PS_CLASS_DIR_.'Smarty/SmartyCacheResourceMysql.php'; $smarty->caching_type = 'mysql'; } Τον ίδιο έλεγχο και επιδιόρθωση στο αρχείο αυτό κάνει και το δωρεάν παρακάτω module ενώ κάνει και αυτό που έκανες εσύ με το WinMerge. Δηλαδή ψάχνει για αλλαγές στα core αρχεία τις οποίες επίσης επιδιορθώνει. Είναι για Prestashop 1.6.1 και πάνω. (δεν το έχω δοκιμάσει σε 8 αλλά μάλλον λειτουργεί). https://github.com/MathiasReker/blmvuln/releases/latest Κατεβάζεις το blmvuln.zip Edited August 4, 2023 by Prestan0ob (see edit history) Link to comment Share on other sites More sharing options...
Midsun Posted August 4, 2023 Author Share Posted August 4, 2023 @sanctusmob Το version ήταν 1.7.5. Το patch δεν υπήρχε προηγουμένως. Ελπίζω να ήταν αυτό και τώρα να έκλεισε. Θα το παρακολουθώ στενά. @Prestan0ob Ευχαριστώ για τις πληροφορίες. Νομίζω με το WinMerge και το καλό backup έγινε σωστά ο καθαρισμός. Κάτι άλλο που παρατήρησα είναι ότι τα τροποποιημένα αρχεία διατήρησαν την παλαιότερη ημερομηνία τροποποίησης. Άρα ίσως να μην είναι αρκετό κάποιος να ελέγξει μόνο την ημερομηνία. Σε πολλά από τα αρχεία, η μόνη αλλαγή ήταν μια τεράστια γραμμή από κρυπτογραφημένο κώδικα στο τέλος τους. Link to comment Share on other sites More sharing options...
Prestag0od Posted August 5, 2023 Share Posted August 5, 2023 20 hours ago, Midsun said: @sanctusmob Το version ήταν 1.7.5. Το patch δεν υπήρχε προηγουμένως. Ελπίζω να ήταν αυτό και τώρα να έκλεισε. Θα το παρακολουθώ στενά. @Prestan0ob Ευχαριστώ για τις πληροφορίες. Νομίζω με το WinMerge και το καλό backup έγινε σωστά ο καθαρισμός. Κάτι άλλο που παρατήρησα είναι ότι τα τροποποιημένα αρχεία διατήρησαν την παλαιότερη ημερομηνία τροποποίησης. Άρα ίσως να μην είναι αρκετό κάποιος να ελέγξει μόνο την ημερομηνία. Σε πολλά από τα αρχεία, η μόνη αλλαγή ήταν μια τεράστια γραμμή από κρυπτογραφημένο κώδικα στο τέλος τους. Δεν χάνεις κάτι να τρέξεις και το module που αναφέρω. Βρίσκει οποιαδήποτε αλλαγή έχει γίνει σε core αρχεία. Κάνει δηλαδή ότι και το winmerge ενώ επιπλέον κοιτάει και άλλα κενά ασφαλείας όπως και αυτό που αναφέραμε. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now