gastón toth ceh · gastón toth [email protected] lic. en computación ceh pentester...

48

Upload: others

Post on 23-Oct-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

  • Gastón [email protected]

    ● Lic. en Computación● CEH● Pentester● Desarrollador● @OWASP_Patagonia

  • Dónde queda OWASP Patagonia?

  • Webapp pentesting...desde un enfoque no muy técnico

  • Penetration testing es el “arte” de analizar una aplicación en ejecución sin conocer su funcionamiento interno para encontrar vulnerabilidades de seguridad

    OWASP Testing Guide

  • ¿Por qué hacer un pentest?Conocer el estado de seguridad en un momento determinado

    Buscar falencias en las configuraciones

    Cumplir con los requerimientos para las certificaciones

    Evitar posibles ataques que puedan llevar a pérdidas de dinero y/o a generar una mala imagen a la organización

  • Puntos importantes en un pentest: - Obtener la mayor cantidad de información posible - Determinar la tecnología utilizada - Comprender el entorno - Entender la lógica de la aplicación - Observar el funcionamiento normal de la aplicación - Modificar cada punto de entrada y ver como se comporta - Detectar y explotar vulnerabilidades - Buscarle la vuelta - Y buscarle la vuelta

  • Obtención de información

  • Google hacking

    Utilizar operadores para filtrar búsquedas● site:owasp.org● site:owasp.org intitle:index.of● "BEGIN RSA PRIVATE KEY" filetype:key ● site:owasp.org -site:www.owasp.org

    http://www.owasp.org/

  • Google hacking● inurl:admin/login.php● ext:sql intext:username intext:password● filetype:pdf | filetype:doc | filetype:xls● intitle:Router New Generation & inurl:/home.asp● inurl:/control/userimage.html

  • ¿Qué se puede encontrar?● Usuarios y contraseñas● Formularios de acceso● Mensajes de error● Dispositivos hardware online● Archivos con información sensible

    https://www.exploit-db.com/google-hacking-database/

  • Por ejemplo:

    filetype:bash_history

  • Copias de archivos

    Archivos del tipo:● Index.php.old● Config.php.bak● Conexion.cgi~

    Permiten la lectura del archivo en texto plano, haciendo posible la comprensión de la lógica de la aplicación.

  • Otros lugares donde buscar:

    bing.comarchive.orgpastebin.comstackoverflow.comshodan.io

    y muchos mas ...

  • En un foro de programación: … ayuda para hacer un programa que envíe un correo cierto día … … copio el código para que me puedan decir que está mal …

  • Identificación de tecnología

    En necesario saber la tecnología de los servidores que estamos analizando.

    Las pruebas para un servidor Apache no serán las mismas que para uno con IIS.

    Igualmente para las bases de datos, sistemas operativos, etc.

  • Identificación de tecnología de servidor web● Banner - Cabecera Server

  • Identificación de tecnología de servidor web● Mensajes de error

  • Identificación de tecnología de servidor web● Análisis de comportamiento

    - Orden de las cabeceras- Malformed requests

  • Y cuando nada de eso funciona ...

  • Una vez que se obtiene el tipo de tecnología y la versión utilizada, se pueden buscar las vulnerabilidades conocidas en:

    ● http://osvdb.org/● http://www.securityfocus.com/bid● http://cve.mitre.org/● … y otros

    http://www.securityfocus.com/bidhttp://cve.mitre.org/

  • Enumeración de aplicaciones

    Es el proceso de identificación de aplicaciones web instaladas en una infraestructura determinada.Es muy importante identificar las distintas aplicaciones que corren en un servidor ya que pueden encontrarse casos de programas de mucha seguridad que comparten el servidor con otros que son vulnerables, en cuyo caso la seguridad puede verse comprometida en su totalidad.

  • Enumeración de aplicaciones

    Webservers en diferentes puertosEjemplo: - Puerto 80: Aplicación de e-commerce - Puerto 8080: Portal administrativo

  • Enumeración de aplicaciones

    Aplicaciones en diversas URL

    Ejemplo:- www.target.com/ → Drupal- www.target.com/test → Joomla- www.target.com/blog → Wordpress

    Se puede lograr mediante crawling o fuerza bruta

    http://www.target.com/http://www.target.com/testhttp://www.target.com/blog

  • Archivo “robots.txt”

    Nunca debe pensarse como mecanismo de protección!

  • OWASP Dirbuster Herramienta para buscar archivos y directorios por fuerza bruta

  • Enumeración de aplicaciones

    Servidores virtualesPermiten tener una cantidad variable de dominios y sitios web en una misma máquina. Los sitios web alojados comparten los recursos disponibles.El campo “Host” de la cabecera HTTP permite identificar al host virtual al que estamos haciendo referencia.

  • Enumeración de aplicaciones

    Un solo host desprotegido puede comprometer toda la seguridad.

    www.sitioseguro.com

    www.superseguro.com IP: xx.xx.xx.xx

    www.desprotegido.com

  • Conocer el entornoeth0Ip pub 1

    eth1192.168.1.2

    eth0: password protectedeth1: trust internal servers

    eth0Ip pub 2

    eth1192.168.1.3

    Sitio de pruebas

  • Ips vecinas y relaciones de confianzaeth0Ip pub 1

    eth1192.168.1.2

    eth0: password protectedeth1: trust internal servers

    eth0Ip pub 2

    eth1192.168.1.3

    Sitio de pruebas

    Con

    fianz

    a

  • Hasta acá no ha sido muy difícil y ya tenemos

    MUCHA INFORMACIÓN

    sobre el objetivo

  • Luego, debemos buscar los fallos en cada uno de los sistemas encontrados en las etapas previas.

  • Búsqueda de fallos Automático: Es muy rápido y puede detectar varias fallas de las aplicaciones y servidores en pocos minutos.

    Manual: Es más lento pero se pueden hacer pruebas que ninguna herramienta automática podría hacer.

  • Análisis automático● ZAP● w3af● Acunetix ● Burp● Vega● Wapiti● Nikto● Arachni

  • Modificación de puntos de entrada● Métodos (GET, POST, PUT, ...) ● Parámetros ● Headers● Cookies● URLs

    Se busca ingresar valores que generen un comportamiento no planificado en la aplicación y que no cuenten con la validación necesaria

  • ¿Que se puede hacer modificando estos puntos de entrada?

    ● Inyección SQL // Ver: SQL Injection Deep Dive● Cross Site Scripting // Ver XSS - from alert to pwnage● Inyección LDAP● Inyección XML● Inyección ORM● Inyección HTML

    … etc

  • Dato interesante:Existen otras alternativas, como un código de barras o formularios escritos en papel, que serán escaneados y parseados por un OCR y el código que lo lee puede ser vulnerable a inyecciones.

  • Lógica de la aplicación

    Este tipo de vulnerabilidad no puede ser detectado por ninguna herramienta y depende únicamente de los conocimientos y creatividad del consultor.

  • Lógica de la aplicación

    Generalmente aquí se encuentran los fallos con mayor impacto.

    - Fraude- Degradamiento de imagen - Robo

  • Consejos para aprender pentesting● Instalar y configurar servidores● Desarrollar en distintas tecnologías● Instalar y probar diversos CMS● Asistir a eventos de OWASP ;)● Participar de CTFs● Bug bounties

  • ¿Dónde encontrar más información sobre webapp pentesting?

    https://www.owasp.org/index.php/OWASP_Testing_Project

  • ¿Preguntas?

  • MUCHAS GRACIAS

    @[email protected]

    Diapositiva 1Diapositiva 2Diapositiva 3Diapositiva 4Diapositiva 5Diapositiva 6Diapositiva 7Diapositiva 8Diapositiva 9Diapositiva 10Diapositiva 11Diapositiva 12Diapositiva 13Diapositiva 14Diapositiva 15Diapositiva 16Diapositiva 17Diapositiva 18Diapositiva 19Diapositiva 20Diapositiva 21Diapositiva 22Diapositiva 23Diapositiva 24Diapositiva 25Diapositiva 26Diapositiva 27Diapositiva 28Diapositiva 29Diapositiva 30Diapositiva 31Diapositiva 32Diapositiva 33Diapositiva 34Diapositiva 35Diapositiva 36Diapositiva 37Diapositiva 38Diapositiva 39Diapositiva 40Diapositiva 41Diapositiva 42Diapositiva 43Diapositiva 44Diapositiva 45Diapositiva 46Diapositiva 47Diapositiva 48