martes, 28 de octubre de 2014

Comandos peligrosos que no debes ejecutar


Hay ciertos comandos que pueden dañar tu maquina de forma irreparable o hacerte pasar un mal rato. A continuación voy a mostrar unos cuantos de ellos y explicar como funcionan.
Los comandos que voy a mostrar son para que los conozcas y si te comentan en algún foro que sirve para reparar algún problema puedas evitar caer en una trampa muy baja.

yes > .archivo &
El comando yes imprime una cadena de texto hasta que lo matas. Esa cadena se ingresa a un archivo nuevo, .archivo, que se incrementará hasta llenar completamente tu disco. No necesita sudo.

:(){:|:&};:
Esto, aunque parece un montón de caritas, es en realidad una bomba fork que puede bloquear tu pc en segundos. Para entenderlo mejor vamos a cambiar los dos puntos por mi_funcion y ordenarlo en varias lineas, de forma que va a quedarnos de la siguiente forma:

    mi_funcion() { 
        mi_funcion|mi_funcion&
    };
    mi_funcion

Entonces lo que tenemos es una nueva función, mi_funcion, que se llama a si misma y pasa, mediante el símbolo | (pipeline), su salida como entrada a si mismo, y queda trabajando en segundo plano con el símbolo &, por ultimo se inicia por primera vez la función llamandola por su nombre. Por lo cual cada vez que se llama a la función está abre dos instancias de si misma hasta que se ocupe toda memoria o cpu y no puedas hacer nada.
No necesita sudo, se puede evitar configurando ulimit.

shred -uf /* &
Elimina de forma segura cualquier archivo en tu disco. Osea que no hay forma de recuperar los archivos borrados. Necesita sudo.

rm --no-preserve-root -R /
El comando rm sirve para borrar archivos, si lo ejecutas con -R lo hará de forma recursiva sobre los directorios, y al poner / lo hará desde el directorio raíz, por lo que esto elimina todos los archivos del disco. Necesita sudo.

algun_comando > /dev/sda
Ingresa el resultado de lo que pongas en algun_comando en tu disco duro, por lo general haciendo que no inicie mas tu linux. Necesita sudo.

mv ~ /dev/null
El comando mv sirve para mover archivos, ~ señala tu carpeta persona y /dev/null es una especie de agujero negro hacia la nada, osea que este comando moverá todos tus archivos a la nada. No necesita sudo a menos que no tengas permisos sobre /dev/null.

while true; do echo |wall; done &
Esto es un bucle infinito que manda mensajes a todos los usuarios. Si bien no rompe nada no podrás usar la terminal ni tampoco ningún usuario que este conectado a la misma maquina hasta que la misma se reinicie. Por lo cual algún usuario con pocos privilegios que se conecte de manera remota a tu maquina o a un servidor ssh puede hacerte pasar un mal rato. No necesita sudo, puedes evitarlo cambio los privilegios de /usr/bin/wall.

Como estos hay muchos más, con un poco de imaginación puedes hacer cosas realmente perjudiciales. ¿Esto significa que linux tenga vulnerabilidades o sea hackeable?. Pues no, ningún sistema puede evitar que tu mismo lo destruyas. Si bien deben haber muchas vulnerabilidades en linux estas no son, ya que necesitan que tu mismo las ejecutes para hacerte daño. Y seguramente puedes encontrar muchas similares en cualquier otro sistema, estos comandos deberían funcionar perfectamente en Unix y Mac. Por ejemplo el equivalente de :(){:|:&};: en Windows puede ser for /l %a in (0,0,0) do start el cual abrirá infinitas ventanas hasta trabar tu PC.

Como yapa les dejo la ruleta rusa para bash. Tan solo tienen que ejecutar el siguiente comando y tener suerte.

[ $[$RANDOM %6] == 0 ] && sudo rm --no-preserve-root -R /  || echo "Tuviste suerte";

Sobre el autor