Membalikkan Actionspy Android Malware



Pada artikel ini, saya akan membahas bagian pertama dari analisis salah satu varian malware ActionSpy.

Pendahuluan

Posting ini adalah bagian pertama dari membalikkan versi ActionSpy. Alat yang digunakan adalah :

  • BurpSuite
  • Ninja Biner
  • jadx-gui
  • AVD
  • apktool
  • terutama

Pengumpulan informasi

Izin

Menggunakan jadx-gui untuk membalikkan APK, dapat diamati bahwa malware menggunakan hampir semua izin Android, beberapa di antaranya tercantum di bawah ini:

    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
....

Analisis lalu lintas

Dimulai dengan analisis lalu lintas akan memberikan informasi lebih lanjut tentang bagaimana malware berkomunikasi dengan server C2C dan informasi mana yang dikirim.

Menginstal malware pada Perangkat Virtual Android yang memiliki Burp Suite sebagai proxy, dapat diamati bahwa server mengirim permintaan HTTP yang berbeda ke server yang berbeda dengan nama domain gvt1.com 11:

Permintaan HTTP pertama dikirim ke redirector.gvt1.com 8, yang akan dialihkan ke salah satu server C2C.

Jika kita mengikuti pengalihan, file biner diunduh dari server C2C.

Menggunakan wgetuntuk mengunduh file untuk memeriksa isinya:

wget "http://r3---sn-n0ogpnx-b85l.gvt1.com/edgedl/release2/chrome_component/AKi1sv7cx4bJf9W1XiuhCek_9.18.0/KDDyO-ENZ8HrUUsbZHNxeA" -O file1.data

Malware mengirimkan beberapa parameter melalui permintaan termasuk alamat IP publik korban.
Bagian AKi1sv7cx4bJf9W1XiuhCek_9.18.0/KDDyO-ENZ8HrUUsbZHNxeAdari permintaan berubah setiap saat, diduga bahwa informasi yang dikirim terenkripsi melalui permintaan.

Analisis file yang diunduh

Dimulai dengan mengidentifikasi jenis file dari file yang diunduh.

> file file1.data
file1.data: Google Chrome extension, version 3

Aplikasi Google Chrome di Android tidak mendukung ekstensi. Untuk mendapatkan data dari file foremosetini digunakan.

> foremost file1.data -o output_file1/

Alat ini membuat satu file zip yang berisi 3 file dan satu direktori:
zip1_content

File Filtering Rulesberisi daftar 6291 nama domain.

Pada setiap permintaan, daftar baru diunduh dengan nama domain yang berbeda.

APK tersemat

Malware menyematkan tiga APK yang terletak di folder assets/initAPK ini adalah:

  • Kamera.apk
  • inti.apk
  • Lokasi.apk

APK ini akan dianalisis nanti (Tidak di posting saat ini).

Analisis Statis

Aktifitas utama

Kegiatan utamanya adalah com.jsyjv.klxblnwc.p004u.MainActivityFungsinya onCreateterlihat sebagai berikut:

Kode memanggil fungsi asli mo684adari perpustakaan hello-jniyang menghasilkan kunci, periksa apakah ini pertama kali aplikasi diluncurkan dengan membaca nilai dari file preferensi bersama yang terletak di
/data/data/com.isyjv.klxblnwc/shared_prefs/com.isyjv.klxblnwc.xml.

Malware memanggil fungsi com.isyjv.klxblnwc.util.Utils.desDecryptdengan kunci hex yang dihasilkan.
Fungsinya adalah sebagai berikut:

  cipher.init(2, skeyFactory.generateSecret(desKeySpec)); // Initialize cipher to decryption mode

Sebelum mengenkripsi argumen, fungsi membagi string menjadi dua karakter, mengubahnya masing-masing menjadi integer lalu mengenkripsinya:

  byte[] btxts = new byte[(txt.length() / 2)];
int count = txt.length();
for (int i = 0; i < count; i += 2) {
btxts[i / 2] = (byte) Integer.parseInt(txt.substring(i, i + 2), 16);
}

Karena dekripsi DES adalah kebalikan dari enkripsi DES, fungsi desDecrypt di sini digunakan sebagai rutin enkripsi.

Setelah pembuatan kunci, malware memulai layanan yang memulai file konfigurasi dan mengalihkan log aplikasi ke file. Nama filenya adalah microlog.txt dan terletak di folder /sdcard. isinya adalah sebagai berikut:

[DEBUG]22:14:53,00 Utils|main PService onCreate |Microlog 1 
[DEBUG]22:14:53,00 Utils|main PService onBind Intent { cmp=com.isyjv.klxblnwc/.s.PService } |Microlog 1
[DEBUG]22:14:53,01 Utils|main PService Binder uid:10149 |Microlog 2
[DEBUG]22:14:53,03 Utils|main PService caller signature md5:3bd158635713d3e220113fb6adc8b6e2 |Microlog 4
[DEBUG]22:14:53,48 AppEnv|main onCreate |Microlog 0
[DEBUG]22:14:53,50 AppEnv|main startJobSheduler ret 1 |Microlog 2
[DEBUG]22:14:53,52 AppEnv|main onCreate List pkgName: com.isyjv.klxblnwc svrName: com.isyjv.klxblnwc.s.HService |Microlog 4
[DEBUG]22:14:53,53 AppEnv|main onStartCommand startId:1 |Microlog 5
[DEBUG]22:14:53,54 AppEnv|Thread-2 startGuard pkgName: com.isyjv.klxblnwc svrName: com.isyjv.klxblnwc.s.HService |Microlog 6
[DEBUG]22:14:53,54 AppEnv|Thread-2 startGuard wating... |Microlog 6
[DEBUG]22:14:54,679 Utils|Binder:4646_3 start to installPlugin /storage/emulated/0/origin/Camera.apk,pkgname:null |Microlog 1680
[DEBUG]22:14:54,712 Utils|Binder:4646_3 install plugin failed, pkgname:null resultCode:0 |Microlog 1713
[DEBUG]22:14:54,722 Utils|Binder:4646_3 start to installPlugin /storage/emulated/0/origin/Core.apk,pkgname:null |Microlog 1723
[DEBUG]22:14:54,798 Utils|Binder:4646_3 install plugin failed, pkgname:null resultCode:0 |Microlog 1799
[DEBUG]22:14:54,813 Utils|Binder:4646_3 start to installPlugin /storage/emulated/0/origin/Location.apk,pkgname:null |Microlog 1814
[DEBUG]22:14:54,869 Utils|Binder:4646_3 install plugin failed, pkgname:null resultCode:0 |Microlog 1870

Layanan ini memulai layanan kedua yang akan menginstal APK yang dikemas, mencantumkan Aplikasi yang diinstal, dan memeriksa apakah perangkat telah di-root. Informasi ini dicatat ke file /sdcard/microlog.txt.

Itu saja untuk bagian pertama ini dan terima kasih telah membaca!





About the author

turtlebin
Hamba Allah

Posting Komentar