64
1 UNIVERSIDAD POLITÉCNICA DE SINALOA PROGRAMA ACADÉMICO DE INGENIERÍA EN INFORMÁTICA Tesina Pruebas de Intrusión a Aplicaciones Web Y Seguridad en Aplicaciones WebPara cumplir la acreditación de las estadías profesionales y contar con los créditos necesarios para obtener el grado de Ingeniero en Informática Autor: Aarón Enrique Moreno Imperial Asesor: Dr. Rodolfo Ostos Robles. Asesor OR: MSI. Rosa Karina Gonzales Trigueros

Y Seguridad en Aplicaciones Web

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Y Seguridad en Aplicaciones Web

1

UNIVERSIDAD POLITÉCNICA DE SINALOA PROGRAMA ACADÉMICO DE

INGENIERÍA EN INFORMÁTICA

Tesina

“Pruebas de Intrusión a Aplicaciones Web Y Seguridad en Aplicaciones Web”

Para cumplir la acreditación de las estadías profesionales y contar con los créditos necesarios para obtener el grado de Ingeniero en Informática

Autor:

Aarón Enrique Moreno Imperial

Asesor:

Dr. Rodolfo Ostos Robles.

Asesor OR:

MSI. Rosa Karina Gonzales Trigueros

Page 2: Y Seguridad en Aplicaciones Web

2

Mazatlán, Sinaloa 22 de septiembre de 2017

Tabla de contenido Tabla de Imágenes ................................................................................................................................... 5

Contenido de tablas ............................................................................................................................... 6

Glosario ..................................................................................................................................... 7

Resumen .....................................................................................................................................9

Summary .....................................................................................................................................9

Introducción .............................................................................................................................12

Antecedentes ............................................................................................................................13

Objetivos de la empresa........................................................................................................................ 13

Organigrama de la empresa .................................................................................................................. 14

Misión ................................................................................................................................................. 14

Visión .................................................................................................................................................. 14

Planteamiento del Problema ..................................................................................................15

Justificación .............................................................................................................................16

Objetivos generales y específicos ...........................................................................................16

Hipótesis ...................................................................................................................................17

Limitaciones .............................................................................................................................17

Marco referencial ....................................................................................................................18

Fundamentos teóricos de seguridad informática .............................................................................. 19

Seguridad en aplicaciones web .......................................................................................................... 21

Vulnerabilidades web ......................................................................................................................... 22

Cross-site Scripting ......................................................................................................................... 22

SQL injection .................................................................................................................................. 24

Cross-site request forgery .............................................................................................................. 24

Remote file inclusion ..................................................................................................................... 25

Buffer overflow .............................................................................................................................. 27

Metodología OWASP ........................................................................................................................ 28

Modo Pasivo .................................................................................................................................. 28

Modo Activo ................................................................................................................................... 28

Page 3: Y Seguridad en Aplicaciones Web

3

Metodología ISSAF ............................................................................................................................ 29

Recopilación de información ......................................................................................................... 29

Mapeo de la red ............................................................................................................................. 29

Identificación de vulnerabilidades ................................................................................................. 32

Intrusión ......................................................................................................................................... 33

Ganando acceso y escalando privilegios ....................................................................................... 33

Enumeración adicional ................................................................................................................... 33

Comprometer usuarios / sitios remotos ........................................................................................ 34

Mantener el acceso ........................................................................................................................ 34

Cubriendo Pistas ............................................................................................................................ 34

Reporte Final .................................................................................................................................. 35

Clasificación de pentest .......................................................................................................................... 36

Pruebas basadas en información ....................................................................................................... 37

Pruebas por el punto inicial de los ataques ....................................................................................... 38

Herramientas de pruebas de intrusión ......................................................................................... 41

Herramientas de análisis de sistema operativo y servicios ............................................................... 41

Nmap .............................................................................................................................................. 41

Nessus ............................................................................................................................................ 42

Herramientas para explotar vulnerabilidades web............................................................................ 43

SQLMAP ......................................................................................................................................... 43

BEEF framework ............................................................................................................................. 44

Herramientas de intrusión de infraestructura de red ........................................................................ 45

Metasploit ...................................................................................................................................... 45

Armitage......................................................................................................................................... 45

Herramientas de acceso remoto ........................................................................................................ 46

WEEVELY ........................................................................................................................................ 46

Resultados ................................................................................................................................. 48

Introducción ....................................................................................................................................... 49

Metodología de desarrollo ................................................................................................................. 49

Elección de la metodología ................................................................................................................ 49

Implementación del pentest ............................................................................................................. 50

Resultados .......................................................................................................................................... 51

Page 4: Y Seguridad en Aplicaciones Web

4

Identificación de los riesgos ............................................................................................................... 54

Recomendaciones .............................................................................................................................. 56

Conclusiones ...................................................................................................................................... 57

Referencias bibliográficas ....................................................................................................... 58

Page 5: Y Seguridad en Aplicaciones Web

5

Tabla de Imagenes Imagen Organigrama de Universidad Politécnica de Sinaloa 1.1. .....................................10

Imagen Modelo CIA 2.1 ..........................................................................................................16

Imagen XSS reflejado 2.2 ......................................................................................................18

Imagen Stored xss 2.3..............................................................................................................19

Imagen Ejemplo de un ataque CSRF 2.4 ..............................................................................21

Imagen Ejemplo de una imagen con payload 2.5 .................................................................22

Imagen Ejemplo de conexión reversa 2.6 ..............................................................................23

Imagen Ejemplo de buffer overflow 2.7 ................................................................................23

Imagen Ejemplo de inspección con firebug Ajax apps 2.8 ..................................................25

Imagen Flujo de trabajo 2.9 ...................................................................................................26

Imagen Metodología de pentest 2.10 .....................................................................................28

Imagen clasificación de penetration test 2.11 .......................................................................32

Imagen penetration testing en una red interna analizando paquetes del servicio ftp ......34

Imagen red operations CTF simulando un ataque del mundo real externo 2.13 ..............35

Imagen stealth scan 2.14 .........................................................................................................37

Imagen cliente web nessus 2.15 .............................................................................................38

Imagen sqlmap 2.16 ................................................................................................................39

Imagen Interfaz BEEF framework 2.17 ................................................................................40

Imagen metasploit pivoting 2.18 ............................................................................................41

Imagen interfaz armitage GUI 2.19 ......................................................................................42

Imagen web Shell obfuscate 2.20 ..........................................................................................43

Imagen metodologías de pentesting 3.1 ................................................................................46

Imagen código fuente de aplicación web inseguro 3.2 ........................................................47

Imagen interceptando cookies 3.3 .........................................................................................48

Imagen mostrando usuarios del servidor web 3.4 ................................................................49

Imagen exploit kernel Ubuntu 3.5 .........................................................................................50

Imagen clasificación de riesgos 3.6. .......................................................................................51

Page 6: Y Seguridad en Aplicaciones Web

6

Contenido de tablas Tabla Reglas para desarrollar aplicaciones y servicios web seguros 2.1 ...........................17

Tabla resumen resultados exitosos y fallidos testeados en el servidor web. 3.1. ...............47

Page 7: Y Seguridad en Aplicaciones Web

7

Glosario

Cloud Computing: consiste en la posibilidad de ofrecer servicios a través de Internet

OWASP: Open Web Application Security Project (OWASP)

ISSAF: information systems security assessment framework

SDLC: ciclo de vida de desarrollo de sistemas

XSS: cross site scripting

LFI: local file inclusion

RFI: remote file inclusion

CSFR: cross site forgery request

Session hijacking: secuestro o robo de sesión

Phishing: suplantación de identidad.

CVE: Common Vulnerabilities and Exposures.

