¿Qué salida puede un programa, cuando se ejecuta desde una línea de comandos, generar para generar un comportamiento que es una vulnerabilidad en el emulador de terminal?

7

Leyendo esta publicación, titulada " Corrección de nombres de archivo Unix / Linux / POSIX ", Me encontré con una frase MUY interesante del autor, que dice:

  

Ah, y no mostrar los nombres de archivo. Los nombres de los archivos pueden contener caracteres de control que controlan el terminal (y X-windows), lo que provoca efectos secundarios desagradables en la pantalla. La visualización de nombres de archivos puede incluso provocar una vulnerabilidad de seguridad, y ¿quién espera que la impresión de un nombre de archivo sea una vulnerabilidad? Además, no tiene forma de saber con certeza cuál es la codificación de caracteres del nombre de archivo, por lo que si obtiene un nombre de archivo de otra persona que usa caracteres que no son ASCII, es probable que termine con el mojibake de basura

Durante mucho tiempo sospeché que este es el caso, porque a veces la ejecución accidental de cat binary_file provocó la salida de mi terminal, o causó que el terminal se convirtiera en CTRL+L , pero nunca tuve el conocimiento para hacer una pregunta suficientemente coherente .

Mi pregunta es: ¿Qué salida puede un programa, cuando se ejecuta desde una línea de comandos, generar para generar un comportamiento que podría considerarse una vulnerabilidad en el emulador de terminal?

Tenga en cuenta que no me refiero a pegar comandos de sitios web en la línea de comandos .

    
pregunta droope 01.11.2013 - 01:36
fuente

2 respuestas

2

No creo que un software pueda enviar un Ctrl-Alt-Del al sistema tan fácilmente, este evento debe provenir de un teclado físico. Sin embargo, lo que es seguro es que con un terminal gráfico no tan reciente, tal flujo podría explotarse para inyectar comandos maliciosos.

La clave es que algunos terminales proporcionan:  - Una secuencia de escape para actualizar el título de la ventana,  - Otra secuencia de escape para informar el título de la ventana de nuevo a la línea de comandos.

Cuando un usuario utiliza un terminal sensible a este exploit (el más conocido ha sido corregido durante los últimos años), es posible inyectar un comando en el indicador del usuario utilizando, por ejemplo, un archivo especialmente diseñado. nombre (al hacer una lista de directorios) o archivo binario (cuando se usa "cat").

El usuario aún tendría que presionar "Enter" para ejecutar los comandos maliciosos, pero generalmente hay otras secuencias de escape que permiten engañar al usuario (por ejemplo, vaciar la cadena de solicitud, cambiar el color de primer plano del comando para configurarlo de la misma manera). como fondo, por lo que el comando en sí no es visible, luego se visualiza algo como "Presione Entrar para continuar ...").

    
respondido por el WhiteWinterWolf 03.11.2013 - 09:18
fuente
0

"Caracteres de control" son secuencias que el emulador captura para cambiar el entorno. Control-C para romper, Control-M para un retorno de carro, etc. Hay cientos de ellos . Son combinaciones de teclas, por lo que eliminarlas de un archivo es lo mismo que golpearlas con el teclado.

Sin embargo, casi todos están limitados al comportamiento terminal. Podría forzar un reinicio si pudiera encontrar una manera de colar CTRL-ALT-DEL (no veo cómo, pero eso es lo único en lo que puedo pensar), pero los sistemas modernos no tienen una Muchas cosas asignadas a las teclas de función ya no obligan a ejecutarlas.

    
respondido por el Satanicpuppy 01.11.2013 - 16:22
fuente

Lea otras preguntas en las etiquetas