Ataques a Aplicaciones Web
Las aplicaciones web son comunes en la mayoría de los entornos, si no en todos, en los que nos encontramos como pentesters. Durante nuestras evaluaciones, nos encontraremos con una amplia variedad de aplicaciones web, como sistemas de gestión de contenido (CMS), aplicaciones web personalizadas, portales de intranet utilizados por desarrolladores y administradores de sistemas, repositorios de código, herramientas de monitorización de red, sistemas de tickets, wikis, bases de conocimiento, rastreadores de problemas, aplicaciones de contenedores de servlets y más. Es habitual encontrar las mismas aplicaciones en muchos entornos diferentes. Si bien una aplicación puede no ser vulnerable en un entorno, puede estar mal configurada o sin parches en el siguiente. Un evaluador debe tener un conocimiento sólido de cómo enumerar y atacar las aplicaciones comunes que se tratan en este módulo.
Las aplicaciones web son aplicaciones interactivas a las que se puede acceder a través de navegadores web. Las aplicaciones web suelen adoptar una arquitectura cliente-servidor para ejecutarse y gestionar las interacciones. Suelen estar formadas por componentes front-end (la interfaz del sitio web o "lo que ve el usuario") que se ejecutan en el lado del cliente (navegador) y otros componentes back-end (código fuente de la aplicación web) que se ejecutan en el lado del servidor (servidor back-end/bases de datos).
Todos los tipos de aplicaciones web (comerciales, de código abierto y personalizadas) pueden sufrir los mismos tipos de vulnerabilidades y configuraciones incorrectas, a saber, los 10 principales riesgos de las aplicaciones web cubiertos en el Top 10 de OWASP . Si bien podemos encontrar versiones vulnerables de muchas aplicaciones comunes que sufren vulnerabilidades conocidas (públicas), como inyección SQL, XSS, errores de ejecución de código remoto, lectura de archivos locales y carga de archivos sin restricciones, es igualmente importante para nosotros comprender cómo podemos abusar de la funcionalidad incorporada de muchas de estas aplicaciones para lograr la ejecución remota de código.
Datos de la aplicación
En este módulo se estudiarán en profundidad varias aplicaciones comunes y se abordarán brevemente otras menos comunes (pero que se ven a menudo). Algunas de las categorías de aplicaciones que podemos encontrar durante una evaluación determinada y que podemos aprovechar para ganar terreno o acceder a datos confidenciales incluyen:
Categoria
Aplicación
Joomla, Drupal, WordPress, DotNetNuke, etc.
Apache Tomcat, Phusion Passenger, Oracle WebLogic, IBM WebSphere, etc.
Splunk, Trustwave, LogRhythm, etc.
PRTG Network Monitor, ManageEngine Opmanger, etc.
Nagios, Puppet, Zabbix, ManageEngine ServiceDesk Plus, etc.
JBoss, Axis2, etc.
osTicket, Zendesk, etc.
Elasticsearch, Apache Solr, etc.
Atlassian JIRA, GitHub, GitLab, Bugzilla, Bugsnag, Bitbucket, etc.
Jenkins, Atlassian Confluence, phpMyAdmin, etc.
Oracle Fusion Middleware, BizTalk Server, Apache ActiveMQ, etc.
Como puede ver al navegar por los enlaces de cada categoría anterior, existen miles de aplicaciones que podemos encontrar durante una evaluación determinada. Muchas de ellas sufren vulnerabilidades conocidas públicamente o tienen funciones que se pueden aprovechar para obtener ejecución remota de código, robar credenciales o acceder a información confidencial con o sin credenciales válidas. Este módulo cubrirá las aplicaciones más frecuentes que vemos repetidamente durante las evaluaciones internas y externas.
Echemos un vistazo al sitio web de Enlyft. Podemos ver, por ejemplo, que pudieron recopilar datos sobre más de 3,7 millones de empresas que utilizan WordPress , lo que representa casi el 70 % de la cuota de mercado mundial de aplicaciones de gestión de contenido web para todas las empresas encuestadas. En el caso de la herramienta SIEM, Splunk fue utilizada por 22 174 de las empresas encuestadas y representó casi el 30 % de la cuota de mercado de herramientas SIEM. Si bien las demás aplicaciones que cubriremos representan una cuota de mercado mucho menor para su respectiva categoría, aún las veo a menudo y las habilidades aprendidas aquí se pueden aplicar a muchas situaciones diferentes.
Aplicaciones comunes
Normalmente me encuentro con al menos una de las aplicaciones que se indican a continuación, que abordaremos en profundidad en las secciones del módulo. Si bien no podemos cubrir todas las posibles aplicaciones que podemos encontrar, las habilidades que se enseñan en este módulo nos prepararán para abordar todas las aplicaciones con un ojo crítico y evaluarlas en busca de vulnerabilidades públicas y configuraciones incorrectas.
Aplicación
Descripción
WordPress
Drupal
Joomla
Apache Tomcat
Jenkins
Splunk
PRTG Network Monitor
osTicket
GitLab
Objetivos del módulo
A lo largo de las secciones del módulo, haremos referencia a direcciones URL como http://app.inlanefreight.local
. Para simular un entorno grande y realista con varios servidores web, utilizamos Vhosts para alojar las aplicaciones web. Dado que todos estos Vhosts se asignan a un directorio diferente en el mismo host, tenemos que realizar entradas manuales en nuestro archivo /etc/hosts
en la máquina virtual de ataque local para interactuar con el laboratorio. Esto debe hacerse para cualquier ejemplo que muestre escaneos o capturas de pantalla utilizando un FQDN. Las secciones como Splunk que solo utilizan la dirección IP del objetivo generado no requerirán una entrada en el archivo de hosts, y puede interactuar simplemente con la dirección IP generada y el puerto asociado.
Para hacer esto rápidamente, podríamos ejecutar lo siguiente:
Después de este comando, nuestro archivo /etc/hosts
se vería así:
Última actualización
¿Te fue útil?