Creacion de Exploits 10_ Uniendo DEP con ROP - El Cubo de Rubik [TM]

Page 80

Creación de Exploits 10: Uniendo DEP con ROP – El Cubo de Rubik [TM] por corelanc0d3r traducido por Ivinson/CLS

SEH – Versión ROP – WriteProcessMemory() Con el fin de demostrar cómo los Exploits SEH se pueden convertir en una versión ROP, voy a utilizar una vulnerabilidad recientemente publicada: http://www.corelan.be:8800/advisories.php?id=corelan-10-050 Descubierta por Lincoln, apuntando a un desbordamiento de búfer de ActiveX en el Sygate Personal Firewall 5.6. Como podemos ver en el boletín, el SetRegString() en sshelper.dll es susceptible a un desbordamiento de búfer sobrescribiendo el controlador de excepciones. Puedes obtener una copia del exploit aquí: http://www.exploit-db.com/Exploits/13834 Esta función toma 5 argumentos. El tercer argumento es el que te llevará al desbordamiento de búfer: <object classid='clsid:D59EBAD7-AF87-4A5C-8459-D3F6B918E7C9' id='target' ></object> <script language='vbscript'> arg1=1 arg2=1 arg3=String(28000,"A") arg4="defaultV" arg5="defaultV" target.SetRegString arg1 ,arg2 ,arg3 ,arg4 ,arg5 </script>

En IE6 e IE7, el registro SEH se sobrescribe después de 3348 bytes, por lo que serían 3348 bytes a nSEH y 3352 bytes a SEH. En un típico exploit (sin ROP), es probable que terminemos sobreescribiendo el nSEH con un pequeño salto hacia adelante (xebx06x90x90) y el SEH con un puntero a POP/POP/RET. Como se explicó anteriormente, este enfoque no va a funcionar cuando DEP esté habilitado porque no podemos ejecutar código antes de que realmente deshabilitemos o evitemos el DEP primero. Sin embargo, no hay una manera fácil de superar este problema. Sólo tenemos que pivotar de nuevo a la pila cuando el manejador de excepciones (el que tenemos sobrescrito) se active.


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.