Los fallos de seguridad que se aprovechan para conseguir introducirse en el sistema están basados casi siempre en los protocolos TCP/IP, en servicios de red como el NFS o NIS o en los comandos "r" de Unix.
TCP/IP
TCP = Transport Control Protocol IP = Internet Protocol
Los protocolos basados en TCP/IP que se suelen aprovechar son Telnet, FTP, TFTP, SMTP, HTTP, etc. Cada uno de ellos tiene sus propios agujeros de seguridad que se van parcheando con nuevas versiones de estos protocolos, pero siempre aparecen nuevos bugs. Explicar cada uno de los protocolos TCP/IP puede llevarnos mucho tiempo, así que paso a otra cosa (esto es sólo una introducción).
Servicios de red
NFS = Network File System
Es un servicio de red por el cual varias máquinas llamadas clientes comparten uno o varios directorios que se encuentran físicamente en una máquina llamada servidor. Una máquina cliente, a pesar de no poseer físicamente dichos directorios, puede montarlos de tal forma que puede acceder a ellos como si los poseyera. Otra cosa muy distinta es lo que se pueda hacer con los ficheros incluidos en dichos directorios (si se pueden borrar, modificar, alterar los permisos, etc.), lo cual depende de la configuración del NFS.
En la mala configuración del NFS es donde estriban siempre sus fallos de seguridad.
NIS = Network Information Service
Es un servicio por el cual varias máquinas comparten varios "mapas". Los mapas son ficheros como passwd, hosts, etc. Por ejemplo, un usuario puede entrar con la misma cuenta en todas las máquinas que compartan un mismo mapa de passwords. Los mapas son consultados por las máquinas clientes a las máquinas que contengan los mapas, que son los servidores.
Existen programas (por ejemplo el llamado YPX) que sirven para extraer estos mapas (incluido el fichero passwd, donde están todos los passwords de los usuarios) de un servidor de NIS aunque la máquina en la que estemos no sea una máquina cliente.
Comandos "r"
Son comandos exclusivos del sistema operativo Unix. La "r" es de remote. En el sistema hay un fichero llamado host.equiv y cada usuario suele tener en su directorio home (el directorio reservado a cada usuario para su propio uso del sistema) un fichero llamado .rhosts. Dependiendo de la configuración de estos dos ficheros se podrá o no acceder a dicho ordenador desde otro sistema Unix sin necesidad de password con los comandos rlogin o rsh.
Aparte de estas formas básicas, existen otras formas más avanzadas de acceder a un sistema como el IP Spoofing, fallos de seguridad en el Web y el Java, recompilando librerías de telnet, UUCP, etc.
Hay dos formas básicas de introducirse en el sistema:
1. Entrar directamente sin necesidad de poseer una cuenta en el sistema objetivo. Por ejemplo, por comandos "r" o por algún bug (alterar el fichero passwd del ordenador objetivo por rsh, alterar el fichero .rhosts de algún usuario por NFS, etc... desde luego hay formas más avanzadas de conseguir esto).
2. Conseguir el fichero passwd del sistema objetivo y crackearlo. El fichero passwd contiene los logins de los usuarios y su correspondiente password encriptadas (entre otras cosas). Para averiguar el password de cada usuario se utiliza un programa crackeador (existen varios, para unix el más famoso es el Crack, para MS-DOS están el JackCrack, Hades, Crack, BCrack, etc) que encripta cada palabra de un diccionario y las compara con la cadena encriptada del fichero passwd, cuando las cadenas encriptadas coinciden entonces la palabra del diccionario que el programa ha encriptado en ese momento es el password buscado. |