Red Hot Cyber
Condividi la tua difesa. Incoraggia l'eccellenza. La vera forza della cybersecurity risiede nell'effetto moltiplicatore della conoscenza.
Condividi la tua difesa. Incoraggia l'eccellenza.
La vera forza della cybersecurity risiede
nell'effetto moltiplicatore della conoscenza.
UtiliaCS 970x120
LECS 320x100 1
Emergenza Sicurezza in Italia: Crescono gli Attacchi Adwind/jRAT, avverte il CERT-AGID

Emergenza Sicurezza in Italia: Crescono gli Attacchi Adwind/jRAT, avverte il CERT-AGID

Autore Redazione
12 Giugno 2024 08:14

Da oltre una settimana il CERT-AGID sta osservando l’attività di una serie di campagne mirate contro l’Italia e finalizzate alla diffusione del malware Adwind/jRAT.

Solitamente, le email includono un archivio ZIP con file HTML denominati FATTURA.html o DOCUMENTO.html. In alcuni casi viene utilizzata anche una doppia estensione file come .pdf.html.

Il file HTML contiene un codice JavaScript che verifica la lingua impostata sul browser in cui viene aperto. Se la lingua del browser è impostata su italiano, viene mostrato il contenuto della pagina malevola, altrimenti viene visualizzata una pagina vuota.


Christmas Sale

Christmas Sale -40%
𝗖𝗵𝗿𝗶𝘀𝘁𝗺𝗮𝘀 𝗦𝗮𝗹𝗲! Sconto del 𝟰𝟬% 𝘀𝘂𝗹 𝗽𝗿𝗲𝘇𝘇𝗼 𝗱𝗶 𝗰𝗼𝗽𝗲𝗿𝘁𝗶𝗻𝗮 del Corso "Dark Web & Cyber Threat Intelligence" in modalità E-Learning sulla nostra Academy!🚀 Fino al 𝟯𝟭 𝗱𝗶 𝗗𝗶𝗰𝗲𝗺𝗯𝗿𝗲, prezzi pazzi alla Red Hot Cyber Academy. 𝗧𝘂𝘁𝘁𝗶 𝗶 𝗰𝗼𝗿𝘀𝗶 𝘀𝗰𝗼𝗻𝘁𝗮𝘁𝗶 𝗱𝗲𝗹 𝟰𝟬% 𝘀𝘂𝗹 𝗽𝗿𝗲𝘇𝘇𝗼 𝗱𝗶 𝗰𝗼𝗽𝗲𝗿𝘁𝗶𝗻𝗮.
Per beneficiare della promo sconto Christmas Sale, scrivici ad [email protected] o contattaci su Whatsapp al numero di telefono: 379 163 8765.


Supporta Red Hot Cyber attraverso: 

  1. L'acquisto del fumetto sul Cybersecurity Awareness
  2. Ascoltando i nostri Podcast
  3. Seguendo RHC su WhatsApp
  4. Seguendo RHC su Telegram
  5. Scarica gratuitamente “Byte The Silence”, il fumetto sul Cyberbullismo di Red Hot Cyber

Se ti piacciono le novità e gli articoli riportati su di Red Hot Cyber, iscriviti immediatamente alla newsletter settimanale per non perdere nessun articolo. La newsletter generalmente viene inviata ai nostri lettori ad inizio settimana, indicativamente di lunedì.

Lo script visualizza un’immagine codificata in base64 all’interno del codice HTML. Il falso messaggio avverte che si sta utilizzando una versione obsoleta di Adobe Acrobat Reader e invita a cliccare su ‘OK’ per visualizzare correttamente il documento. Se la vittima clicca su ‘OK’, viene rilasciato un file denominato FATTURA.jar, anch’esso codificato in base64 all’interno della pagina HTML. In alcuni casi il file JAR viene scaricato da remoto.

Il file JAR non è valutato come completamente malevolo da VirusTotal e dalle sandbox online ed è quindi stato analizzato per determinarne la sua reale natura.

Analisi del file FATTURA.jar

Il file FATTURA.jar contiene una serie di stringhe cifrate con diversi algoritmi. Nello screenshot è evidente l’uso di Blowfish e DES, oltre alla funzione che verifica che la lingua del sistema in cui viene eseguito sia impostata su “Italiano”. Questo spiega anche il perché le sandbox online non lo rilevano come malware: sia il sistema che il browser delle sandbox sono configurati per impostazione predefinita in lingua inglese.

In generale, prima di procedere con la decifratura delle stringhe, devono essere soddisfatte due condizioni: la lingua del sistema deve essere impostata sull’italiano ed il file non deve essere eseguito in un ambiente virtuale.

Decifriamo le stringhe contenute

Bypassando le verifiche preliminari e richiamando direttamente le funzioni che decifrano le stringhe, costituite da una coppia di dati (la stringa e la chiave), è possibile ottenere le stringhe in chiaro. Di seguito il codice utilizzato su JDoodle:

import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Arrays;

