Volatility ile RAM İmaj Analizi

PwnLab.Me

Admin
Katılım
21 Ocak 2024
Mesajlar
202
Tepkime puanı
9
Puanları
18
Yusuf Can Çakır tarafından yazılmıştır.

[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…
 
Moderatör tarafında düzenlendi:
Geri
Üst