Malware Analizi - 02
Malware Analizi
Malware Analizi serisinin ilk bölümüne ulaşmak için: Malware Analizi - 01
Malware Analizinin Amaçları
Analiz sırasında zararlımız çalışırken neyi amaçlamaktadır, hangi açıklığı kullanarak sistemleri ele geçirmiştir, hangi metotları kullanarak sistemde kalıcığını sağlamaya çalışmaktadır gibi sorulara yanıt bulabilmektir.
Zararlımız hangi ortamda çalışabilmektedir ve çalışması için hangi tür programlara ve kütüphanelere ihtiyaç duyar gibi kıstasları tespit edip hedef kitlenin belirlenmesidir.
Lab Ortamı Kurulumu
- İzolasyon
- Araçlar
- Hızlı Geri Dönebilme
İzolasyon
İncelediğimiz zararlının ne gibi özellikleri olduğunu bilmediğimiz için ortamı izole etmemiz gerekir. Sistemde çalıştıktan sonra ağ üzerinden başka bilgisayarlara ya da dosya sistemi üzerinden sanal makineyi çalıştırdığımız sisteme bulaşabilir. Bu tarz sıkıntıların yaşanmaması için analiz yaptığımız ortama dikkat etmeliyiz.
Lab Ortamı İçin Gerekli Sanal Makineler
- REMnux -> https://remnux.org/
- Windows 7 -> https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
VMware Virtual Network
REMnux ve Windows 7‘nin sadece kendi arasında haberleşebilmesi için VMware üzerinden sanal bir ağ oluşturacağız.
Sanal ağ oluşturmak için VMware menüsünden Edit -> Virtual Network Editor yolunu izleyerek düzenleme penceresine erişiyoruz. Add Network seçeneğine basarak Network name‘i belirliyoruz. Sonrasında Host-only seçeneğini seçiyoruz. Bu kısım önemli çünkü sanal makinelerin fiziksel ağımıza erişememesi gerekir. Add diyerek sanal ağımızı kaydediyoruz.
Sanal ağımız oluşturuldu. Şimdi birkaç ayar daha yapmamız gerekiyor. Sanal makinelerin fiziksel ağımız ile olan ilişkisini kestik ama internete de çıkmasını istemiyorsak Connect a host virtual adapter (wmnet2) to this network seçeneğindeki tiki kaldırıyoruz. Subnet IP‘yi de istediğimiz gibi belirleyebiliriz. Ben 192.168.148.0 subnetini kullanacağım.
Sanal ağımızı kurduk. Subnetimizi belirledik. Şimdi bu sanal ağımızı sanal makinelerimize eklememiz gerekiyor. Sol listedeki herhangi bir sanal makinemize sağ tıklayarak Settings menüsüne gidiyoruz. Bir tane Network Adapter tanımlayarak /dev/vmnet2 sanal ağını seçiyoruz. Bunu diğer sanal makine için de aynı şekilde yapıyoruz.
NOT: Dökümanı hazırlarken Linux kullandığım için sanal ağ /dev altında tanımlanmış. Bu yüzden /dev/vmnet2 şeklinde sanal cihazın yolu gözüküyor. Windows makinelerde çalışanlar bunu VMnet2 şeklinde görecektir.
INetSim ve FakeDNS kurulum
Sanal makinelerimizin ayarlarını yaptık. Şimdi aynı network üzerindeler ama analiz yaparken bütün isteklerin REMnux üzerinden geçmesini yani REMnux’un bir nevi proxy sunucu olmasını istiyoruz. Bunun için REMnux içerisinde kurulu gelen INetSim ve FakeDNS araçlarını kullanacağız.
REMnux terminalden ifconfig
komutu yardımıyla sanal makinemizin ip adresini öğreniyoruz.
Windows 7’ye geçip Network and Sharing Center üzerinden bağlı olduğumuz ağın ayarlarını açıyoruz. Local Area Connection Properties seçeneğini seçerek itemlar arasından Internet Protocol Version 4‘ün özelliklerini açıyoruz. VMware üzerinden oluşturduğumuz sanal ağda DHCP açık olduğu için otomatik IP ataması yapacaktır fakat biz istekleri REMnux üzerine yönlendirmek istediğimiz için manuel atama yapacağız. Default Gateway ve DNS server kısımlarına REMnux’un IP’sini giriyoruz ve ardından kaydediyoruz. Kısa bir süre sonra ayarlarımız geçerli olacaktır.
REMnux üzerinden INetSim ve FakeDNS servislerini başlatıyoruz.
Servisler çalıştıktan sonra Windows 7’ye geçerek Firefox üzerinden google.com a istek yapıyoruz. INetSim’in kendi oluşturduğu statik sayfası bizi karşılıyor.
Windows 7’de yaptığımız istekleri FakeDNS üzerinden kontrol ediyoruz. detectportal.firefox.com ve google.com için DNS istekleri yapılmış. Servislerimiz düzgün çalışıyor.
User Account Control
Analiz yaparken programların davranışını etkilememesi için Kullanıcı Bilgilendirmelerini devre dışı bırakıyoruz.
Windows Firewall
Windows Firewall aktivitesini de devre dışı bırakıyoruz. Zararlımız içerde kolayca at koşturabilsin diye yapmadığımız güzellik kalmadı :)
Araçların Kurulumu
Analiz sırasında gerekli olabilecek araçları sistemin snapshotını almadan önce yüklemek yararımıza olacaktır.
https://yadi.sk/d/kQinmBHB2-AT2w (pass: innovera-malware)
Topluca indirmek istemeyenler için araçların linkleri ilerde toplu şekilde verilecektir.
Hızlı Geri Dönebilme
Testi yaptığımız sistemde oluşabilecek her türlü zararı hızlı bir şekilde geri alabilmek için kullanılan etkili yöntemlerden biri de makinenin stabil halinin snapshotını almaktır. Lazım olan programları yükledikten sonra snapshot almak diğer analizler için de vakit kazandıracaktır.
Snapshot Manager
Araçlar
Statik Analiz
IDA -> https://www.hex-rays.com/products/ida/support/download.shtml
Daha çok tersine mühendislik için kullanılır. Çalıştırılabilir dosyaları açmak ve Disassembling içindir. Özellikle program akışını diyagram şeklinde göstermesi en büyük artısıdır.
DiE -> http://ntinfo.biz/index.html
Program hakkında bazı temel bilgileri verir. Bunlar programın içerdiği stringler, import ettiği dosyalar, paketlenme bilgisi, yazıldığı dil ve ne zaman linklendiği gibi bilgilerdir.
PEiD -> https://www.softpedia.com/get/Programming/Packers-Crypters-Protectors/PEiD-updated.shtml
PE (Portable Executable), 16 bit dosya formatı olan MZ formatının geliştirilmiş halidir. MZ formatı 8086 mimarisi için tasarlandığı için günümüz işlemcilerine uyum sağlamıyordu. Bunun sonucunda Microsoft PE dosya formatını geliştirdi. PEiD aracı, yaygın paketleyicileri, şifreleri ve derleyicileri tespit etmek için kullanılan küçük bir programdır.
PE-bear -> https://hshrzd.wordpress.com/pe-bear/
PEiD ile aynı amaca hizmet etmektedir. Zamanında CIA’in de kullanmış olduğu bir araçtır.
PEview -> https://github.com/dwfault/PEView
PEview, PE dosya başlıklarında ve dosyanın farklı bölümlerinde saklanan bilgilere göz atmak için sade ve kullanımı kolay bir programdır.
ResHacker -> http://www.angusj.com/resourcehacker/
Resource Hacker uygulamamız binary üzerinden dosyaları ayıklamamıza yarar. Stringler, resimler, VersionInfo, Manifest ve export edilmeyi bekleyen çalıştırılabilir dosyalar bunlara örnek gösterilebilir.
Strings -> https://docs.microsoft.com/en-us/sysinternals/downloads/strings
Yukarıda saymış olduğumuz programlar her ne kadar bizim stringleri çıkarma ihtiyacımızı karşılasada bazı durumlarda ihtiyacımız düşebilir.
010 Editor -> https://www.sweetscape.com/010editor/
Binary üzerinde istediğimiz değişikliği yapabilmemizi sağlayan Hex Editor.
Malcode Analyst Pack -> http://sandsprite.com/iDef/MAP/
İçerisinde zararlıdaki stringleri bulmak, zararlının hashini almak, zararlıyı virustotale yükleyerek raporunu almak ve daha bir çok statik toolu barındırmaktadır. Programı yükledikten sonra zararlıya sağ tıklayarak açılan menüden istediğimiz seçeneği seçebiliriz.
Dinamik Analiz
Immunity Debugger -> https://www.immunityinc.com/products/debugger/
Immunity Debugger, tersine mühendislerin ve exploit geliştiricilerin vazgeçilmez biricik tooludur. Çalışma anında istediğimiz adıma breakpoint koyup programın durmasını sağlayıp o anki registerları, stacki ve memory durumunu kontrol edebildiğimiz sade bir arayüze sahiptir.
OllyDBG -> http://www.ollydbg.de/download.htm
Immunity Debugger, OllyDBG’nin 1.10 versiyonu referans alınarak yazılmıştır.
Process Explorer -> https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer
Görev Yöneticisi benzeri bir işlevi vardır. O an çalışan process, threadleri listeler. Dosyanın nereden çağrıldığı ne zamandan beri çalıştığı gibi bilgileri barındırır.
Process Monitor -> https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
Windows için gerçek zamanlı olarak Dosya İşlemleri, Registry kayıtları ve process thread işlemlerinin gösterildiği tooldur.
WireShark -> https://www.wireshark.org/download.html
Wireshark network trafiğinin, bir grafik arayüz üzerinden izlenmesini sağlayan, pek çok zaman hayat kurtarıcı öneme sahip bir programdır. Uygulamanın kurulu olduğu bilgisayar üzerinden anlık network trafiği izlenebileceği gibi, daha önce kaydedilmiş dosyaların incelenmesi amacı ile de kullanılabilir. Standart kurulumda interfaceleri dinleyemiyor. Yardımcı program olan WinPcap -> https://www.winpcap.org/install/default.htm programını kurmamız gerekiyor.
RegShot -> https://portableapps.com/apps/utilities/regshot_portable
Regshot, kayıt defterinizin hızlı bir şekilde anlık görüntüsünü almanızı ve ardından sistem değişikliklerini yaptıktan veya yeni bir yazılım yükledikten sonra alınan ikinci görüntüyü karşılaştırmanızı sağlayan açık kaynaklı (LGPL) bir kayıt defteri karşılaştırma programıdır.