¿Cuál es el riesgo de copiar y pegar comandos de Linux desde un sitio web? ¿Cómo pueden ser invisibles algunos comandos? [duplicar]

87

Como todos los principiantes en la tierra de Linux, generalmente busco sitios web que contiene algunos comandos de shell útiles, márquelo con mi mouse, cópielo ( CTRL + C ) y pégalo en una terminal.

Por ejemplo, si necesito instalar package_name.deb

sudo apt-get install package_name.deb

Daré mi contraseña de root e instalaré el package_name.deb

Cuando pegue este comando en mi editor de texto , será algo así como:

sudo apt-get install package_name.deb && apt-get install suspicious_file.deb 

Segundo ejemplo, si quiero agregar un nuevo ppa (terminal)

sudo add-apt-repository ppa:some/ppa
sudo apt-get update

Cuando edite mi sources.list, encontraré algo como:

deb http://ppa.launchpad.net/some-ppa/

y

deb http://ppa.launchpad.net/a_suspicious_some-ppa/

El problema es que el segundo ppa deb http://ppa.launchpad.net/a_suspicious_some-ppa/ se agrega automáticamente y sin mi permiso.

Como puedes ver, hay una parte invisible. No aparece en mi terminal.

¿Cuál es el riesgo de copiar y pegar desde un sitio web no confiable en el terminal y cómo arreglar mi sistema operativo?

    
pregunta GAD3R 14.02.2016 - 18:27
fuente

4 respuestas

84

Los sitios web pueden adjuntarse a su portapapeles

El riesgo es exactamente lo que dijiste que era. Definitivamente es posible agregar comandos maliciosos al portapapeles.

Incluso podría agregar && rm -rf /* (solo se ejecuta si el primer comando fue exitoso), o ; rm -rf /* (se ejecuta incluso si el primer comando no tuvo éxito) y bloquea ciertos dispositivos UEFI .

También debe consultar la publicación de Michael en este hilo para ver otro ejemplo .

Al final, realmente depende de qué tan creativo y malicioso sea un "hacker" malvado en particular.

Pero, ¿cómo puede hacer que los comandos sean "invisibles" en el terminal? "

  1. Método uno

    echo test;echo insert evil here;clear;echo installing package
    

    Orden de ejecución :

    1. Ocurre "prueba" de eco
    2. El eco "inserta el mal aquí" sucede
    3. Las acciones se "borran"
    4. La acción deseada ocurre aquí, pero no ves el resto.

    ...

    Puedes intentar desplazarte hacia arriba en la ventana del terminal para encontrar el resto.

  2. Método dos

    stty -echo 
    tput smcup
    

    Esto impedirá que el terminal muestre lo que estás escribiendo, por lo que no aparece en la ventana del terminal en absoluto.

    Puedes intentarlo de esta manera:

    stty -echo;tput smcup;echo evil commands
    expected command
    

Esos son solo dos ejemplos realmente aproximados, pero muestran el potencial de lo que se puede hacer para ofuscar comandos. Tenga en cuenta que es probable que no se oculte de ~ / .bash_history a menos que los comandos ocultos específicamente eliminen / modifiquen su contenido.

Debes asumir que hay otras formas de hacer esto.

Mitigación

Recomiendo usar un complemento para deshabilitar la manipulación del portapapeles . Desafortunadamente, hay maneras de evitar eso, así que recomiendo pegar todo en un GUI texto editor antes de que entre en su terminal , o en cualquier sitio.

Necesitas verificar lo que estás haciendo. Si no entiende cada comando individual, debe buscarlo en Google. Este es un método apropiado para el papel de aluminio porque copiar y pegar puede forzar a los comandos a ejecutarse automáticamente en muchos tipos de Linux.

Reparando tu instalación de Linux

Es posible que no tengas idea de cuán profundo es el agujero del conejo. A menos que tenga tiempo y esfuerzo para ponerlo, le sugeriría que no haga nada desde la órbita, a menos que tenga archivos importantes. Si tiene archivos importantes, simplemente haga una copia de seguridad de los elementos no ejecutables (no archivos PDF, documentos, etc.) y luego pulse Nuke desde la órbita.

Si tiene archivos PDF, puede convertir el PDF a una secuencia de comandos posterior, o copiar y pegar el contenido en un archivo de texto. Con los documentos, copie y pegue el texto y formatéelo más tarde.

    
respondido por el Mark Buffalo 14.02.2016 - 20:07
fuente
39

Hay un riesgo. Los sitios web pueden usar CSS y JavaScript para ocultar cosas y luego, cuando copia de ese sitio web, realmente copia lo que quiere. @Gumbo proporcionó el ejemplo: enlace .

La solución: no copiar y pegar desde sitios web en los que no confíes. O visitarlos.

    
respondido por el h4ckNinja 14.02.2016 - 20:40
fuente
20

Sí, cortar y pegar comandos de sitios web que no son de confianza puede ser peligroso. El texto que pegue siempre contendrá el texto que copie, pero puede tener más texto antes, entre o después de eso.

En la página web esto se hace mediante CSS. Solo haz el texto extra invisible. Todavía se copiará.

Cuando lo pegue en un terminal, se mostrará el texto adicional . Sin embargo, si contiene una nueva línea, se ejecutará inmediatamente y se hará el daño. Además, puede contener comandos para eliminar el texto adicional.

Para evitar el peligro , pega el texto en un editor de texto. Mirar por encima. Y luego copiarlo desde el editor al terminal.

Solo ... asegúrate de entender el comando lo suficientemente bien como para saber que es seguro. El otro peligro de pegar comandos desconocidos es que simplemente no puedes entender lo que estás haciendo.

    
respondido por el Stig Hemmer 15.02.2016 - 09:47
fuente
17

Además de las excelentes respuestas anteriores, agregaría que, además de propósitos maliciosos, también existen problemas para copiar y pegar desde sitios web o archivos PDF debido a la codificación de caracteres.

Puede estar pensando que está pegando un grupo de caracteres, y debido a la codificación de caracteres, está pegando cosas diferentes y tiene problemas difíciles de rastrear.

syslog no se inicia

Desde el hilo, el OP pensó que había pegado:

file("/var/log/cisco/cisco.log");

Pero en realidad pegó algo como esto:

file(▒~@~\/var/log/cisco/cisco.log▒~@~]); 
    
respondido por el Rui F Ribeiro 14.02.2016 - 21:23
fuente

Lea otras preguntas en las etiquetas