CraxsRat: Android RAT proqramına texniki baxiş
Analiz
Hal-hazırda ən çox istifadə olunan Android RAT-lar suriyalı təhdid aktoru olan EvLFDevZ-ə aiddir və CraxsRat da onun proqramlaşdırdığı bir RAT-dır. Sayt bağlı olsa da, Wayback Machine vasitəsilə sayta baxmaq mümkündür. RAT bu saytda reklam olunur və Telegram üzərindən satılır. Sol tərəfdə RAT-ın funksiyaları görünür.
Nəysə, gəlin RAT-ı zip faylından çıxaraq içindəki fayalara baxaq.
Burada gördüyünüz res qovluğuna bir azdan qayıdacağıq. Qısa olaraq deyim ki, içərisində zərərli Android proqramını yaratmaq üçün lazım olan fayllar var və digər .dll fayllari isə proqramın bir hissəsidir.
İndi isə proqramı çalışdıraq (nəzərə alın ki, bunların hamısı virtual maşın daxilində edilir)
Dashboard:Bu, proqramın əsas ekranıdır və istifadəçiyə ümumi bir baxış təqdim edir. İstifadəçi burada mövcud vəziyyət, aktiv cihazlar və əlaqələr barədə məlumat ala bilər.
Clients:Bu bölmə, əlaqə qurulan bütün cihazların siyahısını təqdim edir. Yəni, proqramın hədəflədiyi cihazlar burada görünür.
Servers:CraxsRat bir növ C2 (Command and Control) olduğu üçün burada CraxsRat-ın işləyəcəyi portu təyin edirik. IP ünvanını isə “Builder” hissəsində yazacağıq.
Connections:Bu bölmə, aktiv əlaqələri və bu əlaqələrlə bağlı məlumatları göstərir. Hansı cihazlarla məlumat mübadiləsi aparıldığına dair detalları bu sekmədə görə bilərsiniz.
Builder:Bu bölmə, istifadəçiyə zərərli proqram və ya RAT yaratma vasitəsi təqdim edir. İstifadəçi burada hədəf cihazlara yükləmək üçün proqram hazırlayır.
Əsas olan bölmələr bunlardı, digər bölmələri yazmadım, çünki o qədər də lazım deyil. İndi isə bir .apk yaradaq və onu analiz etməyə başlayaq.
Aşağıda APK-nın sorğu göndərəcəyi IP və portu yazdıq.
APK “ready.apk” adı ilə yaradıldı, amma əvvəlcə APK-nı analiz etmədən öncə gəlin birinci proqramın APK faylını necə hazırladığını, proqramı dekompilyasiya edərək öyrənək.
dnSpy istifadə edərək CraxsRat-ı dekompilyasiya etdik, Assembly Explorer hissəsində bizə lazım olan build namespaces-i tapdıq və artıq build hissəsinin source kodunu görürük (əvvəlcə proqramı deobfuscate etmək lazımdır, yoxsa source kodunu oxumaq mümkün deyil).
Bu kod parçacığı zərərli icazələri APK-ya yazır.
Başda demişdim ki, res qovluğuna birazdan baxacağıq və hal-hazırda res qovluğunda olan apktool-u görürsünüz. Qısa olaraq gəlin, apktool vəcertificate.pem-in nə etdiyinə baxaq.
apktool: Bu alət, APK faylını dekompilyasiya etmək və yenidən qurmaq üçün istifadə olunur. apktool həmçinin APK-nın içindəki resursları və manifest faylını idarə etməyə imkan verir. Bu, zərərli proqramların qurulmasında və özəlləşdirilməsində istifadə olunur.
certificate.pem: Bu fayl, proqramın imzalanmasında istifadə edilən sertifikatdır. APK fayllarını imzalamaq üçün istifadə olunur və təhlükəsizlik məqsədilə də tətbiqin doğruluğunu təmin edir.
APK İmzalama və Fayl Yazma
Koddakı bu sətir, imzalama əməliyyatı ilə əlaqədardır ilk olaraq, certificate.pem faylını silir Sonra, res -dən yeni bir certificate.pem faylı yazılır.:
1
2
File.Delete(this.folder_apktool + "\\certificate.pem");
File.WriteAllBytes(this.folder_apktool + "\\certificate.pem", Resources.c2);
APK Faylını İmzalama Komandaları
Burada, apktool ilə bağlı imzalama komandaları belədir: apktool.bat faylını işə salaraq APK faylını imzalamaq üçün lazım olan komandaları yaradır. Bu komandalar, apktool vasitəsilə APK faylını imzalayır və certificate.pem sertifikatını istifadə edir.
1
2
3
4
5
6
string.Concat(new string[]
{
this.folder_apktool + "\\apktool.bat",
" sign --key ",
this.folder_apktool + "\\certificate.pem"
});
Ümumi Xülasə:
Bu kod, bir APK faylını almaq, lazımi imza əməliyyatları üçün sertifikat faylı (certificate.pem) istifadə etmək və APK-ni apktool ilə imzalamaq üçün bir sıra əməliyyatlar yerinə yetirir.
Lazım olan APK üzərində işləməyə və APK-nın əlaqə qurduğu C2 serverinin IP və portunu tapmağa başlayaq.
ApkTool-dan istifadə edərkən Resurs Cədvəlini yükləyərkən xətanın baş verdiyini gördüm. məndə aapt (Android Asset Packaging Tool) istifadə edərək icazələri və xidmətləri araşdıraraq təhlili davam etdirdim.
Burada zərərli icazələri görürsünüz, bunları əlavə edən kod parçasını yuxarıda göstərdim.
Accessibility Services-ə baxaq və görək zərərli APK Accessibility-dən istifadə edir?
AccessibilityService istinadları zərərli proqram təminatının güclü göstəriciləridir.
Gördüm ki, aapt ilə bir az vəziyyət çətinləşdi, mən də bu dəfə yenidən apktool-dan istifadə etmə qərarına gəldim, amma resursların deşifrə edilməsinin qarşısını almaq üçün -r bayrağı istifadə edərək.
Və apktool xətasız formada işlədikdən sonra, indi dekompilyasiya edilmiş folderi Windows-a ataq və oradan davam edək.
Android Studio istifadə edərək folderi açdım və C2-nin IP və portunu tapmaq üçün araşdırmağa başladım
Və uzun bir araşdırmadan sonra IP və portun olduğu .smali faylını tapdım və səndemə IP və port base64 ilə şifrələnib. Gəlin indi onları deşifrə edək.
Mən IP və portu buradan tapdım:
1
C:\Users\user\Desktop\ready\smali\kentucky\robert\icuheevgdgtlglnmkorsowcururfkkmpxnwvahibtwjulnfhep2\zbfncnpqdbiphruvjmmxueamnjcyu.smali
və mənə maraqlı gəldi ki, nəyə görə .smali faylı bu formada idi? Və araşdırmağa başladım. Döndük yenə başa, bu dəfə diqqətlə baxaq görək res folderinin içində apktooldan başqa lazımlı nələr var.
Və apkeditor ilə qarşılaşdım, Apk Editor güclü Android APK resursları redaktorudur, və mən də düşündüm ki, bu .smali faylının bu formada olmasının tək səbəbi varsa, o da budur.
Yenə CraxsRatı decompile etdim və build namespacesinə gedib ApkEditoru axtarmağa başladım. Və bu kod parçası ilə qarşılaşdım, bu kod parçası bizim IP və portu tapmağımızı çətinləşdirdi.
Gəlin, bu kod parçasına bir də GitHub-da apkeditorun rəsmi repositoriesinde baxaq.
Qısacası, bu kod bizim işimizi çətinləşdirdi, amma biz yenə də IP və portu tapdıq.
SON
Bu məqalədə CraxsRatın və onun yaratdığı zərərli APK faylını analiz edərək C2 serverinin IP və portunu tapmağa çalışdıq.
Oxuduğunuz üçün təşəkkür edirəm. Əgər hər hansı bir fikriniz olsa, və ya haradasa səhvlik etdiyimi düşünsəniz Instagram üzərindən mənimlə əlaqə keçə bilərsiniz.

















