¿Es posible un retorno a libc attack sin la función del sistema?

5

Todos los ataques de desbordamiento de búfer de libc que he visto usan la función system para ejecutar comandos. Tengo un ejecutable con DEP habilitado (no puedo ejecutar en la pila) y la función system no está vinculada (al menos, no creo que lo esté. Ejecutando el ejecutable con gdb y escribiendo p system da como resultado un mensaje No symbol "system" in current context. .

¿Es posible ejecutar un ataque de desbordamiento de búfer para ejecutar comandos arbitrarios con este tipo de ejecutable? ¿Hay tutoriales o trabajos de investigación sobre este tema?

ACTUALIZACIÓN: pude explotar el binario utilizando esta herramienta: enlace

    
pregunta gsingh2011 12.11.2013 - 02:28
fuente

1 respuesta

3

Esta es la principal limitación conocida del ataque ' ret-into-libc ', solo puede usar las funciones que usa el programa atacado. Además, en los ataques ' ret-into-got ' usted está limitado solo a las funciones que ya se usaron antes de realizar el ataque (la ubicación de la función debe haberse resuelto en el GOT).

Pero, puedes usar funciones similares si están presentes. Se pueden usar funciones como execve o cualquier función de la misma familia (sin embargo, los argumentos son un poco más complejos de configurar).

Solo para concluir, esto también se debe a esta limitación de que la ' programación orientada al retorno ' fue un gran avance ya que se ha demostrado que está completa Turing ( es decir, capaz de emular cualquier tipo de función si tiene suficientes dispositivos en la sección .text ). Vea el famoso artículo " La geometría de la carne inocente en el hueso: retorno a libc sin llamadas de función (en el x86) "por Hovav Shacham .

    
respondido por el perror 12.11.2013 - 07:44
fuente

Lea otras preguntas en las etiquetas