Elevación de Privilegios en Linux Parte I



Elevación de Privilegios en Linux
Entrando en materia

Imagen 1 Proceso de Elevación de Privilegios

Muchos de los fallos de seguridad van a permitir al intruso tener un acceso .. pero la mayoría de las veces este acceso es poco privilegiado dentro del sistema objetivo del ataque.
Una vez que estamos dentro del sistema el siguiente paso lógico será intentar alcanzar lo que todos queremos, ser “superusuario” (r00t).
Pero también tenemos otro enfoque.. que sea un trabajador interno el que trate de hacer saltar las vulnerabilidades que existan .. y teniendo en cuenta que cuenta con más información que en el caso anterior, el atacante “de fuera”, la probabilidad de que alcance el objetivo  “root” dentro de la corporación puede ser cuestión de horas ( o minutos J )
La elevación de privilegios a superusuario también se la conoce como escalada de privilegios

ATACANTE LOCAL = ATAQUE LOCAL.
En casi todos los casos, los firewalls están configurados para restringir el acceso desde sistemas y redes externas, pero el tráfico que proviene de la interfaz interna 127.0.0.1, por línea general no suele tener ningún tipo de restricción, es más, filtrar el tráfico de esta interfaz provoca directamente que muchas aplicaciones tengan problemas de funcionamiento y es por ello que os vamos a fijar en esto aprovechando que este camino puede estar abierto con una probabilidad alta.
Bueno, pues un usuario local, el trabajador, puede perfectamente intentar scanear, enumerar y explotar servicios locales a los que no se tiene acceso desde el exterior,y aquí nos encontramos con dos posibilidades:
1-Que el atacante interno de la empresa eleve privilegios directamente mediante explotación de servicios vulnerables en la empresa siendo root de manera cuasi-inmediata ya que ya tiene privilegios dentro del sistema
2-Que el atacante interno tengan apoyo de un atacante externo.. el atacante interno explotará servicios que estén dentro del ámbito del objetivo y esta información será entregado al atacante exterior para que se realice un ataque más elaborado …
Dependiendo de la naturaleza, porque si el atacante-trabajador ya ha explotado servicios para que estén accesibles desde el exterior, Metasploit hará el resto, ya que también se encargará de borrar todas las huellas y revisar que su “compañero” también hizo lo propio.
Si algo se le olvidó por borrar en el camino, el atacante externo finalizará el borrado de logs.

PERMISOS DE FICHEROS , GRUPOS Y ‘OTROS’ INCORRECTOS
Lo que debemos tener claro para empezar desde 0 en esto son los permisos de ficheros en Linux y si estos permisos están establecidos de manera incorrecta pues serán la causa de que un usuario malintencionado lea lo que no debe leer o escriba donde no debe escribir.
Se debe tener mucho cuidado con los permisos otorgados siempre y no hacerlo a lo “loco”… puede ser la diferencia, asi que, cuidado cuando otorgáis permisos en Linux … mejor es siempre consultar a dejar algo en manos de los “otros”.
   $Buscando ficheros propiedad de grupos
Vamos a imaginarnos que yo he conseguido acceder a un sistema con la cuenta de una persona que se llama ‘juan’.
Que es lo primero que hago?
$ id
Uid=500(juan) gid=500(juan) groups=500(juan),501(highsec)
Ya he averiguado que ‘juan’ pertenece al grupo ‘highsec’ por lo tanto..
Que es lo segundo que hago?
Pues yo intentaría localizar los ficheros que pertenecen al grupo ‘highsec’
$ find / -group highsec –print 2>/dev/null
/var/highsec/main.c
/var/highsec/main.o
/var/highsec/README
/var/highsec/passwd.txt
/var/log/highsec

Que sabemos?
Pues los ficheros de ‘highsec’ a los que tienes acceso ‘juan’.. y el fichero passwd.txt puede ser interesante..
$ more /var/highsec/passwd.txt
Recordar que este programa se autentica con MySQL usando la contraseña
“highsec123456.”
Alguno se estará preguntando por qué he hecho este ejemplo.
Bien, para que vayas despertando y viendo que se debe hacer porque metasploit no
siempre lo tendrás …
Otro motivo para que empieces a pensar por qué rincones puedes hacerlo y porque
casi siempre ME HA FUNCIONADO.. como la mayoría de  administradores REUTILIZAN
las contraseñas, si la que se utiliza para la base de datos MySQL fuera la misma que la de superusuario del sistema, pues directamente …rápido, fácill y simple 

Que hago ahora?
$ su –
Password: highsec123456.
$ id
uid=0(root) gid=0(root) groups=0(root), 1(bin), 2(daemon), 3 (sys), 4(adm),6(disk),10(wheel)
Lo que se pretende es que vayáis viendo que opciones debéis tener en la cabeza cuando estéis dentro del sistema… porque a más de uno le veo dentro de un Linux sin sus “super tools” de la muerte sin saber ni a donde ir y lo que es peor, no sabe como ir.
Cada maestrillo tiene su librillo y cada uno irá por donde le plazca, por donde pueda o se moverá según las circunstancias concretas del ataque…
Lo que no podeis es usar metasploit para todo y NO SABER que es y como funciona la elevación de privilegios a ‘manopla’.
Esto que os he mostrado el algo habitual que siempre he hecho y ya se te queda en la cabeza a donde ir,ya que , por ejemplo, que los administradores USEN Y REHUSEN las contraseñas es MÁS QUE COMÚN
Por lo tanto, todas las opciones que pueden existir para que vayáis a sitios concretos que vosotros sepáis ya que conocéis el entorno (por ejemplo) puede ser el camino perfecto para elevar vuestros privilegios
Continuará
Un saludo
Juan Carlos García
Live Free Or Die Hacking


Entradas populares de este blog

Proteger ASP.NET de inyecciones SQL How T0? BEST PRACTICES

CERTIFICACIONES DE SEGURIDAD

HACKING MADRID_"EASY" XSS and Cross Site Tracing XST