The Adventures of the Elusive Malware, Μέρος IV: Πεδία εγγράφων DDE και Word

The Adventures of the Elusive Malware, Μέρος IV: Πεδία εγγράφων DDE και Word

Αυτό το άρθρο είναι μέρος της σειράς Fileless Malware. Όλα τα άλλα μέρη της σειράς:

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

Η πρώτη επίθεση που θα περιγράψω εκμεταλλεύεται μια ευπάθεια του Microsoft Word στην οποία βασίζεται απαρχαιωμένος πρωτόκολλο δυναμικής ανταλλαγής δεδομένων (DDE). Ήταν ήδη σταθερός. Το δεύτερο εκμεταλλεύεται μια γενικότερη ευπάθεια στις δυνατότητες COM και μεταφοράς αντικειμένων της Microsoft.

Επιστροφή στο μέλλον με το DDE

Θυμάται κανείς άλλος DDE; Μάλλον όχι πολλά. Ήταν από τα πρώτα πρωτόκολλα επικοινωνίας μεταξύ διεργασιών που επέτρεπαν σε εφαρμογές και συσκευές να μεταφέρουν δεδομένα.

Είμαι λίγο εξοικειωμένος με αυτό γιατί συνήθιζα να ελέγχω και να δοκιμάζω εξοπλισμό τηλεπικοινωνιών. Εκείνη την εποχή, η DDE επέτρεψε, για παράδειγμα, στους χειριστές τηλεφωνικών κέντρων να μεταφέρουν το αναγνωριστικό καλούντος σε μια εφαρμογή CRM, η οποία τελικά άνοιξε μια κάρτα πελάτη. Για να γίνει αυτό, έπρεπε να συνδέσετε ένα καλώδιο RS-232 μεταξύ του τηλεφώνου και του υπολογιστή σας. Αυτές ήταν εποχές!

Όπως αποδεικνύεται, το Microsoft Word είναι ακόμα υποστηρίζει ΔΔΕ.

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

Κωδικοί πεδίου είναι ένα άλλο αρχαίο χαρακτηριστικό του MS Word που σας επιτρέπει να προσθέσετε δυναμικό κείμενο και λίγο προγραμματισμό στο έγγραφό σας. Το πιο προφανές παράδειγμα είναι το πεδίο αριθμού σελίδας, το οποίο μπορεί να εισαχθεί στο υποσέλιδο χρησιμοποιώντας την τιμή {PAGE *MERGEFORMAT}. Αυτό επιτρέπει την αυτόματη δημιουργία αριθμών σελίδων.

The Adventures of the Elusive Malware, Μέρος IV: Πεδία εγγράφων DDE και Word
Συμβουλή: Μπορείτε να βρείτε το στοιχείο μενού Πεδίο στην περιοχή Εισαγωγή.

Θυμάμαι ότι όταν ανακάλυψα για πρώτη φορά αυτή τη δυνατότητα στο Word, έμεινα έκπληκτος. Και μέχρι να την απενεργοποιήσει η ενημέρωση κώδικα, το Word εξακολουθούσε να υποστηρίζει την επιλογή πεδίων DDE. Η ιδέα ήταν ότι το DDE θα επέτρεπε στο Word να επικοινωνεί απευθείας με την εφαρμογή, έτσι ώστε να μπορεί στη συνέχεια να περάσει την έξοδο του προγράμματος σε ένα έγγραφο. Ήταν μια πολύ νέα τεχνολογία εκείνη την εποχή - υποστήριξη για ανταλλαγή δεδομένων με εξωτερικές εφαρμογές. Αργότερα αναπτύχθηκε σε τεχνολογία COM, την οποία θα εξετάσουμε επίσης παρακάτω.

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

The Adventures of the Elusive Malware, Μέρος IV: Πεδία εγγράφων DDE και Word
Χάρη στα Windows για την αναδυόμενη προειδοποίηση ότι το ενσωματωμένο πεδίο DDEAUTO προσπαθεί κρυφά να ξεκινήσει το κέλυφος

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

