Symlink, una vulnerabilidad de servidor Apache, como con ella lograr comprometer todo el servidor y tomar control de todo.
Charla presentada en: Universidad Simon Bolivar.
2. DYLAN IRZI
• @Dylan_Irzi11
• Auditor de Seguridad Web, Auditor De Redes Inalámbricas.
• Especialista en SEO.
• White-Hat.
• Programador En Lenguajes PHP , JavaScript, HTML , Visual Basic.
• Fundador Junto a @Yarolinux de
• www.WebSecuritydev.com
3. YAROL
• @Yarolinux
• Auditor Seguridad Web, Auditor De Redes Inalámbricas.
• White-Hat.
• Programador En Lenguajes PHP , JavaScript, HTML.
• Cofundador de WebSecurityDev.com
4. «CON SYMLINK HASTA LA COCINA»
• Básicamente estaré explotando la seguridad de los servidores Apache , con la
vulnerabilidad Symlink, que cada día se empieza a difundir mas y mas en la comunidad
de Hackers.
• Para esto Mostrare como se explota, como se soluciona & un ataque de Symlink En
vivo!
5. SYMLINK QUE ES?
• Symlink es un método para hacer referencia a otros archivos y carpetas en Linux,
con el fin de hacer el trabajo más rápido Linux. (Seria cono un acceso directo en
Windows.)
• Symlink es una técnica de hacking utilizado para obtener acceso no autorizado a las
carpetas en un servidor; Usando esta técnica una hackers son capaces de hackear
varios sitios en un servicio de alojamiento web compartido.
6. SYMLINK – MAPA DE ATAQUE -
Otros sitios
Otros sitios
Otros sitios
Otros sitios
Otros sitios
Servidor
Otros sitios
Otros sitios
Web Vulnerable
Web Vulnerable
Web Vulnerable
Web Vulnerable
Web Vulnerable
Servidor
Otros sitios
Otros sitios
Explotando Symlink
Web Vulnerable
Web Vulnerable
Web Vulnerable
Web Vulnerable
«Es como el rooting pero sin matarte tanto!»
7. ANTES DE EXPLOTAR SYMLINK
Antes de empezar a explotar symlink, hay que tener en cuentas las siguientes caracteristicas
o ‘requisitos’ el Servidor.
• *Shell Up En algún sitio del Servidor.
• *El Servidor debe tener la siguiente estructura /Home/$User/Public_html/
• Que se puedan Visualizar los etc/passwd (Aunque se Pueden Bypass )
• Que se puedan Vizualizar los /etc/named.conf (Tambien se Puede Bypass)
8. EMPEZANDO A EXPLOTAR SYMLINK
• Empezamos.. Tenemos ya shell up en un server. Y verifcamos si se leen los etc/passwd
9. EXPLOTANDO SYMLINK
Empezamos y creare una carpeta en el sitio para hacer el symlink totalmente limpio.
Llamare a la carpeta “x”
• Mkdir x
Entraremos a esa carpeta, y lo que haremos es Sacar el /root Con los siguiente comando:
• ln -s / root
Automáticamente nos debe salir en la carpeta el enlace / root
Este nos dará la posibilidad de mirar todo el servidor.
12. LOCALIZANDO OBJETIVO.
• Luego de haber sacado el root debemos dar reversa a la ip del servidor y localizar un
website del servidor con alguna CMS ( Joomla, Worpress , Etc…”) Con el fin de sacar la
configuracion de la base de datos. En mi caso ya tengo un objectivo del servidor que es:
Podemos “Bingear” Usando :
• IP:$IpDelServer$ Joomla
• IP:$IpDelServer$ Worpress
• ej: IP: 182.111.40.21 Siendo $IpDelServer$ La Variable ( La ip de el servidor ) Una vez
sacado un objetivo se debe buscar..
13. VIZUALIZANDO OBJETIVO
• el nombre ese sitio en el servidor y lo prodremos hacer con este comando:
• ls -la /etc/valiases/$site.com
• Solo remplazas $site.com por el sitio escojido dentro del servidor y Wala! Tendras el
nombre del sitio en el servidor.. yo voy a hacerlo con un tienda hecha en worpress.
14. VIZUALIZANDO CONFIG.
• Se Guarda el nombre que te dio el nombre ( Parte subrayada en la imagen ) y nos
devolvemos de nuevo a la carpeta del root y empezamos a ingresar por medio de la url:
• sitio/x/root/
• sitio/x/root/home/
• sitio/x/root/home/$Nombre/
• Sitio/x/root/home/$Nombre/Public_html/
• Sitio/x/root/home/$Nombre/Public_html/wp-config.php ( Config de la Worpress )
17. SYMLINK BYPASS
• Bueno Habra caso donde no de logre visualizar la config por q te diga “forhiben” Para eso
solo debes subir un .htaccess a la carpeta /x/ con esto adentro:
Options Indexes
FollowSymLinks
DirectoryIndex ssssss.htm
AddType txt .php AddHandler txt .php
• y bueno ya solo falta ingresar a la DB , Cambiar la pass y entrar ! #HappyHacking!
18. AHORA PENSEMOS…
• Usando Symlink, ya no es necesario hacer un ataque
directo aun sitio. Usando este método, podremos
‘hackear’ un website del servidor y usarlo para entrar al
verdadero objetivo.
19. MAPA DE ATAQUE.
Sitio Vulnerable
Otros sites
Otros sites
Server
Otros sites
Otros sites
Objetivo
Hacker
S
y
m
L
I
n
k
22. «SYMLINK EUROPEO» YAROLINUX
• Básicamente el Symlink Europeo o Symlink en
servidores Parallels Plesk Panel
• Este tiene otro Tipo de Estructura.
Que es el Siguiente:
• Var/www/vhosts/
23. SYMLINK EUROPEO
• El error se encontró en los sistemas que manejaban
esa estructura /var/www/vhosts/ usando los mismos
comandos de el symlink y vizualizar archivos del
servidor sin permiso. Listando los otros sitios del
servidor sin nesecidad de Reversear DNS.
24. EXPLOTANDO SYMLINK EUROPEO
• Empezamos teniendo una shell up en un servidor con la estructura ya mencionada.
Luego empezamos a ejecutar los siguientes comandos:
• Listamos los sitios del servidor :
• ls /var/www/vhosts/
• Inmediatamente al ejecutar ese codigo nos mostrara la lista de sitios en el servidor:
25. SYMLINK EUROPEO PWND!
• Luego de listar los dominios, miraremos que tiene cada dominio (ficheros) y utilizamos el
comando:
• Ls –l /var/www/vhosts/*/httpdocs/
• Con este comando se nos vizualizaran todos los archivos del servidor de todos los
dominios
26. SYMLINK EUROPEO PWND!
• Lo que debemos hacer es localizar un carpeta dentro del sitio,
la cual nos dará la oportunidad de copiar nuestra Shell en otro
dominio del servidor.
• Ya teniendo el target definido empezamos:
• Guardamos la ubicación completa. Ej.:
• /var/www/vhosts/sitiovulnerable.com/httpdocs/tmp/
• Le añadimos la carpeta del sitio : /tmp/
27. SYMLINK EUROPEO PWND!
• Y ahora usamos toda esa dirección para hacer una copia de nuestra Shell ejecutamos el
comando de copiar + archivo + dirección
Cp 404.php /var/www/vhosts/sitiovulnerable.com/httpdocs/tmp/
Ya tenemos la Shell copiada a otro dominio y solo es abrir vía url.
#HappyHacking!
28. CONCLUSIONES
• El Symlink puede ser una vulnerabilidad critica , que si
no se soluciona en los servidores, muy fácilmente
pueden caer muchos sitios del mismo hosting
compartido.
Esta vulnerabilidad se soluciona deshabilitando la función
del servidor «FollowSymlink» & «Open_Base_Dir»
Evitando de esa manera el enlace symbolico a /root y el
copiado de archivos entre usuarios.
29. GRACIAS!
Síguenos en Twitter !
• @Dylan_Irzi11 & @Yarolinux
• Y Visita nuestro Sitio:
www.WebSecurityDev.com