Forensic

[TR] Volatility ile RAM İmaj Analizi

Reklam

[TR] Volatility ile RAM İmaj Analizi

 

Merhabalar herkese, bu yazımda temel düzeyde Volatility  ile RAM imajı nasıl incelenir buna değineceğim. İlk olarak RAM ve RAM imajı nedir bunlardan bahsedelim, ardından imaj incelemesine geçelim.

 

RAM Nedir?

RAM, cihazda kısa süreli bilgilerin tutulduğu yerdir. Bilgisayarın çalıştırıldığı andan itibaren çalışan bütün process’leri, ağ bağlantılarını gibi bilgileri içerisinde barındırmaktadır. Sistem kapatıldığında burada tutulan bütün bilgiler silinmektedir. RAM’in ne olduğunu az biraz öğrenmiş olduk. Şimdi de RAM imajı nedir buna bakalım.

 

RAM İmajı Nedir?

RAM imajı, RAM’deki o anda bulunan verileri, sonrasında analiz etmemiz için aldığımız kalıptır. Bilgisayar kapatıldığı anda buradaki bilgilerin çoğu gidecektir. Bu yüzden sistem kapatılmadan önce RAM imajı alınmalıdır. Cryptolocker  saldırılarında RAM imajından key alınarak şifrelenmiş bilgiler kurtarılabilir.

RAM imajı almak için birçok araç vardır bunlardan bazıları: Belkasoft RAM Capturer ve FTK Imager  dır.

Bu yazımda kendi Windows 7 sanal makinemden aldığım imajı inceleyeceğim. Sizlerde GitHub’dan veya farklı platformlardan hazır imajlar bulabilirsiniz ya da üstte bahsettiğim uygulamalar ile kendi imajlarınızı alabilirsiniz.

Volatility’yi Windows makinenizde kullanacaksanız, kendi sitesinden indirmeniz gerekmektedir. İndirme linki: Volatility İndir 

 

RAM İmajı İncelemesi

RAM İmajı Alınan Cihaz Hakkında Bilgi Alma

İlk olarak imaj hakkında genel bilgileri almamız gerekmektedir. Bunun içinde imageinfo komutunu ve  -f  parametresini kullanacağız. -f  RAM imaj dosyasını belirtmekte, imageinfo  plugin’i ile de RAM imajının alındığı işletim sistemi hakkında bilgi alırız.

Volatility imageinfo
Volatility imageinfo

İşletim sistemi hakkında bilgileri ve RAM imajının ne zaman alındığı hakkında bilgi sahibi olmuş olduk. Bizlere birden fazla profil önerdi, bizde herhangi birini seçip (genel olarak ilki) işlemimize devam edebiliriz. Belirli bir profil üzerinden işlem yapmak için –profile=Win7SP1x64  komutunu kullanabiliriz.

 

Process’leri Listeleme

RAM imajı alınan işletim sistemi hakkında biraz da olsa bilgi edinmiş olduk. Hangi profilde işlem yapacağımızı da seçtiğimize göre RAM imajı alınmadan önce hangi process’ler çalışıyormuş bunlara bakalım. Bunun için: volatility.py -f imaj_dosyasi –profile=Win7SP1x64 pslist

pslist plugin’i ile çalışmakta olan process’leri listeleriz.

Volatility pslist
Volatility pslist

Burada bu process’lerin ne zaman başlatıldığı bilgileri, PID ve PPID gibi değerleri gösterilmektedir. pslist’e alternatif olarak pstree plugin’i bulunmaktadır ve bu plugin ile bir üst process’leri de listeleyebiliriz. Kullanımı aynı şekilde fakat sonda pslist yerine pstree yazacağız.

volatility.py -f imaj_dosyasi –profile=Win7SP1x64 pstree

Volatility pstree
Volatility pstree

Bu bilgileri yorumlamadan önce başka bir önemli komutu da göstereceğim. Bu komut psxview ‘dir ve bu komut ile gizlenen process’leri görebilmekteyiz. Yazmamız gereken komut: volatility.py -f imaj_dosyası –profile=Win7SP1x64 psxview 

Volatility psxview
Volatility psxview

Burada ilk iki sütunda False yazıyor ise gizlenmiş hiçbir process yoktur. Ancak her iki sütunda da True yazıyorsa gizlenmiş process’ler bulunmaktadır.

 

DLL Listeleme

RAM imajı alınmadan önce çalıştırılan DLL’leri listelemek için dlllist plugin’ini kullanabiliriz. Kullanmak için: volatility.py -f cridex.vmem –profile=WinXPSP2x86 dlllist

Volatility dlllist
Volatility dlllist

Belirli bir process’in DLL’lerini almak için ise: volatility.py -f WIN-0554IMCLTP1-20201128-192639.raw –profile=Win7SP1x64 dlllist -p 1468

Volatility dlllist -p parametresi
Volatility dlllist -p parametresi

Burada -p parametresi process’in PID değeridir, pslist ile elde etmiştik, istediğiniz bir sürecin PID değerini alıp -p PID_degeri  yazarak listeleyebilirsiniz.

 

DLL Verilerini İndirme

