¿Hay algún inconveniente en declarar siempre algunos caracteres erróneos predeterminados al generar exploits?

3

Al configurar los caracteres incorrectos para el código de shell, ¿hay algún inconveniente al suponer que debe marcar \ x00 y \ x0a como incorrectos?

    
pregunta nyxgeek 31.01.2016 - 09:28
fuente

2 respuestas

5

Para shellcode, el único problema potencial son las restricciones de tamaño. Pero suponer que los bytes nulos son malos es un mal hábito. Podría pensar erróneamente que un bloqueo no se puede explotar porque las únicas direcciones de pop pop ret / ROP viables comienzan con un byte nulo.

Determinar los bytes incorrectos exactos no requiere mucho tiempo y siempre recomiendo hacerlo, ya que puede ahorrar tiempo si necesitas solucionar tu Shellcode.

    
respondido por el wireghoul 31.01.2016 - 12:54
fuente
1

No en general, ya que NULL y Line Feed son siempre caracteres erróneos. Pero el tamaño de tu código aumentará. No automatizaría esto aunque.

Por ejemplo, en el ensamblador IA32 puede reemplazar la instrucción

B8 01000000    MOV EAX,1          // Set the register EAX to 0x000000001

Con

33C0           XOR EAX,EAX        // Set the register EAX to 0x000000000
40             INC EAX            // Increase EAX to 0x00000001

Esto incluso requiere menos bytes para codificar, pero en general será más tedioso reemplazar los caracteres a medida que aumenta el número de caracteres incorrectos.

    
respondido por el AdHominem 31.01.2016 - 10:44
fuente

Lea otras preguntas en las etiquetas