Rilevata campagna malware SpyNote mascherata come app INPS Mobile

09/04/2024

inps spynote
Home page phishing

È attualmente in corso una sofisticata campagna malevola, mirata a compromettere dispositivi Android in Italia attraverso il malware SpyNote. Questa viene camuffata da applicazione INPS Mobile, disponibile per il download su un dominio specificamente creato nella giornata di ieri, con lo scopo di trarre in inganno le vittime.

La pagina di phishing, segnalata da D3lab al CERT-AGID, è accuratamente progettata con loghi e contenuti che riproducono quelli ufficiali dell’Istituto. Inoltre, propone in home page una guida meticolosamente elaborata per il download e l’installazione della falsa applicazione INPS Mobile.

Installazione dell’App

La vittima che aderisce alle false istruzioni e preme sul pulsante “Scaricare” riceve un file in formato APK sul proprio dispositivo. Una volta installato, questo file richiede di effettuare un aggiornamento e sollecita la concessione di determinati permessi. Viene infine mostrata dall’applicazione la pagina reale del sito INPS.

Cosa succede sul dispositivo?

L’applicazione incorpora una sequenza di stringhe, decifrabili tramite una serie di funzioni annidate, necessarie per ricavare le chiavi dell’algoritmo AES impiegato per cifrare le istruzioni. Qui di seguito è illustrato il codice Java utilizzato per la decifrazione delle stringhe:

import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; public class MyClass { public static String m103(String str, String str2) { byte[] bArr; byte[] bArr2; int length = str.length(); if (length % 2 == 1) { length++; bArr = new byte[(length / 2)]; str = "0" + str; } else { bArr = new byte[(length / 2)]; } int i = 0; for (int i2 = 0; i2 < length; i2 += 2) { bArr[i] = (byte) ((byte) Integer.parseInt(str.substring(i2, i2 + 2), 16)); i++; } try { SecretKeySpec secretKeySpec = new SecretKeySpec(str2.getBytes(), "AES"); Cipher instance = Cipher.getInstance("AES"); instance.init(2, secretKeySpec); bArr2 = instance.doFinal(bArr); } catch (Exception e) { e.printStackTrace(); bArr2 = null; } return new String(bArr2); } public static String m0(String str, String str2) { byte[] bArr; byte[] bArr2; int length = str.length(); if (length % 2 == 1) { length++; bArr = new byte[(length / 2)]; String m254 = MyClass.m103("12202599d2de5887e30d8b7ebde8ec45", "67c48674e8b8c7f5"); str = m254 + str; } else { bArr = new byte[(length / 2)]; } int i = 0; for (int i2 = 0; i2 < length; i2 += 2) { bArr[i] = (byte) ((byte) Integer.parseInt(str.substring(i2, i2 + 2), 16)); i++; } try { // m264 = m303 String m264 = MyClass.m103("0bcc2afe4d25a75b7b7f228ab7a2d6b3", "67c48674e8b8c7f5"); String m303 = MyClass.m103("0bcc2afe4d25a75b7b7f228ab7a2d6b3", "67c48674e8b8c7f5"); SecretKeySpec secretKeySpec = new SecretKeySpec(str2.getBytes(), m303); Cipher instance = Cipher.getInstance(m264); instance.init(2, secretKeySpec); bArr2 = instance.doFinal(bArr); } catch (Exception e) { e.printStackTrace(); bArr2 = null; } return new String(bArr2); } public static void main(String args[]) { String m142 = MyClass.m103("61ba9f85d95954b587cce057a4be58d5eae702a96d475e3103c1e23c8c95e72b6658928e145ea1a7499164cce5c1fc4c2ba845e669a73a01b0d41a1be7fde78f211df4d284f17a693118108a825acacc", "9080bea66a356436"); String m416 = MyClass.m103("9a184fa0d30ce94a06261e280c5108b350c1b3e6bb00550de77cb3cd4e7b9000", "0ec47edd8db3a02b"); String m45 = MyClass.m0(m142, m416); System.out.println(m45); } }

Questo APK funge da copertura per celare il vero malware. Una volta installato sul dispositivo, procede al caricamento ed all’installazione di un ulteriore file APK, opportunamente occultato nella cartella “assets“. Il software maligno in questione è stato identificato come SpyNote, noto per le sue capacità invasive di:

  • Auto-abilitazione delle autorizzazioni
  • Rilevamento degli emulatori
  • Esclusione dalle app recenti
  • Localizzazione dispositivo
  • Keylogging
  • Intercettazione di SMS
  • Furto di password e carte di credito
  • Cattura schermate
  • Registrazione chiamate
  • Comunicazioni con il C2 e installazione di ulteriori payload
Contatto con il server di command e control (C2)

Conclusioni

Questi attacchi mirano ad ottenere il controllo totale sui dispositivi Android, il furto di dati personali e la conduzione di attività di spionaggio. È quindi essenziale rimanere molto vigili di fronte a campagne malevole di questo tipo, assicurandosi, nel caso serva, di scaricare l’applicazione di INPS esclusivamente dagli store ufficiali o direttamente dalla pagina istituzionale, per garantire la propria sicurezza digitale.

Indicatori di Compromissione

Al fine di rendere pubblici i dettagli per il contrasto di questa campagna, vengono di seguito riportati gli IoC rilevati, già condivisi con le Pubbliche Amministrazioni accreditate al Flusso IoC del CERT-AgID.

Link: Download IoC (IoC aggiornati al 10/04/2024 @ 08:30 grazie alla collaborazione con INPS)