Shellcode Segfault ¿ejecución media?

0

Al hacer una asignación universitaria, estamos lanzando un shell en un servidor remoto. Todo está bien, conecté de nuevo el código de shell, y cuando codifiqué la cadena de ataque hexadecimal en el servidor y salté a ella, se inició. (La pila es ejecutable, así que ese no es el problema (¡aunque fue por un tiempo!))

Sin embargo, cuando lo paso (empaquetado usando Perl) a través de la conexión TCP, solo se ejecuta parte del camino. Usando gdb, pude determinar que configuró el socket y la conexión, pero seguí en el punto en el que estaba presionando "/ bin / sh" en la pila, específicamente al golpear un \ x89 (mov ebx, esp).

¿Alguna idea sobre lo que está sucediendo aquí?

¡Gracias!

    
pregunta Richard 11.12.2012 - 00:55
fuente

1 respuesta

3

Esto no es realmente una pregunta de seguridad, es una arquitectura de bajo nivel. Pero para comenzar, sugeriría ver lo que realmente representa una Falla de segmentación .

Específicamente, sucede en un intento de leer o escribir en una dirección de memoria a la que no accede el proceso. El acto de copiar un registro a otro no tiene acceso a la memoria, por lo que no debería ser capaz de desencadenar un segfault. Asegúrese de que realmente está realizando la operación que cree que es. Asegúrese de que el problema no sea realmente la instrucción anterior o siguiente . Finalmente, otra opción es mirar la ubicación en la memoria del EIP. Probablemente no sea el problema, pero vale la pena comprobar a qué memoria se accede como un efecto secundario de lo que está pasando.

    
respondido por el tylerl 11.12.2012 - 02:59
fuente

Lea otras preguntas en las etiquetas