paint-brush
Python'da RAT Mutantları Verileri Nasıl Çalıyor ve Tespitten Nasıl Kaçıyor?ile@hernanortiz
3,732 okumalar
3,732 okumalar

Python'da RAT Mutantları Verileri Nasıl Çalıyor ve Tespitten Nasıl Kaçıyor?

ile Hernán Ortiz7m2023/02/02
Read on Terminal Reader
Read this story w/o Javascript

Çok uzun; Okumak

Her ne kadar güvenlik araştırmacılarımız tarafından her gün kötü amaçlı Python paketleri bulunsa da, RAT mutantları dediğimiz yeni bir kötü amaçlı yazılım türü dikkatimizi çekiyor. Zamanla daha kaçamak ve tehlikeli olacak şekilde değiştiler ve adapte oldular. İşte kripto para cüzdanlarınızı ve kişisel verilerinizi nasıl çalabileceklerinin, farenizi ve klavyenizi uzaktan nasıl kontrol edebileceklerinin ve tespit edilmekten kaçacak şekilde nasıl evrimleşebileceklerinin hikayesi.
featured image - Python'da RAT Mutantları Verileri Nasıl Çalıyor ve Tespitten Nasıl Kaçıyor?
Hernán Ortiz HackerNoon profile picture



"Bilge bir ninja, tam olarak anlamadığı bir düşmanı aramaz." - Teenage Mutant Ninja Turtles'tan Splinter


Bilim kurgu tutkunu bir teknik yazar olarak Sonatype'teki işimin en heyecan verici kısımlarından biri, güvenlik araştırma ekibiyle işbirliği yapma fırsatına sahip olduğum zamandır.


Bulduğumuzdan beri  geçen ay bir dizi Python paketi RAT mutantları dediğimiz şeye (uzaktan erişim truva atlarının ve bilgi hırsızlarının yeteneklerinden yararlanan yeni kötü amaçlı yazılımlar) karşılık gelen güvenlik araştırmacılarımız rahatsız edici bir deja vu duygusuna kapıldılar.


Bu nadir görülen bir durum değil: Gerçekten kötü amaçlı olup olmadıklarını belirlemek için açık kaynak kayıtlarındaki yüzlerce şüpheli paketi sürekli olarak değerlendiriyorlar. Bu prosedür sırasında paketler arasındaki tanıdık kalıpları tespit ederler ve bazen güçlü benzerlikleri fark ettikten sonra arkalarındaki aktörü/kampanyayı bulmak için daha fazla araştırma yaparlar.


2022'nin son haftası ile 2023'ün başı arasında yapay zeka sistemimiz, pyrologin , easytimestamp , discorder , discord-dev , style.py ve pythonstyles dahil olmak üzere PyPI kayıt defterine yüklenen şüpheli paketleri işaretledi. Güvenlik araştırmacılarımız bunlara baktı ve gerçekten kötü niyetli olduklarını doğruladı. Daha ayrıntılı bir analizin ardından, bu paketlerin Python kötü amaçlı yazılımlarında sıklıkla görülmeyen bir dizi özellik eklediğini fark ettiler.


Fiili bir strateji haline gelen bu yöntemde, kötü aktörler setup[.]py dosyasında bir veri yükünü gizler, böylece geliştiricilerin virüse yakalanmak için yalnızca basit bir pip kurulumu kullanması gerekir. Bu durumda, saldırganın kurbanın faresini ve klavyesini kontrol etmesine, ekran görüntüleri almasına ve gizli uzak bağlantılar oluşturmasına olanak tanıyan kitaplıkları yüklemek için ZIP dosyasını indiren bir PowerShell betiğini yanlışlıkla başlatıyor olacaklar. Üstelik bu paketler aynı zamanda şifreler, çerezler ve kripto para birimi cüzdan verileri gibi hassas bilgileri de sızdırıyor ve hatta uzaktan erişim için bir araç yüklemeye çalışıyor. Bulgularımız uyumluydu Phylum'un teknik raporu tamamen aynı paketlerden.


Yine de güvenlik araştırmacısı Carlos Fernandez, rahatsız edici bir deja vu duygusu yaşıyordu. Paketleri açıkladıktan sonraki hafta boyunca, bu kötü amaçlı yazılımın önceki sürümlerini gördüğüne dair anılar aklına geldi. Bir tehdit aktörü zaman içinde kötü amaçlı yazılımını geliştiriyor olabilir, ancak bundan emin olmamız gerekiyordu, bu yüzden sezgilerinde herhangi bir doğruluk payı olup olmadığını görmesine yardımcı olmak için OSINT şapkamı taktım.

Köken Hikayesi

Veritabanımıza dönüp baktığımızda 25 Eylül 2022'de PyPI deposuna pygradient adlı bir paketin yüklendiğini görüyoruz. Yapay zekamız bunu şüpheli olarak işaretledi ve güvenlik araştırmacılarımız bunun kötü amaçlı yazılım içerdiğini ve pystyle adı verilen başka bir paketin kaynaklarını bir araya getirdiğini doğruladı. Her iki kütüphanenin yazarı da billythegoat356 , diğer adıyla BillyTheGoat, diğer adıyla BillyV3 (loTus04 ve BlueRed'in katkılarıyla). Fransa'dan gelen bu yazar (en azından GitHub'daki konumu ve Discord kanalları aracılığıyla konuşulan dil bunu gösteriyor) arkasındaki kişi olarak kabul ediliyor. Hyperion , yakın zamanda yüklenen kötü amaçlı yazılımlarda sıklıkla bulduğumuz bir Python gizleme aracıdır ve aynı zamanda aşağıdakilerin yaratıcılarından biridir: W4SP hırsızı Temmuz ayından bu yana aktif olan bir bilgi hırsızı devam eden tedarik zinciri saldırısı Kayıtları açmak için.


W4SP hırsızı kalıcılık (kullanıcılar bilgisayarı her yeniden başlattığında yeniden etkinleştirilir), gizleme (yazar bunun tamamen tespit edilemez olduğunu vaat ediyor) ve bir görüntü dosyası içindeki polimorfik ve oldukça karmaşık yükleri gizlemek için steganografi tekniklerine sahiptir. Kötü amaçlı yazılım, kurbanın tüm Discord hesaplarını, kredi kartlarını, şifrelerini ve kripto cüzdanlarını sabit kodlu bir Discord web kancası adresi aracılığıyla saldırgana geri gönderiyor. Bu kötü amaçlı yazılımla ilgilenen kötü aktörler, onu yaklaşık 20 ABD doları tutarında kripto para ödeyerek satın aldılar.



Görüntünün kodu çözüldükten sonra, gizli bir base64 ile gizlenmiş Python kodu ortaya çıkar.



Başlangıçta, pystyle kötü niyetli bir yapıya sahip değildi; okunabilirliği ve kullanıcı deneyimini geliştirmek için konsol çıktısını stillendirmek ve renklendirmek için zararsız bir paketti. Ancak Phylum araştırmasına göre, popüler hale geldikten sonra (paket PyPI'de hala aktif ve her ay 40.000'den fazla indirme işlemi gerçekleştiriyor), birkaç sürüme W4SP kötü amaçlı yazılımını eklemeye karar verdiler.


pystyle gibi açık kaynaklı paketler aylarca uyuyan aracılar olarak görev yapabilir, ancak daha sonra kendi yazarları tarafından kötü amaçlı amaçlarla etkinleştirilebilir. Riskli bir hareket çünkü popüler paketleri bizim gibi güvenlik araştırmacıları tarafından keşfedilebilir ve bu araştırmacılar onu kötü amaçlı olarak rapor edebilir ve sonsuza kadar kaldırılabilir. Bu nedenle genellikle zararsız bir kütüphanenin kaynak kodunu içeren, bir tür kötü amaçlı yük ekleyen ve bunu yeni bir adla yükledikleri yeni paketler oluştururlar: genel, kulağa hoş gelen, masum görünen bir şey. pygradient gibi bir isim.


Carlos'u daha yakından inceledikten sonra, bu proto-RAT mutant kötü amaçlı yazılımın Aralık sürümlerindeki bazı özelliklerden yoksun olduğunu gördük: Ayrıca bir PowerShell betiği başlatıp hassas verileri dışarı sızdırmasına rağmen, base64 kodlu yükleri veya izin verilenler listesini kullanmıyordu. Kendi kendine bulaşmayı önlemek için txt dosyası. Bir bakıma daha hafif, daha az karmaşık bir varyanttı.


Ancak daha sonra, aralarında paintpy , devicespoof ve devicespoofer da bulunduğu Kasım ayı başında yüklenen paketlere baktık ve daha derine indikten sonra şüphemizin doğrulandığını gördük: kötü amaçlı yazılım gerçekten gelişiyordu.

Kötü Amaçlı Yazılımları Takip Eden Bir Taklitçi

BillyTheGoat Kasım ayından bu yana GitHub'da aktif olmasa da, çoğunlukla Portekiz'de yerleşik olduğu anlaşılan bir kullanıcı tarafından, onun yaratımlarına dayanan veya doğrudan onlardan çalınan kötü amaçlı yazılımlar buluyoruz. zeeckt .


Bu kullanıcı PyPI'de kısa süre önce kaldırılan pystilez adlı bir paketi yükledi ve bu paket yanlışlıkla BillyTheGoat'a atfedildi. Jacking'i Başlat —yeni paketlerini popüler bir GitHub kütüphanesine bağlayarak ve böylece yüzlerce yıldız ve çatalla ilişkilendirilerek itibarını artırmaya yönelik bir teknik.


Checkmarx takip ediyordu Bu kötü aktörün, apicolor adlı bir pakette (benzer isimli varyasyonlarla birlikte) kötü amaçlı kodlarında bir Discord sunucusu bağlantısı içeren bir W4SP saldırısı bulduktan sonra ortaya çıktığı belirtildi. Doğrulanmış bir Steam hesabına bağlı yönetici profili ve "zeeckt" adı, saldırganın Steam takma adlarından biri olarak ortaya çıktı.


