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 işlevlerin yanı sıra, koddaki diğer saldırganlar tarafından veya analistler ve yetkililer tarafından botnet'i bozmak için kontrol altına almak için kullanılabilecek güvenlik açıklarını ortaya çıkarabilir. Karşılaşabileceğimiz güvenlik açıklarından biri, veritabanı sorgularındaki SQL enjeksiyon güvenlik açıklarıdır.
Ancak, geliştiricilerin PHP kitaplığından hazırlanmış ifadeler kullanarak izlerini kapatmaya çalıştıkları görülüyor ki bu da en azından kapıda bu gibi güvenlik açıklarını engelliyor.
Veritabanına yeni bir virüslü cihaz eklemek için verilen kod
Kötü amaçlı uygulama ve arka uç kodun yanı sıra, kod deposunda her bir Cerberus botnet'in yöneticileri 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 uygulamasının botnet yöneticisinin bilgisayarında çalıştırılması gerekli görünmektedir, bu nedenle, kodun analiz edilmesi, yöneticinin uzaktan kod yürütmesini bile etkinleştirebilecek güvenlik açıklarını hafifletebilir. bilgisayar. Kodun birkaç bölümünde, JavaScript kodunu çalıştırmayı sağlayan try_eval işlevine çağrı buluyoruz:
Bu işlev, virüs bulaşmış cihaz veritabanından kaynaklanan parametrelerle ve belirli karakterleri filtrelemeden kullanılıyorsa, bunlar JavaScript kodunu ReactJS uygulamasında ve saldırganın sisteminde çalıştırmak için kullanılabilir. Analizimiz sırasında bu işlevin kötüye kullanı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 erdirdi, bu da prensipte bankacılık kötü amaçlı yazılım oyununda bir oyuncu daha az olduğu anlamına geliyor.
Sending SMS
2FA grabber
Interception of SMS
Covert SMS interception
Lock your device
Mute the sound
Keylogger (messengers, watz app, telegram-secret, banks, etc., except for browsers!)
Executing USSD commands
Call forwarding
Bank fake page opening
Launch any installed application
Bank push notification (Automatic push – determines which established bank)
Open url in browser
Get all installed apps
Retrieve all contacts from their phone book
Retrieve all saved SMS
Removing any application
Bot self-destruction
Automatic confirmation of rights and permissions
The bot can have several spare urls to connect to the server
Injections (html + js + css, download to the device and run from disk, poor connection or lack of Internet will not affect the operation of injections)
Card grabber
Mail Grabber
Automatic inclusion of injections after the time specified in the admin panel
Automatic shutdown of Google Play Protect + shutdown after the time specified in the admin panel
Anti-emulator (Bot starts working after the device is active)
Modularity
Bot application size from 125 to 180 KB (Crypt about 1 MB)
Works on Android versions 5 and above
Covert SMS interception works from version 5 and higher
Injectors work on all current versions of Android 5 – 10+
Data between the server and the bot is encrypted using the RC4 + base64 algorithm with a random key
Blocco dell'eliminazione del bot
Blocco disabilitazione dei diritti di amministratore
Blocco Disabilita servizio di accessibilità
Può avere diversi domini di riserva per l'invio
Multi lingua
Identificatore univoco del bot
Versione Android
Costruisci la marcatura
Paese + lingua impostata nelle impostazioni del dispositivo
Ultimo colpo
Stato dello schermo (acceso / spento)
Stato di Google Play Protect
Stato del servizio di accessibilità
Stato dei diritti di amministratore
Il modulo principale riceve lo stato
Stato di intercettazione SMS nascosti
Disponibilità di registri bancari, carte e posta!
Elenco delle banche stabilite
IP del dispositivo
Data delle infezioni del dispositivo
Modello del dispositivo
Operatore
Stato di carica della batteria
Numero di cellulare del titolare
Attività telefonica (determina la presenza di un emulatore)
Orario di lavoro del bot!
Pannello di amministrazione live
Attività generali e individuali
Filtro della tabella dei bot
Aggiungere le proprie iniezioni utilizzando un'interfaccia user-friendly
Caricamento iniezioni in formato HTML
Statistiche: online, offline, registri
Memorizzazione di elenchi di applicazioni e contatti telefonici nel database
Registri separati di banche, carte e posta
Il pannello si trova nella rete TOR sui nostri server
Costruttore
SCARICA LINK