DLL verilerinin nasıl listelendiğini görmüştük, bunları incelemek için dump etmemiz gerekmektedir. Bunun için de dlldump plugin’ini kullanacağız. Plugin’ini kullanırken –D (destination) parametresini kullanıyoruz ki bu parametreyi yazdıktan sonra dump edilen DLL’lerin nereye kaydedileceğini yazacağız.

Kullanımı ise: volatility_2.6_win64_standalone.exe -f WIN-0554IMCLTP1-20201128-192639.raw –profile=Win7SP1x64 dlldump -D hedef

Volatility dlldump -1
Volatility dlldump -1
Volatility dlldump -2
Volatility dlldump -2

 

Kurulan Bağlantıları Listeleme

Örnek olarak bir zararlı çalıştırıldı ve dışarıdan bir IP adresi ile bağlantı kurdu. Bu bağlantıyı görüntülemek için connscan plugin’ini kullanabiliriz. Benim Windows makinemde böyle bir işlem gerçekleştirilmediği için bir malware çalıştırılmış imaj bulup inceledim.

Çalıştırılacak komut: volatility.py -f cridex.vmem –profile=WinXPSP2x86 connscan

Volatility connscan
Volatility connscan

Gördüğünüz gibi 2 adet sunucu ile bağlantı kurulmuş. Bu bağlantılar hangi portlar üzerinden yapıldığını da öğrenebiliriz. Bunun için ise sockets plugin’ini kullanacağız.

Çalıştırılacak komut: volatility.py -f cridex.vmem –profile=WinXPSP2x86 sockets

Volatility sockets
Volatility sockets

Görmüş olduğunuz gibi TCP ve UDP protokolleri ile kurulan bağlantılar gösterilmektedir. Bu plugin’ler Windows 7’de kullanılmaktadır fakat diğer sürümlerde sorun çıkartabilmektedir. Yeni sistemlerde sorunsuz çalışan netscan plugin’inine de bir bakalım.

Kullanımı: volatility.py -f WIN-0554IMCLTP1-20201128-181119.raw –profile=Win7SP1x64 netscan

Volatility iehistory
Volatility iehistory

Malware bulaşmış ise bu şekilde tespiti yapılabilirdi. Dış bir sunucuya bağlantı kursaydı eğer bu şekilde görebilecektik.

 

CMD Komutlarını Listeleme

CMD üzerinden çalıştırılmış komutları görebiliriz. Bir malware bir komut çalıştırmış olabilir, bir dosya oluşturmuş olabilir veya farklı dizinlere erişim sağlanmış olabilir. Bunları listelemek için cmdscan plugin’ini kullanacağız.

Volatility cmdscan
Volatility cmdscan

Veyahut consoles ve cmdline plugin’lerini de kullanabiliriz.

Volatility consoles
Volatility consoles
Volatility cmdline
Volatility cmdline

Consoles plugin’i ile çalıştırılmış komut geçmişini gösterir bizlere(_CONSOLE_INFORMATION’dan), cmdscan plugin’i ile de komut geçmişi gösterilir fakat bu sefer de _COMMAND_HISTORY aranmaktadır.

Registery Kayıtlarını Listeleme

İşletim sisteminde bulunan registery kayıtlarının yollarını bulmak için hivelist plugin’ini kullanabiliriz.

Registery kayıtları gerçekten önemli bir bölümdür. Çünkü bir malware çalıştıysa eğer hangi işlemler yaptığı gibi bilgiler burada tutulmaktadır.

Kullanımı ise: volatility_2.6_win64_standalone.exe -f WIN-0554IMCLTP1-20201128-192639.raw –profile=Win7SP1x64 hivelist

Volatility hivelist
Volatility hivelist

 

İnternet Geçmişini Listeleme

Kullanıcının hangi zamanda hangi siteye girdiğini listeleyebiliriz. Bunun için iehistory plugin’ini kullanacağız. Kullanımı: volatility.py -f WIN-0554IMCLTP1-20201128-181119.raw –profile=Win7SP1x64 iehistory

Volatility netscan
Volatility  netscan

 

Kullanıcıların Hash Bilgilerini Listeleme

Windows’da kullanıcıların bilgileri şifrelenmiş veri olarak saklanmaktadır ve bunlara hash denmektedir. Bu hash verilerini çeşitli araçlarla kırıp, Windows açılış şifrelerini öğrenebiliriz.  Bu bilgileri öğrenmek için hashdump plugin’ini kullanacağız.

Kullanımı: volatility.py -f WIN-0554IMCLTP1-20201128-181119.raw –profile=Win7SP1x64 hashdump

Volatility hashdump
Volatility hashdump

 

Anlatacaklarım bu kadardı, isteğe göre bir sonraki konuda malware bulaşmış bir RAM imajını inceleyebiliriz. Sağlıcakla kalın…

Reklam
Reklam

Yusuf Can Çakır

Selamlar, ben Yusuf Can Çakır. Kütahya Dumlupınar Üniversitesinde bilgisayar mühendisliği okumaktayım. Bu sene İngilizce hazırlık sınıfındayım fakat boş vakitlerimde Incident Response alanında kendimi geliştirmeye çalışmaktayım.

Bir Yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu