Τι θα χρειαστειτε;
1.Kali Linux
2.DumpIt
3.Windows
Η μνημη τυχαιας προσπελασης(Random Access Memory) ειναι με λιγα λογια η προσωρινη μνημη που χρησιμοποιει ο υπολογιστης για να αποθηκευσει προσωρινα δεδομενα
Εμεις σε αυτον τον οδηγο θα μαθουμε πως κανουμε dump την RAM και πως κοιταμε για ιους με το volatility
Στα windows
Για να αποθηκευσετε(dump) την RAM κατεβαζετε το DumpIt απο εδω
οταν το κατεβασετε το αποσυμπιεζετε και θα δειτε το εκτελεσιμο αρχειο
το εκτελειτε
μας ανοιγει το τερματικο και επιλεγουμε y
οταν μας γραψει success το κλεινουμε και θα δουμε στην επιφανεια εργασιας η στην διαδρομη που το εκτελεσαμε το αρχειο.raw
πχ
το βαζουμε σε ενα usb stick και το μεταφερουμε στα kali
(αν θελετε υπαρχει εκδοση του volatility για windows πατηστε εδω)
οταν εχουμε μεταφερει το αρχειο.raw στα kali πριν ξεκινησουμε το volatility
γραφουμε apt-get install volatility
και μας κανει εγκατασταση την εκδοση 2.4 η οποια μπορει να διαβασει την RAM και στα windows 8.1
τωρα οταν τελειωσει η εγκατασταση γραφουμε
volatility -f /root/Desktop/arxeio.raw imageinfo
οπου
imageinfo μας αναγνωριζει απο τι λειτουργικο εχει γινει το dump της RAM
-f η διαδρομη του αρχειου.raw
*θα κανει αρκετη ωρα αν ξερετε τι λειτουργικο ειναι απλα βαζετε το προφιλ
θα χρησιμοποιησουμε σαν προφιλ Win8SP1x64
για να μην γραφετε συνεχεια το προφιλ και την τοποθεσια μπορειτε να γραψετε τις εντολες
export VOLATILITY_PROFILE=Win8SP1x6
export VOLATILITY_LOCATION=file:///root/Desktop/arxeio.raw
*Αν ανοιξετε αλλο τερματικο τοτε πρεπει να τις ξαναγραψετε
*για να δειτε ολες τις εντολες που υποστηριζει το volatility για το συγκεκριμενο προφιλ θα γραψετε την εντολη
volatility --profile=Win8SP1x64 -f /root/Desktop/arxeio.raw -h
οποτε τωρα το πρωτο πραγμα που θα κανουμε ειναι να δουμε, τι διεργασιες ετρεχε το λειτουργικο συστημα οταν εγινε το dump
volatility --profile=Win8SP1x64 -f /root/Desktop/arxeio.raw pslist
απο τον πινακα τα βασικα που πρεπει να γνωριζετε ειναι
Offset (v) ειναι ο εικονικος χωρος θεσεως της διεργασιας
PID (Process Identity) ο αριθμος ταυτοτητα της διεργασιας
PPID (Parent Process Identity) ο αριθμος ταυτοτητας γoνικης διεργασιας
Thds (Threads) νηματα σε μια διεργασια (μικρη ακολουθια εντολων σε μια διεργασια)
Start ωρα εκιννηση της διεργασιας
Exit ωρα τερματισμος της διεργασιας
πχ
την διεργασια system με pid 4 και ppid 0 προφανως δεν θα εχει γονεα αυτη η διεργασια γιατι ειναι η αρχικη του συστηματος
αλλα βλεπετε οτι η διεργασια smss.exe εχει γονεα το system
εδω βλεπουμε οτι υπαρχει μια διεργασια rubyw.exe η οποια εχει τερματιστει
βλεπουμε οτι εχει αρ.ταυτοτητας (PID) 5280 και οτι ο γονεας της ειναι (PPID) 3868
οποτε προσπαθουμε να βρουμε τον γονεα της δλδ την διεργασια με PID 3868
η εντολη pstree θα μας βοηθησει ποιο ευκολα να την βρουμε
volatility --profile=Win8SP1x64 -f /root/Desktop/arxeio.raw pstree
και
επισης μπορειτε να το δειτε σε γραφικη μορφη
volatility --profile=Win8SP1x64 -f /root/Desktop/arxeio.raw psscan --output=dot --output-file=diergasies.dot
και για να δειτε το γραφημα
γραφουμε display diergasies.dot
και κοιταμε για την διεργασια rubyw.exe
oπως βλεπετε δεν μπορουμε να δουμε ποια διεργασια ειναι ο γονεας
δοκιμαζουμε την εντολη psxview για να δουμε αν υπαρχει καποια κρυφη διεργασια
volatility --profile=Win8SP1x64 -f /root/Desktop/arxeio.raw psxview
(* στην στηλη pslist αν υπαρχει false τοτε μια διεργασια ειναι κρυφη)
και δεν βλεπουμε τιποτα
κοιταμε για ενεργες συνδεσεις με την εντολη netscan
και βλεπουμε την διεργασια rubyw.exe ,παρολο που στις διεργασιες ελεγε οτι εχει τερματιστει υπαρχει ενεργη συνδεση με την ip 192.168.1.20 στην θυρα 8888
καταλαβαινουμε οτι σε καποια αλλη διεργασια εχει γινει inject ,
για να το βρουμε αυτο θα τρεξουμε την εντολη malfind και θα αποθηκευσουμε το dump σε ενα φακελο
volatility --profile=Win8SP1x64 -f /root/Desktop/arxeio.raw malfind -D /root/Desktop/malfind/
ψαχνουμε να βρουμε στο hexidecimal (4D 5A) και MZ header το οποιο δηλωνει οτι ειναι εκτελεσιμο αρχειο MS-DOS (πηρε το ονομα απο Mark Zbikowski, ενας απο τους ιδρυτες του MS-DOS)
(Το malfind μπορει να σας βγαλει και λανθασμενα αποτελεσματα γιατι μερικες διεργαισες περιεχουν PAGE_EXECUTE_READWRITE αυτο σημενει οτι μεσα στην διεργασια μπορει να γραφτει κωδικας και να εκτελεστει)
και βλεπουμε οτι στην διεργασια explorer εχει γινει inject
πηγαινουμε στην διαδρομη
γραφετε ls -lS
βλεπουμε ποσα bytes εχουν γινει inject και την εικονικη θεση χωρου της διεργασιας explorer.exe
μπορουμε να εξαγουμε την διεργασια και να εφαρμοσουμε αντιστροφη μηχανικη
για να κερδισουμε χρονο ομως
το ανεβαζουμε στο virus total
βλεπουμε οτι το εχoυν εντοπισει 5 απο τα 57 antivirus
εδω βλεπουμε ποια antivirus το εχουνε εντοπισει
γενικα να γνωριζετε οτι καθε ιος ειναι διαφορετικος
αλλα ολοι εχουνε 2 κοινα χαρακτηριστικα
να μενουν κρυμενοι και να τρεχουν μονιμα στο συστημα
εμεις ειδαμε τον ιο να ειναι κρυμενος στην διεργασια explorer.exe
τωρα μας μενει να βρουμε τον τροπο που μενει μονιμα στο συστημα(persistance)
οταν λεμε ενας ιος μενει μονιμα στο συστημα εννοουμε τον τροπο που ο ιος τρεχει καθε φορα που ξεκιναμε τον υπολογιστη μας
ολοι σχεδον οι ιοι η θα βρισκονται στη διαδρομη startup η θα εχουνε αλλη διαδρομη και θα ειναι γραμμενοι στην registry πχ
HKLM\Software\Microsoft\Windows\CurrentVersion\Run
μπορει να ξεκινανε και σαν υπηρεσια κτλ
αρχικα θα κοιταξουμε με την εντολη filescan
γενικα αυτη η εντολη σας λεει τι αρχεια εχουν χρησιμοποιηθει οταν εγινε το dump της μνημης RAM
εμεις θα δουμε τι υπαρχει στην διαδρομη startup
volatility --profile=Win8SP1x64 -f /root/Desktop/arxeio.raw filescan -V | grep "Startup"
και βλεπουμε οτι υπαρχει το εκτελεσιμο αρχειο win32.exe στην διαδρομη του Startup
*οτι εκτελεσιμο αρχειο υπαρχει σε αυτη την διαδρομη με το που ξεκινησει το συστημα σας τοτε εκτελειτε αυτοματα
Αυτος ο οδηγος ειναι βασικος ωστε να δειτε πως μπορειτε να βρειτε στην ουσια μια μολυσμενη διεργασια .ο ιος εγινε inject στην διεργασια explorer.exe και μετα το αρχικο αρχειο του ιου τερματιστηκε αλλα παρεμεινε στον υπολογιστη για να ξανατρεξει
Υπο κανονικες συνθηκες ενας χρηστης με απλες γνωσεις θα μπορουσε να δει μια υποπτη διεργασια αλλα με αυτο τον τροπο μολυνσεις δεν θα μπορουσε ποτε να δει την διεργασια (rubyw.exe) καθως δεν θα εμφανιζετε στην διαχειριση εργασιων (Task Manager)
Για παραδειγμα θα αναλυσουμε τον ιο Dark comet σε Windows 7
το δειγμα μπορειτε να το βρειτε εδω
το κατεβαζουμε και το αποσυμπιεζουμε
*WIN-TTUMF6EI3O3-20140203-123134.raw εγω το ονομασα dark.raw
οποτε τωρα τρεχουμε αρχικα την εντολη imageinfo
τωρα βλεπουμε τις διεργασιες με την εντολη pslist
και
με μια ματια δεν βλεπουμε κατι περιεργο αλλα ας δουμε αν υπαρχει συνδεση με την εντολη netstat
βλεπουμε 2 συνδεσεις η πρωτη ειναι Syn_sent δλδ μισανοικτη (half-open)αυτο γινεται συνηθως οταν εχει γινει η συνδεση και απο την αλλη μερια εχει κλεισει και δεν εχει ειδοποιηση αυτον που ακουει με αποτελεσμα να μενει μισανοικτη η απο την αλλη μερια ειναι αδρανης ,παρατηρουμε και την θυρα 1604 η οποια ειναι η κλασικη θυρα που χρησιμοποιει το Dark Comet αλλα δεν βλεπουμε την διεργασια
εφοσον τωρα ειμαστε σιγουροι οτι υπαρχει ιος κοιταμε καλυτερα τις διεργασιες
θα προσπαθησουμε να κοιταξουμε τον γονικη σχεση τον δεργασιων με την εντολη pstree
βλεπουμε οτι η διεργασια runddl32.exe ειναι γονεας της διεργασια notapad.exe
η διεργασια notepad.exe δημιουργειτε οταν εκτελουμε το προγραμμα επεξεργασιας κειμενου(notepad) και ξερουμε οτι γονεα εχει παντα την διεργασια explorer.exe η εστω την διεργασια cmd.exe που αυτη η διεργασια εχει γονεα την διεργασια explorer.exe
για να το καταλαβετε καλυτερα πχ εγω θελω να γραψω σε ενα αρχειο κειμενου
ανοιγω το notepad και γραφω,η διεργασια του notepad θα εχει σαν pid 1343 και ppid 789 ,η διεργασια explorer.exe θα εχει pid 789
τωρα αν ειμαι απο το τερματικο των windows και θελω να ανοιξω το notepad
το notepad θα εχει γονεα την διεργασια cmd.exe και η διεργασια cmd θα εχει γονεα την διεργασια explorer.exe και αυτο γινεται γιατι πολυ απλα η διεργασια explorer.exe μου επιτρεπει γενικα τον χειρισμο των windows
οποτε η υποπτη διεργασια ειναι η runddl32.exe
οποτε τωρα θα εξαγουμε την διεργασια με την εντολη procdump
και ανεβαζουμε στο virus total
και εδω βλεπουμε οτι ειναι Dark comet
ενας ενναλακτικος τροπος για να βρουμε την διεργασια εφοσον ξερουμε τον ιο
ειναι η εντολη yarascan
αυτη η εντολη κοιταει μεσα στις διεργασιες πχ
η πχ εφοσον ξερουμε την θυρα
για να βρουμε την διαδρομη του εκτελεσιμου θα χρησιμοποιησουμε την εντολη cmdline
για να δουμε αν εχει γραφτει στην registry(μητρωα των windows)
θα χρησιμοποιησουμε την εντολη printkey
σε αυτο το δειγμα εχω κανει ποιο απλη αναλυση της Ram και στην ευρεση τoυ ιου ωστε να καταλαβετε
για να δειτε μια ποιο προχωρημενη αναλυση τοτε κοταξτε εδω
Γενικα η ηλεκτρονικη εγκληματολογια ειναι ενας κλαδος πολυ καλος οσοι θελουνε να ασχοληθουνε ας κοιταξουν εδω ,θα βρειτε ολα τα παραδειγματα των εντολων,δειγματα απο RAM απο διαφορα μολυσμενα λειτουργικα επισης θα σας βοηθησει παρα πολυ αν διαβασετε εδω