Με αυτό το άρθρο ξεκινάμε μια σειρά δημοσιεύσεων σχετικά με το άπιαστο κακόβουλο λογισμικό. Τα προγράμματα εισβολής χωρίς αρχεία, γνωστά και ως προγράμματα εισβολής χωρίς αρχεία, χρησιμοποιούν συνήθως το PowerShell σε συστήματα Windows για να εκτελούν σιωπηλά εντολές για αναζήτηση και εξαγωγή πολύτιμου περιεχομένου. Η ανίχνευση δραστηριότητας χάκερ χωρίς κακόβουλα αρχεία είναι δύσκολη υπόθεση, γιατί... τα antivirus και πολλά άλλα συστήματα ανίχνευσης λειτουργούν με βάση την ανάλυση υπογραφών. Αλλά τα καλά νέα είναι ότι τέτοιο λογισμικό υπάρχει. Για παράδειγμα,
Όταν άρχισα να ερευνώ για πρώτη φορά το θέμα των κακών χάκερ,
Το μεγάλο και ισχυρό PowerShell
Έχω γράψει για μερικές από αυτές τις ιδέες στο παρελθόν
Εκτός από τα ίδια τα δείγματα, στον ιστότοπο μπορείτε να δείτε τι κάνουν αυτά τα προγράμματα. Η υβριδική ανάλυση εκτελεί κακόβουλο λογισμικό στο δικό του sandbox και παρακολουθεί κλήσεις συστήματος, εκτελούμενες διαδικασίες και δραστηριότητα δικτύου και εξάγει ύποπτες συμβολοσειρές κειμένου. Για δυαδικά και άλλα εκτελέσιμα αρχεία, π.χ. όπου δεν μπορείτε καν να δείτε τον πραγματικό κώδικα υψηλού επιπέδου, η υβριδική ανάλυση αποφασίζει εάν το λογισμικό είναι κακόβουλο ή απλώς ύποπτο με βάση τη δραστηριότητά του στο χρόνο εκτέλεσης. Και μετά από αυτό το δείγμα έχει ήδη αξιολογηθεί.
Στην περίπτωση του PowerShell και άλλων δειγμάτων σεναρίων (Visual Basic, JavaScript, κ.λπ.), μπόρεσα να δω τον ίδιο τον κώδικα. Για παράδειγμα, συνάντησα αυτό το παράδειγμα PowerShell:
Μπορείτε επίσης να εκτελέσετε το PowerShell σε κωδικοποίηση base64 για να αποφύγετε τον εντοπισμό. Σημειώστε τη χρήση των παραμέτρων Noninteractive και Hidden.
Εάν έχετε διαβάσει τις αναρτήσεις μου σχετικά με τη συσκότιση, τότε γνωρίζετε ότι η επιλογή -e καθορίζει ότι το περιεχόμενο είναι κωδικοποιημένο με βάση το base64. Παρεμπιπτόντως, η υβριδική ανάλυση βοηθά επίσης σε αυτό αποκωδικοποιώντας τα πάντα πίσω. Εάν θέλετε να δοκιμάσετε να αποκωδικοποιήσετε μόνοι σας το base64 PowerShell (εφεξής PS), πρέπει να εκτελέσετε αυτήν την εντολή:
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))
Σκάβουμε βαθύτερα
Αποκωδικοποίησα το σενάριο PS χρησιμοποιώντας αυτήν τη μέθοδο, παρακάτω είναι το κείμενο του προγράμματος, αν και ελαφρώς τροποποιημένο από εμένα:
Σημειώστε ότι το σενάριο ήταν συνδεδεμένο με την ημερομηνία 4 Σεπτεμβρίου 2017 και μετέδωσε cookies περιόδου λειτουργίας.
Έγραψα για αυτό το στυλ επίθεσης
Τι κάνει;
Για λογισμικό ασφαλείας που σαρώνει αρχεία καταγραφής συμβάντων ή τείχη προστασίας των Windows, η κωδικοποίηση base64 αποτρέπει τον εντοπισμό της συμβολοσειράς "WebClient" από ένα μοτίβο απλού κειμένου για προστασία από την υποβολή τέτοιου αιτήματος Ιστού. Και καθώς όλο το «κακό» του κακόβουλου λογισμικού στη συνέχεια κατεβάζεται και περνά στο PowerShell μας, αυτή η προσέγγιση μας επιτρέπει έτσι να αποφύγουμε εντελώς τον εντοπισμό. Ή μάλλον, αυτό νόμιζα στην αρχή.
Αποδεικνύεται ότι με ενεργοποιημένη τη Σύνθετη καταγραφή του Windows PowerShell (δείτε το άρθρο μου), θα μπορείτε να δείτε τη φορτωμένη γραμμή στο αρχείο καταγραφής συμβάντων. Είμαι σαν
Ας προσθέσουμε επιπλέον σενάρια
Οι χάκερ κρύβουν έξυπνα τις επιθέσεις PowerShell σε μακροεντολές του Microsoft Office γραμμένες σε Visual Basic και άλλες γλώσσες δέσμης ενεργειών. Η ιδέα είναι ότι το θύμα λαμβάνει ένα μήνυμα, για παράδειγμα από μια υπηρεσία παράδοσης, με συνημμένη αναφορά σε μορφή .doc. Ανοίγετε αυτό το έγγραφο που περιέχει τη μακροεντολή και καταλήγει να εκκινήσει το ίδιο το κακόβουλο PowerShell.
Συχνά το ίδιο το σενάριο της Visual Basic είναι ασαφές, έτσι ώστε να αποφεύγει ελεύθερα τους σαρωτές προστασίας από ιούς και άλλα κακόβουλα προγράμματα. Στο πνεύμα των παραπάνω, αποφάσισα να κωδικοποιήσω το παραπάνω PowerShell σε JavaScript ως άσκηση. Παρακάτω είναι τα αποτελέσματα της δουλειάς μου:
Θολωμένη JavaScript που κρύβει το PowerShell μας. Οι πραγματικοί χάκερ το κάνουν αυτό μία ή δύο φορές.
Αυτή είναι μια άλλη τεχνική που έχω δει να επιπλέει στον ιστό: χρησιμοποιώντας το Wscript.Shell για την εκτέλεση του κωδικοποιημένου PowerShell. Παρεμπιπτόντως, η ίδια η JavaScript είναι
Στην περίπτωσή μας, το κακόβουλο σενάριο JS είναι ενσωματωμένο ως αρχείο με την επέκταση .doc.js. Τα Windows συνήθως εμφανίζουν μόνο το πρώτο επίθημα, επομένως θα εμφανίζεται στο θύμα ως έγγραφο του Word.
Το εικονίδιο JS εμφανίζεται μόνο στο εικονίδιο κύλισης. Δεν αποτελεί έκπληξη το γεγονός ότι πολλοί άνθρωποι θα ανοίξουν αυτό το συνημμένο νομίζοντας ότι είναι ένα έγγραφο του Word.
Στο παράδειγμά μου, τροποποίησα το PowerShell παραπάνω για λήψη του σεναρίου από τον ιστότοπό μου. Το απομακρυσμένο σενάριο PS απλώς εκτυπώνει το "Evil Malware". Όπως μπορείτε να δείτε, δεν είναι καθόλου κακός. Φυσικά, οι πραγματικοί χάκερ ενδιαφέρονται να αποκτήσουν πρόσβαση σε φορητό υπολογιστή ή διακομιστή, ας πούμε, μέσω ενός κελύφους εντολών. Στο επόμενο άρθρο, θα σας δείξω πώς να το κάνετε αυτό χρησιμοποιώντας το PowerShell Empire.
Ελπίζω ότι για το πρώτο εισαγωγικό άρθρο δεν βουτήξαμε πολύ βαθιά στο θέμα. Τώρα θα σας αφήσω να πάρετε μια ανάσα και την επόμενη φορά θα αρχίσουμε να εξετάζουμε πραγματικά παραδείγματα επιθέσεων που χρησιμοποιούν κακόβουλο λογισμικό χωρίς αρχεία χωρίς περιττές εισαγωγικές λέξεις ή προετοιμασία.
Πηγή: www.habr.com