Artículo realizado por
Pedro Ferrera "BaDBoY"
n esta unidad aprenderéis:
Más sobre los sistemas UNIX
Tipos de sistemas UNIX
Características de los sistemas UNIX más importantes
Si estás aquí se supone que sabes:
Lo que es en realidad el hacking
Para qué sirve el hacking
Cómo se comporta un hacker
Qué es LINUX
Iniciarse en el entorno LINUX/UNIX
Entender el entorno multiusuario UNIX
Otros ejercicios prácticos para LINUX
Bien, en este minicapítulo vamos a aprender algo sobre los sistemas UNIX universales, casi todos los que existen en Internet. Inicialmente esta información no os será de gran utilidad, pero más adelante os servirá, o sea que guardarla.
Desde los orígenes de Internet, este ha estado formado básicamente por máquinas UNIX. Se trata de un sistema multiusuario que es usado, básicamente, como servidor. Así, podemos encontrar máquinas UNIX en servidores de FTP, en servidores de correo electrónico, en servidores de WWW, en servidores de IRC... Pero dado su entorno multiusuario es también usado mucho en Universidades, Bancos, así como en algunas entidades gubernamentales. Actualmente el número de sistemas UNIX en Internet está disminuyendo y está aumentando el de sistemas NT, aunque UNIX sigue siendo claramente superior (alrededor del 65% de máquinas de Internet son UNIX). El otro 35%, lo forman básicamente sistemas como el NT, ya mencionado, aunque también existen otros como VM/CMS, VM/ESA, VMS...
Inicialmente podemos dividir los sistemas UNIX según el tipo (BSD, System V, etc...). Pero en este capítulo vamos a hacer una distinción según los fabricantes de cada sistema UNIX:
AIX - Fabricado por IBM
SunOS y Solaris - Fabricados por Sun
HP-UX - Fabricado por Hewlett Packard
Ultrix y OSF/1 - Fabricados por DEC
Aunque Linux no ha estado fabricado por ninguna multinacional, he creído conveniente incluirlo en esta lista.
Linux - UNIX para PC, no ha sido fabricado por ninguna multinacional
Estos son los más importantes, después hay otros como el IRIX, el Convex, el UnicOS... de menor proliferación.
Voy a describir cinco de estos sistemas: AIX, SunOS, Solaris, Linux y HP-UX.
AIX
AIX es la versión UNIX de IBM. Desde que salió ha sido de los sistemas que más bugs ha presentado. Para que os hagáis una idea, la versión 3.25 tenía fallos tan gordos como estos:
1 - El comando lquerypv podía ser utilizado para leer cualquier archivo:
$ lquerypv -h /etc/passwd
root:Xds4cdXcMoV:0:0::/root:/bin/bash
...
2 - Este bug habla por sí solo:
$ echo "badboy::0:0:blablabla:/:/bin/sh" >>/etc/shadow
$ telnet localhost
login: badboy
# whoami
root
3 - Otro bug:
$ rlogin localhost -l -froot
# whoami
root
4 - Y otro bug que permite enROOTarse:
$ tproof -x /bin/sh
Naturalmente, existen parches para estos bugs tan tontos.
La versión 3.25 fue substituida por la 4.1, aunque esta también presenta errores (como todos los sistemas). Estos son los cambios de la 3.25 a la 4.1:
Versión 3.25 y 4.1.x
Tanto la versión 3.2.5 como la 4.1 de AIX son compatibles con los tres sistemas IBM RISC System/600 (POWER, POWER2 y PowerPC 601). La versión 4.1, además, incorpora compatibilidad con sistemas PowerPC.
En la versión 4.1 se incluyen los estandartes de programación POSIX 1003.2 y 1003.2a, FIPS 151-2 y XPG4.
Las librerías TCP/IP permiten el uso de BIND y NIS para resolver direcciones IP.
En la versión 4.1, el IP forwarding está, por defecto, desactivado.
Se trata de un sistema de la casa Sun. Estos son sus fallos:
El SunOS, es, inicialmente vulnerable a IP Spoofings, si la opción Source routing está activada. Aunque, para que SunOS sea totalmente seguro a un ataque de spoof, se tienen que introducir ciertas modificaciones en el kernel referentes a IP forwarding. Por eso, probablemente en este sistema una táctica muy aconsejable es el IP Spoofing.
SunOS También presenta fallos en la configuración NFS, a no ser que esté activado el NFS por monitoring (por defecto no lo está).
Un fallo muy importante es que, inicialmente, la librería ruserok(3) permite el acceso a .rhosts y a hosts.equiv con cualquier comando "r".
El fichero /dev/eeprom es inicialmente leíble por cualquier usuario, pero este suele ser un bug que casi todos los admins suelen solucionar. Otro bug tonto: muchos admins dejan activada la cuenta "sync" sin password.
Linux es el famoso sistema operativo disponible para PC y para otras plataformas. Añade a UNIX un SO de 32 bits, soporta multitud de dispositivos (PCI, SCSI...) y es capaz de leer FAT32 y NTFS. Se trata de un sistema especialmente estable y fiable, poco propenso a colgarse. Pone a disposición del usuario el código fuente del Kernel. Funciona en un 386 con 4 de RAM, gracias a que sólo utiliza los recursos que necesita. Es multitarea y incorpora un entorno gráfico parecido a Windows 95, llamado X-Windows. Hay diferentes distribuciones de Linux, y no todas son gratuitas, las más importantes (gratuitas) son:
Slackware : Se puede conseguir en ftp.cdrom.com:/pub/Linux/slackware.
Debian: Para conseguirla, se puede hacer un ftp a ftp.debian.org o en slug.ctv.es.
Red Hat: ftp.redhat.com para conseguirla.
Como principales bugs voy a destacar:
En Debian Linux 2.0, /usr/bin/suidexec permite nivel de root a cualquier usuario.
En cualquier sistema Linux se puede sobreescribir un buffer en /usr/X11/bin/color_xterm para obtener nivel root.
En cualquier sistema Linux se puede exploitar la librería vsyslog() 5.4.38 para obtener root.
Aunque es un bug muy viejo, se puede obtener nivel root sobreescribiendo un buffer en /usr/bin/splitvt
En distribuciones RedHat de Linux, se puede conseguir nivel root sobreescribiendo un buffer en /usr/bin/zgv
Se trata de un sistema mejorado de la misma casa que SunOS (por supuesto, SUN). Las últimas versiones de este sistema se caracterizan por contener un mejorado sistema de WebNFS.
Pero como todo sistema, Solaris tiene también muchos bugs. Los más importantes son:
Se pueden crear o borrar cualquier tipo de ficheros como si fuésemos root usando el statd (sólo en la versión 2.5.1)
El sistema peta si el syslog recibe un mensage y no puede resolver la IP que lo ha producido.
En cualquier sistema Solaris 2.x, podemos petar o reiniciar el sistema con un ping flood (enviando una gran cantidad de paquetes de manera que se quede bloqueado)
Se pueden aprovechar los archivos /usr/bin/ps y /usr/ucb/ps para conseguir acceso root en cualquier sistema Solaris
Así mismo, sobreescribiendo un búfer determinado en /usr/bin/fdformat también podemos conseguir root en cualquier Solaris 2.x
También se puede aprovechar y explotar /usr/lib/nis/nispopulate en los sistemas Solaris 2.5
Sobreescribiendo un búfer determinado en el archivo passwd podemos enROOTarnos, sólo en la versión 2.5, igualmente, en esta versión podemos explotar /usr/openwin/bin/kcms_calibrate para obtener root
HP-UX ha sido fabricado por la conocida multinacional Hewlett Packard. Se han hecho multitud de versiones de este sistema, tanto es así que una de las últimas versiones es la 9.01. A diferencia de otros sistemas UNIX, presenta pocos bugs, de los cuales destaco:
SAM (System Administration Manager) puede ser usado en cualquier sistema HP-UX para modificar archivos.
En la versión HP-UX 9, el programa rpc.mountd contiene un bug que puede ser explotado para obtener privilegios NFS.
Esta información es más importante de lo que parece. Pero esto ya lo descubriréis más adelante.
� Nos vemos en la próxima lección !