Στον σημερινό Hacking οδηγό, το «θύμα – πειραματόζωο» μας θα είναι ένα Macbook με λειτουργικό macOS Mojave στο οποίο θα προσπαθήσουμε να φορτώσουμε ένα payload που δεν θα ανιχνευτεί από κάποιο Antivirus.

Είναι πολύ εύκολο να αποφύγετε τον εντοπισμό ιών στο VirusTotal ή και από δημοφιλή λογισμικά προστασίας από ιούς, όπως τα Avast, AVG, BitDefender, Sophos και ClamXAV που τρέχουν στο macOS χρησιμοποιώντας μερικά απλά κόλπα.

Ο στόχος μας ήταν να βρούμε ένα γνωστό και εύκολα ανιχνεύσιμο payload για macOS, στη συνέχεια να βορύμε μια μέθοδο που επιτρέπει την εκτέλεση του ίδιου payload στο MacBook στόχο.

Payload ή, ας το πούμε κάτι σαν,κ "ωφέλιμο φορτίο" είναι το τμήμα του κακόβουλου λογισμικού που εκτελεί μια κακόβουλη ενέργεια

Κωδικοποίηση Base64

Η κωδικοποίηση, ως τεχνική αποφυγής των antivirus, θεωρείται ότι δεν μια καλή ιδέα διότι αποκωδικοποιείται και αναγνωρίζεται εύκολα. Μοιάζει αρκετά στην φιλοσοφία με το «Στεγανογραφία: Κρύψε μηνύματα σε αρχεία εικόνας και ήχου«.

Εξετάστε το παρακάτω:

Στην πρώτη εντολή, μετέτρεψα αυτό τον «κακόβουλο» κώδικα που έγραφε «Μια ωραία πεταλούδα» σε κωδικοποιημένη μορφή. Ενώ στην δεύτερη εντολή πήρα την συμβολοσειρά base64 που έβγαλε και την αποκωδικοποίησα με την base64 -d.

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

Advertisements

Το ίδιο λοιπόν ισχύει και για τα περισσότερα payload. Εάν κατεβάσουμε έναν έτοιμο κώδικα από payload και αλλάξουμε μόνο π.χ. την διεύθυνση IP και τον αριθμό port, τότε το αρχικό τμήμα των παραγόμενων payload σε base64 θα είναι πάντοτε η ίδια. Παρακάτω είναι ένα παράδειγμα που δημιουργήθηκε από το εργαλείο msfvenom (από το Metasploit Framework) χρησιμοποιώντας τη διεύθυνση IP «10.42.0.1».

Για παράδειγμα, στην παρακάτω εικόνα στην, πρώτη εντολή αποκωδικοποιώ ένα έτοιμο payload και έπειτα αλλάζω μόνο την IP που χρησιμοποιεί απο 10.42.0.1 σε με διαφορετική διεύθυνση IP 192.168.0.2.

Αν προσέξετε οι πρώτοι 100 περίπου χαρακτήρες είναι πάντα πανομοιότυποι όταν χρησιμοποιείτε αυτό το payload. Θα ήταν τουλάχιστον λογικό, ότι το λογισμικό προστασίας από ιούς (antivirus) να μπορεί να ανιχνεύει τις κοινές συμβολοσειρές σε base64, άσχετα αν αλλάξαμε μια γραμμή.

Δυστυχώς όμως δεν το κάνουν.

Όταν το ανέβασα χωρίς καν να το κωδικοποιήσω σε base64 στο VirusTotal, μερικά antivirus το κατάλαβαν (11/54) ως κακόβουλο ενώ άλλα (43/54) το θεωρούσαν ότι δεν υπάρχει πρόβλημα.

Δείτε το : VirusTotal result (Code)

Αντίθετα όταν το ανέβασα κωδικοποιημένα σε base64, μόνο το antivirus της Microsoft το ανίχνευσε ως ιό.

Δείτε το: VirusTotal result (Base64)

Αυτό το ποσοστό ανίχνευσης είναι εκπληκτικά χαμηλό για έναν κώδικα Python που είναι ιστορικά καταγεγραμμένο στα virus definitions ότι έχει χρησιμοποιηθεί για να συνδέεται σε απομακρυσμένο διακομιστή. Οπότε είναι ασαφές το τι ακριβώς προσπαθούν να εντοπίσουν τα Antivirus σε ένα αρχείο με κώδικα που έχει αναμφίβολα χρησιμοποιηθεί χιλιάδες φορές από διαφορετικούς pentesters και hackers με την πάροδο των ετών.

Αν για παράδειγμα πάρουμε αυτή την συμβολοσειρά και πάμε σε ένα macOS, μπορεί να εκτελεστεί με την ακόλουθη εντολή.

python -c "$(printf '%s' 'kwdikop-payload-edw' | base64 -D)"

Εδώ, το printf και το base64 χρησιμοποιούνται στο macOS για να το αποκωδικοποιήσουν -D τη συμβολοσειρά και να εκτελέσουν αμέσως την εντολή -c με την Python – η οποία αποκωδικοποιεί πάλι το εσωτερικό payload και δημιουργεί αντίστροφη σύνδεση TCP που είναι χρήσιμο σε επιθέσεις όπως είδαμε στο Netcat: οδηγός χρήσης και βασικές εντολές.

Τελικές σκέψεις

Μετά τη δοκιμή και τον έλεγχο αυτών των επιθέσεων στο VirusToal και τουλάχιστον έξι δημοφιλής λογισμικά προστασίας από ιούς, φαίνεται ότι οι σαρωτές antivirus macOS είναι σχεδόν εξ’ολοκλήρου ανίκανα να εντοπίσουν ακόμα και τα πιο κοινά – δημοφιλή payloads με απλή κωδικοποίηση σε base64.

Επιπλέον, το macOS βασίζεται πάρα πολύ στο GateKeeper για να αποτρέψει το άνοιγμα κακόβουλων εφαρμογών. Η προστασίες του GateKeeper όμως δεν εφαρμόζονται σε μονάδες USB που έχουν εισαχθεί στο MacBook, επομένως οι στόχοι μπορούν να υπό-πέσουν σε επιθέσεις κοινωνικής μηχανική για το άνοιγμα κακόβουλων αρχείων.