malas compañías - owasp · elevación de privilegios 1) shell con acceso al filesystem 2) acceso...
TRANSCRIPT
![Page 1: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/1.jpg)
Malas Compañías
Fabian Martinez PortantierCo-Founder, Securetia
OWASP LATAM Tour 2017 - Argentina
![Page 2: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/2.jpg)
Caso Real: Penetration Test
No se va a divulgar el nombre real del cliente
El cual maneja información confidencial
![Page 3: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/3.jpg)
Caso Real: Penetration Test
Infraestructura con dos aplicaciones web:
-> Sitio web principal de la empresa-> Aplicación para carga de reclamos
![Page 4: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/4.jpg)
Sitio Web Principal
-> Ubuntu GNU/Linux-> Apache HTTPd-> MySQL-> Wordpress
![Page 5: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/5.jpg)
Sitio Web Principal
-> Ubuntu GNU/Linux- Actualizado
-> Apache HTTPd-> MySQL-> Wordpress
![Page 6: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/6.jpg)
Sitio Web Principal
-> Ubuntu GNU/Linux- Actualizado
-> Apache HTTPd- Actualizado
-> MySQL-> Wordpress
![Page 7: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/7.jpg)
Sitio Web Principal
-> Ubuntu GNU/Linux- Actualizado
-> Apache HTTPd- Actualizado
-> MySQL- Sólo accesible desde localhost
-> Wordpress
![Page 8: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/8.jpg)
Sitio Web Principal-> Ubuntu GNU/Linux
- Actualizado-> Apache HTTPd
- Actualizado-> MySQL
- Actualizado y sólo accesible desde localhost-> Wordpress
- Desactualizado, sin nada grave
![Page 9: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/9.jpg)
Aplicación de Reclamos
-> Ubuntu GNU/Linux-> Apache HTTPd-> PHP 5.x
* Aplicación legacy, sin mantenimiento* Evidentemente, desarrollada muy rápido
![Page 10: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/10.jpg)
Aplicación de Reclamos
Vulnerabilidad en el módulo de file upload
-> Permitía subir cualquier tipo de archivo-> Permitía acceder a los archivos subidos
![Page 11: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/11.jpg)
Aplicación de Reclamos
Subir cualquier archivo + Accederlo = Web Shell
![Page 12: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/12.jpg)
Remote Hell - PHP Shell
-> Shell PHP propia-> 54 líneas de código-> Soporta GET y POST-> Permite autenticar las peticiones-> Servidor: rhell.php-> Cliente: rh (Bash)
![Page 13: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/13.jpg)
Remote Hell - PHP Shell - ¿Why?
-> Curiosidad
-> No querer meter nada “raro” en el server
![Page 14: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/14.jpg)
Remote Hell - PHP Shell
# enviar config.php remoto a nuestro equipo
rh cat config.php | grep PASSWORD > pass.txt
https://github.com/portantier/rhell
![Page 15: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/15.jpg)
Aplicación de Reclamos
-> Shell con permisos de www-data (apache)-> Base de usuarios en formato YAML-> Usuarios con password por defecto (123456)
(la aplicación NO permitía cambiar password)
![Page 16: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/16.jpg)
Aplicación de Reclamos
La aplicación, en si misma, no contenía ningún dato de interés, pero...
![Page 17: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/17.jpg)
Apache
MySQL
Wordpress Reclamos
Todo en el mismo servidor !
![Page 18: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/18.jpg)
Elevación de Privilegios
1) Shell con acceso al filesystem2) Acceso a wp-config.php (password MySQL)3) Login a la base de datos4) Extracción de datos confidenciales5) Usuarios y hashes de Wordpress6) Cracking -> Passwords de Wordpress7) Reutilización de Passwords -> más accesos
![Page 19: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/19.jpg)
Solución: Separación de Ambientes
1) Servidores separados físicamente
2) Servidores virtuales
3) Contenedores (docker)
![Page 20: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/20.jpg)
Solución: Análisis de MIME Type
1) Definir formatos de archivo permitidos
2) Verificar tipo de archivo subido
3) Bloquear o eliminar archivos no permitidos
![Page 21: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/21.jpg)
Solución: Apache mod_app_armour
1) Cada virtual host con permisos diferentes
2) Definición de permisos granulares
![Page 22: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/22.jpg)
Solución: Apache mod_security
1) Reglas para bloquear archivos con código
2) Detección de exfiltración de datos
![Page 23: Malas Compañías - OWASP · Elevación de Privilegios 1) Shell con acceso al filesystem 2) Acceso a wp-config.php (password MySQL) 3) Login a la base de datos 4) Extracción de datos](https://reader031.vdocuments.site/reader031/viewer/2022022105/5bdf104809d3f233118bb8a7/html5/thumbnails/23.jpg)
Muchas Gracias!
¿Preguntas?