tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Χειροκίνητες Τεχνικές Απο-αποκρυπτογράφησης

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

Στρατηγικές για Στατική Απο-αποκρυπτογράφηση

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

  • DEX bytecode (Java): Μια αποτελεσματική προσέγγιση περιλαμβάνει την αναγνώριση των μεθόδων απο-αποκρυπτογράφησης της εφαρμογής, και στη συνέχεια την αναπαραγωγή αυτών των μεθόδων σε ένα αρχείο Java. Αυτό το αρχείο εκτελείται για να αντιστρέψει την αποκρυπτογράφηση στα στοχευμένα στοιχεία.
  • Java και Native Code: Μια άλλη μέθοδος είναι να μεταφράσετε τον αλγόριθμο απο-αποκρυπτογράφησης σε μια γλώσσα scripting όπως η Python. Αυτή η στρατηγική τονίζει ότι ο κύριος στόχος δεν είναι να κατανοηθεί πλήρως ο αλγόριθμος αλλά να εκτελείται αποτελεσματικά.

Αναγνώριση Αποκρυπτογράφησης

Η αναγνώριση του αποκρυφωμένου κώδικα είναι το πρώτο βήμα στη διαδικασία απο-αποκρυπτογράφησης. Κύριοι δείκτες περιλαμβάνουν:

  • Η απουσία ή η ανακατωμένη μορφή των συμβολοσειρών σε Java και Android, που μπορεί να υποδηλώνει αποκρυπτογράφηση συμβολοσειρών.
  • Η παρουσία δυαδικών αρχείων στον κατάλογο assets ή κλήσεις προς DexClassLoader, υποδεικνύοντας αποσυμπίεση κώδικα και δυναμική φόρτωση.
  • Η χρήση native βιβλιοθηκών μαζί με μη αναγνωρίσιμες JNI συναρτήσεις, υποδεικνύοντας πιθανή αποκρυπτογράφηση των native μεθόδων.

Δυναμική Ανάλυση στην Απο-αποκρυπτογράφηση

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

Εφαρμογές Δυναμικής Ανάλυσης

  • Αποκρυπτογράφηση σε Χρόνο Εκτέλεσης: Πολλές τεχνικές αποκρυπτογράφησης περιλαμβάνουν την κρυπτογράφηση συμβολοσειρών ή τμημάτων κώδικα που αποκρυπτογραφούνται μόνο κατά την εκτέλεση. Μέσω της δυναμικής ανάλυσης, αυτά τα κρυπτογραφημένα στοιχεία μπορούν να καταγραφούν τη στιγμή της αποκρυπτογράφησης, αποκαλύπτοντας την αληθινή τους μορφή.
  • Αναγνώριση Τεχνικών Αποκρυπτογράφησης: Παρακολουθώντας τη συμπεριφορά της εφαρμογής, η δυναμική ανάλυση μπορεί να βοηθήσει στην αναγνώριση συγκεκριμένων τεχνικών αποκρυπτογράφησης που χρησιμοποιούνται, όπως η εικονικοποίηση κώδικα, οι packers ή η δυναμική δημιουργία κώδικα.
  • Ανακάλυψη Κρυφής Λειτουργικότητας: Ο αποκρυφωμένος κώδικας μπορεί να περιέχει κρυφές λειτουργίες που δεν είναι προφανείς μόνο μέσω στατικής ανάλυσης. Η δυναμική ανάλυση επιτρέπει την παρατήρηση όλων των διαδρομών κώδικα, συμπεριλαμβανομένων εκείνων που εκτελούνται υπό προϋποθέσεις, για να αποκαλύψει τέτοιες κρυφές λειτουργίες.

Αναφορές και Περαιτέρω Ανάγνωση

  • https://maddiestone.github.io/AndroidAppRE/obfuscation.html
  • BlackHat USA 2018: “Unpacking the Packed Unpacker: Reverse Engineering an Android Anti-Analysis Library” [video]
  • Αυτή η ομιλία καλύπτει την αντίστροφη μηχανική μιας από τις πιο πολύπλοκες βιβλιοθήκες anti-analysis που έχω δει να χρησιμοποιούνται από μια εφαρμογή Android. Καλύπτει κυρίως τεχνικές αποκρυπτογράφησης σε native κώδικα.
  • REcon 2019: “The Path to the Payload: Android Edition” [video]
  • Αυτή η ομιλία συζητά μια σειρά τεχνικών αποκρυπτογράφησης, αποκλειστικά σε κώδικα Java, που χρησιμοποιούσε ένα Android botnet για να κρύψει τη συμπεριφορά του.

tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks