Hüseyin Altunkaynak Kişisel Blog

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.

mindmap01

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

VMware Virtual Network

REMnux ve Windows 7‘nin sadece kendi arasında haberleşebilmesi için VMware üzerinden sanal bir ağ oluşturacağız.

lab01

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.

lab02

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.

lab03

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.

lab04

REMnux terminalden ifconfig komutu yardımıyla sanal makinemizin ip adresini öğreniyoruz.

lab05

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.

lab06

REMnux üzerinden INetSim ve FakeDNS servislerini başlatıyoruz.

lab07

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.

lab08

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

lab10

Analiz yaparken programların davranışını etkilememesi için Kullanıcı Bilgilendirmelerini devre dışı bırakıyoruz.

Windows Firewall

lab11

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.

lab12

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.

lab09

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.

ida01

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.

die01

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.

peid01

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.

pebear01

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.

peview01

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.

reshacker01

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.

strings01

010 Editor -> https://www.sweetscape.com/010editor/

Binary üzerinde istediğimiz değişikliği yapabilmemizi sağlayan Hex Editor.

010-01

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.

immu01

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.

procexp01

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.

procmon

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.

wire01

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.

regshot01

all tags