Önemli Yeteneklere Sahip Bir Node.js Kötü Amaçlı Yazılımı olan Lu0Bot’un Analizi ve Yapılandırma Çıkarımı


Günümüzde, daha fazla sayıda kötü amaçlı yazılım geliştiricisi, gelişmiş algılama sistemlerini atlatmak için alışılmadık programlama dilleri kullanıyor. Node.js kötü amaçlı yazılımı Lu0Bot bu eğilimin bir kanıtıdır.

Modern web uygulamalarında yaygın olan, platformdan bağımsız bir çalışma ortamı ortamını hedef alan ve çok katmanlı gizlemeyi kullanan Lu0Bot, kuruluşlar ve bireyler için ciddi bir tehdittir.

Şu anda kötü amaçlı yazılımın etkinliği düşük olmasına rağmen, saldırganlar muhtemelen saldırmak için doğru anı bekliyor.

Gelecekteki herhangi bir senaryoya hazırlıklı olmak için bir analist ekibi, Lu0Bot’un son örneklerinden birinin derinlemesine teknik analizini gerçekleştirdi ve süreçlerini belgeleyen bir makale yayınladı.

İşte araştırmalarına genel bir bakış.

Lu0Bot örneğinin statik analizi

İncelenen örnekte, herhangi bir arşiv yardımcı programıyla açılabilen, kendiliğinden açılan bir arşiv olan SFX paketleyicisi kullanıldı. İçeriği tek tek araştırıldı.

İçerikleri arşivle

1. BAT dosyası

BAT dosyasının içeriği

Dosyanın ilk satırında belirsiz kalan ve daha sonra başvurulmayan bir yorum yer alıyordu.

Daha sonra EXE dosyası, fjlpexyjauf.exe adlı bir Node yorumlayıcısı da dahil olmak üzere birden fazla dosyayı paketledi.

Daha sonra yorumlayıcı, baytları ve muhtemelen bayt dosyası için şifreleme anahtarı görevi gören bir sayıyı (%1 ekran görüntüsünde) içeren bir dosya aldı.

2. eqnyiodbs.dat dosyaları

Dosya bayt bloklarına bölündü ve bunlar daha sonra Düğüm yorumlayıcısını oluşturmak için birleştirildi.

eqnyiodbs dosyalarının içeriği

3.lknidtnqmg.dat dosyası

Bu dosyanın Base64’te şifrelenmiş baytları vardı ve bu baytların şifresi, verilen giriş numarası kullanılarak çözülebilirdi.

lknidtnqmg.dat dosyasının içeriği

4.gyvdcniwvlu.dat dosyası

Bu sürücü, x64 sistemlerindeki 32 bit programların, anahtar tarama kodlarını, muhtemelen ana işlemde keylogging işlevi için kullanılan Unicode karakterlere dönüştürmesine izin verdi.

ANY.RUN’da Lu0Bot’un dinamik kötü amaçlı yazılım analizi

Bir sonraki adım, davranışlarını izlemek ve baytların şifresini çözmek veya şifresi çözülmüş halde bunları işlem belleğinde bulmak için ANY.RUN etkileşimli kötü amaçlı yazılım sanal alanındaki EXE dosyasının ve lknidtnqmg.dat dosyasının araştırılmasını içeriyordu.

Analiz, yürütme sonrasında ana sürecin bir EXE dosyasını başlatan bir BAT dosyasını başlattığını ortaya çıkardı. Kod, şifrelenmiş JS girişini kabul etti ve WMIC kullanarak, T1047 MITRE tekniğiyle uyumlu işlem yürütme konumu hakkındaki bilgiler de dahil olmak üzere sistem verilerini topladı.

Örnek yürütme sırasındaki süreç ağacı

Yorumlayıcının başlangıç ​​klasörüne kopyalandığı keşfedildi. Etki alanına bağlantı sistem yeniden başlatıldıktan sonra da devam etti ve botun çalışır durumda kalması sağlandı.

Ayrıca kötü amaçlı yazılım, çeşitli parçaları JS kodu içinde tek bir varlıkta birleştirerek etki alanı bağlantısına benzersiz bir yaklaşım sergiledi.

DNS istekleri
Kötü Amaçlı Yazılım Analizi

ANY.RUN etkileşimli sanal alanındaki kötü amaçlı yazılımları analiz etmek için 14 günlük ücretsiz deneme sürümünü kullanın.

Ekibinizle birlikte özel modda çalışın. Kötü niyetli davranışlarını ortaya çıkarmak için özel bir VM’deki dosyalar ve bağlantılarla etkileşime geçin. Yeni IOC’leri ve yapılandırmaları saniyeler içinde toplayın.

Ücretsiz denemeyi başlatın

Bir sökücü ve hata ayıklayıcı kullanarak Lu0Bot kötü amaçlı yazılımının teknik analizi

Ana JS koduna erişmek için ekip:

  • SFX arşivini paketinden çıkardık
  • Node.js dosyasını toplamak için bir komut çalıştırdım
  • Gelen verileri komut satırına girerek x32dbg’de fjlpexyjauf.exe başlatıldı
  • JS kod yürütmesinin başladığı noktaya geldim
  • Kodu bellekte buldu ve bir dökümü kaydetti

Paketten çıkarma ve boşaltma işlemlerinin nasıl yürütüldüğünü görmek için orijinal makaleye bakın. Bu genel bakış için kod analizine odaklanalım.

JS kodunu analiz etme

Başlangıçta anlaşılmaz olan JavaScript kodu, gereksiz baytların kaldırılması ve bir JavaScript kod çözücünün kullanılmasıyla netleştirildi.

Kod dönüşümünün sonucu

Kod, bir dizi şifrelenmiş dizeyle başladı. Daha sonra belirli öğeler manipülasyon yoluyla dizinin sonuna taşındı. Bundan sonra, BASE64’ün (T1132.002) alternatif bir biçimini, ardından URL kodlama-kod çözme ve son olarak RC4’ü kullanarak dizi dizelerinin şifresini çözmek için bir işlev uygulandı.

Bu işlev iki değişken kullanılarak çağrıldı:

1. Dizideki bir öğe.

2. RC4 tuşu.

Özel bir komut dosyası yardımıyla satırların şifresi çözüldü ve alan adlarının bazı bölümlerinin örneğe sabit kodlandığı ortaya çıktı.

Kodun gizlenmesinin ardından

Bunu takiben kodun alan adının birleştirilmesinden sorumlu bölümü keşfedildi.

Etki alanı inşaatı

JavaScript kodunda hata ayıklama

Hata ayıklamak için ekip, Node.js’yi inspect-brk parametresiyle (node.exe –inspect-brk *çöp baytları olmadan obfuscate dökümü*) kullandı, “var” anahtar kelimesine bir kesme noktası yerleştirdi ve her satır tarafından oluşturulan çıktıyı gözlemledi.

İlk fonksiyonun olduğu bulundu (verildi) sistem bilgilerini topladı ve sistem ayrıntılarını içeren 15 öğeli bir dizi üretti.

Ginf fonksiyonunun çıktısını içeren bir dizi

İkinci fonksiyon (hwco) 15 elemanlı diziyi kullandı verildi noktaya kadar alanın kuyruk ucunu içeren bir çıktı üreten girdi olarak işlev görür. Daha ileri analizler, bu çıktının toplanan sistem verilerinin bir karması olduğunu ortaya çıkardı.

hwco işlevinden dize çıktısı

Noktadan sonraki bağlantı noktası, sayı ve etki alanı segmenti acc dizisinden çıkarıldı ve ardından değişkenlere atandı.

Acc dizisinden öğelerin çıkarılması

Noktadan sonra alan segmentine rastgele bir sayı eklendi. Bir sonraki satır, belirli koşulların karşılanması durumunda alternatif bir alan seçti.

Noktadan sonra alan adını seçin

Diğer birkaç işlemden sonra alan tamamen birleştirildi ve gerekli tüm öğeler bir JSON nesnesine paketlendi.

Kötü amaçlı yazılım, yürütüldükten sonra veri iletimi için bir adres aradı. Sunucu trafiği aldıktan sonra JS kodunu gönderdi.

Lu0bot tespiti

Ekip, çabalarının bir parçası olarak çok sayıda istihbarat ve IOC’yi ortaya çıkarmanın yanı sıra YARA, Sigma ve Suricata kurallarını da yazmayı başardı. Yazıdan ulaşabilirsiniz.

Tüm bulgular ANY.RUN’a dahil edilerek hizmetin herhangi bir Lu0Bot örneğini hızlı bir şekilde tanımlamasına ve dizelerin şifresini çözdükten sonra C2 alanlarını ortaya çıkarmasına olanak sağlandı.

Çözüm

Lu0bot, Node.js ile çalıştırılabilir JS kodunu birleştiren alışılmadık bir kötü amaçlı yazılımdır. Benzersiz bir etki alanı yapısına sahiptir ve dizeler için özel şifreleme yöntemleri kullanır.

Şu anda düşük düzeyde bir etkinlik sergilemesine rağmen Lu0bot, kampanyasının ölçeklenmesi ve C2 sunucusunun aktif olarak yanıt vermeye başlaması durumunda önemli bir risk oluşturabilir.

Şüpheli dosyaları veya bağlantıları hızlı bir şekilde analiz etmek ve saniyeler içinde kesin bir karara varmak için ANY.RUN’u kullanarak kuruluşunuzu bu ve diğer kötü amaçlı yazılımlardan koruyun.

Bu makaleyi ilginç buldunuz mu? Bizi takip edin heyecan ve yayınladığımız daha özel içerikleri okumak için LinkedIn.





Source link