Estoy trabajando en una vulnerabilidad que tiene un espacio de búfer muy limitado en Windows XP. DEP está deshabilitado.
El binario es un servidor de socket que tiene comandos de aceptación, en uno de esos comandos hay un desbordamiento de búfer basado en la pila que se produce debido a una falla en la verificación de los límites combinados con un strcpy. Egghunter no es posible porque no puedo almacenar datos arbitrarios en la memoria. Tengo un par de pensamientos:
- Reutilizando el socket ya abierto para redireccionar la entrada / salida estándar del programa al controlador del socket.
- Iniciar un servicio vulnerable para su uso a través de una carga útil secundaria como ms08_067 usando WinExec o msvcrt.system (). El msvcrt.system (cmd) es la carga útil más pequeña que he podido escribir, pero no se me ocurre nada útil para llamar desde la línea de comandos, ya que el sistema simplemente envía un comando al intérprete del símbolo del sistema.
¿Alguien tiene algún pensamiento?