Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3

Bu makaleyle kötü amaçlı yazılımların analizine ayrılmış yayın serisini tamamlıyoruz. İÇİNDE birinci bölüm Avrupalı ​​bir şirketin posta yoluyla aldığı virüslü dosyanın ayrıntılı bir analizini yaptık ve orada AgentTesla casus yazılımını keşfettik. İçinde ikinci kısım ana AgentTesla modülünün adım adım analizinin sonuçlarını açıkladı.

Bugün, CERT Group-IB'de kötü amaçlı yazılım analizi uzmanı Ilya Pomerantsev, kötü amaçlı yazılım analizinin ilk aşaması hakkında konuşacak - CERT Group-IB uzmanlarının uygulamalarından üç mini vaka örneğini kullanarak AgentTesla örneklerinin yarı otomatik olarak açılması.

Tipik olarak kötü amaçlı yazılım analizindeki ilk aşama, paketleyici, kriptolayıcı, koruyucu veya yükleyici biçimindeki korumanın kaldırılmasıdır. Çoğu durumda bu sorun, kötü amaçlı yazılımı çalıştırarak ve döküm gerçekleştirerek çözülebilir ancak bu yöntemin uygun olmadığı durumlar da vardır. Örneğin, kötü amaçlı yazılım bir şifreleyici ise, bellek bölgelerini boşaltılmaya karşı koruyorsa, kod sanal makine algılama mekanizmaları içeriyorsa veya kötü amaçlı yazılım başladıktan hemen sonra yeniden başlatılıyorsa. Bu gibi durumlarda “yarı otomatik” denilen paket açma yöntemi kullanılıyor, yani araştırmacı süreç üzerinde tam kontrole sahip ve istediği zaman müdahale edebiliyor. Örnek olarak AgentTesla ailesinin üç örneğini kullanarak bu prosedürü ele alalım. Ağ erişimini devre dışı bırakırsanız bu nispeten zararsız bir kötü amaçlı yazılımdır.

Örnek No.1

Kaynak dosya, CVE-2017-11882 güvenlik açığından yararlanan bir MS Word belgesidir.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Sonuç olarak, yük indirilir ve başlatılır.

Süreç ağacının ve davranışsal belirteçlerin analizi, sürece enjeksiyonu gösterir RegAsm.exe.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
AgentTesla'ya özgü davranışsal belirteçler vardır.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
İndirilen örnek yürütülebilir örnektir . NET-dosya koruyucu tarafından korunuyor .NET Reaktörü.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Yardımcı programda açalım dnSpy x86 ve giriş noktasına ilerleyin.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Fonksiyona giderek TarihSaatOfseti, yeni için başlatma kodunu bulacağız . NET-modül. Hadi koyalım kesme noktası ilgilendiğimiz satırda ve dosyayı çalıştırın.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Döndürülen arabelleklerden birinde MZ imzasını görebilirsiniz (0x4D 0x5A). Hadi kurtaralım.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Dökümü yapılmış bir yürütülebilir dosya, yükleyici olan dinamik bir kitaplıktır; veriyi kaynak bölümünden çıkarır ve başlatır.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Aynı zamanda, gerekli kaynaklar da çöplükte mevcut değil. Bunlar ebeveyn örneğindedir.

Yarar dnSpy İlgili iki dosyadan oldukça hızlı bir şekilde bir "Frankenstein" oluşturmamıza yardımcı olacak iki son derece kullanışlı işlevselliğe sahiptir.

  1. İlki, dinamik bir kitaplığı ana örneğe "yapıştırmanıza" olanak tanır.

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3

  2. İkincisi, eklenen dinamik kütüphanenin istenen yöntemini çağırmak için giriş noktasında fonksiyon kodunu yeniden yazmaktır.

    Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3

“Frankenstein”ımızı kurtarıyoruz, ayarlıyoruz kesme noktası satırda şifresi çözülmüş kaynaklara sahip bir arabellek döndürür ve önceki aşamaya benzer şekilde bir döküm üretir.

İkinci döküm şöyle yazılmıştır: VB.NET aşina olduğumuz bir koruyucu tarafından korunan yürütülebilir bir dosya kafa karıştırıcı.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Koruyucuyu kaldırdıktan sonra daha önce yazılan YARA kurallarını kullanıyoruz ve açılan kötü amaçlı yazılımın gerçekten AgentTesla olduğundan emin oluyoruz.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3

Örnek No.2

Kaynak dosya bir MS Excel belgesidir. Yerleşik bir makro, kötü amaçlı kodun yürütülmesine neden olur.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Sonuç olarak PowerShell betiği başlatılır.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Betik, C# kodunun şifresini çözer ve kontrolü ona aktarır. Korumalı alan raporundan da görülebileceği gibi kodun kendisi bir önyükleyicidir.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Yük yürütülebilir bir dosyadır . NET-dosya.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Dosyanın açılması dnSpy x86, karışık olduğunu görebilirsiniz. Yardımcı programı kullanarak gizlemeyi kaldırma de4dot ve analize geri dönün.

Kodu incelerken aşağıdaki işlevi keşfedebilirsiniz:

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Şifreli çizgiler dikkat çekici Giriş noktası и çağırmak. Koyduk kesme noktası ilk satıra tampon değerini çalıştırın ve kaydedin bayt_0.

Dökümü yine bir uygulamadır . NET ve korunuyor kafa karıştırıcı.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
kullanarak karışıklığı ortadan kaldırıyoruz de4dot ve şuraya yükle: dnSpy. Dosya açıklamasından karşı karşıya olduğumuzu anlıyoruz CyaX-Sharp yükleyici.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Bu yükleyici kapsamlı bir anti-analiz işlevine sahiptir.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Bu işlevsellik, yerleşik Windows koruma sistemlerinin atlanmasını, Windows Defender'ın devre dışı bırakılmasının yanı sıra korumalı alan ve sanal makine algılama mekanizmalarını da içerir. Payload'ı ağdan yüklemek veya kaynak bölümünde saklamak mümkündür. Başlatma, kendi sürecine, kendi sürecinin bir kopyasına veya süreçlere enjeksiyon yoluyla gerçekleştirilir. MSBuild.exe, vbc.exe и regsvcs.exe saldırganın seçtiği parametreye bağlı olarak.

Ancak bizim için bunlar daha az önemlidir. AntiDump-ekleyen işlev kafa karıştırıcı. Kaynak kodu şu adreste bulunabilir: GitHub.

Korumayı devre dışı bırakmak için bu fırsatı kullanacağız dnSpydüzenlemenizi sağlayan IL-kod.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Kaydet ve yükle kesme noktası yük şifre çözme işlevini çağırma hattına. Ana sınıfın yapıcısında bulunur.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Yükü başlatıp boşaltıyoruz. Daha önce yazılan YARA kurallarını kullanarak bunun AgentTesla olduğundan emin oluyoruz.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3

Örnek No.3

Kaynak dosya yürütülebilir dosyadır VB Yerel PE32-dosya.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Entropi analizi, büyük miktarda şifrelenmiş verinin varlığını gösterir.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Başvuru formunu incelerken VB Kod Çözücü garip pikselli bir arka plan fark edebilirsiniz.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Entropi grafiği bmp-image, orijinal dosyanın entropi grafiğiyle aynıdır ve boyut, dosya boyutunun %85'idir.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Görüntünün genel görünümü steganografinin kullanıldığını göstermektedir.

İşlem ağacının görünümüne ve ayrıca bir enjeksiyon işaretleyicisinin varlığına dikkat edelim.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Bu, paketin açılmasının devam ettiğini gösterir. Visual Basic yükleyicileri için (aka VBKrypt veya VBIenjektör) tipik kullanım kabuk kodu yükü başlatmak ve enjeksiyonun kendisini gerçekleştirmek için.

Analiz VB Kod Çözücü bir olayın varlığını gösterdi Yük formda FegatassocAirballoon2.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Hadi gidelim IDA profesyoneli belirtilen adrese gidin ve işlevi inceleyin. Kod oldukça karmaşıktır. Bizi ilgilendiren kısım aşağıda sunulmaktadır.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Burada sürecin adres alanı bir imza için taranır. Bu yaklaşım son derece şüphelidir.

