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 calışan gorevleri, yapılan işlemleri tespit etmek ve ona gore aksiyon almak icin bellek imajı almaya ihtiyac duyulabilmekte. Bellek imajlarının incelenmesi, ceşitli suc araştırmalarında ve zararlı yazılım analizi gibi pek cok şeyde kullanılıyor.
Bellek imajları yalnızca suc araştırmasında değil, ceşitli yazılımların veya arkada donen process ’lerin hatalarını anlamanıza da yardımcı olur. Bununla beraber bellek imajları ceşitli kişisel bilgileri de icerebilmektedir.
Bir bellek imajından;
Sistemdeki kotu amaclı yazılımlar Arkada calış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 Ceşitli şifreler ve kullanıcı oturumları Kayıt defterindeki değişiklikler ve ceşitli bilgiler Ceşitli mesajlaşma ve sosyal medya kayıtları En son goruntulenen gorseller
gibi kritik ve onemli bilgiler edinilebilir.
Rehber birbiriyle ilişkili dort başlığa odaklanılarak yazıldı. Rehberin genel iceriği hakkında bu dort başlığı okuyarak fikir edinebilirsiniz.
Bellek İmajı Alma: Rehberin ilk bolumu olan bu bolumde, erişiminizin olduğu bir sistemden nasıl tam bellek dokumu alabileceğiniz anlatılıyor. Bellek Analizi icin Gereken Yazılımların Windows ’a Kurulması: Rehberin ikinci bolumunu oluşturan bu kısımda bellek analizinde kullanacağımız yazılımlardan Volatility 3.0 surumunu baz alan PassMark Volatility WorkBench ’in sağlıklı calışabilmesi icin gereken programların kurulumu anlatılmakta. Kali Linux Uzerinde Volatility 2.6 ile Bellek Analizi: Rehberimizin ucuncu bolumunde ise, bellek imajını cok daha detaylı şekilde inceleyebileceğimiz Volatility 2.6 surumunun kullanımı, bu yazılım yardımıyla bellek imajından nasıl ceş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 dokumunu nasıl alabileceğinizi gostermeye calışacağız.
FTK Imager, adli bilişim alanında kullanılan, AccessData tarafından ucretsiz olarak sunulan onemli imaj alma yazılımlarından bir tanesidir.
Oncelikle FTK Imager yazılımımızı edinelim. Bunun icin aşağıda vermiş olduğum bağlantıya giderek “download” diyelim ve devam edelim.
FTK Imager Version 4.5 AccessData provides digital forensics software solutions for law enforcement and government agencies, including the Forensic Toolkit (FTK) Product.
Cıkan ekranda aracı edinebilmemiz icin ceş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 onemli.
Mail adresimize giriş yapıp spam kutusu da dahil olmak uzere maillerimizi kontrol ettiğimizde indirme bağlantısının gelmiş olduğunu goruyoruz. E-postayı “spam değil” olarak işaretleyip, mail icerisindeki indirme linkini kullanarak FTK Imager yazılımımızı indiriyoruz.
İndirdiğimiz kurulum dosyasını calıştırıyoruz ve kullanım sozleşmesini okuyup onayladıktan sonra devam ediyoruz. Bundan sonrasının normal program kurulumundan pek bir farkı yok.
FTK Imager kurulumu tamamlandığına gore “finish” diyip yazılımımızı başlatabiliriz.
Programı actığımızda karşımıza boyle bir ekran gelecek. FTK Imager sadece bellek alma amaclı değil, disk imajı almak icin de kullanıldığı icin biz burada sadece “Capture Memory” ozelliğini kullanacağız. Sol ustten “File” kısmına gelelim ve “Capture Memory” diyerek devam edelim.
İşte burada dikkat edilmesi gereken birkac onemli husus bulunuyor. İmajın alınacağı dizini, imajımızın ismini ve “pagefile.sys”ın dahil olup olmayacağını seciyoruz. Eğer sanal belleğin de imajının alınmasını istiyorsanız “Include pagefile.sys” seceneğini işaretleyebilirsiniz. Bellek imajı almadan once 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 icin alınan imaj ortalama 10 GB kadar olmakta.
“Capture Memory” butonuna basıyoruz.
Şu anda belleğinizin komple imajı, dokumu alınıyor. İşlemin suresi bilgisayarınızda bulunan işlemci, disk ve bellek hızına gore değişebilmekte. Bitmesini bekliyoruz, ortalama bir bilgisayarda yaklaşık 30-40 saniyede dokum oluşturulabilmektedir.
İşlem bittikten sonra bellek dokumunun kaydedileceği klasore gittiğimizde imajımız, dokumumuz bizi karşılıyor.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Volatility 3.0 ve Volatility WorkBench icin Gerekli Yazılımların Kurulumu
Şimdi sıra geldi elimizdekileri incelemeye. Bunun icin Volatility kullanacağız.
Volatility ’in yaygın olarak kullanılan 2.6 ve 3.0 olmak uzere iki adet surumu var. Biz bu rehberde her iki surumu de kullanacağız. Volatility 2.6, “large” şekilde kurulan Kali Linux ’da halihazırda yuklu geliyor. Bu nedenle bu rehberde 2.6 surumu icin kurulum aşamaları ile uğraşmayacağız. 3.0 surumunu ise Windows uzerinde kullanmak icin kendimiz edinmeliyiz.
Windows tarafında 2.6 surumu maalesef pek sağlıklı calışmamakta. Bu nedenle bu surumu kullanacak olanların herhangi bir Linux dağıtımına kendileri kurmaları gerekiyor. 3.0 surumu icinse Windows tarafında iki secenek 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 surumu Windows icin bulunmakta fakat dediğim gibi pek sağlıklı bir calışma şekline sahip değil.
Volatility 2.6 surumu, 3.0 ’a nispeten daha guclu ozelliklere sahip olduğu icin 3.0 ’a ek olarak 2.6 ile bellek imajını de analiz etmenizi oneririz. Bu rehberde Kali ile beraber gelen Volatility 2.6 kullanımına, Volatility 3.0 surumunun Windows tarafında PassMark Volatility WorkBench ile nasıl kolayca kullanılacağına değineceğiz.
Her iki program icin de bazı yazılımların sisteminizde bulunması gerekiyor. Volatility 2.6 surumu icin Python 2.7.x.x, 3.0 icinse 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 uzerindeyse sadece 3.0 surumunu kullanacağımız icin Python 3.5.3 uzeri bir surumlerden birini kurabiliriz.
https://www.python.org/ftp/python/3.9.0/python-3.9.0-amd64.exe
Python 3 ’u Windows ’a aşağıdaki gibi kurmanız daha sonra kullanacağınız işler icin de kolaylık sağlayacaktır.
Kurulumu actığınızda "Add Python 3.9 to PATH" seceneğini işaretledikten sonra "Customize Installation" seceneğine basıyoruz.
Burada ceşitli opsiyonel ozelliklerin kurulup kurulmayacağını soruyor. Next diyerek dokunmadan ilerliyoruz.
Bu kısımda ise bir şeye daha dikkat ediyoruz. Tercihen tum 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: kok dizinine kurabilirsiniz zira ilerideki kullanımlarda bu sizlere bircok kolaylık sağlayabilmekte. Bu ayarları yaptıktan sonra “Install” diyerek devam ediyoruz.
Bu kısımda ise herhangi bir yere basmadan direkt “Close” diyerek kurulumu sonlandırıyoruz.
Python 3.9 surumunu başarılı şekilde sistemimize kurduk. PATH ayarlaması duzgun yapılmış mı diye kontrol etmek icin komut istemini acıyoruz ve “python” komutunu giriyoruz. Uygun cıktıyı aldığımıza gore PATH ayarlaması kurulum tarafından başarıyla yapılmış.
Volatility 3.0 icin ayrıca “pefile” kurulumunu da yapmalıyız. Bunun icin cok uğraşmayacağız. Python etkileşimli kabuktan cıkın veya komut istemini yeniden acıp şu komutu girmeniz yeterli. Kurulum yapıldıktan sonra komut istemini kapatabiliriz.
Kod:Panoya kopyala
pip install pefile
Yukarıdaki adımları da uyguladığımıza gore Volatility WorkBench ve Volatility 3.0 surumunu Windows ’a indirebiliriz.
Volatility Workbench - A GUI for Volatility memory forensics
GitHub - volatilityfoundation/volatility3: Volatility 3.0 development Volatility 3.0 development. Contribute to volatilityfoundation/volatility3 development by creating an account on GitHub.
Rehberin bundan sonraki kısmında ilk olarak Kali Linux uzerinde 2.6 surumu ile nasıl bellek analizi yapılır detaylıca gostermeye calışacağız. Bu adımlardan sonraysa Windows tarafında ise 3.0 surumunu PassMark Volatility Workbench yardımıyla komut girmeden nasıl imajı analiz edebileceğinizi gostereceğim. Normal Volatility 3.0 ’ı kullanmamıza gerek yok zira PassMark Volatility Benchmark aynı işi goruyor. Yine de normal haliyle kullanmak isteyenler yukarıda verniş olduğum GitHub linkinden edinebilirler.
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Kali Linux Uzerinde Volatility 2.6 ile Bellek Dokumu Analizi
İncelemeye artık başlayabiliriz. Terminali acalım ve aşağıdaki komutu girerek kok kullanıcı yetkisini edinelim.
Bash:Panoya kopyala
sudo su
Kok kullanıcı yetkisini edindikten sonra "volatility" komutu ile beraber Volatility'i başlatabilirsiniz. İlk olarak bellek analizinde işimize yarayacak komutları gorelim. Bunun icin "-h" veya "--help" ekiyle yazılımı calıştırmamız yeterli.
Bash:Panoya kopyala
volatility -h
Gerekli komutlarımızı oğrendiğimize gore 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 icin terminali acı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:Panoya kopyala
cd /home/akil/Masaustu
Bash:Panoya kopyala
sha256sum memdump.mem
FTK Imager ile almış olduğumuz bellek imajını analiz etmemiz icin imaj hakkında ceşitli bilgiler edinip uyumlu profili tanımlamamız gerekiyor. Bunun icin imajın bulunduğu dizine gidelim ve imageinfo ile beraber Volatility'i calıştıralım. Bu komutu girdikten sonra bir sure sizleri bekletecektir. Bu sure 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 uzere. Boyutu cok buyuk olduğundan Windows 7 x64 uzerinden tekrardan imaj alma gereği duydum. İmajı yeni rehberden incelemeye devam edeceğiz.
Bash:Panoya kopyala
cd /home/akil/Masaustu ;// Eğer bir ustteki adımda bunu yaptıysanız gerek yok.
Bash:Panoya kopyala
volatility -f memdump.mem imageinfo
Elde ettiğimiz cıktıya gore 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 calışan process'leri oğrenmek istiyorum. Bunun icin gerekli profil bilgisinden hemen sonra pslist komutunu kullanacağım.
Bash:Panoya kopyala
volatility -f memdump.mem --profile Win7SP1x64 pslist
Pslist ile beraber arkada calışan process'leri oğrenmiş olduk. Uzun bir liste olduğu icin tam olarak ekran goruntusunu alamadım fakat dikkatimi "cmd" cekti. Bakalım komut satırında bu guzel kardeşimiz neler yapmış
Bash:Panoya kopyala
volatility -f memdump.mem --profile Win7SP1x64 cmdscan
Technopat.NET ve Google.com adreslerinin ayakta olup olmadığını kontrol icin ping atılmış. Acaba bu guzel kardeşimizin en son baktığı pencereler nerelermiş onları gorelim bir de. Bunun icin screenshot komutunu kullanacağız ve resimlerin kopyalanacağı konumu belirteceğiz. Ben masaustune kopyalanmasını istedim. Komutu girdikten bir sure sonra gorulduğu gibi en son bakılan pencerelere ait bir gorsel edindik.
Bash:Panoya kopyala
volatility -f memdump.mem --profile Win7SP1x64 screenshot --dump-dir /home/akil/Masaustu
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ı oğrenelim ve parolaların hashli halini dump edelim. Bunun icin hashdump komutunu kullanmalıyız. Ayrıca ben arkada calışan process'leri de dump etmek istiyorum. procdump komutu işimizi gorecektir. Process'leri kendi oluşturduğum bir dizine dump etmek istediğim icin orayı gosterdim.
Not: AkilTest kullanıcısına ait hash değerini kıran aşağıya yazsın
Bash:Panoya kopyala
volatility -f memdump.mem --profile Win7SP1x64 hashdump
Bash:Panoya kopyala
volatility -f memdump.mem --profile Win7SP1x64 procdump --dump-dir /home/akil/Masaustu/DumpEdilenProcess
DLL dosyalarını da dump edelim hazır elimiz değmişken. dlldump ile beraber bunu yapabiliriz. Arkada yuklenen DLL kutuphanelerini de oğrenmek veya listelemek istiyorsanız dlllist komutunu da kullanabilirsiniz.
Bash:Panoya kopyala
volatility -f memdump.mem --profile Win7SP1x64 dlllist
Bash:Panoya kopyala
volatility -f memdump.mem --profile Win7SP1x64 dlldump --dump-dir /home/akil/Masaustu/DumpEdilenDLL
Calışan Windows servislerini de oğrenelim. Bu bize arkada calışan guvenlik yazılımları, bazı programlar ve servisler hakkında bilgiler verebilir. svcscan bu iş icin aradığımız komut.
Bash:Panoya kopyala
volatility -f memdump.mem --profile Win7SP1x64 svcscan
Sistemde gizli ve inject edilmiş şekilde calışan kodları ve processleri de oğrenelim. "malfind" komutu yardımıyla bu bilgileri edinebiliriz. Cıktı olarak birtakım Assembly kodları gormekteyiz.
Bash:Panoya kopyala
volatility -f memdump.mem --profile Win7SP1x64 malfind
Sistemde gercekleşen callback'leri goruntuleyelim. callbacks yeterli bu iş icin.
Bash:Panoya kopyala
volatility -f memdump.mem --profile Win7SP1x64 callbacks
Cok 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 acılabilir hata dokumune nasıl donuşturebileceğinize değinelim. Bu şekilde elimizdeki bellek imajını DMP haline getirebiliriz. Elde edilen DMP dokumunu WinDBg ile acıp incelemeye başlayabilirsiniz bu adımdan sonra.
Bash:Panoya kopyala
volatility -f memdump.mem --profile Win7SP1x64 raw2dmp --output-image=MEMORY.DMP
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
PassMark Volatility WorkBench ile Volatility 3.0 Kullanımı ve Bellek Analizi
Sıra geldi PassMark Volatility Workbench kullanmaya. Volatility 3.0 surumunun daha kolay kullanılabilmesi amacıyla PassMark tarafından geliştirilen Volatility Workbench ile komut girmeden bellek dokumlerini 2.6 surumune kıyasla daha kısıtlı bir şekilde olsa inceleyebilirsiniz. Unutulmamalı ki 2.6 surumu cok daha ayıntılı bilgi edinmemizi sağlıyor.
Programı calıştıralım ve “Browse Image” kısmından imajımızı sectikten sonra “Get Process List” diyerek devam edelim. Bu işlemleri yaptıktan sonra birtakım “symbol” dosyaları indirilecek ve resimde gorulduğu gibi imaj uzerinden calışan process bilgisini edinmiş olacağız.
Bir onceki adımı uyguladıktan sonra “Command” kısmından komut secin. Sectiğiniz komutun ne işe yaradığı hakkında “Command Description” yazan yerden bilgi edinebilirsiniz.
Hepsi bu kadar