public class Decoder {
    private static String I(String encrypted, String key) {
        try {
            SecretKeySpec secretKey = new SecretKeySpec(MessageDigest.getInstance("MD5").digest(key.getBytes(StandardCharsets.UTF_8)), "Blowfish");
            Cipher cipher = Cipher.getInstance("Blowfish");
            cipher.init(Cipher.DECRYPT_MODE, secretKey);
            return new String(cipher.doFinal(Base64.getDecoder().decode(encrypted.getBytes(StandardCharsets.UTF_8))), StandardCharsets.UTF_8);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    private static String lI(String encrypted, String key) {
        try {
            SecretKeySpec secretKey = new SecretKeySpec(Arrays.copyOf(MessageDigest.getInstance("MD5").digest(key.getBytes(StandardCharsets.UTF_8)), 8), "DES");
            Cipher cipher = Cipher.getInstance("DES");
            cipher.init(Cipher.DECRYPT_MODE, secretKey);
            return new String(cipher.doFinal(Base64.getDecoder().decode(encrypted.getBytes(StandardCharsets.UTF_8))), StandardCharsets.UTF_8);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    private static String l(String encrypted, String key) {
        String decoded = new String(Base64.getDecoder().decode(encrypted.getBytes(StandardCharsets.UTF_8)), StandardCharsets.UTF_8);
        StringBuilder result = new StringBuilder();
        char[] keyChars = key.toCharArray();
        int keyIndex = 0;
        
        for (char c : decoded.toCharArray()) {
            result.append((char) (c ^ keyChars[keyIndex % keyChars.length]));
            keyIndex++;
        }
        return result.toString();
    }

    public static void main(String[] args) {
        System.out.println(I("c4cP17/Ozgm4UJ4L/OUakHUO85Hd8xxIoiS/LdTP+3+cCoxcASMrgYEKi12LcXT2n9qwDp9k67k=", "XdZXl"));
        System.out.println(l("IT0JCisQIgdNKsKCbxYCPRRvFQgrUSoeCDoEOwcJNlEqC00qGDwSCDQQPEYONhxvDwkwHiIHTTAFLgoEOB8gSA==", "qOfmY"));
        System.out.println(I("qI2Nxm2h7RW8T6rl0/IzKrjPGf85prFO8cVbYSE10v3tGpqqnjwp12uPy2ZIw5MM", "HKGxY"));
        System.out.println(I("4K7haJfBFUjNcdGEyU4wUElF8WNjZBgkX5eFOgbJwX8=", "wiuwr"));
        System.out.println(lI("3OLsw4/8fBolWnKA82rdkFWfVh2M7WFMi2BiFcXKmKU=", "KyXRP"));
        System.out.println(l("OSc7JHN+LCw3cw==", "SFMES"));
        System.out.println(I("XhJKXq1hOAu09FXWTD+FpqdU0uQ6l1+tOY8Gi9Yj6Yg=", "cZGuC"));
        System.out.println(lI("VCwJQQXvuXRH1abDaCA3HwZkK00ujT5z", "qYlCP"));
        System.out.println(lI("AOThA7c08M/VArRAsjMTjw==", "MnJEM"));
        System.out.println(I("A2TWtQnOsHo=", "ruOpk"));
        System.out.println(lI("CCJPVcwtVwVcC9/nJPfs4Vq3aBFMTX17", "fjOyg"));
        System.out.println(I("MHAqSAt0tA0=", "Yujla"));
        System.out.println(I("HyLpIz3LmJR71AV4fjoMlHkuR2u9ruuBqkSmjmhs9kg=", "fLXov"));
        System.out.println(I("0HD7DEkuYgs=", "polhh"));
    }
}

L’output ottenuto è il seguente:

Il risultato ottenuto è di semplice comprensione: è evidente che viene scaricato un file (Imagem.jpg) da una risorsa remota e successivamente eseguito con il comando ‘java -jar‘, il che indica che il file jpg è in realtà un nuovo file JAR.

Analisi di Imagem.jar

Questo file, ad oggi, non risulta malevolo secondo VirusTotal. Procediamo quindi con l’analisi del codice utilizzando Bytecode Viewer.

Esattamente come nel caso del precedente file JAR, anche in questo caso vengono eseguiti gli stessi controlli prima di decifrare le stringhe mediante gli algoritmi standard. In particolare, notiamo che questo file scarica un altro file da una URL specifico (URLConnection) che corrisponde alla stringa llI[lll[2]].

Decifriamo quindi la URL

Procediamo come fatto precedentemente e utilizziamo ancora una volta il servizio JDoodle per ottenere rapidamente il risultato dal seguente codice:

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.Base64;
import java.util.Arrays;

public class Decryptor {
    private static String lllII(String lllllIlIllIIlIl, String lllllIlIllIIlII) {
        try {
            SecretKeySpec lllllIlIllIlIlI = new SecretKeySpec(Arrays.copyOf(MessageDigest.getInstance("MD5").digest(lllllIlIllIIlII.getBytes(StandardCharsets.UTF_8)), 8), "DES");
            Cipher lllllIlIllIIIlI = Cipher.getInstance("DES");
            lllllIlIllIIIlI.init(Cipher.DECRYPT_MODE, lllllIlIllIlIlI);
            byte[] decryptedBytes = lllllIlIllIIIlI.doFinal(Base64.getDecoder().decode(lllllIlIllIIlIl.getBytes(StandardCharsets.UTF_8)));
            return new String(decryptedBytes, StandardCharsets.UTF_8);
        } catch (Exception var4) {
            var4.printStackTrace();
            return null;
        }
    }

    public static void main(String[] args) {
        String encryptedString = "NOLCvB8WVVJVCjn/M2XHbIA5HPX6pYFS4Sns11Ve2dpoyGIdYOIG4g==";
        String encryptionKey = "YCVrc";

        String decryptedString = lllII(encryptedString, encryptionKey);
        System.out.println("Decrypted String: " + decryptedString);
    }
}

L’output ottenuto è il seguente:

Anche questa volta ci troviamo di fronte a un nuovo file JAR camuffato da immagine (Imagem.png).

Ed ecco Adwind!

Siamo arrivati all’ultimo stadio: il file ottenuto viene correttamente identificato e classificato come Adwind / jRAT / njRAT dalla sandbox Any.Run. Questo perchè, avendo superato i due stadi iniziali, il codice finale non contiene più controlli particolari, ma si occupa solo di compiere le sue azioni malevole:

La struttura del codice è piuttosto nota: Adwind / jRAT sono già conosciuti e sono stati analizzati in passato.

Conclusioni

Adwind/jRAT è un trojan di accesso remoto (RAT), noto per la sua modularità, che sfrutta Java per assumere il controllo del sistema compromesso e raccogliere dati dalle macchine delle vittime. Grazie alla presenza dei due stadi iniziali, risulta difficile individuare o isolare subito il malware all’interno di una sandbox. È importante notare che, senza un’analisi dettagliata del codice e del comportamento dinamico del malware in un ambiente controllato, è difficile fornire una valutazione accurata delle sue capacità e degli obiettivi a cui mirano gli attaccanti.

In fine, anche se Adwind/jRAT è generalmente indipendente dalla piattaforma, questa variante, come le altre osservate negli anni precedenti, si concentra esclusivamente sulle macchine Windows e sulle applicazioni comuni.

Indicatori di Compromissione

Per facilitare le azioni di contrasto della campagna fraudolenta, di seguito vengono riportati gli IoC identificati durante l’analisi, che sono stati già condivisi con le PA accreditate al Flusso IoC del CERT-AgID.

Seguici su Google News, LinkedIn, Facebook e Instagram per ricevere aggiornamenti quotidiani sulla sicurezza informatica. Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.

  • agid
  • cert agid
  • cybercrime
  • Malware
Immagine del sito
La redazione di Red Hot Cyber è composta da un insieme di persone fisiche e fonti anonime che collaborano attivamente fornendo informazioni in anteprima e news sulla sicurezza informatica e sull'informatica in generale.

Articoli in evidenza

Immagine del sitoHacking
Villager: il framework di pentesting basato su AI che preoccupa la sicurezza globale
Redazione RHC - 26/12/2025

Il team AI Research (STAR) di Straiker ha individuato Villager, un framework di penetration testing nativo basato sull’intelligenza artificiale, sviluppato dal gruppo cinese Cyberspike. Lo strumento, presentato come soluzione red team, è progettato per automatizzare…

Immagine del sitoInnovazione
Non mangiano, dormono e sbagliano: i soldati della Cina al confine saranno robot
Redazione RHC - 26/12/2025

Il confine tra Cina e Vietnam avrà presto nuovi “dipendenti” che non hanno bisogno di dormire, mangiare o fare turni. L’azienda cinese UBTech Robotics ha ricevuto un contratto da 264 milioni di yuan (circa 37…

Immagine del sitoCultura
Dal Game of Life al simbolo degli hacker: la vera storia del Glider
Massimiliano Brolli - 26/12/2025

La cultura hacker è una materia affascinante. E’ una ricca miniera di stravaganti innovazioni, genialità ed intuito. Di personaggi bizzarri, di umorismo fatalista, di meme, ma soprattutto cultura, ingegneria e scienza. Ma mentre Linux ha…

Immagine del sitoCybercrime
EDR Nel mirino: i forum underground mettono in vendita NtKiller
Redazione RHC - 25/12/2025

All’interno di un forum underground chiuso, frequentato da operatori malware e broker di accesso iniziale, è comparso un annuncio che ha attirato l’attenzione della comunità di cyber threat intelligence. Il post promuove “NtKiller”, una presunta…

Immagine del sitoCyber Italia
26 milioni di nomi e numeri telefonici di italiani messi all’asta nel Dark Web
Redazione RHC - 24/12/2025

Mentre la consapevolezza sulla cybersicurezza cresce, il mercato nero dei dati personali non accenna a fermarsi. Un recente post apparso su un noto forum frequentato da criminali informatici in lingua russa, scoperto dai ricercatori di…