Ως αρχάριος χάκερ, μπορείτε, για παράδειγμα, να στείλετε ένα email ηλεκτρονικού ψαρέματος, προσποιούμενος ότι είστε από την Ομοσπονδιακή Φορολογική Υπηρεσία και να ενσωματώσετε το πεδίο DDEAUTO με το σενάριο PS για το πρώτο στάδιο (ένα σταγονόμετρο, ουσιαστικά). Και δεν χρειάζεται καν να κάνετε πραγματική κωδικοποίηση μακροεντολών κ.λπ., όπως έκανα εγώ προηγούμενο άρθρο.
Το θύμα ανοίγει το έγγραφό σας, το ενσωματωμένο σενάριο ενεργοποιείται και ο χάκερ καταλήγει μέσα στον υπολογιστή. Στην περίπτωσή μου, το απομακρυσμένο σενάριο PS απλώς εκτυπώνει ένα μήνυμα, αλλά θα μπορούσε εξίσου εύκολα να εκκινήσει τον πελάτη PS Empire, ο οποίος θα παρέχει απομακρυσμένη πρόσβαση στο κέλυφος.
Και πριν προλάβει το θύμα να πει οτιδήποτε, οι χάκερ θα αποδειχθούν οι πιο πλούσιοι έφηβοι του χωριού.

The Adventures of the Elusive Malware, Μέρος IV: Πεδία εγγράφων DDE και Word
Το κέλυφος εκτοξεύτηκε χωρίς την παραμικρή κωδικοποίηση. Ακόμα και ένα παιδί μπορεί να το κάνει αυτό!

DDE και πεδία

Η Microsoft αργότερα απενεργοποίησε το DDE στο Word, αλλά όχι πριν η εταιρεία δηλώσει ότι η δυνατότητα απλώς χρησιμοποιήθηκε κατάχρηση. Η απροθυμία τους να αλλάξουν οτιδήποτε είναι κατανοητή. Από την εμπειρία μου, ο ίδιος έχω δει ένα παράδειγμα όπου η ενημέρωση πεδίων κατά το άνοιγμα ενός εγγράφου ήταν ενεργοποιημένη, αλλά οι μακροεντολές του Word απενεργοποιήθηκαν από το IT (αλλά εμφανίζουν μια ειδοποίηση). Παρεμπιπτόντως, μπορείτε να βρείτε τις αντίστοιχες ρυθμίσεις στην ενότητα ρυθμίσεων του Word.

Ωστόσο, ακόμα κι αν είναι ενεργοποιημένη η ενημέρωση πεδίου, το Microsoft Word ειδοποιεί επιπλέον τον χρήστη όταν ένα πεδίο ζητά πρόσβαση σε διαγραμμένα δεδομένα, όπως συμβαίνει με το DDE παραπάνω. Η Microsoft σας προειδοποιεί πραγματικά.

Αλλά πιθανότατα, οι χρήστες θα εξακολουθήσουν να αγνοούν αυτήν την προειδοποίηση και να ενεργοποιούν την ενημέρωση πεδίων στο Word. Αυτή είναι μια από τις σπάνιες ευκαιρίες για να ευχαριστήσουμε τη Microsoft για την απενεργοποίηση της επικίνδυνης δυνατότητας DDE.

Πόσο δύσκολο είναι να βρείτε ένα μη επιδιορθωμένο σύστημα Windows σήμερα;

Για αυτήν τη δοκιμή, χρησιμοποίησα το AWS Workspace για πρόσβαση σε μια εικονική επιφάνεια εργασίας. Με αυτόν τον τρόπο έλαβα μια μη επιδιορθωμένη εικονική μηχανή MS Office που μου επέτρεψε να εισαγάγω το πεδίο DDEAUTO. Δεν έχω καμία αμφιβολία ότι με παρόμοιο τρόπο μπορείτε να βρείτε και άλλες εταιρείες που δεν έχουν εγκαταστήσει ακόμη τις απαραίτητες ενημερώσεις κώδικα ασφαλείας.

Μυστήριο αντικειμένων

Ακόμα κι αν εγκαταστήσατε αυτήν την ενημέρωση κώδικα, υπάρχουν άλλες τρύπες ασφαλείας στο MS Office που επιτρέπουν στους χάκερ να κάνουν κάτι πολύ παρόμοιο με αυτό που κάναμε με το Word. Στο επόμενο σενάριο θα μάθουμε χρησιμοποιήστε το Excel ως δόλωμα για μια επίθεση phishing χωρίς να γράψετε κώδικα.

