Ransomware Maze - Fidye Yazılımı Virüsü Anatomisi


Sesli Oku
Ransomware Maze - Fidye Yazılımı Virüsü Anatomisi

ÖZET

Daha önce toplulukta "ChaCha fidye yazılımı" olarak bilinen Labirent fidye yazılımı 29 Mayıs 2019'da Jerome Segura tarafından keşfedildi [1] .

Fidye yazılımının temel amacı , virüslü bir sistemde bulunabilen tüm dosyaları şifrelemek ve ardından dosyaları kurtarmak için fidye talep etmektir. Ancak, Maze'in en önemli özelliği, kötü amaçlı yazılım yazarlarının kurbanlara verdikleri, ödeme yapmazlarsa bilgileri İnternet üzerinden yayınlayacakları tehdididir [2] .

Bir şirketin dosyaları internette yayınlandığı için bu tehdit boşta kalmadı. Şirket dava açmış olsa da hasar çoktan verilmişti. Bu, Sodinokibi, Nemty, Clop ve diğerleri gibi yeni fidye yazılımlarında [3] giderek daha fazla gözlemlenen bir davranıştır .

Geçen yıl [4] fidye yazılımının şifre çözme için ödeme yapmakta isteksiz olabilecek kurbanlardan para almak için nasıl bu yönde ilerleyeceği vurgulandı .

TELEMETRİ HARİTASI

ŞEKİL 1. MAZE ENFEKSİYONLARININ HARİTASI

GİRİŞ

29 Ekim'de, Maze kötü amaçlı yazılımını İtalyan kullanıcılara dağıtan bir kampanya tespit edildi. Tarihsel olarak, kötü amaçlı yazılım, giriş elde etmek için, temel olarak istismar kitleri, zayıf şifreli uzak masaüstü bağlantıları veya e-posta kimliğine bürünme yoluyla veya İtalya örneğinde olduğu gibi, farklı ajanslar veya şirketler [5] , yani İtalyan Gelir Kurumu aracılığıyla farklı teknikler kullanmıştır . Bu e-postalar, sistemdeki kötü amaçlı yazılımı çalıştırmak için makrolar kullanan bir Word ekiyle birlikte geldi.

En sık kullanılan istismar kitleri Fallout ve Spelevo idi [6] .

Kötü amaçlı yazılım, tersine çevrilmesini önlemek ve statik analizi daha zor hale getirmek için bazı hilelerle zor programlanmıştır. Bu rapor, bu korumaları ve kötü amaçlı yazılımın virüs bulaşmış bir sistemdeki davranışını kapsar.

Geliştiriciler, doğrudan iletişime geçtikleri "BleepingComputer" sahibi Lawrence Abrams'ın e-posta adresi dahil olmak üzere kötü amaçlı yazılım araştırmacılarını kışkırtmak için mesajlar eklediler. Twitter gibi sosyal medya sitelerinde oldukça aktifler.

MAZE GENEL BAKIŞ

Kötü amaçlı yazılım, genellikle bir EXE veya DLL dosyası olarak paketlenmiş 32 bitlik bir ikili dosyadır. Bu rapor, EXE dosyasına odaklanmaktadır.

ŞEKİL 2. KÖTÜ AMAÇLI YAZILIM HAKKINDA BİLGİ

Bu raporda kullanılan örnek hakkında daha fazla bilgi şu tabloda görünür:

TEKNİK DETAYLAR

Labirent, analizleri baştan sona erdirmek için bazı hileler kullanan karmaşık bir kötü amaçlı yazılımdır.

Kötü amaçlı yazılım, bu işlevleri daha sonra kullanmasa da, dinamik çağrılarda daha sonra kullanmak üzere bellek adreslerini global değişkenlerde saklıyor gibi görünen bazı işlevleri hazırlamaya başlar. Kötü amaçlı yazılımın giriş noktasında bulunan artık kod mu yoksa araştırmacıları yanıltmak için bir numara mı olduğu tartışmaya açık.

ŞEKİL 3. DAHA SONRA DİNAMİK BİR ŞEKİLDE KULLANMAK İÇİN FONKSİYON ADRESİNİ KAYDEDİN

Daha sonra kötü amaçlı yazılım, dizelerin şifresini çözmek için bazı öğeleri ve daha sonra kullanmak üzere önemli bilgileri içeren büyük bir çöp kodu bloğuna girer. Kötü amaçlı yazılım, bu noktada hata ayıklayıcıları tespit etmek için bazı hileler kullanır.

Bunlardan en önemlileri:

  • PEB alanının " IsDebuggerPresent " büyük bir kullanımı . Bu alan, uygulama bir hata ayıklayıcının içinde çalışıyorsa Windows'tan 1 (Doğru) veya değilse 0 (Yanlış) ile doldurulan bir Boole alanıdır.

ŞEKİL 4. UYGULAMANIN BİR DEBUGGER'DA ÇALIŞIYOR MUYDUĞUNU BELİRLEMEK İÇİN "ISDEBUGGERPRESENT" PEB ALANININ YÜKSEK KULLANIMI

Kötü amaçlı yazılım bir hata ayıklayıcı tespit ederse, sistem kaynaklarını boşa harcarken hiçbir şey yapmadan sonsuz bir döngüde kalacaktır.

ŞEKİL 5. MAZE, DEBUGGER'I YAKALADI VE ÇALIŞMAYA DEVAM EDER, KAYNAKLARI BOŞALTIR