İlk olarak, tarama başlangıç ​​adresi 0x400100. Bu değer statiktir ve taban kaydırıldığında ayarlanmaz. İdeal sera koşullarında sonunu gösterecektir. PE-yürütülebilir dosyanın başlığı. Ancak veritabanı statik değildir, değeri değişebilir ve gerekli imzanın gerçek adresini aramak değişken taşmasına neden olmayacak olsa da çok uzun zaman alabilir.

İkincisi, imzanın anlamı iWGK. 4 baytın benzersizliği garanti etmek için çok küçük olduğunun açık olduğunu düşünüyorum. Ve ilk noktayı dikkate alırsanız hata yapma olasılığı oldukça yüksektir.

Aslında gerekli parça daha önce bulunanın sonuna eklenmiştir. bmp-ofsetle resimler 0xA1D0D.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Performans Kabuk kodu iki aşamada gerçekleştirilir. İlki ana gövdenin şifresini çözer. Bu durumda anahtar kaba kuvvetle belirlenir.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Şifresi çözülmüş olanı at Kabuk kodu ve çizgilere bakın.

İlk olarak, artık bir alt süreç yaratma fonksiyonunu biliyoruz: CreateProcessDahiliW.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
İkinci olarak sistemdeki sabitleme mekanizmasının farkına vardık.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Orijinal sürece geri dönelim. Hadi koyalım kesme noktası üzerinde CreateProcessDahiliW ve yürütmeye devam edin. Sonra bağlantıyı görüyoruz NtGetContextThread/NtSetContextThreadyürütme başlangıç ​​adresini adrese değiştirir Kabuk Kodu.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Oluşturulan sürece bir hata ayıklayıcıyla bağlanıyoruz ve etkinliği etkinleştiriyoruz Kütüphane yükleme/boşaltma işlemini askıya al, işleme devam edin ve yüklemeyi bekleyin . NET-kütüphaneler.

Daha fazla kullanma ProcessHacker paketlenmemiş içeren döküm bölgeleri . NET-başvuru.

Tüm işlemleri durdurup, sisteme yerleşmiş olan kötü amaçlı yazılımın kopyasını sileriz.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Dökülmüş dosya bir koruyucu tarafından korunmaktadır .NET Reaktörübir yardımcı program kullanılarak kolayca kaldırılabilen de4dot.

Katılım başarısız oldu: AgentTesla'yı temiz suya maruz bırakalım. Bölüm 3
Daha önce yazılan YARA kurallarını kullanarak bunun AgentTesla olduğundan emin oluyoruz.

özetlemek gerekirse

Bu nedenle, örnek olarak üç mini vaka kullanarak yarı otomatik numune açma sürecini ayrıntılı olarak gösterdik ve ayrıca tam teşekküllü bir vakaya dayalı olarak kötü amaçlı yazılımları analiz ettik, incelenen numunenin AgentTesla olduğunu tespit ederek işlevselliğini ve uzlaşma göstergelerinin tam listesi.

Yaptığımız kötü amaçlı nesnenin analizi çok fazla zaman ve çaba gerektiriyor ve bu işin şirketteki özel bir çalışan tarafından yapılması gerekiyor ancak her şirket bir analist çalıştırmaya hazır değil.

Grup-IB Adli Bilişim ve Kötü Amaçlı Kod Analizi Laboratuvarı'nın sunduğu hizmetlerden biri de siber olaylara müdahaledir. Müşterilerin bir siber saldırının ortasında belgeleri onaylamak ve bunları tartışmak için zaman kaybetmemeleri için Group-IB başlatıldı Olay Müdahale Tutucusu, kötü amaçlı yazılım analizi adımını da içeren bir abonelik öncesi olay müdahale hizmetidir. Bu konuda daha fazla bilgiyi burada bulabilirsiniz burada.

AgentTesla örneklerinin nasıl paketten çıkarıldığını bir kez daha incelemek ve bir CERT Group-IB uzmanının bunu nasıl yaptığını görmek isterseniz bu konudaki web semineri kaydını indirebilirsiniz. burada.

Kaynak: habr.com

Yorum ekle