Badchars
bo
los badchars son caracteres que no funcionan (inválidos) ya que el programa a explotar no los acepta, esto puede afectar en nuestro shellcode y no nos van a permitir seguir, por eso hay que detectarlos y mitigarlos.
pip install badchars # libreria necesaria
badchars -f python # nos dara una lista de chars
lo que nos de este comando hay que copiarlo desde el primer paréntesis "(" hasta el final
este lo pegaremos en nuestro exploit, para eso cambiaremos la variable payload
payload = contenido_que_copiaste
Ahora, en nuestro immnity debugger vamos a utilizar el siguiente comando de mona que nos ayudara a encontrar los badchars :
!mona bytearray -b ''\x00"
nos abrira esta ventana y en el directorio de trabajo de mona que definimos anteriormente se creara el archivo bytearray donde vienen los badchars

o también podemos ver el contenido en la parte donde esta nos dice [+] preparing output file
aqui podemos ver los archivos :


Debemos abrir en immunity debugger denuevo el brainpan porque recordemos que ha hecho crash
Enviamos nuestro exploit nuevo y vemos que ha crasheado.
En immunity debugger debemos identificar el ESP

en mi caso y el caso de los que están siguiendo paso a paso la guía para resolver la brainpan nuestro ESP debería de ser de 005FF910
, este lo usaremos para descubrir cuales son los badchars mediante mona
El ESP (Extended Stack Pointer) es un registro de la CPU que es clave para manejar la pila (stack) en la memoria (básicamente un controlador o gestor). La pila es una estructura de datos que se utiliza para almacenar información temporal durante la ejecución de un programa, como las direcciones de retorno y los valores locales de las funciones.
!mona compare -f C:\ubicacion\del\directorio\donde\mona\trabaja\bytearray.txt -a ESP_AQUI
al ejecutar el comando en immunity debugger, mona nos dirá si hay badchars, haciendo una comparación junto al archivo que habíamos generado anteriormente.
hemos ejecutado el comando y se nos habre la siguiente ventana :

En este caso, vemos la sección de badchars vacía, por lo que esta maquina (afortunadamente) no tiene badchars. En el caso de encontrar algún badchar solo es cuestión de ir a tu exploit y eliminarlos del payload.
Last updated