Για να κατανοήσουμε αυτό το σενάριο, ας θυμηθούμε το Microsoft Component Object Model ή εν συντομία COM (Component Object Model).

Το COM υπάρχει από τη δεκαετία του 1990 και ορίζεται ως ένα "γλωσσικά ουδέτερο, αντικειμενοστρεφές μοντέλο στοιχείου" που βασίζεται σε κλήσεις απομακρυσμένης διαδικασίας RPC. Για μια γενική κατανόηση της ορολογίας COM, διαβάστε αυτή η ανάρτηση στο StackOverflow.

Βασικά, μπορείτε να σκεφτείτε μια εφαρμογή COM ως εκτελέσιμο Excel ή Word ή κάποιο άλλο δυαδικό αρχείο που εκτελείται.

Αποδεικνύεται ότι μια εφαρμογή COM μπορεί επίσης να εκτελεστεί το σενάριο — JavaScript ή VBScript. Τεχνικά λέγεται σενάριο. Μπορεί να έχετε δει την επέκταση .sct για αρχεία στα Windows - αυτή είναι η επίσημη επέκταση για scriptlet. Ουσιαστικά, είναι κώδικας σεναρίου τυλιγμένο σε ένα περιτύλιγμα XML:

<?XML version="1.0"?>

<scriptlet>
<registration
description="test"
progid="test"
version="1.00"
classid="{BBBB4444-0000-0000-0000-0000FAADACDC}"
remotable="true">
</registration>
<script language="JScript">
<![CDATA[

var r = new ActiveXObject("WScript.Shell").Run("cmd /k powershell -c Write-Host You have been scripted!");

]]>
</script>
</scriptlet>

Οι χάκερ και οι διεισδυτές ανακάλυψαν ότι υπάρχουν ξεχωριστά βοηθητικά προγράμματα και εφαρμογές στα Windows που δέχονται αντικείμενα COM και, κατά συνέπεια, scriptlet.

Μπορώ να περάσω ένα scriptlet σε ένα βοηθητικό πρόγραμμα των Windows γραμμένο σε VBS γνωστό ως pubprn. Βρίσκεται στα βάθη του C:Windowssystem32Printing_Admin_Scripts. Παρεμπιπτόντως, υπάρχουν και άλλα βοηθητικά προγράμματα των Windows που δέχονται αντικείμενα ως παραμέτρους. Ας δούμε πρώτα αυτό το παράδειγμα.

The Adventures of the Elusive Malware, Μέρος IV: Πεδία εγγράφων DDE και Word
Είναι πολύ φυσικό ότι το κέλυφος μπορεί να εκτοξευθεί ακόμη και από ένα σενάριο εκτύπωσης. Πηγαίνετε Microsoft!

Ως δοκιμή, δημιούργησα ένα απλό απομακρυσμένο σενάριο που εκκινεί ένα κέλυφος και εκτυπώνει ένα αστείο μήνυμα, "Μόλις σας έγραψαν το σενάριο!" Ουσιαστικά, το pubprn δημιουργεί ένα αντικείμενο scriptlet, επιτρέποντας στον κώδικα VBScript να τρέξει ένα περιτύλιγμα. Αυτή η μέθοδος παρέχει ένα σαφές πλεονέκτημα στους χάκερ που θέλουν να εισέλθουν κρυφά και να κρυφτούν στο σύστημά σας.

Στην επόμενη ανάρτηση, θα εξηγήσω πώς τα σενάρια COM μπορούν να αξιοποιηθούν από χάκερ χρησιμοποιώντας υπολογιστικά φύλλα του Excel.

Για την εργασία σας, ρίξτε μια ματιά αυτό το βίντεο από το Derbycon 2016, το οποίο εξηγεί ακριβώς πώς οι χάκερ χρησιμοποιούσαν scriptlet. Και επίσης διαβάστε αυτο το αρθρο σχετικά με τα σενάρια και κάποιου είδους παρατσούκλι.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο