Rehber Komple Bellek Dökümü Alma ve Bellek Analizi

Merhaba,

Bu rehberde bir sistemin komple bellek imajını nasıl alabileceğinize ve nasıl inceleyip veri elde edebileceğinizi anlatacağız. Kurumunuzda veya bilişim uzmanıysanız operasyon sonrasında bilgisayarda aktif olarak çalışan görevleri, yapılan işlemleri tespit etmek ve ona göre aksiyon almak için bellek imajı almaya ihtiyaç duyulabilmekte. Bellek imajlarının incelenmesi, çeşitli suç araştırmalarında ve zararlı yazılım analizi gibi pek çok şeyde kullanılıyor.

Bellek imajları yalnızca suç araştırmasında değil, çeşitli yazılımların veya arkada dönen process’lerin hatalarını anlamanıza da yardımcı olur. Bununla beraber bellek imajları çeşitli kişisel bilgileri de içerebilmektedir.

Bir bellek imajından;

  • Sistemdeki kötü amaçlı yazılımlar
  • Arkada çalışan işlemler ve yazılımlar
  • İnternet tarayıcıları hakkında bilgi edinme
  • Ağ bağlantıları
  • Sistem hakkında bilgiler
  • Şifrelenmemiş birtakım RAW veriler
  • Çeşitli şifreler ve kullanıcı oturumları
  • Kayıt defterindeki değişiklikler ve çeşitli bilgiler
  • Çeşitli mesajlaşma ve sosyal medya kayıtları
  • En son görüntülenen görseller

gibi kritik ve önemli bilgiler edinilebilir.

Rehber birbiriyle ilişkili dört başlığa odaklanılarak yazıldı. Rehberin genel içeriği hakkında bu dört başlığı okuyarak fikir edinebilirsiniz.

  • Bellek İmajı Alma: Rehberin ilk bölümü olan bu bölümde, erişiminizin olduğu bir sistemden nasıl tam bellek dökümü alabileceğiniz anlatılıyor.
  • Bellek Analizi için Gereken Yazılımların Windows’a Kurulması: Rehberin ikinci bölümünü oluşturan bu kısımda bellek analizinde kullanacağımız yazılımlardan Volatility 3.0 sürümünü baz alan PassMark Volatility WorkBench’in sağlıklı çalışabilmesi için gereken programların kurulumu anlatılmakta.
  • Kali Linux Üzerinde Volatility 2.6 ile Bellek Analizi: Rehberimizin üçüncü bölümünde ise, bellek imajını çok daha detaylı şekilde inceleyebileceğimiz Volatility 2.6 sürümünün kullanımı, bu yazılım yardımıyla bellek imajından nasıl çeşitli veriler elde edebileceğinize değinildi.
  • PassMark Volatility WorkBench ile Bellek Analizi: Rehberin bu kısmındaysa PassMark Volatility Workbench yazılımı yardımıyla nasıl komut kullanmadan Volatility 3.0 yazılımından istifade edebileceğiniz anlatıldı.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

FTK Imager ile Bellek İmajı Alma Aşamaları

Rehberimizde ilk olarak FTK Imager ile komple bellek dökümünü nasıl alabileceğinizi göstermeye çalışacağız.

FTK Imager, adli bilişim alanında kullanılan, AccessData tarafından ücretsiz olarak sunulan önemli imaj alma yazılımlarından bir tanesidir.

Öncelikle FTK Imager yazılımımızı edinelim. Bunun için aşağıda vermiş olduğum bağlantıya giderek “download” diyelim ve devam edelim.


1.PNG


Çıkan ekranda aracı edinebilmemiz için çeşitli bilgileri girmeniz gerekiyor. İsminizi, soyisminizi ve mail adresinizi girin. Telefon numarası kısmını boş bırakabilir, organizasyona da eğer bir organizasyonda değilseniz “yok” yazabilirsiniz. Burada amacım eğitim olduğundan son olarak “Organization Type” kısmını “Educational” olarak belirledim. Hemen bu adımların ardından “submit” diyerek devam edelim. Aracın indirme linki mail adresimize gelecek bu nedenle doğru adresi yazmanız önemli.

2.PNG


Mail adresimize giriş yapıp spam kutusu da dahil olmak üzere maillerimizi kontrol ettiğimizde indirme bağlantısının gelmiş olduğunu görüyoruz. E-postayı “spam değil” olarak işaretleyip, mail içerisindeki indirme linkini kullanarak FTK Imager yazılımımızı indiriyoruz.

3.PNG


İndirdiğimiz kurulum dosyasını çalıştırıyoruz ve kullanım sözleşmesini okuyup onayladıktan sonra devam ediyoruz. Bundan sonrasının normal program kurulumundan pek bir farkı yok.

4.PNG


5.PNG

6.PNG


FTK Imager kurulumu tamamlandığına göre “finish” diyip yazılımımızı başlatabiliriz.

8.PNG


Programı açtığımızda karşımıza böyle bir ekran gelecek. FTK Imager sadece bellek alma amaçlı değil, disk imajı almak için de kullanıldığı için biz burada sadece “Capture Memory” özelliğini kullanacağız. Sol üstten “File” kısmına gelelim ve “Capture Memory” diyerek devam edelim.

9.png


İşte burada dikkat edilmesi gereken birkaç önemli husus bulunuyor. İmajın alınacağı dizini, imajımızın ismini ve “pagefile.sys”ın dahil olup olmayacağını seçiyoruz. Eğer sanal belleğin de imajının alınmasını istiyorsanız “Include pagefile.sys” seçeneğini işaretleyebilirsiniz. Bellek imajı almadan önce diskinizde yeterli alan olup olmadığını kontrol edin zira yeterli alan bulunmaması durumunda başarılı şekilde imaj alamayacaksınız. 8 GB RAM bulunan bir bilgisayar için alınan imaj ortalama 10 GB kadar olmakta.

“Capture Memory” butonuna basıyoruz.

10.PNG


Şu anda belleğinizin komple imajı, dökümü alınıyor. İşlemin süresi bilgisayarınızda bulunan işlemci, disk ve bellek hızına göre değişebilmekte. Bitmesini bekliyoruz, ortalama bir bilgisayarda yaklaşık 30-40 saniyede döküm oluşturulabilmektedir.

11.PNG


İşlem bittikten sonra bellek dökümünün kaydedileceği klasöre gittiğimizde imajımız, dökümümüz bizi karşılıyor.

12.PNG


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Volatility 3.0 ve Volatility WorkBench için Gerekli Yazılımların Kurulumu

Şimdi sıra geldi elimizdekileri incelemeye. Bunun için Volatility kullanacağız.

Volatility’in yaygın olarak kullanılan 2.6 ve 3.0 olmak üzere iki adet sürümü var. Biz bu rehberde her iki sürümü de kullanacağız. Volatility 2.6, “large” şekilde kurulan Kali Linux’da halihazırda yüklü geliyor. Bu nedenle bu rehberde 2.6 sürümü için kurulum aşamaları ile uğraşmayacağız. 3.0 sürümünü ise Windows üzerinde kullanmak için kendimiz edinmeliyiz.

Windows tarafında 2.6 sürümü maalesef pek sağlıklı çalışmamakta. Bu nedenle bu sürümü kullanacak olanların herhangi bir Linux dağıtımına kendileri kurmaları gerekiyor. 3.0 sürümü içinse Windows tarafında iki seçenek mevcut. PassMark Volatility WorkBench veya doğrudan Volatility 3.0 kullanabilirsiniz. PassMark Volatility Workbench, komut girmeye gerek olmadan Volatility 3.0’ı kullanabilmeye imkan tanıyor. 2.6 sürümü Windows için bulunmakta fakat dediğim gibi pek sağlıklı bir çalışma şekline sahip değil.

Volatility 2.6 sürümü, 3.0’a nispeten daha güçlü özelliklere sahip olduğu için 3.0’a ek olarak 2.6 ile bellek imajını de analiz etmenizi öneririz. Bu rehberde Kali ile beraber gelen Volatility 2.6 kullanımına, Volatility 3.0 sürümünün Windows tarafında PassMark Volatility WorkBench ile nasıl kolayca kullanılacağına değineceğiz.

Her iki program için de bazı yazılımların sisteminizde bulunması gerekiyor. Volatility 2.6 sürümü için Python 2.7.x.x, 3.0 içinse Python 3.5.3 veya daha yukarısının sisteminizde kurulu olması gerekiyor. Linux tarafında bunların ikisini de genellikle kurmanıza gerek yok. Windows üzerindeyse sadece 3.0 sürümünü kullanacağımız için Python 3.5.3 üzeri bir sürümlerden birini kurabiliriz.


Python 3’ü Windows’a aşağıdaki gibi kurmanız daha sonra kullanacağınız işler için de kolaylık sağlayacaktır.

Kurulumu açtığınızda "Add Python 3.9 to PATH" seçeneğini işaretledikten sonra "Customize Installation" seçeneğine basıyoruz.

13.PNG


Burada çeşitli opsiyonel özelliklerin kurulup kurulmayacağını soruyor. Next diyerek dokunmadan ilerliyoruz.

14.PNG


Bu kısımda ise bir şeye daha dikkat ediyoruz. Tercihen tüm kullanıcılara kurabilir veya bu şekilde bırakabilirsiniz. Ben bu şekilde bıraktım. Python 3.9 kurulum dizinini ise aşağıda yaptığım gibi C:\ kök dizinine kurabilirsiniz zira ilerideki kullanımlarda bu sizlere birçok kolaylık sağlayabilmekte. Bu ayarları yaptıktan sonra “Install” diyerek devam ediyoruz.

15.PNG


Bu kısımda ise herhangi bir yere basmadan direkt “Close” diyerek kurulumu sonlandırıyoruz.

16.PNG


Python 3.9 sürümünü başarılı şekilde sistemimize kurduk. PATH ayarlaması düzgün yapılmış mı diye kontrol etmek için komut istemini açıyoruz ve “python” komutunu giriyoruz. Uygun çıktıyı aldığımıza göre PATH ayarlaması kurulum tarafından başarıyla yapılmış.

17.PNG


Volatility 3.0 için ayrıca “pefile” kurulumunu da yapmalıyız. Bunun için çok uğraşmayacağız. Python etkileşimli kabuktan çıkın veya komut istemini yeniden açıp şu komutu girmeniz yeterli. Kurulum yapıldıktan sonra komut istemini kapatabiliriz.

Kod:
pip install pefile

18.PNG


Yukarıdaki adımları da uyguladığımıza göre Volatility WorkBench ve Volatility 3.0 sürümünü Windows’a indirebiliriz.



Rehberin bundan sonraki kısmında ilk olarak Kali Linux üzerinde 2.6 sürümü ile nasıl bellek analizi yapılır detaylıca göstermeye çalışacağız. Bu adımlardan sonraysa Windows tarafında ise 3.0 sürümünü PassMark Volatility Workbench yardımıyla komut girmeden nasıl imajı analiz edebileceğinizi göstereceğim. Normal Volatility 3.0’ı kullanmamıza gerek yok zira PassMark Volatility Benchmark aynı işi görüyor. Yine de normal haliyle kullanmak isteyenler yukarıda verniş olduğum GitHub linkinden edinebilirler.

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

Kali Linux Üzerinde Volatility 2.6 ile Bellek Dökümü Analizi

İncelemeye artık başlayabiliriz. Terminali açalım ve aşağıdaki komutu girerek kök kullanıcı yetkisini edinelim.

Bash:
sudo su

Kök kullanıcı yetkisini edindikten sonra "volatility" komutu ile beraber Volatility'i başlatabilirsiniz. İlk olarak bellek analizinde işimize yarayacak komutları görelim. Bunun için "-h" veya "--help" ekiyle yazılımı çalıştırmamız yeterli.

Bash:
volatility -h

volatility1.png


Gerekli komutlarımızı öğrendiğimize göre bellek imajımızı incelemeyi yapacağımız diske veya işletim sisteminin bulunduğu bilgisayardaki herhangi bir dizine kopyalayalım. Bellek dosyasının doğru şekilde kopyalandığından emin olmak için terminali açıp imajın bulunduğu dizine gidelim ve SHA256 değerini elde edelim. Sıkıntısız şekilde kopyalandığından emin olduğumuzda devam edebiliriz.

Bash:
cd /home/akil/Masaüstü

Bash:
sha256sum memdump.mem

FTK Imager ile almış olduğumuz bellek imajını analiz etmemiz için imaj hakkında çeşitli bilgiler edinip uyumlu profili tanımlamamız gerekiyor. Bunun için imajın bulunduğu dizine gidelim ve imageinfo ile beraber Volatility'i çalıştıralım. Bu komutu girdikten sonra bir süre sizleri bekletecektir. Bu süre imajın boyutuna, işlemcinize, depolama biriminizin (HDD, SSD) ne kadar hızlı olduğuna bağlı olarak değişebilir. Ayrıca rehberin başında imajı Windows 10’da almıştık bildiğiniz üzere. Boyutu çok büyük olduğundan Windows 7 x64 üzerinden tekrardan imaj alma gereği duydum. İmajı yeni rehberden incelemeye devam edeceğiz.

Bash:
cd /home/akil/Masaüstü ;// Eğer bir üstteki adımda bunu yaptıysanız gerek yok.

Bash:
volatility -f memdump.mem imageinfo

19 - Kopya.PNG


checksumvevolatilityimage1.png


Elde ettiğimiz çıktıya göre bize uygun profiller: Win7SP1x64, Win7SP0x64, Win2008R2SP0x64, Win2008R2SP1x64_24000, Win2008R2SP1x64_23418, Win2008R2SP1x64, Win7SP1x64_24000, Win7SP1x64_23418

Şimdi imajımızı bu profilleri ve komutları kullanarak incelemeye başlayalım. Ben ilk olarak arkada çalışan process'leri öğrenmek istiyorum. Bunun için gerekli profil bilgisinden hemen sonra pslist komutunu kullanacağım.

Bash:
volatility -f memdump.mem --profile Win7SP1x64 pslist

volatility2.png


Pslist ile beraber arkada çalışan process'leri öğrenmiş olduk. Uzun bir liste olduğu için tam olarak ekran görüntüsünü alamadım fakat dikkatimi "cmd" çekti. Bakalım komut satırında bu güzel kardeşimiz neler yapmış :D

Bash:
volatility -f memdump.mem --profile Win7SP1x64 cmdscan

volatility3.png


Technopat.NET ve Google.com adreslerinin ayakta olup olmadığını kontrol için ping atılmış. Acaba bu güzel kardeşimizin en son baktığı pencereler nerelermiş onları görelim bir de. Bunun için screenshot komutunu kullanacağız ve resimlerin kopyalanacağı konumu belirteceğiz. Ben masaüstüne kopyalanmasını istedim. Komutu girdikten bir süre sonra görüldüğü gibi en son bakılan pencerelere ait bir görsel edindik.

Bash:
volatility -f memdump.mem --profile Win7SP1x64 screenshot --dump-dir /home/akil/Masaüstü

volatility4.png


Bellek imajından elde edebileceğimiz bilgiler bununla da sınırlı değil. Şimdi de isterseniz imajın alındığı sistemin kullanıcılarını öğrenelim ve parolaların hashli halini dump edelim. Bunun için hashdump komutunu kullanmalıyız. Ayrıca ben arkada çalışan process'leri de dump etmek istiyorum. procdump komutu işimizi görecektir. Process'leri kendi oluşturduğum bir dizine dump etmek istediğim için orayı gösterdim.

Not: AkilTest kullanıcısına ait hash değerini kıran aşağıya yazsın :) Eğlenceli olur. Aşırı basit bir şifre koydum.

Bash:
volatility -f memdump.mem --profile Win7SP1x64 hashdump

Bash:
volatility -f memdump.mem --profile Win7SP1x64 procdump --dump-dir /home/akil/Masaüstü/DumpEdilenProcess

volatility5.png


volatility5.1.png


DLL dosyalarını da dump edelim hazır elimiz değmişken. dlldump ile beraber bunu yapabiliriz. Arkada yüklenen DLL kütüphanelerini de öğrenmek veya listelemek istiyorsanız dlllist komutunu da kullanabilirsiniz.

Bash:
volatility -f memdump.mem --profile Win7SP1x64 dlllist

Bash:
volatility -f memdump.mem --profile Win7SP1x64 dlldump --dump-dir /home/akil/Masaüstü/DumpEdilenDLL

volatility6.png


Çalışan Windows servislerini de öğrenelim. Bu bize arkada çalışan güvenlik yazılımları, bazı programlar ve servisler hakkında bilgiler verebilir. svcscan bu iş için aradığımız komut.

Bash:
volatility -f memdump.mem --profile Win7SP1x64 svcscan

volatility7.png


Sistemde gizli ve inject edilmiş şekilde çalışan kodları ve processleri de öğrenelim. "malfind" komutu yardımıyla bu bilgileri edinebiliriz. Çıktı olarak birtakım Assembly kodları görmekteyiz.

Bash:
volatility -f memdump.mem --profile Win7SP1x64 malfind

volatility8.png


Sistemde gerçekleşen callback'leri görüntüleyelim. callbacks yeterli bu iş için.

Bash:
volatility -f memdump.mem --profile Win7SP1x64 callbacks

volatility9.png


Çok fazla komut olduğu Volatility 2.6 ile yapılan bu inceleme kısmının arkasını uzatmayacağım. "volatility -h" ile diğer komutlar hakkında da bilgi edinip uygulayabilirsiniz. En son bellek imajımızı WinDBg ile açılabilir hata dökümüne nasıl dönüştürebileceğinize değinelim. Bu şekilde elimizdeki bellek imajını DMP haline getirebiliriz. Elde edilen DMP dökümünü WinDBg ile açıp incelemeye başlayabilirsiniz bu adımdan sonra.

Bash:
volatility -f memdump.mem --profile Win7SP1x64 raw2dmp --output-image=MEMORY.DMP
volatility10.png


volatilitywindbg.PNG


--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PassMark Volatility WorkBench ile Volatility 3.0 Kullanımı ve Bellek Analizi

Sıra geldi PassMark Volatility Workbench kullanmaya. Volatility 3.0 sürümünün daha kolay kullanılabilmesi amacıyla PassMark tarafından geliştirilen Volatility Workbench ile komut girmeden bellek dökümlerini 2.6 sürümüne kıyasla daha kısıtlı bir şekilde olsa inceleyebilirsiniz. Unutulmamalı ki 2.6 sürümü çok daha ayıntılı bilgi edinmemizi sağlıyor.

Programı çalıştıralım ve “Browse Image” kısmından imajımızı seçtikten sonra “Get Process List” diyerek devam edelim. Bu işlemleri yaptıktan sonra birtakım “symbol” dosyaları indirilecek ve resimde görüldüğü gibi imaj üzerinden çalışan process bilgisini edinmiş olacağız.

workbench.PNG


Bir önceki adımı uyguladıktan sonra “Command” kısmından komut seçin. Seçtiğiniz komutun ne işe yaradığı hakkında “Command Description” yazan yerden bilgi edinebilirsiniz.

workbench2.PNG


Hepsi bu kadar :)
 
Son düzenleme:
Elinize sağlık. Artık kendi taramalarımızı yapabiliriz.
Taramadan ziyade bellek dökümlerini kullanarak çeşitli analizler yapabilir ve veriler elde edebilirsiniz.

Adli bilişimde bellek analizi oldukça önemli bir rol oynar. Birçok delil bu şekilde elde edilebilmekte :)
 

Geri
Yukarı