- 9 Kas 2021
- 33
- 34
Merhabalar, bugün Cyberdefenders'ta bulunan DeepDive labı çözümünü sizlerle paylaşmak istiyorum.
1. What profile should you use for this memory sample?
.vmem uzantılı kaydedilmiş memory belleği olarak geçen dosyalarımızı incelemek için python 2.7 ile çalışan Vlatility modülünü kullanalım. İlk soruda genel bir profil istediği için “imageinfo” komutunu kullanarak kullanılmış profilleri inceleyelim.
Seçenekler arasında çıkan sonuçlardan cevabımıza en uygun olan: Win7SP1x64_24000
2. What is the KDBG virtual address of the memory sample?
Bunu bir önceki komut ile de ulaşabileceğimiz gibi direkt istediği şekilde bir komut girelim.
KDGB’nin adresini sonunda harf olmadan girelim. Cevabımız: 0xf80002bef120
3. There is a malicious process running, but it's hidden. What's its name?
Kullanılan profil ile birlikte aramayı daraltarak çalışan programların listesine ulaşalım. Bunu için profilinde dahil olduğu psxview komutunu kullanalım.
Tüm programlar arasında psscan değeri False olan .exe uzantılı dosya zararlı dosya olarak tespit edilir. Ayrıca pslist değeri de false olduğu için kolaylıkla tespit ettik. Cevap: vds_ps.exe
4. What is the physical offset of the malicious process?
3. soruyu çözdüğümüz için bu soruda otomatik olarak cevaplamış olduk aslında. Fiziksel adresi hemen sol yanındaki adres olarak memoryde saklanıyor soru bunu istemiş.
Cevap: 0x000000007d336950
5. What is the full path (including executable name) of the hidden executable?
Zararlı programımızın ve buna bağlı memorydeki fiziksel yerini tespit etmiştik. Şimdi “grep exe” komutu ile profilimizi eşleştirerek zararlı dosyanın yolunu bulalım.
Cevabımızda C diskinde olduğu ipucu verilmiş. Buradan mantıklı bir adres çıkarmak için C’den sonra users klasörü ve devamını cevabımız: C:\Users\john\AppData\Local\api-ms-win-service-management-l2-1-0\vds_ps.exe
6. Which malware is this?
Bu soru aslında CTF’e girmeden önce hangisi olduğuyla ilgili bir görselle paylaşılmış. Basit bir şekilde cevabımızı girip yolumuza devam ediyoruz.
Cevap: emotet
7. The malicious process had two PEs injected into its memory. What's the size in bytes of the Vad that contains the largest injected PE? Answer in hex, like: 0xABC
Öncelikle malfind komutuyla enjekte edilmiş PE değerlerini ve ilgili VAD adreslerini bulalım.
Burada çıkan 2 farklı sonuca göre tekrar vadinfo komutunu dahil edelim ve hexadecimal değerlerin start ve endlerine göre aralık belirlemek için şu siteyi kullanabiliriz: Hex Calculator & Converter - Hexadecimal Algebraic Calculations, Hex to Decimal Converter, Decimal to Hex
En büyük Commitcharge değeri 0x2a80000’de bulunuyor.
Start ve End değerlerini hex calculatorda birbirinden çıkarttıktan sonra cevabımıza ulaşırız.
8. What is the pooltag of the malicious process in ascii? (HINT: use volshell)
Soruda da hint verilmiş. Votalitility altında volshell i nasıl kullanabileceğimizi anlamak için github sayfasına bakabilirsiniz.
İlk komutta görebileceğiniz gibi profili seçtiğimizde komut sistemine giriyoruz
Bundan sonra işlemi doğru yaptıysanız scripti çalıştırabiliriz. Soruya göre pooltag değerine ulaşalım.
Bulduğumuz decimal “1416573010” değeri öncelikle hexadecimal’e sonra da ascii değerine göre harflarine ulaşırsak cevabımız: R0ot
1. What profile should you use for this memory sample?
.vmem uzantılı kaydedilmiş memory belleği olarak geçen dosyalarımızı incelemek için python 2.7 ile çalışan Vlatility modülünü kullanalım. İlk soruda genel bir profil istediği için “imageinfo” komutunu kullanarak kullanılmış profilleri inceleyelim.
vol.py -f banking-malware.vmem imageinfo
Seçenekler arasında çıkan sonuçlardan cevabımıza en uygun olan: Win7SP1x64_24000
2. What is the KDBG virtual address of the memory sample?
Bunu bir önceki komut ile de ulaşabileceğimiz gibi direkt istediği şekilde bir komut girelim.
vol.py -f banking-malware.vmem kdbgscan
KDGB’nin adresini sonunda harf olmadan girelim. Cevabımız: 0xf80002bef120
3. There is a malicious process running, but it's hidden. What's its name?
Kullanılan profil ile birlikte aramayı daraltarak çalışan programların listesine ulaşalım. Bunu için profilinde dahil olduğu psxview komutunu kullanalım.
vol.py -f banking-malware.vmem --profile=Win7SP1x64_24000 psxview
Tüm programlar arasında psscan değeri False olan .exe uzantılı dosya zararlı dosya olarak tespit edilir. Ayrıca pslist değeri de false olduğu için kolaylıkla tespit ettik. Cevap: vds_ps.exe
4. What is the physical offset of the malicious process?
3. soruyu çözdüğümüz için bu soruda otomatik olarak cevaplamış olduk aslında. Fiziksel adresi hemen sol yanındaki adres olarak memoryde saklanıyor soru bunu istemiş.
Cevap: 0x000000007d336950
5. What is the full path (including executable name) of the hidden executable?
Zararlı programımızın ve buna bağlı memorydeki fiziksel yerini tespit etmiştik. Şimdi “grep exe” komutu ile profilimizi eşleştirerek zararlı dosyanın yolunu bulalım.
vol.py -f banking-malware.vmem --profile=Win7SP1x64_24000 vadinfo --offset=0x000000007d336950 | grep exe
Cevabımızda C diskinde olduğu ipucu verilmiş. Buradan mantıklı bir adres çıkarmak için C’den sonra users klasörü ve devamını cevabımız: C:\Users\john\AppData\Local\api-ms-win-service-management-l2-1-0\vds_ps.exe
6. Which malware is this?
Bu soru aslında CTF’e girmeden önce hangisi olduğuyla ilgili bir görselle paylaşılmış. Basit bir şekilde cevabımızı girip yolumuza devam ediyoruz.
Cevap: emotet
7. The malicious process had two PEs injected into its memory. What's the size in bytes of the Vad that contains the largest injected PE? Answer in hex, like: 0xABC
Öncelikle malfind komutuyla enjekte edilmiş PE değerlerini ve ilgili VAD adreslerini bulalım.
vol.py -f banking-malware.vmem --profile=Win7SP1x64_24000 malfind --offset=0x000000007d336950
Burada çıkan 2 farklı sonuca göre tekrar vadinfo komutunu dahil edelim ve hexadecimal değerlerin start ve endlerine göre aralık belirlemek için şu siteyi kullanabiliriz: Hex Calculator & Converter - Hexadecimal Algebraic Calculations, Hex to Decimal Converter, Decimal to Hex
En büyük Commitcharge değeri 0x2a80000’de bulunuyor.
vol.py -f banking-malware.vmem --profile=Win7SP1x64_24000 vadinfo -a 0x2a80000 --offset=0x000000007d336950
Start ve End değerlerini hex calculatorda birbirinden çıkarttıktan sonra cevabımıza ulaşırız.
8. What is the pooltag of the malicious process in ascii? (HINT: use volshell)
Soruda da hint verilmiş. Votalitility altında volshell i nasıl kullanabileceğimizi anlamak için github sayfasına bakabilirsiniz.
İlk komutta görebileceğiniz gibi profili seçtiğimizde komut sistemine giriyoruz
vol.py -f banking-malware.vmem --profile=Win7SP1x64_24000 volshell
Bundan sonra işlemi doğru yaptıysanız scripti çalıştırabiliriz. Soruya göre pooltag değerine ulaşalım.
dt( "_POOL_HEADER" ,0x000000007d336950-0x60, space=addrspace().base)
Bulduğumuz decimal “1416573010” değeri öncelikle hexadecimal’e sonra da ascii değerine göre harflarine ulaşırsak cevabımız: R0ot