- 8 Eyl 2016
- 1,646
- 998
Merhabalar, ileri seviye zararlı yazılım analizlerimize kaldığımız yerden devam ediyoruz. Analiz edeceğimiz program temel dinamik analizde incelediğimiz lab3-4 zararlısı olacak. Bu zararlı doğrudan çalıştırıldığında kendisini silmeye çalışıyordu bir komut satırı parametresi bekliyor olabileceğini anlamıştık. Şimdi ileri analizle bu olayı anlamaya çalışacağız.
Birinci soruda bizden programın yani zararlının nasıl çalıştırılabileceğini, yani nasıl işlevini yerine getireceğini soruyor. Ben IDA programımdan faydalanacağım. IDA ile zararlıyı disassemble edip assembly kodlarına bakalım.
Main içerisinde kodları incelediğimiz zaman ilk çağrı __alloca_probe üzerine yapılıyor. Burada dikkatimizi çeken ilginç bir olay göremiyorum. Hemen altında loc_402B1D adresine bir atlama gerçekleştiriliyor. JNZ komutu ile zero flag değerinin 0 olmama durumu kontrol ediliyor, eğer şart sağlanırsa ilgili adrese atlama yapılıyor. Burada bazı işlemler dönüyor. Ancak bu program çalıştırılması için belirli parametreler alması gerekiyor sanırım. Ben bu alınan parametreleri yakalamak için kendimce kısayol olarak data segmentini inceliyorum. Burada hangi değişkenler hangi değerleri tutuyor görebiliyoruz.
Burada bazı tanımlamalar dikkatimi çekiyor. Cc, c, re, in parametreleri bu programın yürütülmesi için gerekli parametreler olabilir. İn ve re yükleme ve kaldırma işlevlerini yerine getiriyor. Cc ve c parametreleri ise kayıt defteri işlevlerini erine getiriyor. Komut satırında bu argümanları verip programı çalıştırabilirsiniz. Ben biraz da ollydbg üzerinde devam edeceğim. Programımı ollydbg üzerinde açıyorum ve inceliyorum.
İlgili satırlara baktığımızda programımız 3 argüman alarak çalıştığını görebiliyoruz.
Bakın aldığı argümanları da görebiliyoruz. Yani programın yüklenmesinde kullanılan -in argümanına ek olarak aldığı diğer argümanlarda burada görülmektedir.
Aynı zamanda 2.soruda bizden uygulamanın argümanlarına ek olarak çalışması için gereken şifreyi de soruyor. Bunun araştırmasına koyuluyoruz.
CMP ECX, 4 aslında şifrenin 4 karakterli olduğunu belirtiyor.
Bu satırları dikkatli inceleyin. Mavi ile çizdiğim noktalarda aslında 4 karakterli şifreyi bize veriyor.
Cmp EDX, 61 buradaki 61 ascii tablosunda ‘a’ harfine karşılık geliyor. Bir sonraki işaretlediğim noktada ikinci karakterimiz 62 yani ‘b’ harfine karşılık geliyor. Bir sonraki 63, yani ‘c’ bir sonraki 64 yani ‘d’ harfine karşılık geliyor. Parolamız: abcd olarak tespit edilmiş oluyor.
3. soruda bizden uygulamanın parolasını ortadan kaldırmak için nasıl bir yol izlememiz gerektiğini soruyor.
0x402510 adresinde bir takım aritmetik kontroller yer alıyor. Burada eax kontrolünü atlatırsak yani 1 ile değiştirirsek parola kontrolünü atlatmış oluyoruz. Burada ilgili satıra gelip ctrl+e yaptıktan sonra binary edit ekranında eax değerini 1 olarak değiştirip programın parola kontrolünü sorgulamadan geçmesini sağlıyoruz.
Daha sonrasında sağ tık > copy to executable > all modifications yolunu izleyerek uygulamayı kaydettiğimiz zaman elimizde parola kontrolünü geçen crackenmiş bir yazılım elde etmiş oluyoruz.
4. soruda ana bilgisayar tabanlı göstergeleri soruyor.
Zararlı yazılımı konumlandırmak için kullanılan kayıt defteri girdisi,
Hizmet yöneticisinde hizmet oluşturulması
Şu adreste bir dosyanın varlığı bilgisayar tabanlı göstergeleri olarak söyleyebiliriz.
5. soru da ise ağ tabanlı işlemleri soruyor.
Programımız soket ile bağlantı kuruyor. Download, upload, createfile, writefile işlemlerini gerçekleştiriyor.
Son soruda ise ağ tabanlı bir imza soruyor.
Uygulamamız gördüğünüz web adresine bağlantı kuruyor. Bu konumuzda bu kadar. Okuduğunuz için teşekkürler.
Birinci soruda bizden programın yani zararlının nasıl çalıştırılabileceğini, yani nasıl işlevini yerine getireceğini soruyor. Ben IDA programımdan faydalanacağım. IDA ile zararlıyı disassemble edip assembly kodlarına bakalım.
Main içerisinde kodları incelediğimiz zaman ilk çağrı __alloca_probe üzerine yapılıyor. Burada dikkatimizi çeken ilginç bir olay göremiyorum. Hemen altında loc_402B1D adresine bir atlama gerçekleştiriliyor. JNZ komutu ile zero flag değerinin 0 olmama durumu kontrol ediliyor, eğer şart sağlanırsa ilgili adrese atlama yapılıyor. Burada bazı işlemler dönüyor. Ancak bu program çalıştırılması için belirli parametreler alması gerekiyor sanırım. Ben bu alınan parametreleri yakalamak için kendimce kısayol olarak data segmentini inceliyorum. Burada hangi değişkenler hangi değerleri tutuyor görebiliyoruz.
Burada bazı tanımlamalar dikkatimi çekiyor. Cc, c, re, in parametreleri bu programın yürütülmesi için gerekli parametreler olabilir. İn ve re yükleme ve kaldırma işlevlerini yerine getiriyor. Cc ve c parametreleri ise kayıt defteri işlevlerini erine getiriyor. Komut satırında bu argümanları verip programı çalıştırabilirsiniz. Ben biraz da ollydbg üzerinde devam edeceğim. Programımı ollydbg üzerinde açıyorum ve inceliyorum.
İlgili satırlara baktığımızda programımız 3 argüman alarak çalıştığını görebiliyoruz.
Bakın aldığı argümanları da görebiliyoruz. Yani programın yüklenmesinde kullanılan -in argümanına ek olarak aldığı diğer argümanlarda burada görülmektedir.
Aynı zamanda 2.soruda bizden uygulamanın argümanlarına ek olarak çalışması için gereken şifreyi de soruyor. Bunun araştırmasına koyuluyoruz.
CMP ECX, 4 aslında şifrenin 4 karakterli olduğunu belirtiyor.
Bu satırları dikkatli inceleyin. Mavi ile çizdiğim noktalarda aslında 4 karakterli şifreyi bize veriyor.
Cmp EDX, 61 buradaki 61 ascii tablosunda ‘a’ harfine karşılık geliyor. Bir sonraki işaretlediğim noktada ikinci karakterimiz 62 yani ‘b’ harfine karşılık geliyor. Bir sonraki 63, yani ‘c’ bir sonraki 64 yani ‘d’ harfine karşılık geliyor. Parolamız: abcd olarak tespit edilmiş oluyor.
3. soruda bizden uygulamanın parolasını ortadan kaldırmak için nasıl bir yol izlememiz gerektiğini soruyor.
0x402510 adresinde bir takım aritmetik kontroller yer alıyor. Burada eax kontrolünü atlatırsak yani 1 ile değiştirirsek parola kontrolünü atlatmış oluyoruz. Burada ilgili satıra gelip ctrl+e yaptıktan sonra binary edit ekranında eax değerini 1 olarak değiştirip programın parola kontrolünü sorgulamadan geçmesini sağlıyoruz.
Daha sonrasında sağ tık > copy to executable > all modifications yolunu izleyerek uygulamayı kaydettiğimiz zaman elimizde parola kontrolünü geçen crackenmiş bir yazılım elde etmiş oluyoruz.
4. soruda ana bilgisayar tabanlı göstergeleri soruyor.
Zararlı yazılımı konumlandırmak için kullanılan kayıt defteri girdisi,
Hizmet yöneticisinde hizmet oluşturulması
Şu adreste bir dosyanın varlığı bilgisayar tabanlı göstergeleri olarak söyleyebiliriz.
5. soru da ise ağ tabanlı işlemleri soruyor.
Programımız soket ile bağlantı kuruyor. Download, upload, createfile, writefile işlemlerini gerçekleştiriyor.
Son soruda ise ağ tabanlı bir imza soruyor.
Uygulamamız gördüğünüz web adresine bağlantı kuruyor. Bu konumuzda bu kadar. Okuduğunuz için teşekkürler.