Bu konuda bir kullanıcının bilgilerinin ve şifrelerinin nasıl çalınabileceğini McRat Programıyla analiz edeceğiz.
Bu malware ilginçtir çünkü, bazı anti-hata ayıklama teknikleri ve çeşitli şifreleme / şaşırtmaca katmanları kullanarak bizi engelleme amacıyla kendi kodunu analiz eder, bu analiz 2 bölüme ayrılır , ilk bölüm de anti-hata ayıklama korumayı bypass edicez, 2. bölümde ise bu yazılımın davranışını aktaracağız.
Araçlarımız:
●Ollydbg
●IDA
●Process Hacker
●PEiD
Malware Analizi:
Dosyayı analiz ettiğimizde malwarenin bilgilerini ve hash arama kısmının olduğunu bulabiliriz bu uygulama emd3I tarafından geliştirilmiştir.
●MD5: 4d519bf53a8217adc4c15d15f0815993
●SHA1: fa9674bab61c37717f8232ebd47af915f9eb9e49
İlk olarak PEiD ile PE bölümleri ve başlığına bakalım..
PEiD
PE Detayları
Ollydbg ile dosyayı açtıktan sonra INT3 komutları dahil olmak üzere bazı kodları görebilirsiniz eğer hata ayıklamaya çalışırken bu kodlar gözüküyorsa muhtemelen bir sorun var demektir. Bu, hata bulurken bizi engellemek için kullanılan nanomit benzeridir. Program bu tür hataları bypass ederken kullanılan durum yöneticisidir bunun için üzerine (kesme işareti) konularak bypass işlemi yapılabilir bu sırada durum yöneticisini bulmak için ollydbg kod penceresinde 4. satırına bakınız.
00401EE8 üzerine bir breakpoint ekledikten sonra durum yöneticisini durdurmak için birkez F9a basmanız yeterli olacaktır. Satır satır analiz ettikten sonra önemli kısımlarımızı bulabilirsiniz.
Çağrı işleminden sonra diğer bir çağrı işlemine geçebilirsiniz.
çağrı fonksiyonu
Rutin olarak 004018F0 de ana damlalığı görebilirsiniz bu fonksiyonda malware kendi DLL dosyalarını ve hizmetlerini oluşturur ve bazı kayıt defteri anahtarlarını değiştirmek için derinlemesine analiz yapar. Malware 401906 de bir IsUserAnAdmin arayarak yönetici olup olmadığının kontrollerini yapar. Kullanıcı seviyesi yönetici komutunun ardından artık takip işlemi olmayacaktır.
Malware 64Bit OS üzerinde çalışıyorsa yazılımın 00401910 dizinini kontrol edin.
Buna yine IsUserAdmin() denilir. İlginç gibi gelebilir ama 00401960 dan çağrılır bu yüzden içine 00401960 bakabiliriz. McRat hizmetlere erişimi sağlamak için OpenSCManagerW() i kullanır. Hizmet adları ve diğer servisler Brower bölümünde karşılaştırılır.
Brower aranıyor..
Bu resimdeki belkide Browser için yazım hatası olabilir mi ? Daha sonra hizmetlerde svchost.exe-k netsvcs yi arar ve ilk servis , ki bulduğu ilk servistir AppMgmt. Daha sonra McRat, bulunan kayıtta AppMgmt hizmetinin dllsini arar.
%SystemRoot%\\System32\\appmgmts.dll
Daha sonra hizmet seçeneklerini değiştirir ve servise ayrıcalıklı öncelik verir. Bu seçenekler windows kayıt defterinde kontrol edilebilir.
Modifiye Servis Seçenekleri..
McRat, çağrı geri geldikten sonra AppMgmt servisinin dll ismini wsprintf() olarak koyar ve daha sonra aşağıdakini oluşturur.
%USERPROFILE%\\AppMgmt.dll
Kayıt defterindeki 004019CD de benzer veriler okunur. Analiz edildikten sonra o dllin BIN dizininde olduğu görülür. McRat Kullanıcı Profilindeki dll, Appmgmt.dll için yeniden adlandırılır. Daha sonra kayıt defterinden ServiceDLL değerini değiştirir aynı zamanda buradaki damlalık adresini kaydeder:
Damlalık Yolu..
Şimdi de 0040100 fonksiyonu çağrılır. Bu sırada McRat çalıştığından AppMgmt çağrılır ve servis durdurlur , böylece .dll alanında bulunan ana fonksiyonların çalışması başlar. Bu aramadan sonra Malware, ExitProcess() ile kendini sonlandırır. Bu aşamada servis hizmeti tekrar çalıştırılmaz.
1. Ollydbg veya bir hex editör ile dll açın.
2. EB FE ile yama yaparak giriş noktasını atlayın.
3. Manuel olarak servisi çalıştırmaya hazırız.
Process Hacker ile artık dll de çalışan svchostu bulabilirsiniz ve Ollydbg den buna ekleyebilirsiniz.
1.Ollydbg de başlık pencerelerini açın.
2. Orjinal kod ile girişi geçin.
3. İşlemi gerçekleştirin.
Gördüğünüz gibi ilk çağırdığı GetModuleHandleW() olacaktır, ve daha sonra konuyu gerçekleştirmek için CreateThread() yi çağıracaktır. McRat mcproxy.exeyi çağırıp çağırmadığını denetler bunu sona erdirmek için NOPu modifiye etmeniz gerekir.
McRat Başlığı
Diğer adımda McRat, xoring kodunu 75H ile çözer
şifresi çözülmüş kodun 2. bölümünde xor kodunun çözülmesi:
F7 ile önizleme yaptıktan sonra 3. bir döngü ile karşılaşacağız..
Bu döngü içinde Malware, VirtualAlloc() adresini bulur daha sonra EAXı çağırır ve EAXı yerine koyar.
Eaxı çağırdıktan sonra başka bir çağrı yapar , analizden sonra başka kodu analiz eder ve onları VirtualAlloc() çağrısı yoluyla elde edilen bir adrese kopyalar daha sonra buraya geçer:
Burada yine diğer rutin şifre çözme işlemlerini yapar. Eaxı yerleştirdikten sonra aşağıdaki kod dizini oluşur
Eğer fark ederseniz dışarı basit bir yönlendirme yapar. ve basitçe 5-6 kez F7 yaparak bu APIleri bulabilirsiniz.
Cshoner | Tuğgeneral
Bu malware ilginçtir çünkü, bazı anti-hata ayıklama teknikleri ve çeşitli şifreleme / şaşırtmaca katmanları kullanarak bizi engelleme amacıyla kendi kodunu analiz eder, bu analiz 2 bölüme ayrılır , ilk bölüm de anti-hata ayıklama korumayı bypass edicez, 2. bölümde ise bu yazılımın davranışını aktaracağız.
Araçlarımız:
●Ollydbg
●IDA
●Process Hacker
●PEiD
Malware Analizi:
Dosyayı analiz ettiğimizde malwarenin bilgilerini ve hash arama kısmının olduğunu bulabiliriz bu uygulama emd3I tarafından geliştirilmiştir.
●MD5: 4d519bf53a8217adc4c15d15f0815993
●SHA1: fa9674bab61c37717f8232ebd47af915f9eb9e49
İlk olarak PEiD ile PE bölümleri ve başlığına bakalım..
PEiD
PE Detayları
Ollydbg ile dosyayı açtıktan sonra INT3 komutları dahil olmak üzere bazı kodları görebilirsiniz eğer hata ayıklamaya çalışırken bu kodlar gözüküyorsa muhtemelen bir sorun var demektir. Bu, hata bulurken bizi engellemek için kullanılan nanomit benzeridir. Program bu tür hataları bypass ederken kullanılan durum yöneticisidir bunun için üzerine (kesme işareti) konularak bypass işlemi yapılabilir bu sırada durum yöneticisini bulmak için ollydbg kod penceresinde 4. satırına bakınız.
00401EE8 üzerine bir breakpoint ekledikten sonra durum yöneticisini durdurmak için birkez F9a basmanız yeterli olacaktır. Satır satır analiz ettikten sonra önemli kısımlarımızı bulabilirsiniz.
Çağrı işleminden sonra diğer bir çağrı işlemine geçebilirsiniz.
çağrı fonksiyonu
Rutin olarak 004018F0 de ana damlalığı görebilirsiniz bu fonksiyonda malware kendi DLL dosyalarını ve hizmetlerini oluşturur ve bazı kayıt defteri anahtarlarını değiştirmek için derinlemesine analiz yapar. Malware 401906 de bir IsUserAnAdmin arayarak yönetici olup olmadığının kontrollerini yapar. Kullanıcı seviyesi yönetici komutunun ardından artık takip işlemi olmayacaktır.
Malware 64Bit OS üzerinde çalışıyorsa yazılımın 00401910 dizinini kontrol edin.
Buna yine IsUserAdmin() denilir. İlginç gibi gelebilir ama 00401960 dan çağrılır bu yüzden içine 00401960 bakabiliriz. McRat hizmetlere erişimi sağlamak için OpenSCManagerW() i kullanır. Hizmet adları ve diğer servisler Brower bölümünde karşılaştırılır.
Brower aranıyor..
Bu resimdeki belkide Browser için yazım hatası olabilir mi ? Daha sonra hizmetlerde svchost.exe-k netsvcs yi arar ve ilk servis , ki bulduğu ilk servistir AppMgmt. Daha sonra McRat, bulunan kayıtta AppMgmt hizmetinin dllsini arar.
%SystemRoot%\\System32\\appmgmts.dll
Daha sonra hizmet seçeneklerini değiştirir ve servise ayrıcalıklı öncelik verir. Bu seçenekler windows kayıt defterinde kontrol edilebilir.
Modifiye Servis Seçenekleri..
McRat, çağrı geri geldikten sonra AppMgmt servisinin dll ismini wsprintf() olarak koyar ve daha sonra aşağıdakini oluşturur.
%USERPROFILE%\\AppMgmt.dll
Kayıt defterindeki 004019CD de benzer veriler okunur. Analiz edildikten sonra o dllin BIN dizininde olduğu görülür. McRat Kullanıcı Profilindeki dll, Appmgmt.dll için yeniden adlandırılır. Daha sonra kayıt defterinden ServiceDLL değerini değiştirir aynı zamanda buradaki damlalık adresini kaydeder:
Damlalık Yolu..
Şimdi de 0040100 fonksiyonu çağrılır. Bu sırada McRat çalıştığından AppMgmt çağrılır ve servis durdurlur , böylece .dll alanında bulunan ana fonksiyonların çalışması başlar. Bu aramadan sonra Malware, ExitProcess() ile kendini sonlandırır. Bu aşamada servis hizmeti tekrar çalıştırılmaz.
1. Ollydbg veya bir hex editör ile dll açın.
2. EB FE ile yama yaparak giriş noktasını atlayın.
3. Manuel olarak servisi çalıştırmaya hazırız.
Process Hacker ile artık dll de çalışan svchostu bulabilirsiniz ve Ollydbg den buna ekleyebilirsiniz.
1.Ollydbg de başlık pencerelerini açın.
2. Orjinal kod ile girişi geçin.
3. İşlemi gerçekleştirin.
Gördüğünüz gibi ilk çağırdığı GetModuleHandleW() olacaktır, ve daha sonra konuyu gerçekleştirmek için CreateThread() yi çağıracaktır. McRat mcproxy.exeyi çağırıp çağırmadığını denetler bunu sona erdirmek için NOPu modifiye etmeniz gerekir.
McRat Başlığı
Diğer adımda McRat, xoring kodunu 75H ile çözer
şifresi çözülmüş kodun 2. bölümünde xor kodunun çözülmesi:
F7 ile önizleme yaptıktan sonra 3. bir döngü ile karşılaşacağız..
Bu döngü içinde Malware, VirtualAlloc() adresini bulur daha sonra EAXı çağırır ve EAXı yerine koyar.
Eaxı çağırdıktan sonra başka bir çağrı yapar , analizden sonra başka kodu analiz eder ve onları VirtualAlloc() çağrısı yoluyla elde edilen bir adrese kopyalar daha sonra buraya geçer:
Burada yine diğer rutin şifre çözme işlemlerini yapar. Eaxı yerleştirdikten sonra aşağıdaki kod dizini oluşur
Eğer fark ederseniz dışarı basit bir yönlendirme yapar. ve basitçe 5-6 kez F7 yaparak bu APIleri bulabilirsiniz.
Cshoner | Tuğgeneral