Kontrol Noktası ayrıca bu tehdit aktörünün meşruiyeti artırmak için popüler GitHub hesaplarının profillerini kopyalayarak sahte kullanıcılar oluşturduğunu da bildirdi. Ve kurbanlarından biri şunu yaratmaya karar verdi: bir YouTube videosu sahte profillerinden birine aşık olduktan sonra insanları bu saldırı hakkında uyarmak.


Bir güvenlik araştırmacısı, Zeeckt'in verilerinden birini eğitim amaçlı yayınladı ve W4SP hırsızının ortak yazarından ilginç bir yanıt aldı:




Hırsızınızın çalınması ne kadar da ironik.


Görünüşe göre 17 yaşında bir Python geliştiricisi olan aynı yazar, GitHub profilindeki bir README dosyasında hayal kırıklığını yineliyor:



Zeeckt'in diğer kötü aktörlerden tam olarak hangi kötü amaçlı kodu çaldığını bilmiyoruz, ancak kesin olan bir şey var: bu ad, açık kaynak kayıtlarındaki kötü amaçlı yazılım kampanyalarında ortaya çıkmaya devam ediyor.


Daha Sinsi Varyantlar Kripto Servetinizi Kemiriyor

Carlos yakın zamanda dört paket daha buldu zeeckt : forenitq , forenith , forenity ve forenitz . Daha fazla araştırma yaptıktan sonra bunları kötü niyetli olarak etiketledi ve kaldırılmaları için PyPI'ye bildirdi. En hızlı vakanın yayınlanmasından silinmesine kadar yaklaşık 20 dakika sürdü.


forenitq dosyasındaki setup[.]py bakan Carlos , aşağıdaki ilk aşama yükünü buldu:




Saldırgan, "start" komutunu kullanarak Windows ikili dosyalarını belirli URL'lerden indirip çalıştıran üç geçici dosya oluşturur. Her ne kadar /rat ve /clip sümüklü böcekleri kötü niyetli niyetleri akla getirse de, bu varsayımı arka plana bakmadan doğrulayamadık.


Bu yazının yazıldığı sırada, hxxp://20[.]226[.]18[.]203 adresinde barındırılan sayfa hâlâ aktiftir ve yalnızca süresi dolmuş veya özel bir Discord davetine giden bağlantıyı gösterir.


Carlos paketin popülermiş gibi göründüğünü fark etti. Colorama Paket, olası bir StarJacking girişimi için meta verilerini kullanıyor.


RAT dosyasının gizliliğini kaldırdıktan sonra, olası bir pano korsanının yüklendiği bir satır buldu, ancak bunun ayrıntıları base64 ile kodlanmıştı:


Kodu çözdükten sonra, hedeflenen kripto para birimi cüzdan adresini saldırganın adresiyle değiştirmek için kurbanın panosunu ele geçirmek üzere tasarlanmış bir Python kodu elde ederiz:


Bitcoin (bc1), Ethereum (0x), Monero (4) ve litecoin (L veya M veya 3) gibi belirli kalıpları arar ve bir kalıp bulunduğunda amaçlanan adresi saldırganın kripto para birimi cüzdan adresiyle değiştirir. .


Kod şunları kullanır: kalem klibi pano verilerini kopyalayıp yapıştırmak için kitaplık. Henüz kurulmamışsa kütüphaneyi kuracak ve ardından kripto para birimi cüzdan adresini panoya kopyalayacaktır. Kod daha sonra panoyu cüzdan adresi kalıpları açısından izlemek üzere sürekli bir döngüye ayarlanır.


Ek olarak, bu RAT mutantının tespitten kaçmak için kullandığı daha fazla tekniği ortaya çıkardık: setup[.]py forenitq/ansi[.]py .]py dosyasına eklenen birinci aşama verisi ve her çalıştırdığınızda değişen ikinci aşama polimorfik verisi. ikili.


Saldırgan ayrıca eksiksiz bir yardım menüsü içeren yeni bir komut ve kontrol ekledi ve bu kez şunu söyledi:



Gördüğünüz gibi kötü niyetli aktörler, altyapınıza daha fazla sızmak için kripto fonlarınızı ve sistem kimlik bilgilerinizi çalmaya isteklidir. RAT kötü amaçlı yazılımları, daha kaçamak ve geliştiricilere zarar verecek şekilde mutasyona uğramaya devam ediyor. Dolayısıyla, yazılım tedarik zincirinizi bugün korumuyorsanız, bunu mümkün olan en kısa sürede yapmak için harekete geçmeyi düşünün.


IOC'ler (Uzlaşma Göstergeleri)

hxxp://20[.]226[.]18[.]203/inject/tCxFLYLT6ViY9ZnP

hxxp://20[.]226[.]18[.]203/clip

hxxp://20[.]226[.]18[.]203/rat