¿Cómo se ejecutan las cargas arbitrarias en la máquina remota?

3

Entiendo que ejecutar algo como un enlace TCP inverso a través de shell se basa en los recursos disponibles en la máquina víctima ... y en el caso de ejecutar un, digamos, el script Ruby desde la línea de comandos se interpretará hasta código de máquina y ejecutado ...

Mi pregunta es, cuando coloca el código de la máquina directamente en la máquina remota a través de exploits a través de Metasploit o algo así, ¿qué sucede si el código no coincide con la CPU? ¿Cómo se interpreta y ejecuta? ¿O se trata de que el "atacante" sepa qué carga útil utilizar?

Por favor, perdone la pregunta de alto nivel, soy relativamente nuevo en las pruebas de penetración.

    
pregunta DawnFreeze 10.12.2013 - 00:58
fuente

2 respuestas

4

Suponiendo que haya localizado una saturación del búfer (o equivalente), si el código de la máquina no coincide con el idioma de la máquina remota, el resultado esperado es que la aplicación con la saturación se bloqueará.

El rebasamiento funcionará como 'normal', intentando ejecutar el código en su blob binario de una carga útil. El sistema víctima intentará ejecutar las instrucciones, pero las instrucciones no funcionarán como se espera para el sistema objetivo; es probable que cualquier instrucción dada signifique algo diferente para el sistema objetivo del que pretendía el desarrollador de la carga útil. Sin embargo, el sistema víctima intentará su ejecución. Algunas operaciones pueden funcionar perfectamente bien. Algunas operaciones pueden ser instrucciones ilegales, que pueden causar una excepción o un bloqueo. Eventualmente, es probable que la combinación de instrucciones corrompa la aplicación en ejecución más allá de la recuperación, o bien realice una instrucción válida en un contexto ilegal, y el proceso se bloqueará.

    
respondido por el atk 10.12.2013 - 01:59
fuente
1

Como dice la respuesta de atk, es muy probable que el código binario incorrecto provoque un bloqueo.

Sin embargo, puede hacer suposiciones razonables sobre la CPU: el código x86 básico es compatible con casi todos los sistemas de escritorio; y es bastante posible que su vulnerabilidad / saturación original esté en algún software en particular que se ejecute solo en x86 y no, digamos, en los procesadores ARM utilizados en muchos dispositivos móviles.

    
respondido por el Peteris 26.01.2014 - 18:14
fuente

Lea otras preguntas en las etiquetas