Yusuf Can Çakır tarafından yazılmıştır.
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, 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 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
İ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
İş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.
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
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
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
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.
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
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
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 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 -2
Ö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
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
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
Malware bulaşmış ise bu şekilde tespiti yapılabilirdi. Dış bir sunucuya bağlantı kursaydı eğer bu şekilde görebilecektik.
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
Veyahut consoles ve cmdline plugin’lerini de kullanabiliriz.
Volatility consoles
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.
İş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
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
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
Anlatacaklarım bu kadardı, isteğe göre bir sonraki konuda malware bulaşmış bir RAM imajını inceleyebiliriz. Sağlıcakla kalın…
[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
İş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
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
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
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
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
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 -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
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
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
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
Veyahut consoles ve cmdline plugin’lerini de kullanabiliriz.
Volatility consoles
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
İ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
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
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: