BU SERVİS, GOOGLE TARAFINDAN SAĞLANAN ÇEVİRİLER İÇEREBİLİR. GOOGLE, HERHANGİ BİR GARANTİ, GÜVENİLİRLİK VE TİCARİ ELVERİŞLİLİK, BELİRLİ BİR AMACA UYGUNLUK VE İHLAL ETMEME GARANTİLERİ DAHİL OLMAK ÜZERE AÇIK VEYA ZIMNİ GARANTİLER DE DAHİL OLMAK ÜZERE, AÇIK VEYA ZIMNİ TÜM GARANTİLERİ REDDEDER.

Kaspersky Lab web sitesi, Google Çeviri tarafından desteklenen çeviri yazılımı kullanılarak size kolaylık sağlamak amacıyla tercüme edilmiştir. Doğru bir çeviri sağlamak için makul çabalar sarf edilmiştir, ancak otomatik çeviri mükemmel değildir ve insan çevirmenlerinin yerini alması amaçlanmamıştır. Çeviriler, Kaspersky Lab web sitesinin kullanıcılarına bir hizmet olarak sunulur ve "olduğu gibi" sağlanır. İngilizce'den başka bir dile çevrilmiş herhangi bir çevirinin doğruluğu, güvenilirliği veya doğruluğu konusunda açık ya da zımni hiçbir garanti verilmemektedir. Çeviri yazılımı sınırlamaları nedeniyle bazı içerikler (görüntüler, videolar, Flash vb. Gibi) doğru bir şekilde çevrilemeyebilir.

Trojan-Banker.Win9x.Libertine

Sınıf Trojan-Banker
Platform Win9x
Açıklama

Teknik detaylar

Bu virüs, hem DOS hem de Win32 dosyalarını etkileyen çok platformlu ve polimorfik bir enfektördür. Kodundaki metin dizelerinden sonra adlandırılmıştır:


[Win32.Libertine v1.07b]
Telif Hakkı 1998-xxxx tarafından
Virüs üç farklı şekilde bulunabilir:
  • bulaşmış Win32 PE dosyaları
  • bulaşmış DOS COM dosyaları
  • Win32 PE damlalığı (31672 bayt saf virüs kodu)
Hata nedeniyle virüs bulaşmış COM ve EXE dosyaları Windows NT altında çalışamaz, standart NT veya DrWatson hata iletisiyle sonlandırılır. Buna rağmen virüs virüsünün virüsleri NT bilgisayarlarda herhangi bir sorun olmadan yayılabileceğinden virüs Win32, Win95 değil.

Hem Win32 hem de DOS dosyalarını enfekte ederken virüs, 32Kb kodunun tamamını dosyaların sonuna yazar ve kontrolleri virüs rutinine geçirmek için dosya başlıklarını değiştirir. Giriş rutinlerinin adresleri her üç enfeksiyon vakasında farklıdır. Virüs bulaşmış Win32 ve DOS programlarında virüsleri kontrol altına alırken, Win32 damlalıklı (C: MYLENE.EXE dosyası) arar, yürütür ve ana programa geri döner. C: sürücüsünde kök dizininde damlalık yoksa, virüs önce oluşturur ve sonra yürütür.

Bu damlalık aktivasyon rutinleri virüslü dosyalarda oldukça kısadır. DOS COM dosyaları durumunda, sadece yaklaşık 200 byte sadece yazma-yakın çalışma rutin oluşturun. Win32 dosyaları durumunda daha sofistike ama aynı zamanda oldukça aptal ve kısa.

Bu nedenle virüs bulaşmış dosyalarda sadece damlalık yaratır ve çalıştırır – artık yok, ve tüm virüs bulaşma ve virüs bulaşıcı virüs fonksiyonları Win32 virüs damlacığına düşer.

Damlalıklı Koşu

Damlalık uygulandığında virüs öncelikle sistemdeki varlığını gizlemek için bazı hileler yapar. Erişim ihlali sistem mesajlarını önlemek için SetErrorMode KERNEL32 işlevini kullanarak virüs, Genel Koruma Hatası hata mesajını devre dışı bırakır. Windows daha sonra koruma ihlali hakkında herhangi bir rapor olmadan uygulamayı yürütmeye devam edecektir.

Virüs daha sonra çalıştığı sistemi denetler (Windows95 / 98 veya Windows NT) ve Windows9x yamaları sistem belgesiz işlem veritabanı durumunda ve iki bayrağı ayarlar – NukeProcess ve ServiceProcess. Bu bayraklar en az iki amaç için ayarlanır: a) İşlem Ctrl-Alt-Del görev listesinde görünmez; b) kullanıcı oturumu kapattığında işlem sonlandırılmaz. Bu bayrakları etkinleştirmek için virüs, damlalıklarını "seksi" ID argümanı ile tekrar çalıştırır.

Yamalı sistem ortamında yürütüldüğünde virüs diğer rutinlerine atlar: anti-anti-virüs rutini, yük ve enfeksiyon.

Anti-anti-virüs

Virüsten korunmayı devre dışı bırakmak için virüsün hedef olarak yalnızca bir virüsten koruma virüsü vardır, yani APVI – AVP Denetçisi bütünlüğü denetleyicisi (CRC tarayıcısı). Virüs AVPI dosyasını arar, açar ve belirli bir kod için tarar. Bu tür bir kod bulunursa, virüs NOP talimatları ile değiştirir. Farklı efektlere neden olan farklı AVPI sürümlerine bağlı olarak: AVPI, sistemdeki değişiklikleri algılamaz veya taramayı hemen durdurur ve istatistik iletişim kutusunu görüntüler.

Virüs, sistem kayıt defterini kullanarak AVPI dosya adını alır. HKEY_USERSDefaultSoftwareKasperskyLabAVPI anahtarını açar, AVPI dizinine giden yolu alır, AVPICHCK.DLL dosyasını açar, tarar ve yamalar. Yinelenen yamayı önlemek için virüs, 0030h ofsetinde dosya başlığına "kcah" ("yazılı" geri ") kimliğini saklar.

Virüs ayrıca aktifse AVPI'yi de sonlandırır. Bunu yapmak için, virüs AVPI32 penceresini bulur, iş parçacığı kimliğini alır, işlemi açar ve sonlandırır.

enfeksiyon

Enfeksiyon rutin kontrol altına alındığında, virüs, C: ile başlayan tüm sabit disklerdeki tüm dosyalar için tüm alt dizin ağaçlarını tarar. Eğer sekansta (CD-ROM, uzak veya başka) sabit olmayan disk varsa, virüs kendi kendini sonlandırır.

Bir dosya bulunduğunda virüs, COM veya EXE dosya adı uzantısı için kontrol eder. Virüs sadece bu tür dosyaları bozar ve aksi halde sonraki dosya veya alt dizin girişini arar. Dosya yürütülebilir bir uzantıya sahipse, sistem zamanlayıcısına bağlı 7/8 olasılıklı virüs, bulaşma yordamına atlar, aksi halde, çalıştırılmaya devam edemeyen ad uzantısı durumunda da devam eder.

İlk olarak virüs, ilk iki baytını sihirli MZ damgasıyla karşılaştırarak COM ve EXE dosyalarını ayırır. EXE dosyası durumunda, virüs daha sonra Taşınabilir Yürütülebilir ve virüs kimlik damgalarını kontrol eder – başlığın üstündeki "PE" kelimesi ve "IM!" PE CheckSum alanında. Kodunu Portable Executable dosyalarının sonuna eklerken virüs, _Milen_ adlı yeni bir bölüm oluşturur, Giriş Noktası Adresini ve diğer gerekli alanları değiştirir. Daha sonra polimorfik motoru çalıştırır, kopyasını şifreler ve yeni oluşturulan bölüme PE dosyasının sonuna yazar.

COM dosyası durumunda virüs, dosyanın sonuna da yazıyor, aynı zamanda dosyanın üst kısmına EXE başlığı ekleyerek dosya formatını EXE'e dönüştürüyor. Virüs DOS dosyalarını iki kez etkilemez – dahili dosya formatını kontrol eder ve sadece COM dosyalarını etkiler. Enfekte olmak EXE formatına sahip ve virüs enfeksiyonu rutin tarafından atlanır. Virüs, dosyaların sonunda "ENUN" metin dizesi olan dosyaları da enfekte etmez. Bu ID, bu COM dosyalarının CRC tarafından korunduğunu, dolayısıyla virüsün bunları etkilemesini engellediğini gösterir. Virüs ayrıca 2K'nin altında veya 60K'nın üzerinde olan küçük ve büyük COM dosyalarını da etkilemez.

Enfekte COM dosya yürütme

DOS COM dosyaları enfekte ederken, virüs EXE formatına dönüştürür, yani virüs bulaşmış COM dosyaları EXE üstbilgisi vardır: MZ sihirli damga üst ve tüm gerekli EXE başlık alanları. Virüs bulaşmış dosya başlığının dikkatli bir şekilde incelenmesi, hacker'ın programın kaynağını hemen gösterir: birkaç alanın sıradan programlarda bulunamayacak değerleri vardır. Öncelikle HeaderSize (Başlıktaki Paragraflar) alanlarının sıfır olması, yani EXE başlığında hiçbir bayt olmadığı anlamına gelir (ancak en az iki tane – 'M' ve 'Z'). İkinci şüpheli alan -10h (FFF0h) değeri depolanan "girişte CS" dir. Aynı EXE üstbilgisinde bu alanların her ikisi de DOS DOS dosyasını standart DOS COM dosyası olarak yüklemek için zorlar: 0000 ile 00FFh arasındaki baytlar Programın Segment Prefix'i tarafından işgal edilen baytlar, atanan belleğin sonuna kadar 0100h'den itibaren dosya görüntüsü içindir ve dosyanın ilk baytı 0100h ofsetine yerleştirilir. DOS COM dosyaları durumunda dosya imajı, bir segment (64K) ile çakışamaz; DOS EXE dosyaları için, yüklenebilir görüntü, bir bellek boşluğundaki bir bloğu dolduran herhangi bir boyutta olabilir.

Virüs, herhangi bir boyuttaki COM dosyalarını bulaştırabilen COM-> EXE numarasını kullanarak, dosya boyutu, virüs bulaştığı sırada 64 K sınırlaması üzerinde büyürse, işlevselliğini kaybetmez. Virüs boyutunu hatırla – EXE formatına dönüştürmeden, virüs 32Kb'den büyük boyutlu COM dosyalarını etkileyemezdi. Hile başka bir önemli etkisi kontrol programı ana programa dönmek için kolay bir yoldur – virüs hiçbir şey yapmaz ama sadece dosya üstbilgisi ilk 4Fh bayt geri yükler ve oraya atlar.

Böylece virüs kodu, ilk bayttan ("MZ" damgası) başlayana kadar belleğe yüklenir ve kontrol, EXE başlığının işaret ettiği adrese iletilir. Bu virüs durumunda giriş kodu, dosya tepesinin çok yakınına yerleştirilir – 0020h adresinde. Bu rutin 32 bitlik i386 komutlarını kullanarak ana virüs kodunun ofsetini alır (bu ofset başlıkta 001Ch adresinde saklanır), 16 bitlik segment: ofset formatına dönüştürür ve oraya atlar. Giriş rutin de yazma korumalı birimlere yazarken standart DOS hata mesajını önlemek için INT 24h kancalar, virüsün yazarı neden burada ama ana virüs kodunda değil, hiçbir fikrim yok.

Ana virüs kodu kontrolü aldığında, Windows varlığını kontrol eder. Windows çalıştırılamıyorsa veya Windows sürümü 4.0'dan (Windows95) daha azsa, virüs, ana bilgisayar programı baytını en üstte geri yükler ve denetimi oraya döndürür. Windows çalıştırılırsa, virüs C: MYLENE.EXE dosyasını oluşturur, Win32 damlalığını oraya yazar, dosyayı kapatır ve yürütür. Damlalık kontrol altına alır ve virüs enfeksiyon seviyesinde geri döner.

Enfekte PE dosyası yürütme

Virüs bulaşmış bir PE dosyası yürütüldüğünde, virüs polimorfik rutini kontrol altına alır, virüs kodunu çözer ve ana rutine atlar. Bu rutin COM dosyası durumunda aynı değildir. Windows belleği ve kaynakları ile çalışan 32 bitlik bir programdır, ancak bu rutinin hedefi COM dosyasıyla aynıdır: virüs damlalığını oluşturur ve çalıştırır.

Windows işlevine erişmek için virüs, PE İçe Aktarma Tablosunu kullanarak bunları içe aktarır veya Windows çekirdeğini tarayarak adreslerini alır. Virüs ikinci yolu seçer: çevreye dikkat eder (Windows95 / 98 veya Windows NT – virüs her iki durumda da doğru ofsetleri kullanır), KERNEL32 ithalatlarını ayrıştırır ve CreateFileA, WriteFile, CloseHandle ve WinExec işlevlerini arar. Virüs bulaşmış PE dosyalarındaki prosedür oldukça basittir ve daha fazla değil, sadece bu dört girdiye ihtiyaç vardır. // Burada WindowsNT altında yayılmasını durduran virüs kodunda bir hata var.

Virüs sonra virüs bulaşmış DOS COM dosyası gibi benzer şekilde C: MYLENE.EXE dosyası oluşturur, orada bırakıcısı kodu yazar, bu dosyayı kapatır ve yürütür. Damlalık kontrolü ele geçirir ve virüs algoritmasının bu PE dalı köküne geri döner.

Taşıma kapasitesi

Virüsten koruma ve virüs bulaşma yordamlarını aramadan önce virüs tetikleyici yordamını çağırır. Bu rutin, sistem zaman sayacına bağlı olarak 1/8 olasılıkla yürütülür ve Windows arkaplan resmini (WallPaper) değiştirir. Virüs basit C: MYLENE.BMP dosyası oluşturur, orada Mylene Farmer (?) Bir görüntü yazıyor BMP biçimine dönüştürür ve bir Windows WallPaper görüntüsü olarak bildirir:

Bunu yaparken virüs, yüklü olan JPEG görüntüleyiciye sistem kayıt defterinden erişir:


HKEY_LOCAL_MACHINESOFTWAREMicrosoftShared ToolsGraphics FiltersImportJPEG
Virüs daha sonra ilgili kütüphaneyi belleğe yükler, adresi alır ve ImportGr rutinini çağırır. Virüs bu dönüştürmeyi sadece boyutunu azaltmak için gerçekleştirir: sonuç BMP görüntüsü 160K dosyasıdır, bu nedenle virüs, aynı görüntünün 16K JPEG biçimini kodunda tutar. Bir WallPaper görüntüsü olarak Windows95 sadece BMP formatını kabul eder, dolayısıyla virüsün JPEG kaynağını BMP'ye dönüştürmesi gerekir.

Sonuç görüntüsü, daha sonra Windows masaüstü için Wallpaper görüntüsü olarak kaydedilen aynı C: MYLENE.BMP dosyasına kaydedilir:


HKEY_CURRENT_USERControl Panel Araçları
Bu dönüştürme işlemindeki tek küçük nokta, test bilgisayarımda gereken her şeye sahip olduğum, ancak virüs duvar kağıdımı yükseltemedi.

Doğrudan Eylem ama Bellek Yerleşik?

Her dosyaya bulaşmadan önce virüs standart Windows API işlevini Uyumaya çağırır ve 3 saniye boyunca etkinliğini geciktirir. Bu, virüs kodunun (belki de en çok) önemli blokudur. Sadece bu çağrı, virüsün "bellek saklayıcısı" olarak etiketlenmesini sağlıyor.

Bu uykulu komutun sonucu virüs kodu, sistem belleğinde uzun süre kalabilir. Bilgisayarda 1000 COM ve EXE dosyası olsun. Virüs, her birini enfekte etmeden önce 3 saniye uyur, bu nedenle hafızaya 50 dakika (3000 saniye) kalacak.

Virüs hafızada yerleşiktir: sistem belleğinde uzun süre kalır ve virüs enfeksiyonu rutini aktifken başka uygulamalar da çalıştırılabilir. Buna rağmen, doğrudan eylem virüsüdür (anormal yerleşik virüsler gibi) – alt dizin ağacındaki dosyaları arar ve onları enfekte eder, ve hiçbir olay çengelli değildir.

Yine de virüs yazarları aynı muhafazakar DOS yoluna gitmeye çalışırlar: DOS TSR hooking INT 21h'ye benzer Windows VxD hooking IFS API'si oluştururlar. Bu günlerde bellek yerleşik Windows virüsleri oluşturmak için en popüler karardır. Belki de Libertine virüsü yarı yerleşik özelliği olan ilk virüsdür ve gelecekte bu türden daha fazla virüs göreceğiz – Windows uygulaması Windows VxD veya NT sürücüsünden daha kolay.


Orijinaline link