Este script fue realizado junto a @RizelTane, debido a que en mi momento de locura quise automatizar el proceso de detección de badchars, con el fin de estar seguro que la identificación era correcta, considerando ello se tuvo este pequeño, el cual fue adicionado a #Bashert para automatizar un poco el trabajo de la certificación.
Evidentemente esto es posible hacerlo desde Inmmunity Debugger con apoyo de Mona, pero quise tener algo a mano y estar seguro que funcione, ya que para ese entonces en el primer intento que tuve andaba nervioso, por que nunca antes toque un BoF como el de la certificación (aprendí a realizarlo), después de andar practicando todo el flujo es sumamente sencillo y entendible que por cierto en el blog contamos con una serie de entradas en proceso donde se explica un Stack Buffer Overflow, la cual si te animas a dar el OSCP puedes tomarlo como referencia.
Archivo.in y badchars_all
El script hace uso de dos ficheros los cuales son archivo.in y badchars_all realizando una comparativa para determinar cuales son los caracteres malos.
Fichero archivo.in
Es el resultado que tenemos de Immunity cuando enviamos el payload con el listado de los badchars y tenemos el output, el cual lo debemos de pasar al fichero para realizar la detección de los caracteres malos.
Este fichero es el output que obtenemos cuando se envía al servicio vulnerable, tenemos que ir iterando y verificando la salida, con el script continuamente.
Fichero badchars_all
El fichero badchars_all es el segundo que es usado por el script, este no es necesario realizar ninguna modificación, como veran lleva los badchars que realizaremos la comparación para determinar cuales no deben de ingresar en nuestra shellcode.
Ejecución de find_badchars.py
Para la ejecución del script necesitamos contar con Python3 y coloroma tenemos el resultado de la comparativa que realiza el script.
Vale aclarar que necesitamos realizar las corridas necesarias para identificar todos los badchars, ya que el script tiene puntos a mejorar y realizar la tarea mas limpia, pero por ahora esto fue lo que utilice para la certificación en próximas entradas veremos, la detección de Badchars desde el mismo Inmmunity y avanzaremos con la serie de entradas.
Sigo trabajando para intentar aprender, para intentar hacer lo que no sé. Detesto repetir cosas que ya he hecho. - Eduardo Chillida.
Regards,
Snifer