Ir al contenido principal

Entradas

Mostrando entradas de diciembre, 2020

Binary Exploitation (XXVII): Format string (I)

En esta entrada de la miniserie en la que explico brevemente ciertas vulnerabilidades software y técnicas para explotarlas  me centraré en la vulnerabilidad de cadena de formato   (en ingles,  'format string' ). En primer lugar, como siempre que inicio los posts correspondientes a una vulnerabilidad,  un poco de teoría para recordar conceptos fundamentales  y ponerla en contexto . ¿Qué es la  vulnerabilidad  'format string' ? : Tal y como nos cuenta wikipedia , la vulnerabilidad  'format string'   se produce  cuando los datos enviados a través de una cadena de entrada de caracteres son evaluados como un comando por la aplicación a la que van dirigidos , pudiéndose filtrar o escribir datos en la memoria. Para evitar esta vulnerabilidad, los programas deben utilizar correctamente las funciones para dar formato a las cadenas de caracteres. Si un atacante logra controlar la cadena de formato puede explotar esta vulnerabilidad para filtrar el contenido de la memoria

Binary Exploitation (XXVI): Solución Reto picoCTF 2018 "echooo"

En este post la  solución a otro d e los retos de la categoría  'Binary Exploitation'  de  la plataforma picoCTF 2018 . El desafío en cuestión, que lleva el título "echooo" , presenta en mi opinión un nivel de dificultad bajo (★★ ☆ ☆☆) . - echooo - Points: 300: Su enunciado dice lo siguiente: ' This program prints any input you give it. Can you leak the flag? Connect with nc 2018shell.picoctf.com 23397. Source '. Se proporcionan dos archivos: un ejecutable ( echo ) y un fichero con el código fuente ( echo.c ). Y como pista ( 'Hint' ) se nos dice: ' If only the program used puts... '. Solución:  utilizo el comando file para ver qué tipo de ejecutable es echo y veo, entre otras cosas, que se trata de un binario con formato ELF (Executable and Linkable format) y que la arquitectura es de 32-bit. Por el enunciado del reto intuyo que para obtener la flag debo explotar la vulnerabilidad de cadena de formato  (en inglés,  'format string' )

Binary Exploitation (XXV): Solución Reto picoCTF 2019 "slippery-shellcode"

Al hilo de los dos posts anteriores, en esta entrada profundizo un poco más en la técnica de inyección de  'shellcode'  (en inglés,  'shellcode injection' ) utilizando para ello la  solución a uno d e los retos de la categoría  'Binary Exploitation'  de  la plataforma picoCTF 2019 . El desafío en cuestión, que lleva el título  " slippery-shellcode " , presenta en mi opinión un  nivel de dificultad medio ( ★ ★ ★ ☆☆ ) . -  slippery-shellcode  - Points: 200 : Su  enunciado  dice lo  siguiente:  ' This program is a little bit more tricky. Can you spawn a shell and use that to read the flag.txt? You can find the program in /problems/slippery-shellcode_1_69e5bb04445e336005697361e4c2deb0 on the shell server. Source ' . Se proporcionan dos archivos: un ejecutable (vuln) y un fichero con el código fuente (vuln.c). Solución:  Este reto es muy similar al del post anterior ,  con la única diferencia de que no sé exactamente la dirección dentro del 'buf

Binary Exploitation (XXIV): Solución Reto picoCTF 2018 "shellcode"

Al hilo del post anterior , en esta entrada profundizo un poco en la técnica de inyección de 'shellcode' (en inglés, 'shellcode injection' ) utilizando para ello la solución a uno d e los retos de la categoría  'Binary Exploitation'  de  la plataforma picoCTF 2018 . El desafío en cuestión, que lleva el título  "shellcode" , presenta en mi opinión un  nivel de dificultad medio ( ★ ★ ★ ☆☆ ) . -  shellcode  - Points: 200 : Su  enunciado  dice lo  siguiente:  ' This program executes any input you give it. Can you get a shell? You can find the program in /problems/shellcode_2_0caa0f1860741079dd0a66ccf032c5f4 on the shell server. Source ' . Se proporcionan dos archivos: un ejecutable (vuln) y un fichero con el código fuente (vuln.c). Y como pistas ( 'Hints' ) se nos dan las siguientes: -  'Maybe try writing some shellcode?' . -  'You also might be able to find some good shellcode online' . Solución:  Me conecto al servidor, c

Binary Exploitation (XXIII): Buffer overflow (II) - Shellcode injection

En esta segunda entrada de la miniserie  en la que comparto lo que voy aprendiendo sobre ciertas vulnerabilidades software y técnicas para explotarlas  me centraré , con relación a la vulnerabilidad de desbordamiento de  'buffer'   (en ingles,  'buffer overflow' ), en la técnica de inyección de 'shellcode' (en inglés, 'shellcode injection' ). Los  conceptos básicos sobre: la vulnerabilidad 'buffer overflow' , la pila (en inglés, 'stack' ) y los registros los traté en el post anterior de esta miniserie. ¿En qué consiste la técnica 'shellcode injection ' ? : Con relación a la vulnerabilidad  'buffer overflow' , la técnica de 'shellcode injection'   consiste en provocar el desbordamiento del 'buffer' para sobrescribir la dirección de retorno de una función con la dirección de inicio de un código malicioso ( 'shellcode' ) que el atacante inyecta en memoria   con objeto de que el programa ejecute lo