Kötü amaçlı yazılım, sistemdeki tüm işlemleri alır, ancak ilkini (Windows'taki 'boşta kalma süreci', kullanıcının sistem kaynaklarının yüzde kaçının kullanıldığını bilmesini sağlayan bir araçtır) yok sayar. Her işlemin adını kullanarak, özel bir algoritma ile özel bir ad ve sabit kodlu bir listeyle kontrol edilen bir karma oluşturur. Karma bu listede bulunursa işlem sonlandırılacaktır.

ŞEKİL 6. SİSTEMİN SÜREÇLERİNİN ÖZEL ADINDAN HASHLARIN KONTROLÜ

Örneğin, "x32dbg" hata ayıklayıcısının süreci şu noktada yakalanır:

ŞEKİL 7. HASH İLE KÖTÜ AMAÇLI YAZILIM TARAFINDAN YAKALANAN X32DBG SÜRECİ

Dinamik analiz, yakın veritabanları, ofis programları ve güvenlik araçlarından kaçınmak için IDA hata ayıklayıcı, x32dbg, OllyDbg ve daha fazla işlemi sonlandırabilir.

Kötü amaçlı yazılım tarafından sonlandırılan bir sözlük listesi kullanılarak kırılabilen işlemlerin kısmi bir listesi aşağıda gösterilmiştir:

dumpcap.exe -> 0x5fb805c5
excel.exe -> 0x48780528
fiddler.exe -> 0x5e0c05b1
msaccess.exe -> 0x6a9c05ff
mysqld-nt.exe -> 0x79ec0661
outlook.exe
-> 0x615605dc
pipanel.exe -> 0x5fb64.exe
procexp.exe -> 0x606805d4
procmon64.exe -> 0x776e0635 procmon.exe
-> 0x600005c9
python.exe -> 0x55ee0597
taskkill.exe -> 0x6c2e0614
visio.exe -> 0x49780539 wind50.exe
-> 0x60d805d5
x326dbg.exe ->
. exe -> 0x50dc0542

Bu kısa liste, sonlandırılacak işlemin adını ve orijinal işlem adından oluşturulan özel addaki özel karmayı gösterir.

ŞEKİL 8. KERNEL32'NİN İHRACAT ADRES TABLOSUNDAN (EAT) ALINAN VE HASH İSİM KONTROLÜNÜ GEÇME SONLANDIRMA İŞLEVİ İŞLEVİ

Kötü amaçlı yazılım, gizlemeyi artırmak için "kernel32.dll" modülünün EAT (Dışa Aktarma Adres Tablosu) 'ndan aldığı "TerminateProcess" işleviyle, adı yüksek büyük harfli addan alınan özel bir hash ile karşılaştırarak süreci sonlandırır.

ŞEKİL 9. BU ARAMAYI ENGELLEMEK İÇİN DİNAMİK BİR YOLDA TERMİNAT İŞLEMİNE ÇAĞRI

Kötü amaçlı yazılım, gizlemeye yardımcı olmak için Windows işlevlerini benzersiz bir şekilde çağırır, yani sistemdeki ilk işlemi “Process32FirstW” işlevini kullanmak için alır. Ancak, doğrudan çağırmak yerine, işlev için gerekli parametreleri yığına koyar, ardından "push" işlem kodlu bir bellek adresini izler ve ardından Windows işlevine doğrudan bir sıçrama yapar. İşlev sona erdiğinde, Windows bir "ret" işlem kodu oluşturur ve ardından kötü amaçlı yazılımın yığına gönderdiği son bellek adresini alır, bu adrese geri döner ve akışı sürdürür. Bunun bir örneği bu resimde görülebilir:

ŞEKİL 10. ANALİZİ YAVAŞLATMAK VE BUNU DAHA ZORLAŞTIRMAK İÇİN YÜKSEK SIKIŞMA

Kötü amaçlı yazılım tarafından kullanılan başka bir yöntem (örneğe bağlı olarak), çalışma zamanında bir hata ayıklayıcının eklenmesini önlemek için bir numara kullanmadan önce "GetProcAddress" işlevini kullanarak "DbgUIRemoteBreakin" işlevini elde etmektir [7] .

ŞEKİL 11. GETPROCADDRESS KULLANARAK DBGUIREMOTEBREAKIN'İ GET

Burada kullanılan hile, "DbgUIRemoteBreakin" işlev belleği adresine yazma izni vermek için "VirtualProtect" dir:

ŞEKİL 12. BELLEKTE YAZMA İZNİ VERİN

Yalnızca 1 bayt için verilen izni aldıktan sonra, kötü amaçlı yazılım bu baytı bir 0xC3 değeriyle ("ret" işlem kodu) yamalar ve önceki izinleri "VirtualProtect" ile tekrar aynı adres ve baytta geri yükler, yazmayı kaldırır izni.

ŞEKİL 13. FONKSİYONU YENİDEN BİR OPCODE İLE YAMA VE BELLEK İZİNLERİNİ GERİ YÜKLEME

Bu, çalışma zamanında bir hata ayıklayıcının kendisine eklenmesini önlemek için yapılır. Bu şekilde, bir hata ayıklayıcı sürece dahili olarak eklendiğinde, sistem bu işlevi çağırır, ancak hata ayıklamayı başlatmak için bir iş parçacığı oluşturmak yerine, "ret" işlem kodu işlevi oluşturmadan geri dönmeye zorlar. Kısaca, bir hata ayıklayıcının doğru şekilde bağlanmasını engeller. Sistem sürecini numaralandırmadan önce yapılır.

Kötü amaçlı yazılım, "GetUserDefaultUILanguage" işleviyle makinenin dilini kontrol eder ve değeri yığına kaydeder; aramadan sonra otomatik olarak kontrol edilmez, ancak daha sonra önemlidir.

Labirent, "Global \ x" adında bir muteks oluşturur; burada x, her makine için benzersiz olan özel bir değerdir. Örneğin, bir sonraki ekran görüntüsünde (analiz için kullanılan makineyi anonimleştirmek için bazı bilgiler silinmiştir) bu davranışa bir örnektir. Aynı anda iki veya daha fazla infazdan kaçınmak için yapılır.

ŞEKİL 14. ÇİFT UYGULAMAYI ÖNLEMEK İÇİN BİR MUTEX OLUŞTURMA. MAKİNE BAŞINA EŞSİZ

Kötü amaçlı yazılım, mutex'i oluşturduktan sonra, iki hatayı kontrol etmek için "GetLastError" işlevini çağırır:

  • 0x05 -> ERROR_ACCESS_DENIED. Kötü amaçlı yazılım bu hatayı alırsa, bu, muteksin sistemde zaten var olduğu, ancak bazı nedenlerden dolayı kötü amaçlı yazılımın ona erişemediği anlamına gelir (belki de ayrıcalıklar, politikalar vb.).
  • 0xb7 -> ERROR_ALREADY_EXISTS. Kötü amaçlı yazılım bu hatayı alırsa, bu, muteksin sistemde zaten mevcut olduğu ve erişilebilir olduğu anlamına gelir.

Yukarıdakilerden herhangi biri meydana gelirse, kötü amaçlı yazılım yürütülmeye devam eder ancak sistemdeki herhangi bir dosyayı şifrelemez veya makinenin herhangi bir kaynağını kullanmaz. İşlemcinin% 0'ı kullanılarak program listesinde görüneceği anlamına gelir.

Muteks değeri, kendisine karşı aşıların yapılma olasılığını önlemek için numune başına veya periyodik olarak değişir. Kötü amaçlı yazılımın ayrıca, daha sonra açıklanacak olan aşı "sorununu" önlemek için bir komutu vardır.

Mutex'ten sonra, kötü amaçlı yazılım yığına önceden kaydedilmiş dili, örneğin 0x419 (Rusya Federasyonu'ndan Rusça, ru-RU [8] ) ile karşılaştırır.

Kontroller, kötü amaçlı yazılımın sahip olduğu kodun karmakarışıklığı içinde karmaşık bir şekilde yapılır (burada kullanılan sanal makinede İspanya'nın İspanyolca dili (es-ES) kullanıldı; bu, ekran görüntüsü):

ŞEKİL 15. RUSYA FEDERASYONUNDAN RUSÇA DİLİNE KARŞI DİL KONTROLÜ

Dil, aşağıdaki listede bulunanlardan herhangi biriyle eşleşirse, kötü amaçlı yazılım, herhangi bir kaynağı boşa harcamadan veya herhangi bir dosya oluşturmadan belleği temizler ve ana iş parçacığından çıkar.

  • 0x419 -> ru-RU (Rusya Federasyonu'ndan Rusça)
  • 0x422 -> uk-UA (Ukrayna'dan Ukraynaca)
  • 0x423 -> be-BY (Beyaz Rusya'dan Beyaz Rusça)
  • 0x428 -> tg-Cyrl-TJ (Tacikçe (Tacikistan'dan Kiril)
  • 0x42B -> hy-AM (Ermenistan'dan Ermenice)
  • 0x42C -> az-Latn-AZ (Azerice (Azerbaycan'dan Latince))
  • 0x437 -> ka-GE (Gürcistan'dan Gürcüce)
  • 0x43F -> kk-KZ (Kazakça'dan Kazakça)
  • 0x440 -> ky-KG (Kırgızistan'dan Kırgız)
  • 0x442 -> tk-TM (Türkmenistan'dan Türkmen)
  • 0x443 -> uz-Latn-UZ (Özbekçe (Özbekistan'dan Latince))
  • 0x444 -> tt-RU (Rusya Federasyonu Tatarcası)
  • 0x818 -> ro-MD (Moldova'dan Romence, Romanya'dan Romence DEĞİL! )
  • 0x819 -> ru-MD (Moldova'dan Rusça)
  • 0x82C -> az-Cyrl-AZ (Azerice (Azerbaycan'dan Kiril))
  • 0x843 -> uz-Cyrl-UZ (Özbek (Özbekistan'dan Kiril))
  • 0x7C1A -> sr (Sırpça)
  • 0x6C1A -> sr-Cyrl (Kiril dilinde Sırpça)
  • 0x1C1A -> sr-Cyrl-BA (Sırpça (Bosna Hersek'ten Kiril))
  • 0x281A -> sr-Cyrl-RS (Sırpça (Sırbistan'dan Kiril))
  • 0x81A -> sr-Latn-CS (Sırpça (Latin)) (bu dil kodu Windows Vista'dan başlar)

Kötü amaçlı yazılım, "shadowcopy" ve "delete" anahtarları ile "wmic.exe" programını kullanarak sistemdeki gölge birimlerini silmeye çalışır. Bundan önce, kötü amaçlı yazılım, "GetProcAddress" ile "WoW64DisableWow64FsRedirection" işlevini alır ve bunu 64 bit işletim sistemlerinde varsayılan olarak yeniden yönlendirmeyi önlemek için kullanır ve dinamik bir şekilde çağırır.

Kötü amaçlı yazılım, bir kez virüslü sistemdeki dosyaları şifrelemeden önce ve ikinci olarak da şifreledikten sonra gölge kopyaları iki kez silmeye çalışır.

Bu yürütme, "CreateProcessW" işlevi ile yapılır, ancak gizleme düzeyini artırmak için kötü amaçlı yazılım şu komutla başlatılır:

ŞEKİL 16. ENFEKTE SİSTEMDEKİ GÖLGE KOPYALARININ WMIC COMMAND İLE SİLİNMESİ

Yukarıdaki görüntüde görebileceğiniz gibi, kötü amaçlı yazılım, "Windows", "system32" ve "wbem" dışında varsayılan olarak Windows'ta bulunmayan klasörlerin adıyla bir komut kullanır. Bu klasörlere girer ancak daha sonra “..” komutunu kullanarak bu klasörlerden derhal çıkar, yani yoldaki önceki klasöre geri döner.

Örneğin, başlangıçta "ydw" ve "fdygg" klasörlerine girer, ancak daha sonra bu durumda "C: \" ye yol açan iki ".." komutuyla Windows kurulum biriminin köküne döner. Daha sonra "Windows" klasörüyle birleşir ve gölge birimlerini silmek için anahtarlarla "wmic.exe" programını çağırdığı "system32" ye girmek için aynı davranışla devam eder. Bu, bu tür şüpheli davranış bir virüsten koruma programının onu durdurmasına neden olsa da, bu aramayı şaşırtmayı denemek için yapılır, ancak bu, kötü amaçlı yazılım kodlayıcılarının programlama becerilerine ve Windows davranışını iyi anladığının kanıtıdır.

Varolmayan klasörlerle komutta kullanılan bu "yol" un rastgele olduğunu ve gizlemeyi yapmak için aynı sayıda klasör kullanmasına gerek olmadığını anlamak önemlidir.

Silme işleminden sonra, kötü amaçlı yazılım, "GetProcAddress" işlevini kullanarak "Wow64RevertWow64FsRedirection" işlevini alır ve sistemi daha önce olduğu gibi bırakmak için dinamik bir şekilde çağırır.

ŞEKİL 17. 64-BIT İŞLETİM SİSTEMLERİNDE FS YÖNLENDİRMESİNİ KURTARIN

Labirent, "WNetOpenEnumW", "WNetEnumResourceW", "WNetCloseEnum" ve "WNetAddConnection2W" işlevlerini kullanarak ağ kaynaklarını da etkiler.

ŞEKİL 18. DİSKLERİN İÇİNDEKİ DOSYALARI KİRLENMEK İÇİN DİSKİN AĞ KAYNAKLARININ SAYILMASI

Kötü amaçlı yazılım, dosyaları şifrelemek için simetrik olan Salsa20 algoritmasına dayanan ChaCha ve koruma için asimetrik bir RSA algoritması olan iki algoritma kullanır.

Her yürütmede, kötü amaçlı yazılım, dosyaların şifresini çözmek için bilgileri tutan kısmı şifrelemek için kullanılacak bir RSA anahtarının Genel BLOB'unu ve genel RSA blobuyla şifrelenen bilgilerin şifresinin çözülmesine izin veren bir RSA anahtarına sahip bir Özel BLOB oluşturur. önceden oluşturulmuş.

ŞEKİL 19. RUNT SÜRESİNDE ÜRETİLEN RSA KAMU ANAHTAR BLOBUNUN İHRACATI

ŞEKİL 20. ÇALIŞMA SÜRESİNDE ÜRETİLEN RSA ÖZEL ANAHTAR BLOB'UN İHRACATI

Tıpkı diğer fidye yazılımları gibi, bu kötü amaçlı yazılımda, kurbanın RSA özel BLOB'unu korumak için içe aktarılacak gömülü bir RSA Genel BLOB'u vardır. Yalnızca kötü amaçlı yazılım geliştiricileri, genel RSA Blob'unun şifresini çözmek için RSA özel blobuna sahiptir.

ŞEKİL 21. KÖTÜ AMAÇLI YAZILIM GELİŞTİRİCİLERİ İÇİN RSA KAMU BLOBUNUN İTHALATI

Bu anahtar, bellek dökümlerini önlemek için "CryptGenRandom" işlevi kullanılarak 32 bitlik bir anahtar ve 8 baytlık iv kullanılarak bir kripto ile korunur, ancak daha sonra, kullanımdan önce şifresinin çözülmesi gerekecektir.

Bundan sonra, kötü amaçlı yazılım, çalışma zamanında oluşturulan RSA genel BLOB anahtarını içe aktarmadan önce dosyaları şifreleme, birimler halinde arama prosedürünü başlatır. Bundan sonra, kök klasörde bu virüslü makine için hazırlanan fidye notunu oluşturur ve ardından şifrelenecek klasör ve dosyaları aramaya başlar.

ŞEKİL 22. KÖK KLASÖRÜNDE FİDYE NOTU OLUŞTURMA VE KLASÖRLER VE DOSYALAR ARAMA

Bazı verilerin anonimleştirildiği örnek bir fidye notu aşağıda gösterilmiştir:

ŞEKİL 23. BİR MAZE FİDYE NOTU ÖRNEĞİ

Kötü amaçlı yazılımın aşağıdaki adımları atmasıyla, dosyaları şifreleme prosedürü kolaydır:

  • "FILE_ATTRIBUTE_ARCHIVE" niteliğine sahip "SetFileAttributesW" işlevi ile dosyanın varlığını kontrol edin.
  • Anahtar için "Sanal Ayırma" çağrısıyla dosyaya bellek ayırın ve iv.
  • Okuma ve yazma izinlerine sahip dosyayı, "OPEN_EXISTING" bayrağıyla "CreateFileW" işlevi ile açın.
  • Dosya boyutunu "GetFileSizeEx" işlevi ile alın (büyük dosyaları yönetmek için önemlidir, "GetFileSize" daha büyük dosyalar için iyi değildir).
  • "CreateFileMappingW" ve "MapViewOfFile" işlevleriyle bir dosya eşlemesi oluşturun
  • “CryptGenRandom” işleviyle 32 baytlık rastgele bir anahtar oluşturun.
  • “CryptGenRandom” işleviyle 8 baytlık rastgele bir iv oluşturun.
  • "VirtualAlloc" işlevi ile 264 bayt bellek ayırın.
  • Kurban dosyası için yeni bir rastgele uzantı oluşturun. Her dosyanın farklı bir uzantısı vardır, ancak orijinal uzantıyı kaybetmez; yenisi eskisine eklenir. Örneğin, "1.zip", "1.zip.gthf" olur.
  • Dosyayı ChaCha algoritması ve anahtar ve iv ile çalışma zamanında oluşturulan RSA genel anahtarıyla şifreleyin.
  • Dosyanın sonunda şifresini çözmek için bu yeni bloğu anahtar ve iv ile yazın.
  • Dosyayı "MoveFileExW" işleviyle yeniden adlandırın. Bu şekilde, dosyaları ham diskte aynı sektörü kullandıklarından, dosyaları kurtarmak için adli araçlar kullanmak mümkün değildir. Kötü amaçlı yazılım, "DeleteFileW" işlevini kullanarak dosyayı silmez ve daha sonra şifrelenmiş verilerle yeni bir tane oluşturur. Bunun yerine, tüm değişiklikler haritalamada, diskin okunması ve yazılması için bir dosya işaretçisi kullanılmadan doğrudan bellekte uygulanır, bu da işlemi çok daha hızlı hale getirir.
  • Dosyanın görüntüsü eşlenmemiş ve tutamaçlar kapalı.
  • İşlem yeni dosyalarla tekrarlanır.

Kötü amaçlı yazılımın kaçındığı klasörlerin listesi şunlardır:

  • Windows ana dizini.
  • Oyunlar
  • Tor tarayıcısı
  • Program verisi
  • cache2 \ girişleri
  • Düşük \ Content.ıe5
  • Kullanıcı Verileri \ Varsayılan \ Önbellek
  • Tüm kullanıcılar
  • Yerel ayarlar
  • AppData \ Local
  • Program dosyaları

Kötü amaçlı yazılım şu dosya uzantılarını yok sayar:

  • Lnk
  • exe
  • SYS
  • DLL

Kötü amaçlı yazılımda ayrıca şifrelenmeyecek dosya adları listesi vardır:

  • inf
  • ini
  • ini
  • dat
  • db
  • bak
  • dat.log
  • db
  • çöp Kutusu
  • Şifresini-files.txt

Ancak, diğer fidye yazılımlarının onu şifrelemesini önlemek için "ntuser.ini" dosyasını şifreler. Yapabileceği her klasörde fidye notu oluşturur.

Kötü amaçlı yazılım tüm dosyaları şifrelemeyi bitirdiğinde, masaüstü duvar kağıdını şu görüntüye dönüştürür:

ŞEKİL 24. KÖTÜ AMAÇLI YAZILIM, DOSYALARI KIRLADIKTAN SONRA MASAÜSTÜ DUVAR KAĞIDINI DEĞİŞTİRİR

Kötü amaçlı yazılım, aşağıda görüldüğü gibi, virüslü makine hakkında bilgi göndermek için ikili dosyada şifrelenmiş IP adreslerine bağlantı kurmaya çalışır:

 

hxxp:? //91.218.114.4/nwjknpeevx.action pw = g1y652l & ​​kyn = 21y3vvhh & DVR = 5e & bize = g25e3582a

hxxp: //91.218.114.11/forum/siaib.jspx v = H & xyna = 0vip863 & EUL = xsn3q0

hxxp: //91.218.114.26/view/ticket/pigut.jspx o = 664quo0s ve FP = ot52

hxxp:? //91.218.114.25/xrr.jspx ygad = r35e2cx & e = 6as6ta

hxxp: //91.218.114.4/j.php

hxxp: //91.218.114.11/payout/view/fa.aspx Y = QBX = 4 & alınmış anahtar kelimeler = n2 ve iuy = 8k7

hxxp: //91.218.114.25/lxh.asp mtxm = L7 ve r = 836wy5

hxxp: //91.218.114.26/signin/ticket/eq.action x = yk6rr ve e = 50b ve q = 327dr5 & OFK = 065cdp

hxxp:? //91.218.114.31/signin/rnmnnekca.jsp KDN = 6snl5 & e = 7a50cx4hyp

hxxp:? //91.218.114.31/forum/a.aspx byx = 56 & bc = 62t0h & u = 75w6n6 & sot = 2v0l761or6

hxxp:? //91.218.114.32/withdrawal/checkout/l.do nuny = qj6 & sdv = 45g2boyf5q & DNR = rh8lk31ed

hxxp:? //91.218.114.77/task/bxfbpx.jspx udx` = cge63

hxxp: //91.218.114.38/account/payout/ujwkjhoui.shtml

hxxp:? //91.218.114.37/imrhhjitop.phtml dtö = 344dsc84 & sp = x & oml = c173s71u & iy = m3u2

hxxp: //91.218.114.38/auth/login

hxxp:? //91.218.114.79/logout/hfwdmugdi.php upaj = mj7g

hxxp:? //91.218.114.38/sepa/juel.php ars = 51qse4p3y & xjaq = r5o4t4dp

hxxp: //91.218.114.32/fwno.cgi yd = 410 ve o = y7x5kx371 ve p = m3361672

hxxp: //91.218.114.37/sepa/signout/mjsnm.aspx r = 7o47wri & rtew = uu8764ssy ve bri = 51gxx6k5 & OPMS = 72gy0a

hxxp: //91.218.114.77/payout/analytics/lrkaaosp.do y = 62h-aq = 3jq8k6 & v = 0svt

hxxp:? //91.218.114.79/create/dpcwk.php u = 28qy0dpmt & qwbh = k & f = g1ub5ei & ek = 3EE

 

Kötü amaçlı yazılımın, algılamayı zorlaştırmak için "forum", "php", "görünüm" gibi olası dizeler listesinden rastgele bir seçimle bağlantı kurmak için POST dizesini taklit ettiğini dikkate almak önemlidir. Ağdaki IPS veya diğer filtreler.

IP adreslerinin Rusya Federasyonu'ndan olduğu tespit edildi, ancak bu kötü amaçlı yazılımın bu ülkeden geldiğini kanıtlamıyor; kasıtlı olarak yanlış yönlendirme olabilir, ancak BDT ülkelerinin dil kontrolleriyle kesinlikle mümkün görünüyor.

Etki alanı adları yerine IP adreslerinin kullanılması, değiştirilebilen veya bir geri dönüşe yönlendirilebilen DNS çözümlemelerinden kaçınmak içindir, örneğin Windows'daki "ana bilgisayar" dosyası kullanılarak. Bu, IP'lerin izlenmesini daha karmaşık hale getirir ve bağlantının engellenmesini önler.

Kötü amaçlı yazılım, bağlantıyı kurmak için bu aracı kullanır, ancak örnekler arasında değişebilir:

ŞEKİL 25. C2C IP ADRESLERİNE BAĞLANTILAR YAPMAK İÇİN KULLANILAN ARACI

Bir bellek dökümünden, bu bağlantılar tarafından kullanılan IP'leri ve ayrıca geliştiriciler tarafından doğrudan iletişim kuran "bleepingcomputer" web sitesinin yöneticisi Lawrence Abrams'dan bahseden ilginç bir dizeyi çıkarabiliriz. Fidye notuyla bir ilgisi olmadığı ve başka hiçbir yerde kullanılmadığı için neden bu e-posta adresini ekledikleri bilinmiyor. Belki de fidye yazılımı hakkında sık sık rapor veren bir sitenin yöneticisiyle alay etmenin bir yoludur?

ŞEKİL 26. BELLEKTEN ÇIKARILAN C2C IP ADRESLERİ

Wireshark kullanan bir pcap'ta C2C IP adreslerine bağlantılar mükemmel bir şekilde görülebilir:

ŞEKİL 27. C2C IP ADRESLERİ İLE PCAP'TA BAĞLANTI

Labirent'in hafızasında ilginç olan ve gelecekte daha fazla analiz edilmeye değer bir şey var:

ŞEKİL 28. GELECEĞİN ARAŞTIRILMASINA İLİŞKİN İLGİNÇ DİZGİ

Fidye notunda istenen ödemeyi yapmak için web sayfası bir fiyat verir ve her şeyin doğru olduğunu doğrular.

ŞEKİL 29. FİDYE NOTUNUN KESİNTİSİNDEN SONRA MAZE ÖDEME WEB SAYFASI

Maze, operatörlerle iletişim kurmak ve ödeme yapmak için gerekli kripto para birimini nasıl elde edeceğiniz hakkında bilgi almak için bir sohbet işlevine sahiptir.

Elbette, birçok fidye yazılımı türünde olduğu gibi, üç görüntünün şifresini ücretsiz olarak çözmek için bir teklif var ve bu hizmetin çalıştığı doğrulandı:

ŞEKİL 30. KÖTÜ AMAÇLI YAZILIM ÖRNEĞİ DOĞRU OLDUĞU İÇİN ÜCRETSİZ ŞİFRE ÇALIŞIR

ANAHTARLARI

Kötü amaçlı yazılımın, başlatmak için komut satırında kullanılabilecek bazı anahtarları vardır. Bu anahtarlar, bazı öğeleri devre dışı bırakabilir veya günlük kaydını etkinleştirebilir.

Anahtarlar:

  • –Nomutex -> Bu anahtar, aynı makinede birden fazla örneği çalıştırabilmesi için muteksin kontrol edilmesini engeller. Kötü amaçlı yazılım makinede muteks adını oluşturmadan önce yapılan aşıları önlemek için de kullanılabilir.
  • –Noshares -> Bu anahtarla, kötü amaçlı yazılım ağ paylaşımlarını değil, yalnızca yerel makineyi şifreleyecektir.
  • –Yol x -> Burada x tam bir yoldur. Bu durumda kötü amaçlı yazılım, kara listeye alınmış adlar, uzantılar veya klasör adları olmadıkça, bu yoldan başlayarak tüm klasörlerdeki tüm dosyaları şifreler. Bu, kötü amaçlı yazılım geliştiricilerin tam bir makinenin peşinden gitmek yerine zaman kaybetmek yerine özel bir yola saldırmaları için kullanışlıdır ve saldırıyı daha hedefli hale getirir.
  • –Logging -> Bu anahtar etkinleştirilirse, kötü amaçlı yazılım yaptığı tüm adımları günlüğe kaydeder. Hata ayıklama ortamlarındaki veya saldırı aşamasındaki kötü amaçlı yazılım geliştiricilerinin adım adım her şeyin yolunda olduğunu bilmek için kullanışlıdır. İşte bu bilginin küçük bir örneği:

ŞEKİL 31. KÖTÜ AMAÇLI YAZILIMIN LOG ANAHTARI İLE VEREBİLECEĞİ BİLGİ ÖRNEĞİ

DİĞER ÖRNEKLER

Ocak 2020'de, güvenlik alanındaki bazı araştırmacılara ayrılmış özel bir metinle birlikte kötü amaçlı yazılımın yeni bir sürümü ortaya çıktı. Kötü amaçlı yazılım geliştiricileri, bu kişileri kışkırtıcı olmaları ve onlarla dalga geçmeleri için seçmiş gibi görünüyor.

Örnek 28 Ocak 2020'de malwrhunterteam [9] tarafından keşfedildi. Örnekte , bu raporda analiz edilen bir öncekiyle karşılaştırıldığında bazı farklılıklar var. Bu farklılıklar daha sonra Luca Nagy [10] tarafından 30 Ocak 2020'de bulunan başka bir örnek aracılığıyla ele alınacaktır .

Buradaki en önemli şey, geliştiricilerin araştırmacıları dikkatlice seçmiş ve psikolojik bir numara olarak cevaplamalarını beklemiş gibi görünmeleridir ve işe yaradı, çünkü hepsi cevapladı, kötü amaçlı yazılım geliştiricileri üzerinde tespit edilen kötü amaçlı yazılımın sürümü üzerinden 28.

İşte bir kötü amaçlı yazılım geliştiricisinden bu trollemeye bazı ilginç gerçekleri içeren bir yanıt:

ŞEKİL 32. KÖTÜ AMAÇLI YAZILIM GELİŞTİRİCİSİNİN YANITI

  • Kötü amaçlı yazılımın arkasında bir kişinin olup olmadığı bilinmemektedir. Cevabında iki kez “biz” yerine “ben” demeleri ilginçtir. Bu nedenle, belki trolleme amacıyla bir kişi tarafından yazılmıştır veya belki de kötü amaçlı yazılımın geliştiricisi gerçekten yalnızca bir kişidir (veya araştırmacıların durumun böyle olduğunu düşünmesini istiyorlar).
  • Nottaki bir diğer önemli gerçek, araştırmacılardan birinin düzenli kötü amaçlı yazılım analizi için kullandığı araçlar hakkındaki konuşmadır. Neden düzenli kötü amaçlı yazılım analizinden bahsediyorlar? Kötü amaçlı yazılımları kendileri eğlence için tersine çevirdikleri için mi yoksa günlük işleri olabilir mi? Belki geliştirici bir araştırmacı olabilir mi (başkalarıyla konuşma ve onları kışkırtma biçimlerinden dolayı)? İkincisi, kötü amaçlı yazılım analizinden birden fazla kez bahsediliyor ve üçüncü olarak, kötü amaçlı yazılımın sahip olduğu tüm karmaşık kodları kaldırmak için bir IDAPython betiği yaptıklarını söylediler (fidye yazılımı, analizinin yürümeye benzemesi nedeniyle 'Maze' adını almış olabilir. bir labirent aracılığıyla). Yani, IDAPro'yu çok iyi bilen bir araştırmacı veya gelişmiş bir geliştirici (ve Maze'deki karmaşık kod çok iyi yapılmış) veya belki de normal hayatta kötü amaçlı yazılım oluşturmanın yanı sıra başka bir işi olan bir geliştirici olabilir? Elbette bunlar sadece olasılıklar, gerçekler değil.
  • Kötü amaçlı yazılım geliştiricisi, hedef kitlesi cevabı gördüğü ve yanıtlarının son satırında belirtildiği gibi kötü amaçlı yazılımları hakkında konuştuğu için bu etkileşimle hedefine ulaşmıştır “… ancak bilmeniz gerekir ki sizler olmadan araştırmacıları seviyoruz bizim işimiz de olurdu fuc **** cehennem kadar sıkıcı ”.

Burada eskisi gibi "ben" yerine "biz" demeleri ilginçtir ama belki de tüm kötü amaçlı yazılım geliştirmelerinden bahsediyorlardır?

Bu örneklerin sahip olduğu farklılıklar şunlardır:

  • Genellikle bir EXE dosyası yerine bir DLL olarak gelir. Analizi zorlaştırdığı için Vista'dan daha eski Windows işletim sistemlerinde çalışmaz. Kötü amaçlı yazılımı DLL olarak kullanarak, bu modülü kötü amaçlı yazılımın bir EXE örneğini kullanmaktan daha kolay bir şekilde hedef işleme enjekte edebilirler.
  • Geliştiriciler, "Gölge Birimleri" silmek yerine, daha önce bahsedildiği gibi, Gölge Birimleri kontrol etmek için WMIC sınıflarını kullanarak yolun özel numarasıyla WMIC kullanırlar. Bu kullanımın bir örneği bir sonraki resimde görülebilir.

ŞEKİL 33. GÖLGE HACİMLERİNİ ALMAK GEREKİYORSA WMIC SINIFLARINI KULLANMA

Kötü amaçlı yazılımın her bir örneği, mesaj göndermek veya örneği benzersiz kılmak için PDB olarak farklı dizeler kullanır, örneğin:

  • C: \ somerandomsh ** \ sh ** \ obama.pdb
  • C: \ öldürmek \ kendin \ \ çin \ idio * .Pdb

(Bu örneklerde, rapordaki hassas bilgileri kaldırmak için bazı şeyler kaldırılmış veya değiştirilmiştir).

Ocak 2020'de keşfedilen yeni örnekler C2 ile şu bağlantıları yapar (veya bunları yapmaya çalışır):

ŞEKİL 34. YENİ ÖRNEKLERDEN C2 IP'YE BAĞLANTILAR

Gördüğümüz gibi, kötü amaçlı yazılımın önceki sürümlerinde görülen IP'lerle aynılar.

Örneklerin derlenme tarihleri ​​24 Ocak 2020 (araştırmacıları kışkırtan dizelerin bulunduğu ilk versiyon) ile 28 Ocak 2020 (araştırmacılara cevapların bulunduğu versiyon) arasındadır, yani aynı gün önceki versiyona verilen yanıtlar Twitter'da yayınlandı.

Sonraki örnekten bir başka ilginç gerçek ise, onu programlamak için kullanılan dil kodunun Korece olduğunu söylemesinin yanı sıra, sonraki iki görüntüde de görülebileceği gibi, bağlandığı IP'lerin daha önce olduğu gibi Rusya Federasyonu'na ait olmasıdır.

ŞEKİL 35. KÖTÜ AMAÇLI YAZILIMDA DEĞİL, PAKETLEME ÖRNEĞİNDE "KULLANILAN" DİL KODU

ŞEKİL 36. TÜM C2 ALANLARI RUSYA FEDERASYONUNA AİTTİR

Gerçeği bilmek imkansızdır, ancak bu, araştırmacıları yanıltarak kötü amaçlı yazılımın bir ülkeden, aslında başka bir ülkeden geldiğini düşünmeleri için bir numara olabilir. Kötü amaçlı yazılım geliştiricilerin BDT ülkelerinden kaçınmak için potansiyel kurbanın makinelerinin dilini sık sık kontrol ettikleri bilinmektedir, bu nedenle "Korece" dilinin kontrolünün yanıltmak için tasarlanmış bir hile olduğunu tahmin edebiliriz, ancak bunu kesin olarak bilmek imkansızdır. Elbette, "Korece" dili manuel olarak değiştirilebilir veya Koreli bir paketleyici olabilir, ancak kesin olarak söylemek imkansızdır.

SONUÇ

Maze, yetenekli geliştiriciler tarafından oluşturulmuş bir fidye yazılımıdır. Dağıtıcıları devre dışı bırakarak ve sözde kod eklentileri kullanarak analizi çok karmaşık hale getirmek için birçok püf noktası kullanır.

Geliştiriciler ödeme almazlarsa bilgileri yayınlamakla tehdit ettikleri için ödeme yapmayan bireyler ve kuruluşlar için büyük bir sorun teşkil ediyor ve gerçekten de bu konuda sözlerini tutuyorlar. Giderek daha fazla fidye yazılımı aynı davranışı sergiliyor ve bunun daha fazlasını bu yıl ve belki de gelecekte daha da görmeyi bekliyoruz.

Kötü amaçlı yazılım geliştiricileri, Twitter gibi sosyal medya sitelerinde etkindir ve kötü amaçlı yazılım araştırmacılarının çalışmalarına aşinadırlar. Ayrıca onları nasıl mükemmel bir şekilde kışkırtacaklarını da biliyorlar ve onlarla kedi ve fare oynamayı seviyorlar.

Dosyaları düzenli aralıklarla yedeklemenizi ve bunları ağdan uzak tutmanızı ve her zaman güncellenen bir antivirüs bulundurmanızı öneririz. En son yazılım yaması da uygulanmalıdır. Gerekli olmayan Uzak Masaüstü Bağlantılarından kaçınılmalıdır.

Şüpheli e-postalardan kaçının ve tanımadığınız kişilerden gelen ekleri açmayın. Aynısı e-postalardaki bağlantılar için de geçerlidir ve bilinen bir kaynaktan gelseler bile, herhangi bir şüpheniz varsa göndericiye danışın. Ayrıca, Office programlarında makroları devre dışı bırakın ve gerekli olmadıkça bunları asla etkinleştirmeyin.

KAPSAM

McAfee, kişisel antivirüs, uç nokta ve ağ geçidi dahil tüm ürünlerinde bu tehdide karşı koruma sağlar.

Sahip olabileceği isimler:

  • Fidye-Labirent!

YARA KURAL

kural maze_unpacked {

   meta:

      description = "Paketlenmemiş Labirent örneklerini tespit etme kuralı"

      author = “Marc Rivero | McAfee ATR Ekibi ”

    

   Teller:

      $ opcode_sequence = {5589e583ec208b450c8b4d08c745fc00}

 

                  $ opcode_sequence_2 = {5589e553575683e4f883ec28c7042400}

 

                  $ opcode_sequence_3 = {5589e55dc3662e0f1f84000000000090}

 

                  $ opcode_sequence_4 = {5589e553575683e4f081ec600200008b}

 

                  $ opcode_sequence_5 = {5589e553575683e4f081ecc00000000f}

 

                  $ opcode_sequence_6 = {5589e583ec208b45108b4d0c8b550883}

 

                  $ opcode_sequence_7 = {5589e5575683ec388b45108b4d0c8b55}

 

                  $ opcode_sequence_8 = {5589e5575683e4f883ec088b45088b48}

 

                  $ opcode_sequence_9 = {558b6c241468997a41000f84bdc50000}

 

                  $ opcode_sequence_10 = {5589e553575683e4f883ec588b5d088b}

 

                  $ opcode_sequence_11 = {5589e553575683e4f083ec408a42048b}

 

                  $ opcode_sequence_12 = {5589e583ec188b4508837d08008945fc}

 

                  $ opcode_sequence_13 = {5589e553575683e4f8b8d05b0000687f}

 

                  $ opcode_sequence_14 = {5589e5508b450831c98945fc89c883c4}

 

                  $ opcode_sequence_15 = {5589e553575683e4f883ec708b5d0889}

                 

                  $ opcode_sequence_16 = {5589e583ec308b45088b4d08894df883}

 

                  $ opcode_sequence_17 = {5589e553575683e4f881ec18030000f2}

 

                  $ opcode_sequence_18 = {5589e583ec188b45088b4d08894df48b}

 

                  $ opcode_sequence_19 = {5589e583ec2056be74c14400566a0068}

 

                  $ opcode_sequence_20 = {5589e553575683e4f081ec900000008b}

 

                  $ opcode_sequence_21 = {5589e583e4f083ec208b4d108b450c0f}

 

                  $ opcode_sequence_22 = {5589e55383e4f883ec108b4d0c8b4508}

 

                  $ opcode_sequence_23 = {558b8e150409133f03fd08f81b0c4f22}

 

                  $ opcode_sequence_24 = {5589e553575683e4f883ec7031f68379}

 

                  $ opcode_sequence_25 = {5589e553575683e4f881ec3001000089}

 

                  $ opcode_sequence_26 = {5589e553575683e4f881ece00000000f}

 

                  $ opcode_sequence_27 = {558b589608361d1943a57d0ba6492beb}

 

                  $ opcode_sequence_28 = {5589e553575683e4f883ec1089ce6a00}

 

                  $ opcode_sequence_29 = {5589e5575683e4f883ec688b75088b7d}

 

                  $ opcode_sequence_30 = {5589e553575683e4f883ec386a006a00}

 

                  $ opcode_sequence_31 = {558b7c240868dca8440057683d484300}

 

                  $ opcode_sequence_32 = {5589e55683e4f881ec2801000089ce8d}

 

                  $ opcode_sequence_33 = {5589e583ec188b450831c98b5508c704}

 

                  $ opcode_sequence_34 = {5589e583ec308b450c8b4d088b55088b}

 

                  $ opcode_sequence_35 = {5589e583ec348b450831c983c1188b55}

 

                  $ opcode_sequence_36 = {5589e553575683e4f881ec78040000f2}

 

                  $ opcode_sequence_37 = {5589e583ec108b4508837d08008945f8}

 

                  $ opcode_sequence_38 = {5589e583ec348b4508837d08008945dc}

 

                  $ opcode_sequence_39 = {5589e55683ec548b45088b4d08894df0}

 

                  $ opcode_sequence_40 = {558bec5de9a48efeffe9ef8efeffcccc}

 

                  $ opcode_sequence_41 = {5589e553575683ec108b45108b4d0c8b}

 

                  $ opcode_sequence_42 = {5589e5575683ec348b4508c745f40100}

 

                  $ opcode_sequence_43 = {558bec8325a0c345000083ec1c5333db}

 

                  $ opcode_sequence_44 = {5589e553575683e4f083ec208b750c0f}

 

                  $ opcode_sequence_45 = {5589e583ec348b450c8b4d088b55088b}

 

                  $ opcode_sequence_46 = {558b6fd8d843ef516154e2526781aecd}

 

   durum:

 

      (uint16 (0) == 0x5a4d) ve 38 tanesi

}

IOCs

Alan mazedecrypt.top

IP 91.218.114.11

IP 91.218.114.25

IP 91.218.114.26

IP 91.218.114.31

IP 91.218.114.32

IP 91.218.114.37

IP 91.218.114.38

IP 91.218.114.4

IP 91.218.114.77

IP 91.218.114.79

GÖNDERME VE CK KAPSAMI

  • CommonlyUsedPort
  • StandardApplicationLayerProtocol
  • SecuritySoftwareDiscovery
  • SystemTimeDiscovery
  • Komut satırı arayüzü
  • DataEncrypted
  • DataEncryptedForImpact
  • Sorgu kaydı
  • Kancalayan

[1] https://twitter.com/jeromesegura/status/1133767240686288896

[2] https://www.bleepingcomputer.com/news/security/maze-ransomware-demands-6-million-ransom-from-southwire/

[3] https://www.bleepingcomputer.com/news/security/nemty-ransomware-to-start-leaking-non-paying-victims-data/

[4] https://twitter.com/McAfee_Labs/status/1206651980086685696

[5] https://www.bleepingcomputer.com/news/security/new-threat-actor-impersonates-govt-agencies-to-deliver-malware/

[6] https://securityintelligence.com/news/spelevo-ek-exploits-flash-player-vulnerability-to-deliver-maze-ransomware/

[7] https://github.com/revsic/AntiDebugging

[8] https://ss64.com/locale.html

[9] https://twitter.com/malwrhunterteam/status/1222253947332841472

[10] https://twitter.com/luca_nagy_/status/1222819371644522500

 

 

İletişim

İletişim


Emek Ofis: Emek Mh. Cemil Alevli Cad. Asım Bey Apt. Altı 4/A Şehitkamil/Gaziantep

Teknopark Ofis: Yamaçtepe Mh. Gaziantep Teknopark A Blok B-3 Şahinbey/Gaziantep

+90 546 256 5627

info@truncgil.com

Takip Edin