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