HTTP: Protocolo de transferencia de hipertexto.

HTML: HyperText Markup Language (lenguaje de marcas de hipertexto).

Script: un programa usualmente simple, que por lo regular se almacena en un archivo

de texto plano.

AJAX: Asynchronous JavaScript And XML (JavaScript asíncrono y XML).

DOS: ataque a un sistema de computadoras o red que causa que un servicio o

recurso sea inaccesible a los usuarios legítimos

WHOIS: es un servicio del Internet utilizado para capturar información de una dirección de IP

o un dominio

Page 8: Y Seguridad en Aplicaciones Web

8

DNS: nombres de dominio (DNS, por sus siglas en inglés, Domain Name System)

OISSG Open Information Systems Security Group

SQL: (por sus siglas en inglés Structured Query Language; en español lenguaje de

consulta estructurada)

DBMS: por sus siglas en ingles DBMS (Data Base Management System, en español

Sistemas de Gestión de Bases de Datos (SGBD).

Payload: En seguridad informática, la carga útil es la parte del texto privado del

usuario que también podría contener malware, como gusanos o virus, que realiza la

acción maliciosa.

exploit: fragmento de datos o secuencia de comandos o acciones, utilizada con el fin

de aprovechar una vulnerabilidad de seguridad de un sistema de información.

VPN: Una red privada virtual (RPV), en inglés: Virtual Private Network (VPN)

DMZ: En seguridad informática, una zona desmilitarizada (conocida también como DMZ, sigla en

inglés de demilitarized zone) o red perimetral

Firewall: es un dispositivo de seguridad de la red que monitorea el tráfico que entra y

sale de una red

Page 9: Y Seguridad en Aplicaciones Web

9

Page 10: Y Seguridad en Aplicaciones Web

10

Page 11: Y Seguridad en Aplicaciones Web

11

Page 12: Y Seguridad en Aplicaciones Web

12

Page 13: Y Seguridad en Aplicaciones Web

13

Resumen

En la actualidad contar con tareas de pruebas de pentest hacía los distintos sistemas

de información no solo es un lujo, sino también una necesidad. Las empresas ya sean

grandes, medianas o pequeñas, deben entrar al mundo donde la información es el

activo más importante si quieren resguardar la información y proteger los datos ante

un posible ataque informático ya sea externo o desde la misma empresa y seguir

siendo competencia en el ámbito empresarial y tener esa reputación de confianza

hacia la empresa como para el cliente.

Las pruebas de pentest ayudan a las empresas a tener un mejor control de todos sus

sistemas, infraestructura de red, etc.; minimizando los riesgos de perdida de datos y

de ataques informáticos, México es uno de los países con alta demanda de

inseguridad informática que hay en el mundo, donde los usuarios no pueden estar a

gusto en un entorno digital por miedo de ser víctimas de ciberataques , robo de

identidad , secuestro del ordenador etc. Por lo tanto tener cultura de seguridad

informática no ayudara en no tener una infraestructura de red vulnerable sustentable

a ataques, sistemas informáticos vulnerables.

Page 14: Y Seguridad en Aplicaciones Web

14

Summary

Currently having pen testing tasks towards the different information systems is not only

a luxury, but also a necessity. Companies, whether large, medium or small, must enter

the world where information is the most important asset if they want to safeguard

information and protect data against a possible computer attack either externally or

from the same company and continue to be competent in the business environment

and have that reputation of trust towards the company as for the client.

Pentest tests help companies to have better control of all their systems, network

infrastructure, etc.; minimizing the risks of data loss and computer attacks, Mexico is

one of the countries with high demand for computer insecurity in the world, where users

cannot be comfortable in a digital environment for fear of being victims of cyber-attacks,

identity theft, computer hijacking etc. Therefore having a computer security culture will

not help in not having a vulnerable network infrastructure to attacks, vulnerable

computer systems.

Page 15: Y Seguridad en Aplicaciones Web

15

Capitulo I

En este capítulo se muestran temas sobre la información de la institución

Donde se realizaron las estadías, la visión, misión, entre otros.

__________________________________________________________________________________

Page 16: Y Seguridad en Aplicaciones Web

16

Introducción

La información es el activo más importante para toda organización, asegurarla trae

beneficios y confiabilidad para ella, entonces nos preguntamos ¿Dónde se encuentra

la información almacenada o quien la manipula? Es fundamental saber hoy en día la

información se encuentra una aplicación o software, pero es muy importante conocer

que el incremento de las tecnologías de la información y la comunicación y el Cloud

Computing ha llevado a alcanzar o desarrollar aplicaciones orientadas a la web

Por eso debemos preguntarnos ¿la información es realmente segura?, por lo tanto no

podemos dejar de hablar de la seguridad en aplicaciones basadas en la web, ya que

a partir de ellas podemos obtener información. Ofrecer una idea metodológica para

determinar la seguridad en una aplicación web puede ser de gran utilidad.

La idea metodológica contiene metodologías existentes tales como Open Web

Application Security Project (OWASP) e Information Systems Security Assessment

Framework (ISSAF)

OWASP es una metodología que tiene en cuenta la seguridad en el ciclo de desarrollo

de software (SDLC). Por otro lado, ISSAF es una metodología para pruebas de

intrusión en un sistema informático.

Page 17: Y Seguridad en Aplicaciones Web

17

Antecedentes

La Universidad Politécnica de Sinaloa es una institución encargada de formar

profesionistas con alta capacidad tecnológica, espíritu emprendedor y sólido bases

humanistas y generar conocimiento científico y tecnológico, mediante servicios de la

calidad sustentados en programas académicos pertinentes con un modelo educativo

basado en competencias y centrado en el aprendizaje.

El área de Ingeniería en Informática de la Universidad Politécnica de Sinaloa

actualmente lleva a cabo muchos proyectos, uno de estos es el fomentar la

importancia de la seguridad ofensiva y defensiva sobre las aplicaciones web.

Dicho proyecto se enfoca por ahora en mostrar a los alumnos las técnicas y las

metodología con la que se lleva a cabo una prueba de intrusión en aplicaciones web,

cuya finalidad es para detectar vulnerabilidades, configuraciones erróneas y más.

Objetivos de la empresa

Formar ingenieros competentes en la implementación y administración de soluciones

de negocio para la investigación basada en computadora, con una amplia visión de la

ciencia y las nuevas tecnologías de la información, bajo el modelo de educación

Page 18: Y Seguridad en Aplicaciones Web

18

basado en competencias.

Organigrama de una empresa

Imagen Organigrama de Universidad Politécnica de Sinaloa 1.1.

Misión

Formar profesionistas con alta capacidad tecnológica, espíritu emprendedor y sólidas

bases humanistas; generar, aplicar y difundir conocimiento, mediante servicios de

calidad, sustentados en programas académicos pertinentes, en un modelo educativo

basado en competencias y en estándares internacionales, contribuyendo al desarrollo

regional y del país.

Visión

La Universidad Politécnica de Sinaloa es reconocida nacionalmente, como una

institución pública de educación superior que ofrece programas educativos de

excelencia, vinculada a organismos nacionales e internacionales, desarrollando y

aplicando líneas de investigación que impulsan la asimilación, transferencia y mejora

Page 19: Y Seguridad en Aplicaciones Web

19

de la tecnología e incrementando la especialización de la fuerza laboral del país a

través de la educación continua y vinculación con el sector productivo.

Planteamiento del problema

Durante años las aplicaciones han sido vulneradas, pero más las aplicaciones web ya

que están públicas y a causa de esto cualquiera puede atacarlas remotamente

permitiendo el acceso no autorizado a datos confidenciales y causando perdida de

información. México está por debajo del promedio internacional en Seguridad

informática en la página consultada https://www.cynthus.com.mx/blog/seguridad-de-

la-informacion/mexico-y-la-seguridad-informatica/

El mundo de la informática nuestro planeta esta interconectado, nuestros sistemas

nuestras identidades, nuestra seguridad es vulnerable por no tener esa cultura de

seguridad informática.

La seguridad informática en aplicaciones web se ha convertido en un tema de

importancia, vislumbrado a través de las cifras considerables de un 39.9%[1] que se

ha convertido en un objetivo fácil cabe entonces, el preguntarse ¿porque no tener esa

cultura de seguridad informática para determinar el nivel de seguridad informática de

las aplicaciones?

La importancia de seguridad informática en las universidades debe ser más que un

requisito una importancia ya que a la falta de esto las universidades, también son

sujetas a los ataques y más si tienen un sistema escolar basado en tecnologías web

ya que es accesible de cualquier parte del mundo o por la falta de medidas de

seguridad informática ya que con conocimientos básicos en programación y redes se

puede realizar un ataque hacia la universidad desde un alumno hasta un empleado no

necesariamente tiene que ser un experto en el área de informática para que pueda

tener éxito en el ataque informático. Las universidades muchas de ellas son empresas

que realizan servicios hacia otras instituciones y sin tener las meditas correctas de

seguridad informática pueden tener fuga de información, proyectos propios de la

universidad o de quien le brindan el servicio entre muchas cosas.

Page 20: Y Seguridad en Aplicaciones Web

20

Justificación

Dado a partir del año 1982 se han incrementado los ataques a los distintos tipos de

empresas y organizaciones así como google, Yahoo!, eBay, etc. De igual forma han

evolucionado las técnicas de los atacantes para realizar delitos informáticos; surge la

necesidad de implementar las formas de proteger los sistemas informáticos.

Una de las formas es a través de pen tests es la práctica para poner a prueba un

sistema informático, red o aplicación web para encontrar vulnerabilidades que un

atacante puede explotar [2]. Debido que es una prueba de este tipo los tipos buenos

están tratando de entrar a la fuerza, usando las mismas técnicas que un atacante

realizaría para cometer los delitos.

Un pen test nos ayudará a valorar los controles de protección de la organización, así

como mostrarnos los puntos débiles de una infraestructura que a simple vista no

podemos ver.

Objetivo Generales y específicos

Desarrollar a propuesta metodológica para determinar la seguridad en las

aplicaciones, a partir del pen test para descubrir vulnerabilidades y crear más

aplicaciones más seguras y menos susceptible a fallos a seguridad.

Objetivo específicos

✓ Analizar los conceptos y fundamentos de seguridad en aplicaciones web.

✓ Determinar los tipos de vulnerabilidades en aplicaciones web.

✓ Mejorar la seguridad de una infraestructura organizacional general.

✓ Mejora la seguridad de un sistema informático, aplicación.

Page 21: Y Seguridad en Aplicaciones Web

21

Hipótesis

A partir de las pruebas de pen test los sistemas informáticos, las redes, y las

infraestructuras evitarían los problemas de se seguridad en un 90%, las aplicaciones

no serán tan vulnerables como en un principio estarán más protegidas ya que se

solucionó descubrió el fallo de seguridad a tiempo antes de que un atacante la

encontrara y explotara la vulnerabilidad.

Limitaciones

El pen test son prácticas útiles que pueden tener un valor enorme para reforzar la

seguridad de cualquier sistema o producto. Sin embargo, el pen test tiene sus

limitaciones. Primero, el pen test puede no identificar todas las vulnerabilidades debido

a la restricción de tiempo o la limitación de una prueba centrada en testear algo

específico.

Page 22: Y Seguridad en Aplicaciones Web

22

Capitulo II

___________________________________________________________________________

En este capítulo se muestran temas sobre seguridad informática, modelo CIA,

vulnerabilidades, metodologías de pruebas de intrusión y herramientas utilizadas.

__________________________________________________________________________________

Page 23: Y Seguridad en Aplicaciones Web

23

Seguridad Informática

El objetivo de la seguridad informática será mantener la confidencialidad, integridad,

disponibilidad, control y autenticidad de la información manejada por computadora. [3]

Así pues, la seguridad Informática no es otra cosa que la capacidad de proteger la

información en un sistema informático. Sin embargo, la seguridad Informática abarca

mucho más que la protección de la información, pero sin duda ésta el lado más

atractivo para los hackers, teniendo en cuenta que la información es la base

económica de las empresas.

La seguridad informática se basa en tres principios básicos:

1. Confidencialidad

2. Integridad

3. Disponibilidad

Confidencialidad

En seguridad informática, confidencialidad “es la prioridad, esa información no está

disponible ni se divulga a personas, entidades o procesos no autorizados” (ISO27000)

Integridad

En seguridad informática, integridad de datos significa mantener, y garantizar la

precisión e integridad de los datos a lo largo de todo su ciclo de vida.[3] Esto significa

que datos no pueden ser modificados de manera no autorizada o no detectada.

Disponibilidad

Para que cualquier sistema de información cumpla su propósito, la información debe

estar disponible cuando sea necesaria. Esto significa que los sistemas informáticos

utilizados para almacenar y procesar la información, los controles de seguridad

Page 24: Y Seguridad en Aplicaciones Web

24

utilizados para protegerla y los canales de comunicación utilizados para acceder a ella

deben funcionar correctamente. Los sistemas de alta disponibilidad apuntan a

permanecer disponibles en todo momento, evitando interrupciones en el servicio

debido a cortes de energía, fallas de hardware y actualizaciones del sistema.

Garantizar la disponibilidad también implica prevenir los ataques de denegación de

servicio, como una avalancha de mensajes entrantes al sistema objetivo,

esencialmente obligándolo a cerrar.[3]

Imagen Modelo CIA 2.1

Page 25: Y Seguridad en Aplicaciones Web

25

Seguridad en aplicaciones web

La organización Open Web Application Security Project (OWASP) elaboró una guía

para construir aplicaciones web seguras y servicios web seguros. Esta guía toma

cuenta vulnerabilidades antiguas hasta las más actuales como Phishing, Session

hijacking, Cross-Site Scripting (XSS), LFI, RFI y más. Esto con objetivo de ayudar a

desarrolladores, revisores de código, arquitectos de software, entre otros para tener

normas de seguridad para evitar estos problemas en el desarrollo. [4]

La guía para desarrollar Aplicaciones y servicios Web Seguros está compuesta por

los siguientes ítems:

Tabla Reglas para desarrollar aplicaciones y servicios web seguros 2.1

Page 26: Y Seguridad en Aplicaciones Web

26

Vulnerabilidades web

Son todos aquellos problemas de seguridad que afectan las páginas web, por lo

general estos problemas permiten modificación y extracción de la información, lo cual

es muy grave para las organizaciones; la mayoría de éstos son registrados por medio

de un identificador de CVE (Common Vulnerabilty Exposure), él cual es un diccionario

de las vulnerabilidades de la seguridad de información públicamente conocidas.

A continuación de hablaran algunas de las vulnerabilidades existentes:

Cross-site Scripting

Es una técnica hacking que termine a un atacante explotar vulnerabilidades en

aplicaciones web e inyectar payloads del lado del cliente.[5] Un ataque exitoso puede

permitir al atacante realizar otros vectores de ataque como session hijacking, robo de

información sensible o cambiar la información en el sitio web.

Hay dos tipos principales de XSS:

• No persistente o reflejado.

• Persistente o almacenado.

No persistente o reflejado

Este ataque es uno de los más comunes, la principal vulnerabilidad es el manejo

inapropiado (falta de validación) de solicitudes de datos HTTP por el código del

servidor, permitiendo a los sitios maliciosos reflejar código malicioso y atacar a otros

usuarios. El principal vector de ataque es usualmente un mensaje de correo que

contiene una URL maliciosa, cuando el usuario da clic en la URL, el código malicioso

es ejecutado. Esta vulnerabilidad aprovecha el concepto de arquitectura cliente-

servidor el navegador ejecuta el código porque cree que es el código original y no uno

alterado.

Page 27: Y Seguridad en Aplicaciones Web

27

Imagen XSS reflejado 2.2

Persistente o almacenado.

Este ataque no requiere usuarios que den clic en una URL con el fin de ejecutar código

malicioso. En este caso el código es capaz de vivir en el servidor vulnerable y está

embebido en el código HTML.[6] Una vez más, este tipo de ataque es el resultado

directo de falta de validaciones en el lado del servidor, lo que permite forzar entradas

maliciosas que pueden ser mostradas en el sitio web. Este tipo de ataque es

particularmente riesgoso, no solo porque no requiere una intervención directa del

usuario sino porque tiene un alcance global más peligroso así como robo de sesión

de bancos.

Imagen Stored xss 2.3

Page 28: Y Seguridad en Aplicaciones Web

28

SQL injection

Un ataque de Inyección SQL consiste en la inserción o "inyección" de datos en una

Un ataque de Inyección SQL consiste en la inserción o "inyección" de datos en una

consulta SQL desde un cliente de la aplicación. El éxito en una inyección SQL puede

leer datos sensibles de la base de datos, modificar los datos

(insertar/actualizar/borrar), realizar operaciones de administración sobre la base de

datos (como reiniciar el DBMS), recuperar el contenido de un archivo del sistema de

archivos del DBMS y, en algunos casos, ejecutar órdenes en el sistema operativo. Los

ataques de inyección SQL son un tipo de ataques de inyección, en los que ordenes

SQL son inyectados en texto para afectar la correcta realización de una consulta SQL

predefinida por ejemplo [7]:

$sql = "SELECT username, password FROM user_id ="+$id;

La variable id puede recibir consultas SQL en este caso ya que se puede realizar con

múltiples base de datos, y el atacante puede aprovecharse para modificar la consulta

y sacar información.

Cross-site request forgery

Es un ataque que obliga a un usuario final a ejecutar acciones no deseadas en una

aplicación web en la que actualmente está autenticado. Ataques CSRF especialmente

se dirigen a las solicitudes que cambian el estado, no al robo de datos, ya que el

atacante no tiene forma de ver a respuesta a la solicitud falsificada. Con un poco de

ayuda de ingeniería social (como enviar un enlace por correo electrónico o chat), un

atacante puede engañar a los usuarios de una aplicación web para que ejecuten las

acciones que el atacante elija.[8]

Page 29: Y Seguridad en Aplicaciones Web

29

Imagen Ejemplo de un ataque CSRF2.4

Remote file inclusion

Es una técnica usada para explotar inclusión de archivos dinámicos. Cuando

aplicaciones web toman la entrada del usuario (URL, valores del parámetro, etc.) y lo

pasan en un archivo que puede hacer realizar comandos, la aplicación web puede ser

engañada incluyendo remotos archivos con código malicioso. [9]La mayoría de todas

las aplicaciones web incluyen soporte para la vulnerabilidad de inclusión de archivos

remotos en su mayoría para los sitios pueden ser en PHP, Python, Perl, etc. La

mayoría de las aplicaciones web y en general ya que esta vulnerabilidad puede ser un

difícil de evitar la subida de archivos remotos en aplicaciones web, ya que se

pueden ocultar modificando el formato digital de los archivos y agregando el payload

en este caso una web Shell a la imagen y puede ser evitadas las validaciones en los

sitios web ya que estas no examinan los archivos a un nivel más bajo como es el

formato digital de los archivos como se puede ver en la imagen:

Page 30: Y Seguridad en Aplicaciones Web

30

Imagen Ejemplo de una imagen con payload 2.5

Ejemplo de código vulnerable a RFI

$incfile = $_REQUEST["file"];

include($incfile.".php");

Si observamos desde la url http://www.target.com/vuln_page.php?file=foto_2.jpg

El valor asignado es una foto pero imaginamos si en lugar de una foto inocente, fuera

una imagen con una foto con una bind shell oculta como en este caso fue una Shell

Image pero oculta en el error 404 y una vez que nosotros ingresáramos una URL del

mismo dominio incorrecto, la URL nos dará una conexión reversa a nosotros a través

del puerto 5555 como podemos ver en la imagen

Page 31: Y Seguridad en Aplicaciones Web

31

Imagen Ejemplo de conexión reversa 2.6

Buffer overflow

este ataque ocurre cuando un usuario malicioso sobre carga la memoria del sistema

temporal (llamado buffer) para causar males en la máquina de la víctima.[10] A

menudo, los atacantes también incluyen código de instrucción para aprovechar más

la vulnerabilidad, como por ejemplo ejecutar código malicioso acceder o modificar

datos confidenciales o incluso enviar información al atacante.

Imagen Ejemplo de buffer overflow 2.7

Page 32: Y Seguridad en Aplicaciones Web

32

Metodología OWSAP [11]

Las pruebas de intrusión nunca serán una ciencia exacta mediante la cual se pueda

definir una lista completa de todas las incidencias posibles que deberían ser

comprobadas. De hecho, las pruebas de intrusión son sólo una técnica apropiada para

comprobar la seguridad de aplicaciones web bajo ciertas circunstancias. El objetivo es

recopilar todas las técnicas de comprobación posibles, explicarlas y mantener la guía

actualizada. La metodología de pruebas de intrusión de aplicación web OWASP se

basa en un enfoque / acercamiento de caja negra. La persona que realiza las pruebas

tiene poca, o ninguna, información sobre la aplicación que va a ser comprobada. El

modelo de pruebas consta de:

• Auditor: La persona que realiza las actividades de comprobación

• Herramientas y metodología: El núcleo de este proyecto de guía de pruebas

• Aplicación: La caja negra sobre la que realizar las pruebas

Las pruebas se dividen en 2 fases:

• Pasivo

• Activo

Modo Pasivo

En el modo pasivo, el personal encargado de la realización de las pruebas trata de

comprometer la lógica de la aplicación, juega con la aplicación, puede usarse una

utilidad para la recopilación de información

Como por ejemplo: https://www.example.com/login/Authentic_Form.html

Modo Activo

En esta fase el personal está a cargo de la comprobación empieza a realizar

pruebas usando la metodología descripta en los siguientes apartados:

• Pruebas de gestión de la configuración

• Pruebas de la lógica de negocio

• Pruebas de Autenticación

• Pruebas de Autorización

Page 33: Y Seguridad en Aplicaciones Web

33

• Pruebas de gestión de sesiones

• Pruebas de validación de datos

• Pruebas de denegación de Servicio

• Pruebas de Servicios Web

• Pruebas de AJAX

Imagen Ejemplo de inspección con firebug Ajax apps 2.8

Metodología ISSAF

Information Systems Security Assessment Framework (ISSAF) [es una metodología

estructurada revisada por pares diseñado por el Open Information Systems Security

Group (OISSG). [12] La metodología definida por ISSAF cubre todos los aspectos

relacionados con las evaluaciones de seguridad: desde una perspectiva de alto nivel

(por ejemplo, impacto empresarial y modelos organizacionales) hasta técnicas

prácticas (por ejemplo, pruebas de seguridad de contraseñas, sistemas, redes, etc.).

Page 34: Y Seguridad en Aplicaciones Web

34

La metodología está dividida en cuatro fases principales estructuradas en varios

paquetes de trabajo (llamados "actividades"). Las cuatro fases son, respectivamente:

Planificación, Evaluación, Tratamiento y Acreditación. La Figura 2.10 muestra el flujo

de trabajo de ISSAF.

Imagen Flujo de trabajo 2.9

La fase de planificación se refiere a todas las operaciones necesarias para definir un

plan de proyecto para todo el proceso de evaluación. Antes de continuar con la parte

operativa, las organizaciones deben motivar la evaluación para corroborar las

preocupaciones subyacentes. Además, las organizaciones deben preparar un plan de

negocios para cubrir los costos e identificar el personal y los recursos disponibles. Los

principales pasos en esta fase son: [13]:

• Recopilación de información

• Proyecto de fletamento

• Identificación de recursos

Page 35: Y Seguridad en Aplicaciones Web

35

• Presupuesto

• Flujo de fondos

• Estructura de desglose del trabajo

Recopilación de información

ISSAF define la recopilación de información en el más amplio sentido posible.

Comprende métodos técnicos y no técnicos. El anterior busca registros DNS y explota

herramientas como WHOIS. Este último implementa algunos métodos de ingeniería

social (por ejemplo, usar motores de búsqueda y listas de correo para encontrar

Información sobre el objetivo). Cuanto más sepa un pentester sobre su víctima, más,

mejorará sus posibilidades de atacarlo con éxito. Durante esta fase, el atacante no

siempre necesita establecer un contacto con el objetivo. Importante la información

también se puede recopilar de fuentes públicas (por ejemplo, Internet)[13].

Mapeo de la red

• Encontrar hosts disponibles

• Escaneo de puertos y servicios

• Mapo de firewall y enrutadores

• Identificación de servicios críticos

• Identificación del tipo de sistema operativo

• Identificación de versiones y software en servicios

Page 36: Y Seguridad en Aplicaciones Web

36

Imagen Metodología de pentest 2.10

• Identificación de vulnerabilidades

• Intrusión

• Ganando acceso y escalando privilegios

• Enumeración adicional

• Comprometer usuarios / sitios remotos

• Mantener el acceso

• Cubrir rastros

Identificación de vulnerabilidades

Antes de comenzar esta fase, el pentester / auditor debe escoger los puntos

específicos a probar y la manera como probarlos.[14] Durante la identificación de

vulnerabilidades, el pentester tendrá que realizar varias actividades para detectar y

explotar puntos débiles. Estas actividades incluyen:

• Identificación de servicios usando servicios de banners

• CVE

• CERT

Page 37: Y Seguridad en Aplicaciones Web

37

• Enumerar las vulnerabilidades encontradas

• Clasificar vulnerabilidades por impacto

• Identificar rutas de ataque y escenarios de explotación

Intrusión

El pentester en esta fase intentara obtener acceso no autorizado, para evitar las

medidas de seguridad y tratara de llegar al mayor nivel de acceso posible. Este

proceso se puede dividir en los siguientes pasos [15]:

• Desarrollar herramientas/scripts.

• Hacer pruebas de concepto/herramienta.

• Personalizar pruebas de concepto/herramienta en un entorno aislado.

• Verificar y desaprobar la existencia de vulnerabilidades.

• Obtener mayor cantidad de puntos de acceso no autorizados como sea

posible.

• Documentar los hallazgos.

Ganando acceso y escalando privilegios

En esta fase, los pentesters confirmarán la posibilidad de acceder al objetivo. Para

hacer eso, el atacante tiene que comprometer todos los sistemas intermedios en el

camino que lleva al sistema físico. (Por ejemplo, firewalls, enrutadores, etc.).[16]

Además, el atacante generalmente accederá al sistema con los menores privilegios

posibles e intentará obtener los derechos del administrador explotando

vulnerabilidades locales con root-kits

Enumeración adicional

Esta fase enumera actividades maliciosas que el atacante puede realizar dentro del

sistema comprometido. Tales actividades son [17]:

• Obtener contraseñas encriptadas para crackearlas en modo offline

Page 38: Y Seguridad en Aplicaciones Web

38

• Obtener contraseñas mediante el uso de sniffing u otras técnicas

• Detecta el tráfico y analízalo

• Recopilar cookies y usarlas para explotar sesiones y para ataques de contraseñas

• Recolección correo electrónico

• Identificar nuevas rutas y redes

• Mapeo de redes internas

Comprometer usuarios / sitios remotos

Esta fase se enfoca en la presencia de comunicaciones (por ejemplo, redes privadas

virtuales) entre usuarios / sitios remotos y red de empresas. En este escenario, los

atacantes pueden intentar extender su control a usuarios remotos y redes aisladas.

En caso de éxito, el atacante repetirá todos los pasos previos en el nuevo entorno.

[18]

Mantener el acceso

En esta fase, los pentesters se aseguran de controlar el sistema también en el futuro.

Como una vulnerabilidad siempre puede ser parcheado por los operadores del sistema

un atacante puede instalar código malicioso en el sistema para crear canales ocultos

y puertas traseras. Tal verificación muestra el grado de exposición que un sistema

puede tener una vez comprometido. La fase de mantenimiento de acceso a menudo

no se realiza como parte de una prueba de penetración debido a los riesgos

involucrados (por ejemplo, un atacante real capaz de tomar posesión del canal secreto

y obtener acceso al sistema).[18]

Cubriendo Pistas

Esta fase asegura que los atacantes sean invisibles para un análisis posterior. Por lo

general, durante una prueba de penetración, los atacantes deben ser lo más abiertos

posible sobre sus operaciones (a menos que la compañía expresamente solicite lo

Page 39: Y Seguridad en Aplicaciones Web

39

contrario). Ahí son varias acciones que los pentesters pueden realizar para ocultar sus

rastros [18]

• Ocultar archivos modificados y herramientas usadas

• Borrar registros al verificar el historial y editar archivos de registro

• Derrota la comprobación de integridad

• Derrota a los antivirus

• Implementar kits de raíz personalizados

Reporte Final

Es una presentación en con resultados detallados de la prueba. Cada vulnerabilidad

descubierta debe ser presentada con contramedidas relacionadas y una propuesta

sobre cómo implementarlos. El informe debe seguir una estructura bien documentada.

ISSAF propone una lista de información necesaria para documento:

• Resumen de gestión

• Alcance del proyecto

• Herramientas que se han utilizado

• Fechas y horas de las pruebas reales en los sistemas

• Salidas de pruebas realizadas

• Una lista de todas las vulnerabilidades identificadas con recomendaciones

incluidas sobre cómo

• para resolver problemas encontrados

• Una lista de puntos de acción

Finalmente, toda la información que se crea y / o almacena durante la prueba en los

sistemas de destino debería ser removido. Si esto no es posible, dicha información

(por ejemplo, archivos y directorios) debe mencionarse a los operadores del sistema

para proceder a su eliminación. [19]

Page 40: Y Seguridad en Aplicaciones Web

40

Clasificación de pentest

Para afirmar una prueba de pentesting eficiente y efectiva, el encargando de las

pruebas de pentesting debe concentrarse en factores tales como qué criterios se

pueden usar para describir una prueba de pentesting?, ¿qué distingue una prueba de

penetración de otra? Funciones distintivas, como la extensión de los sistemas que se

probarán, la cautela o la agresividad de las pruebas.[20]Una prueba de pentesting

apropiada debe definirse sobre la base de ciertos criterios. La Imagen 2.11 muestra

una clasificación de posibles pruebas de penetración. A la izquierda, están los criterios

para definir las pruebas de penetración y, a la derecha, las métricas correspondientes

para los criterios.

Imagen clasificación de penetration test 2.11

Page 41: Y Seguridad en Aplicaciones Web

41

Cualquier prueba de pentest se puede clasificar métricamente a partir de los criterios.

Aunque, todas las combinaciones son posibles, pero no pueden ser útiles. Las

pruebas de test debe tener cuidado en su interpretación engañosa. La prueba de

pentest que combina un ataque agresivo desde un enfoque oculto es un ejemplo de

una mala selección de combinación de técnicas. Los seis criterios y sus posibles

métricas son breves y se analizan a continuación:

Pruebas basadas en información

Dada la cantidad de información disponible para los PenTesters antes de las pruebas

sobre el sistema a testear, [21] se realiza una distinción entre la prueba de caja negra

y la prueba de caja blanca

• En una prueba de caja blanca, los testers tienen o se les proporciona un

conocimiento completo sobre la red de destino o la infraestructura del sistema. Esta

prueba se puede considerar como una simulación de un ataque de cualquier

persona interna que pueda estar en posesión del conocimiento del sistema. El

objetivo principal de una prueba de pentest de caja blanca es proporcionar

información a los testers para que puedan ver el funcionamiento del sistema y

elaborar la prueba en base al conocimiento obtenido. Por ejemplo, prueba de

penetración de la infraestructura de caja blanca, información que contiene mapas

de red y detalles de la infraestructura. Se proporcionan y en el caso de la prueba

de penetración de la aplicación, se proporciona el código fuente de la aplicación

junto con la información de diseño, etc.

• En una prueba de caja negra cuentan o no cuentan información previa sobre la

infraestructura del sistema objetivo. Este tipo de pruebas puede ser considerado

una simulación de un ataque del mundo real por un extraño. Hackers éticos o

testers necesitan obtener la información de fuentes públicas para buscar

información sobre el objetivo, correos electrónicos, dominios, mapear la red,

sistemas operativos, servicios son típicamente para las pruebas de caja negra.

Page 42: Y Seguridad en Aplicaciones Web

42

Pruebas por el punto inicial de los ataques

Una prueba de pentest define el punto de ataque inicial donde PenTester comienza

una prueba externa o interna a la red de una organización. Un punto desde donde el

tester elige llevar a cabo un ataque es el punto inicial. [22]Por lo general, los puntos

de partida son firewall, servicios de acceso remoto, servidores web y redes

inalámbricas.

• Una prueba de penetración realizada desde un entorno interno, el penTester

es conectado a la infraestructura interna con acceso básico al sistema

informático. La simulación de este ataque facilita a la organización información

valiosa sobre cómo proteger los sistemas contra sus empleados descontentos.

Durante las pruebas internas, el PenTester puede evaluar el impacto de un

error en la configuración del firewall junto con el acceso físico del sistema para

simular un ataque de personas con acceso a la red interna.

Imagen penetration testing en una red interna analizando paquetes del servicio

ftp 2.12

Page 43: Y Seguridad en Aplicaciones Web

43

• En una prueba de penetración realizada desde un entorno externo, el

PenTester intenta romper la seguridad desde el exterior con un enfoque en la

red conectada a internet. Dichas pruebas establecen al PenTester en la misma

posición que cualquier otro atacante y proporciona una imagen general del

ataque como podría esperar. Tales ataques generalmente se hacen desde

cero, con o sin divulgación de información de acceso al PenTester.

Normalmente, los centros de datos de Internet (IDC), los firewalls, los VPN, los

puntos de acceso remoto y el entorno DMZ son los objetivos obvios para los

intentos de ataque.

Imagen red operations CTF simulando un ataque del mundo real externo 2.13

Page 44: Y Seguridad en Aplicaciones Web

44

Como podemos ver en imagen vemos que hemos vulnerado el firewall desde una

conexión a internet atreves de una cadena de proxis para probar la configuración del

firewall y en efecto tuvimos un ataque exitoso pero además logramos escalar los

privilegios.

Page 45: Y Seguridad en Aplicaciones Web

45

Herramientas de pruebas de intrusión

Las herramientas de pruebas de intrusión nos permitirán automatizar y agilizar el

tiempo a la hora de realizar un pentesting otra un objetivo u organización con la

finalidad te probar la seguridad ya sea del firewall, los IDPS, malas configuraciones

etc.

Herramientas de análisis de sistema operativo y servicios

1. NMAP

Es una herramienta de seguridad informática para escanear servicios que están

disponibles y en que puertos, es muy útil para descubrir qué tipo de sistema

operativo tiene el host, como también que versiones de servicios y software

instalado, también nos puede servir como un escaneador de vulnerabilidades.[23]

Imagen stealth scan 2.14

Como podeos ver en la imagen realizamos un escaneo en modo stealth que quiere

decir en modo stealth que lo estamos realizando de una manera sijilosa y evitar

Page 46: Y Seguridad en Aplicaciones Web

46

ser registrado en el firewall o posible ip/ids , una ves terminado el scaneo vemos

que nos regresa diferentes servicios instalados en el host con su respectivo puerto.

2. Nessus

es un escanner de vulnerabilidades que ofrece diariamente actualizaciones , sobre

problemas de seguridad facilitando analizar qué tipo de problemas se encuentra

en nuestros sistemas[23] tales como la vulnerabilidad ms17-010 más bien

conocida como enternalblue para después solucionar el problema de seguridad

como se puede observar en lo siguiente.

Imagen cliente web nessus 2.15

Nessus tiene clientes para Windows, Linux y Mac este se conecta al servidor de

nessus y agrega host objetivó para buscar los posibles fallos de seguridad en el

sistema.

Page 47: Y Seguridad en Aplicaciones Web

47

Herramientas para explotar vulnerabilidades web

Las herramientas automatizadas para explotar vulnerabilidades web pueden ser de

gran ayuda al momento de realizar un web pentest pero a veces estas herramientas

pueden causar un problema debido que muchas están en la lista negra y al momento

de realizar un escaneo o una explotación de dicha vulnerabilidad somos baneados

1. SQLMAP Es una herramienta de prueba de intrusión para agilizar el proceso de detección y

explotación de inyección SQL, con el fin de tomar control de la base de datos. [25]

Imagen sqlmap 2.16

Esta poderosa herramienta viene con un motor de detección de fallas de inyección

SQL sorprendente y una amplia gama de modalidades para acceder al sistema

operativo y ejecutar inyecciones SQL.

2. BEEF framework

Page 48: Y Seguridad en Aplicaciones Web

48

Esta herramienta es una de muchas herramientas de intrusión para la parte del

cliente (browser) que su objetivó es permitir testear un aplicación web con posibles

errores de validación al momento de mandar los datos.

Imagen Interfaz BEEF framework 2.17

También cómo podemos ver esta herramienta es capaz de crear payloads

automatizados, ingeniería social, y muchos más.

Page 49: Y Seguridad en Aplicaciones Web

49

Herramientas de intrusión de infraestructura de red.

1. Metasploit

Es una herramienta de intrusión, esta poderosa herramienta nos ayuda mucho

sobre la información de vulnerabilidades, pruebas de pentest, ejecución de

explotación de vulnerabilidades, pivoting e movimiento lateral,[27] dicha

herramienta nos ayuda a lograr ataques informáticos de una manera muy

sistematizada y automatizada como podemos ver a continuación.

Imagen metasploit pivoting 2.18

Esta herramienta es considerada unas de las más usadas dentro del mundo de la

seguridad informática, hacking ético como ilegal.

2. Armitage

Esta herramienta es la versión visual de metasploit framework pero aún más

potente ya que dicha herramienta es una herramienta colaborativa donde varios

miembros pueden trabajar otras tareas en el mismo objetivó y estar aportando

mientras otros realizan otras tareas[28] como podemos ver

Page 50: Y Seguridad en Aplicaciones Web

50

Imagen interfaz armitage GUI 2.19

También esta herramienta es muy común ultizada en operaciones red team, que

quiero decir con operaciones red team es un equipo altamente especializado en tareas

de hacking tal y como grupos de hackers lo harían todos aportando ya sea uno

realizando la tarea de recolección de datos, otro escaneando puertos y servicios y así

sucesivamente.

Como podemos ver en la imagen las fechas verdes brillantes quieren decir que

miembros del equipo tienen una conexión tunelizada en pivoting.

Page 51: Y Seguridad en Aplicaciones Web

51

Herramientas de acceso remoto

1. WEEVELY es un shell web diseñado para la administración remota de servidores y las

pruebas de penetración que pueden extenderse a través de la red en tiempo de

ejecución con más de 30 módulos.[29]

Ejecuta código remoto a través de un agente PHP ofuscado ubicado en el

servidor HTTP comprometido

.

Imagen web Shell obfuscate 2.20

La Shell es un script PHP pequeño y polimorfo que apenas es detectable por el

software AV, y la comunicación entre el cliente y el agente se ofusca dentro de las

solicitudes HTTP.

Page 52: Y Seguridad en Aplicaciones Web

52

Capitulo III

En este capítulo se habla de las metodologías de desarrollo, elección correcta de la

metodología, implementación, resultados, recomendaciones y más.

_________________________________________________________________________________

Page 53: Y Seguridad en Aplicaciones Web

53

Introducción

Este capítulo resume los resultados obtenidos durante la prueba de penetración en un

laboratorio de red, brinda una breve descripción de la necesidad de contar con una

metodología de prueba de penetración e intenta evaluar si las metas y las

declaraciones de problemas establecidas en el primer capítulo se abordaron

satisfactoriamente o no. Este enfoque finalmente conduce a una discusión sobre las

contribuciones hechas por este trabajo de tesis y trabajo futuro.

Metodología de desarrollo

La metodología de desarrollo de una de pentest, forma parte fundamental para el

desarrollo y prevención de mantener los sistemas seguros menos vulnerables así se

lleva a cabo de una manera adecuada y confidencial estos tipos de pruebas de

vulnerabilidades ya que se contenten datos críticos que fueron descubiertos durante

la fase de recolección de datos y escaneo de puertos y servicios. Estas metodologías

facilitan el desarrollo siempre y cuando se tome la metodología adecuada como la ya

conocida ISSAF y OWASP.

La metodología que se utilizó para la evaluar los posibles ataques que puede sufrir la

organización, así que se decidió utilizar esta metodología, para determinar todos los

distintos tipos de ataques susceptible hacia dicha organización.

Elección de la metodología

Durante la elección de la metodología adecuada para realizar dicho trabajo fue algo

muy difícil porque tuvimos que clasificar cual era la mejor metodología para realizar el

trabajo ya que no todas las metodologías dentro de la seguridad informática puede

que no nos den el resultado que nosotros esperamos y por eso una vez analizado todo

elegimos por la metodología ISSAF que es la más cercana a lo que realizaremos

Page 54: Y Seguridad en Aplicaciones Web

54

Imagen metodologías de pentesting 3.1

Implementación del pentest

La implementación del pentest existen muchos casos donde en la organización ha

sufrido incidentes que podrían haberse evitado si los mecanismos de protección

hubieran sido reforzados en su momento. Los incidentes alcanzan sucesos tales como

fuga de información, accesos no autorizados, alteración de datos, entre muchos otros.

El análisis de los mecanismos de protección debe ser una tarea proactiva permitiendo

al pentester (persona que lleva adelante la auditoría) encontrar las vulnerabilidades

dentro de los mismos y brindar una solución antes de que un atacante aproveche esta

debilidad. Como podemos observar

Page 55: Y Seguridad en Aplicaciones Web

55

Imagen código fuente de aplicación web inseguro 3.2

al momento de implementar las soluciones para una mejor para solucionar los

problemas de seguridad encontramos que desde las malas prácticas de

programación, no validar correctamente tenemos estos tipos de fallas y mal

comportamiento de la aplicación dejando el poder tener acceso no autorizado y todo

lleva de la mano un gran falta de controles de seguridad para dicha aplicación entre

otras cosas.

Resultados

El resumen de los resultados exitosos y fallidos obtenidos en la prueba de pentest

aplicada por cada uno de los campos de evaluación como puede se puede ver en la

tabla siguiente:

Tabla resumen resultados exitosos y fallidos testeados en el servidor web. 3.1

Como se puede observar en la tabla, teniendo resultados exitosos en las pruebas

aplicadas dirigidas a la inclusión de archivos transversales, manejo del esquema de

autorización, escalamiento de privilegios y referencias a objetos potencialmente

inseguros. Por otro lado y el siguiente campo en el que presenta fortalezas es en el

de autenticación de usuarios (Authentication), aquí se hace un paréntesis aclarando

que este campo es diferente a la autorización de usuarios. Al hablar de

autenticación, se refiere al proceso o a la forma como el sistema verifica la identidad

del usuario al acceder o al intentar acceder a la aplicación, en cambio al hablar de

Page 56: Y Seguridad en Aplicaciones Web

56

Imagen interceptando cookies 3.3

Autorización se refiere a como el sistema valida y gestiona los accesos a recursos del

sistema y los permisos asignados al usuario. Continuando con el análisis y a lo que se

refiere a autenticación de usuarios, presenta fortalezas en el esquema de

autenticación implementado el cual fue revisado a través de las pruebas específicas

de acceso forzoso a páginas directas y predicción del identificador de sesión, adicional

a esto permite parametrizar el número de intentos de accesos fallidos a la aplicación,

por lo cual esto debe ser determinado cuidadosamente por el usuario administrador

de la aplicación. Sin embargo, presenta conformidades principalmente en el campo de

manejo de identidad del usuario teniendo vulnerabilidades en el proceso de registro

del usuario en la aplicación y en la verificación de usuarios existentes en la aplicación;

en el campo del manejo de sesión donde fue posible acceder a los valores de las

cookies correspondientes donde además se identificó la ausencia de atributos de

seguridad importantes para evitar el robo de sesión. Pero, uno de los campos en los

Page 57: Y Seguridad en Aplicaciones Web

57

cuales se realizaron cinco pruebas con resultados fallidos sobre seis en total, fue el

correspondiente al lado del cliente (Client-Side) donde los scripts implementados del

lado de la interfaz del usuario presentaron una no conformidad mayor al vulnerar

incluso los datos del sistema, permitiendo inyectar código malicioso para que el

usuario realizara acciones de alto impacto sin intención del usuario como puede en

este caso subimos un web Shell

Imagen mostrando usuarios del servidor web 3.4

Una vez obtenida la sesión de la conexión inversa en el servidor podemos ahora

seguir obteniendo vectores tal como son las vulnerabilidades de acceso local

En este caso vamos a tratar de explotar una vulnerabilidad de acceso local, una vez

que vimos que es un servidor web corriendo en Ubuntu en una versión antigua nos

dimos cuenta que el kernel es vulnerable a un fallo crítico que nos da acceso a root

como podemos ver en lo siguiente:

Page 58: Y Seguridad en Aplicaciones Web

58

Imagen exploit kernel Ubuntu 3.5

Como se muestra en la imagen tuvimos éxito en la explotación de la vulnerabilidad

del kernel de Ubuntu y nos dio un acceso a root que quiero decir con root, que tengo

permisos muy elevados de hacer cualquier acción pero en este caso hasta aquí fue

pedido realizar el pentest.

Identificación de los riesgos

A continuación se relaciona un riesgo por cada vulnerabilidad encontrada(es decir, se

relaciona solamente a los resultados que fueron fallidos o no tuvieron éxito de ser

explotados o vulnerados

Imagen clasificación de riesgos 3.6

Page 59: Y Seguridad en Aplicaciones Web

59

Como se puede ver en la clasificación de riesgos dicha aplicación que usamos una

herramienta automatizada para realizar un escaneo más a profundidad de las

vulnerabilidades y clasificarlas según el riesgo que nos podría causar y si como nos

imaginamos dicha aplicación nos marca vulnerabilidades en estado alto o critico esto

se refiere que tiene un gran alto porcentaje de ser vulnerado remotamente o local en

la aplicación nos muestra 5 colores pero los más importantes son el anaranjado y el

rojo que significan vulnerabilidades de mediano impacto y los rojos por lógica de alto

impacto o críticos

Page 60: Y Seguridad en Aplicaciones Web

60

Recomendaciones

• Mantener el sistema operativo donde se aloja la aplicación web, debida que

puede ser un hueco de seguridad.

• Incluir dentro de la política de seguridad, las políticas de programación segura

para mitigar las vulnerabilidades.

• Incluir mecanismos de seguridad físicos tales como son el firewall, IDS(sistema

de detección de intrusos), entre otros para detectar posibles ataques al sistema

y contrarrestarlos.

• Utilizar planes de contingencia para preservar el principio de la disponibilidad,

por si un sistema informático ha sido vulnerado.

• Crear una buena configuración de ACL en la red donde se aloja el sistema

informático y la organización.

• Mantener los servicios en la última versión disponible pero estable.

Page 61: Y Seguridad en Aplicaciones Web

61

Conclusiones

Como resultado de la investigación se llegó a una conclusión de que muchas

empresas, universidades ven la seguridad informática como algo aparte y no como un

valor agregado al desarrollar una aplicación , al crear una infraestructura de red, ya

que esto proporciona prestigio y confiabilidad con los clientes. En la actualidad existen

muchos métodos de como poder vulnerar un sitio web, un servidor FTP, APACHE,

por mencionar algunos algunas vulnerabilidades pueden ser fáciles de vulnerar como

también algunas pueden ser muy complejas de vulnerar desde minutos hasta días ,

semanas , meses. Las técnicas investigadas de las diferentes metodologías como

llevar acabo un pen test, operaciones red team, en un área como la metodología

OWASP el en el clico de desarrollo de software para aplicaciones web seguras, para

las pruebas de intrusión y operaciones red team tenemos ISSAF, efectivamente cada

una de ella no son susceptibles la una de la otra, de lo contrario se complementan y

aportan a la seguridad, crear una guía de diseño , políticas de seguridad , protocolos

y buenas prácticas de programación que involucren los controles de seguridad en una

empresa. La seguridad en las aplicaciones y red deben considerares desde un

principio , debido a que reparar las vulnerabilidades cuando esté terminada puede ser

muy costoso y más cuando son redes muy grandes o aplicaciones.

Page 62: Y Seguridad en Aplicaciones Web

62

Referencias bibliográficas

[1]https://www.cynthus.com.mx/blog/seguridad-de-la-informacion/mexico-y-la-

seguridad-informatica/ ISACA 6.10.2017

[2]http://searchdatacenter.techtarget.com/es/definicion/Prueba-de-penetracion-pen-

test 6.10.2017

[3] Boritz, J. Efrim. "IS Practitioners' Views on Core Concepts of Information Integrity".

International Journal of Accounting Information Systems. Elsevier. 6 (4): 260–279.

6.10.2017

[4] Loukas, G.; "Protection Against Denial of Service Attacks: A Survey" (PDF).

Comput. J. 53 (7): 1020–1037. doi:10.1093/comjnl/bxp078. 8.10.2017

[5]https://www.owasp.org/index.php/Cross-site_Scripting_(XSS) Cross site Scripting

(XSS) OWASP Foundation 8.10.2017

[6] https://www.owasp.org/index.php/Types_of_Cross-Site_Scripting Types of Cross-

Site Scripting – OWASP Foundation 8.10.2017

[7] https://www.owasp.org/images/8/80/Guía_de_pruebas_de_OWASP_ver_3.0.pdf

Guia de pruebas OWSAP OWASP Foundation 9.10.2017

[8]https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF) 9.10.2017

Cross-Site Request Forgery (CSRF) - OWASP Foundation 9.10.2017

[9]http://projects.webappsec.org/w/page/13246955/Remote%20File%20Inclusion

Remote File Inclusion Robert Auger 9.11.2017

[10] https://www.owasp.org/index.php/Buffer_Overflows Buffer Overflows -

OWASP Foundation 9.11.2017

[11]https://www.ibm.com/developerworks/library/se-owasptop10/se-owasptop10-

pdf.pdf OWASP top 10 vulnerabilities IBM Corporation 10.11.2017

Page 63: Y Seguridad en Aplicaciones Web

63

[12] http://www.oissg.org/files/issaf0.2.1A.pdf Information Systems Security

Assessment Framework (ISSAF) Open Information Systems Security Group

12.11.2017

[13] Balwant Rathore, Mark Brunner, Miguel Dilaj, Omar Herrera, Piero Brunati, Rama

K Subramaniam, Subash Raman, and Umesh Chavan. Issaf 0.2.1 - information

systems security assessment framework, 12.11.2017

[14]http://resources.infosecinstitute.com/penetration-testing-methodologies-and-

standards/#gref Penetration Testing Methodologies and Standards InfoSec Resources

12.11.2017

[15] M. Prandini and M. Ramilli. Towards a practical and effective security testing

methodology. In Computers and Communications (ISCC), 2010 IEEE Symposium on,

pages 320–325. 14.11.2017

[16] D.P. Duggan, M. Berg, J. Dillinger, and J. Stamp. Penetration testing of industrial

control systems. Sandia National Laboratories, 14.11.2017

[17] P Herzog. Osstmm 3–the open source security testing methodology manual.

barcelona, España: Isecom, 14.11.2017

[18] Karen Scarfone, Murugiah Souppaya, Amanda Cody, and Angela Orebaugh. Nist

special publication 800-115: Technical guide to information security testing and

assessment. 15.11.2017

[19]K. Xynos, I. Sutherlan, H. Read, E. Everitt, and J C A. Blyth. ”penetration testing

andvulnerabilityassessments:Aprofessionalapproach”.InProceedingsofThe1st

International Cyber Resilience Conference. Edith Cown University, Perth, Western

Australia,SECAU-SecurityResearchCentre. 15.11.2017

[20] B.Kang. ”about effective penetration testing methodology”. 15.11.2017

Page 64: Y Seguridad en Aplicaciones Web

64

[21] C. T. Wai and SANS Info Tech Reading Room. ”conducting a penetration test on

an organization”. http://www.sans.org/, 17.11.2017

[22] J. Wack, M. Tracy, and M. Souppaya. ”guideline on network security testing”.

http://www.iwar.org.uk/comsec/resources/netsec-testing/sp800-42.pdf. 19.11.2017

[23] https://nmap.org/ Nmap: the Network Mapper - Free Security Scanner Rob

Fitzpatrick, Paulino Calderon 17.11.2017

[24] https://www.chmag.in/articles/toolgyan/nessus/ CH Magazine | Nessus

17.11.2017

[25] http://sqlmap.org/ sqlmap: automatic SQL injection and database takeover tool

Bernardo Damele Assumpcao Guimaraes and Miroslav Stampar 20.11.2017

[26] http://beefproject.com/ BeEF - The Browser Exploitation Framework Project Wade

Alcorn 21.11.2017

[27] https://www.metasploit.com/ Rapid7, Inc 23.11.2017

[28] http://www.fastandeasyhacking.com/manual Strategic Cyber LLC 24.11.2017

[29] https://github.com/epinna/weevely3 Weevely Developers 27.11.2017