Geçtiğimiz aylarda , birkaç kez daha önce yazdığımız Cerberus Android kötü amaçlı yazılım kaynak kodu halka açıldı .
Cerberus Rat hakkındakı yazım için *** Hidden text: cannot be quoted. ***
Giriş
Geliştiricisi, bir yeraltı forumunda projenin ellerini yıkadığını ve başarısız bir müzayedenin ardından, kaynak kodunu müşterileri ve söz konusu forumun tüm premium kullanıcıları ile paylaştığını belirttikten sonra yayınladı.
Bu kararın ışığında, kötü amaçlı yazılımın , tespit edilen örneklerin analizinden zaten bilinenin ötesinde nasıl çalıştığını bütünüyle görmek artık mümkün
.
Ana geliştiricinin mesajı
Kötü amaçlı uygulama kodunun kendisinden daha ilginç olan, kontrol sunucusunda çalışan kodun analizidir. Sonuçta, örnekleri analiz etmek, kötü amaçlı yazılımın nasıl çalıştığı hakkında zaten büyük miktarda bilgi sağladı. Bununla birlikte, bu, sunucu tarafından çalıştırılan kodu elimize ilk kez aldığımız zamandır ve çalınan kimlik bilgilerinin kaydının ötesinde, bunları kullanmak için bir tür otomatik mekanizma olup olmadığını bilmek ilgi çekicidir.
Uygulama Kodu
Daha önce de belirttiğimiz gibi, kötü amaçlı uygulamanın kaynak kodunu analiz etmek en ilginç yönü değil, ancak bu kötü amaçlı yazılımın nasıl çalıştığı hakkında çok daha net bir fikir edinmemize ve bunun gizli işlevlere olanak sağlama olasılığı keşfedilebilir veya hangi kod sürümüyle uğraştığımıza bağlı olarak, henüz geliştirilmekte olan son sürümlere henüz uygulanmamış işlevler.
Analiz edilecek kodun en ilginç kısımlarından biri, kontrol sunucusuyla olan iletişim protokolüdür, çünkü kaynak koduna erişim sağlayarak, uygulamayı simüle eden ve kontrol sunucusuyla iletişim kuran küçük programlar veya komut dosyaları geliştirmek daha kolaydır. mevcut kampanya hakkında bilgi alın. Kodun bir kısmı, potansiyel olarak yeni sürümleri analiz etmek için yararlı araçlar geliştirmek üzere doğrudan yeniden kullanılabilir.
İçerik eklenmiş banka kimlik avı yoluyla toplanan bilgileri göndermek için kaynak kodu
Şifreleme fonksiyonlarının isimleri kaynak kodda açıkça görülebilir. Bununla birlikte, daha önce RC4 şifrelemesini kullandığı bilinmesine rağmen, artık görülmesi çok daha kolay ve net.
Şifreleme işlevleri ve onaltılık kod
Uygulama kodunda, Truva Atı tarafından kontrol sunucusuyla iletişim kurmak ve çalınan verileri göndermek için kullanılan URL'lerin tam listesini de alabiliriz. Aşağıdaki görüntüde, URL'lerin veri gönderimi ile isteği yapan kodda daha sonra kullanılacak sabitler olarak nasıl tanımlandığını görebiliriz.
Bununla ilgili birincil raporumuzda görülebileceği gibi, aşağıdaki URL'ler Truva Atı'nın ilk sürümüne karşılık gelir.
Sabit olarak tanımlanan URL'ler
Sunucu kodu
Sunucu tarafında, işlevselliği iki ana öğeye ayırdık:
- geçit : virüslü cihazlar tarafından yapılan istekleri işleyen PHP kodu Önceki bölümde belirtilen URL'lere yapılan isteklerle ilgilenen sunucu kodudur.
- restapi : Karşılık gelen sonuçlarla yapılan isteklere yanıt vermek için sunucunun veritabanına sorgular yapan bir Rest API uygulayan PHP kodu.
Sunucu kurulum betiğinin üzerinden geçersek, NGINX'te iki farklı sitenin nasıl yapılandırıldığını görebiliriz, bunlardan biri 80 numaralı bağlantı noktasında kapı, diğeri 8080 bağlantı noktasında restapi için.
Ayrıca, ikincisi, normal ağ üzerinden değil TOR ağı üzerinden erişilebilir olacak şekilde yapılandırılmıştır, böylece yalnızca ONION etki alanını bilen saldırgan API'ye istekte bulunma yeteneğine sahip olmalıdır.
Sunucunun kaynak koduna erişim, gizli sürekliliğin yanı sıra, koddaki diğer saldırganlar tarafından veya analistler ve kurumsal tarafından botnet'i bozmak için kontrol tablosunda almak için biyolojik güvenlik açıklarının ortaya çıkması. Karşılaşabileceğimiz güvenlik açıklarından biri, veritabanı sorgularındaki SQL dönüştürme güvenlik açıklarıdır.
Ancak, geliştiricilerin PHP kitaplığından hazırlanmış ifadeler kullanarak izlerini kapatmaya çalıştıkları görüldü ki bu da en az kapıda bu gibi güvenlik açıklarını engelliyor.
Veritabanına yeni bir virüslü cihaz seçmek için verilen kod
Kötü amaçlı uygulama ve arka uç kodun yanı sıra, kod deposunda her bir Cerberus botnet'in listesi tarafından kullanılan panel koduna da rastlıyoruz.
Bu panel, TOR ağı üzerinden açığa çıkan Rest API'ye bağlanan bir ReactJS uygulamasıdır.
Botnet yönetimi arandığında, panelin ReactJS tarafından yönetilen botnet yöneticisinin bilgisayarında çalıştırılması gerekli görülen, bu nedenle, kodun analiz edilmesi, yöneticinin uzaktan kod yürütmesini bile etkinleştirilebilen güvenlik açıklarını hafifletebilir. bilgisayar. Kodunun birkaç bölümünde, JavaScript çalıştırmayı sağlayan try_eval işlevinin çağrısını buluyoruz:
Bu işlev, virüsün bulaşmış cihaz veri tabanından etkilenmesiyle ve belirli karakterlerin depolanmasından kullanılmasına, bunların JavaScript kodlaması ReactJS'nin kullanımı ve saldırganın işlemlerinin çalıştırılması için kullanılabilir. Analizimiz sırasında bu performansın arttırılmasını sağlayacak hiçbir güvenlik açığı tespit edilmedi.
Sonuçlar
Yılın en popüler Android banka Truva atlarından birinin kaynak kodunun yayımlanmasının olumlu ve olumsuz yanları vardır. Bir yandan, bu bankacının artık desteklenmiyor olması, orijinal projeyi sona erdirmesi, bu da prensipte bankacılık kötü amaçlı yazılımın bir oyuncu daha az olduğu anlamına geliyor.
SMS gönderme
2FA yakalayıcı
SMS'in ele geçirilmesi
Gizli SMS müdahalesi
Cihazınızı kilitleyin
Sesi kapat
Keylogger (tarayıcılar hariç, mesajlaşma programları, watz uygulaması, telegram-secret, bankalar vb.!)
USSD komutlarını yürütme
Çağrı yönlendirme
Banka sahte sayfa açma
Yüklü herhangi bir uygulamayı başlatın
Banka push bildirimi (Otomatik push – hangi bankanın kurulduğunu belirler)
URL'yi tarayıcıda aç
Yüklü tüm uygulamaları edinin
Tüm kişileri telefon rehberlerinden alın
Kaydedilen tüm SMS'leri al
Herhangi bir uygulamayı kaldırma
Botun kendini yok etmesi
Hak ve izinlerin otomatik onayı
Botun sunucuya bağlanmak için birkaç yedek URL'si olabilir
Enjeksiyonlar (html + js + css, cihaza indirme ve diskten çalıştırma, zayıf bağlantı veya İnternet eksikliği enjeksiyonların çalışmasını etkilemez)
Kart yakalayıcı
Posta Yakalayıcı
Yönetici panelinde belirtilen sürenin ardından enjeksiyonların otomatik olarak dahil edilmesi
Yönetici panelinde belirtilen sürenin ardından Google Play Korumanın otomatik olarak kapatılması + kapanma
Anti-emülatör (Bot cihaz aktif olduktan sonra çalışmaya başlar)
Modülerlik
Bot uygulama boyutu 125 ila 180 KB arasında (Şifreleme yaklaşık 1 MB)
Android 5 ve üzeri sürümlerde çalışır
Gizli SMS müdahalesi sürüm 5 ve sonraki sürümlerden itibaren çalışır
Enjektörler Android 5 – 10+'ın tüm güncel sürümlerinde çalışır
Sunucu ile bot arasındaki veriler RC4 + base64 algoritması kullanılarak rastgele bir anahtarla şifrelenir
Botun silinmesini engelleme
Yönetici haklarının devre dışı bırakılmasını engelleme
Erişilebilirlik Hizmetini Engelleme
Gönderim için birkaç yedek alan adı olabilir
Çoklu dil
Benzersiz bot tanımlayıcısı
Android sürümü
Yapı İşaretlemesi
Cihaz ayarlarında belirlenen ülke + dil
Son vuruş
Ekran durumu (açık/kapalı)
Google Play Koruma durumu
Erişilebilirlik Hizmeti durumu
Yönetici Hakları Durumu
Ana modül alma durumu
Gizli SMS müdahalesinin durumu
Banka günlüklerinin, kartların ve postaların mevcudiyeti!
Kurulu bankaların listesi
Cihaz IP'si
Cihaz bulaşma tarihi
Cihaz modeli
Şebeke
Pilin şarj durumu
Sahibinin cep numarası
Telefon etkinliği (Bir öykünücünün varlığını belirleme)
Bot çalışma saatleri!
Canlı yönetici paneli
Genel ve bireysel görevler
Bot tablosunu filtreleme
Kullanıcı dostu bir arayüz kullanarak kendi enjeksiyonlarınızı ekleme
Enjeksiyonları HTML formatında yükleme
İstatistikler: Çevrimiçi, Çevrimdışı, Günlükler
Uygulama listelerini ve telefon kişilerini veritabanında saklama
Bankaların, kartların ve postaların ayrı kayıtları
Panel, sunucularımızdaki TOR ağında bulunur
İnşaatçı
LİNK'İ İNDİR