0% encontró este documento útil (0 votos)
82 vistas92 páginas

Ataques y Vulnerabilidades en Servidores Web

Este documento describe diferentes tipos de ataques a servidores y aplicaciones web, incluyendo ataques de denegación de servicio (DoS/DDoS), secuestro de servidores DNS, amplificación de DNS, cruces de directorio y man-in-the-middle. También explica herramientas comunes para realizar estos ataques y cómo funcionan conceptos clave como servidores web, arquitecturas de código abierto y consultas DNS recursivas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
82 vistas92 páginas

Ataques y Vulnerabilidades en Servidores Web

Este documento describe diferentes tipos de ataques a servidores y aplicaciones web, incluyendo ataques de denegación de servicio (DoS/DDoS), secuestro de servidores DNS, amplificación de DNS, cruces de directorio y man-in-the-middle. También explica herramientas comunes para realizar estos ataques y cómo funcionan conceptos clave como servidores web, arquitecturas de código abierto y consultas DNS recursivas.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

CENTRO NACIONAL

DE SEGURIDAD DIGITAL

1
Ethical Hacking

Ing. Maurice Frayssinet Delgado


mfrayssinet@[Link]
Tfl. (+51)980.997.203
2
Unidad 6. Hackeo de servidores y aplicaciones
web

6.1 Ataques a servidores web


6.2 Herramientas para ataques a servidores web
6.3 Amenazas a aplicaciones web
6.4 Herramientas para hackeo de aplicaciones web
6.5 SQL Injection

3
6.1 Ataques a servidores web

4
Conceptos:

Un servidor web es un sistema


informático que almacena, procesa y
entrega páginas web a los clientes a
través de HTTP.
En general, un cliente inicia el proceso
de comunicación a través de solicitudes
HTTP.

5
Componentes de un servidor web

Raíz del documento Web Proxy


Almacena archivos HTML Servidor proxy que se
críticos relacionados con las encuentra entre el cliente web
páginas web de un nombre de y el servidor web para evitar el
dominio que se servirán en bloqueo de IP y mantener el
respuesta a las solicitudes. anonimato.

Raíz del servidor


Alojamiento virtual
Almacena la configuración del
Técnica de alojar varios
servidor, los errores, los
dominios o sitios web en el
archivos ejecutables y de
Árbol de documentos virtual mismo servidor.
registro.
Proporciona almacenamiento en una máquina
o disco diferente después de que se llena el
disco original.

6
Operación típica del servidor web cliente-
servidor

7
Arquitectura de servidor web de código
abierto

8
Funciones de los componentes principales en la
arquitectura del servidor web de código abierto:
Linux es el sistema operativo del servidor que proporciona una plataforma segura para el servidor
web.

Apache es el componente del servidor web que maneja cada solicitud y respuesta HTTP.

MySQL es una base de datos relacional que se utiliza para almacenar el contenido y la
información de configuración del servidor web.

PHP es la tecnología de capa de aplicación utilizada para generar contenido web dinámico.

9
Ataques DoS / DDoS

Los atacantes pueden enviar numerosas solicitudes falsas al servidor web, lo que provoca que el
servidor web se bloquee o deje de estar disponible para los usuarios legítimos.

Los atacantes pueden apuntar a servidores web de alto perfil, como bancos, pasarelas de pago
con tarjetas de crédito, servicios propios, etc.; para robar credenciales de usuario.

10
Ataques DoS / DDoS

Los atacantes se dirigen a los siguientes servicios consumiendo el servidor web con solicitudes
falsas.
* Ancho de banda de red . * Uso de CPU.
* Memoria del servidor. * Espacio en el disco duro.
* Mecanismo de manejo de excepciones de aplicaciones.
* Espacio de base de datos.

11
Secuestro del servidor DNS

El sistema de nombres de dominio (DNS) resuelve un nombre de dominio en su dirección IP


correspondiente. Un usuario consulta el servidor DNS con un nombre de dominio y este entrega la
dirección IP correspondiente.

En un secuestro de un servidor DNS, un atacante compromete el servidor DNS y cambia la


configuración de mapeo del servidor DNS de destino para redirigir a un servidor DNS falso para
que redirija las solicitudes del usuario al servidor falso del atacante. Por lo tanto, cuando el
usuario escribe la URL legítima en un navegador, la configuración redirigirá al sitio falso del
atacante.

12
Secuestro del servidor DNS

El atacante compromete el servidor DNS y cambia la


configuración de DNS para que todas las solicitudes
que llegan al servidor web objetivo sean redirigidas
a su propio servidor malicioso.

13
Ataque de amplificación de DNS

La consulta de DNS recursiva es un método para solicitar la asignación de DNS. La


consulta pasa por los servidores de nombres de dominio de forma recursiva hasta que
no encuentra el nombre de dominio especificado para la asignación de direcciones IP.

Los atacantes aprovechan las consultas DNS recursivas para realizar un ataque de
amplificación de DNS que resulta en ataques DDoS en el servidor DNS de la víctima.

14
Ataque de amplificación de DNS
Los siguientes son los pasos involucrados en el procesamiento de solicitudes de DNS recursivas:

Los usuarios que desean resolver la dirección IP de un dominio específico envían una
Paso 1:
consulta DNS al servidor DNS primario especificado en sus propiedades de TCP / IP.

Si la asignación DNS solicitada no está presente en el servidor DNS primario del usuario,
reenviará la solicitud al servidor raíz. El servidor raíz reenviará la solicitud a
Paso 2 al 7:
.com espacio de nombres donde el usuario puede encontrar asignaciones DNS. Este proceso
se repite de forma recursiva hasta que se resuelve la asignación de DNS.

En última instancia, cuando el sistema encuentra el servidor DNS primario para el mapeo
Paso 8:
DNS solicitado, genera una caché para la dirección IP en el servidor DNS primario del usuario.

15
Ataque de amplificación de DNS
Los siguientes son los pasos involucrados en el ataque de amplificación de DNS:

Paso 1: El atacante indica a los hosts comprometidos (bots) que realicen consultas de DNS en la red.

Todos los hosts comprometidos utilizan la dirección IP de la víctima falsificada y envían solicitudes de consulta de DNS al servidor DNS
Paso 2: primario de la víctima configurado en su configuración de TCP / IP.

Si el mapeo DNS solicitado no está presente en el servidor DNS primario de la víctima, el servidor reenvía las solicitudes al servidor raíz.
Paso 3 al 8: El servidor raíz reenviará la solicitud a .com o los respectivos espacios de nombres de TLD. Este proceso se repite de forma recursiva
hasta que el servidor DNS primario de la víctima resuelve la solicitud de asignación de DNS.

Una vez que el servidor DNS primario encuentra la asignación de DNS para la solicitud de la víctima, envía una respuesta de asignación
Paso 9: de DNS a la dirección IP de la víctima. Esta respuesta llega a la víctima ya que los bots utilizan la dirección IP de la víctima. Las respuestas
a una gran cantidad de solicitudes de mapeo de DNS de los bots dan como resultado DDoS en el servidor DNS de la víctima.

16
Ataques transversales de directorio

Un atacante puede realizar un ataque transversal de directorio debido a una vulnerabilidad


presente en el código de la aplicación web.

Además de esto, el software del servidor web mal parcheado o configurado puede hacer que el
propio servidor web sea vulnerable a un ataque transversal de directorio.

Un atacante explota el software (programa de servidor web) en el servidor web para realizar
ataques transversales de directorio. El atacante suele realizar este ataque con la ayuda de un
navegador. Un servidor web es vulnerable a este ataque si acepta datos de entrada de un
navegador sin la validación adecuada.

17
Ataques transversales de directorio

En los ataques de cruce de directorios, los atacantes


Los atacantes pueden utilizar el método de prueba y
utilizan la secuencia ../ (punto-punto-barra) para
error para navegar fuera del directorio raíz y acceder a
acceder a directorios restringidos fuera del
información confidencial en el sistema.
directorio raíz del servidor web.

18
Ataque de Man-in-the-Middle / sniffing

En un ataque MITM o un ataque de rastreo, un intruso intercepta o modifica los mensajes


intercambiados entre el usuario y el servidor web a través de escuchas o intrusiones en una
conexión. Esto permite a un atacante robar información confidencial del usuario, como detalles
bancarios en línea, nombres de usuario, contraseñas, etc., transferida a través de Internet al
servidor web.

El atacante engaña a la víctima para que se conecte al servidor web pretendiendo ser un proxy. Si
la víctima cree y acepta la solicitud del atacante, entonces toda la comunicación entre el usuario y
el servidor web pasa a través del atacante.

De esta forma, el atacante puede robar información confidencial del usuario.

19
Ataque de Man-in-the-Middle / sniffing

Los ataques Man-in-the-Middle (MITM)


permiten a un atacante acceder a
información confidencial interceptando
y alterando comunicaciones entre un
usuario final y servidores web.

El atacante actúa como un proxy de


manera que toda la comunicación entre
el usuario y el servidor web pasa por él.

20
Ataques de phishing
Los atacantes realizan un ataque de phishing enviando un correo electrónico
que contiene un enlace malicioso y engañando al usuario para que haga clic en
él. Al hacer clic en el enlace, el usuario se redirigirá a un sitio web falso que se
parece al sitio web legítimo.

Los atacantes crean dichos sitios web utilizando su dirección alojada en servidores
web. Cuando una víctima hace clic en el enlace malicioso creyendo que el enlace
es una dirección de sitio web legítima, redirige al sitio web malicioso alojado en el
servidor del atacante.

El sitio web solicita al usuario que ingrese información confidencial como nombre de usuario, contraseñas,
información de la cuenta financiera, números de seguridad social, etc. y divulga los datos al atacante. Más tarde, el
atacante puede establecer una sesión con el sitio web legítimo con las credenciales robadas de la víctima para
realizar una operación maliciosa en el sitio web legítimo objetivo.

21
Desfiguración del sitio web

La desfiguración del sitio web se refiere a los


cambios no autorizados realizados en el
contenido de una sola página web o de un sitio
web completo, lo que resulta en cambios en la
apariencia visual del sitio web o una página web.

Los hackers ingresan a los servidores web y


alteran el sitio web alojado inyectando código
para agregar imágenes, ventanas emergentes o
texto a una página de tal manera que cambie la
apariencia visual de la página. En algunos casos, el
atacante puede reemplazar todo el sitio web en
lugar de solo cambiar páginas individuales.

22
Mala configuración del servidor web
La mala configuración del servidor web se refiere a las debilidades de configuración en la infraestructura web que
pueden explotarse para lanzar varios ataques en servidores web, como cruce de directorios, intrusión en el servidor y
robo de datos. A continuación, algunas de las configuraciones incorrectas del servidor web:

Mensajes detallados de
depuración / error Configuración de
Usuarios / contraseñas muestra y
anónimos o archivos de script
predeterminados

Servicios Certificados SSL Funciones de


innecesarios predeterminados o administración
habilitados mal configurados remota

23
Ataque de envenenamiento de caché web

El envenenamiento de la caché web ataca la confiabilidad de una fuente


de caché web intermedia. En este ataque, los atacantes intercambian
contenido en caché por una URL aleatoria con contenido infectado. Los
usuarios de la fuente de la caché web pueden utilizar sin saberlo el
contenido envenenado en lugar de contenido verdadero y seguro cuando
solicitan la URL requerida a través de la caché web.

Un atacante obliga al caché del servidor web a vaciar su contenido de


caché real y envía una solicitud especialmente diseñada para almacenar en
caché. En este caso, todos los usuarios del caché del servidor web
obtendrán contenido malicioso hasta que los servidores vacíen el caché
web. Los ataques de envenenamiento de caché web son posibles si el
servidor web y la aplicación tienen fallas de división de respuesta HTTP.

24
Ataque de fuerza bruta SSH
Los atacantes utilizan los protocolos SSH
para crear un túnel SSH cifrado entre dos
hosts con el fin de transferir datos no
cifrados a través de una red insegura. Por
lo general, SSH se ejecuta en el puerto TCP
22.

Para realizar un ataque en SSH, el


atacante escanea todo el servidor SSH
utilizando bots (realiza un escaneo del
puerto TCP 22) para identificar posibles
vulnerabilidades. Con la ayuda de un Un atacante que obtenga las credenciales de inicio de
ataque de fuerza bruta, el atacante sesión de SSH puede usar los mismos túneles SSH para
obtiene las credenciales de inicio de transmitir malware y otros medios de explotación a las
sesión para obtener acceso no autorizado víctimas sin ser detectado. Los atacantes utilizan
a un túnel SSH. herramientas como Nmap y ncrack en una plataforma Linux
para realizar un ataque de fuerza bruta SSH.

25
6.2 Herramientas para ataques a servidores web

26
Metasploit

Metasploit Framework es un conjunto de herramientas de prueba de penetración, una plataforma


de desarrollo de exploits y una herramienta de investigación que incluye cientos de exploits
remotos en funcionamiento para una variedad de plataformas.
Admite la explotación totalmente automatizada de servidores web mediante el abuso de
vulnerabilidades conocidas y el aprovechamiento de contraseñas débiles a través de Telnet, SSH,
HTIP y SNM.

27
Características de Metasploit

Validación de
vulnerabilidad Simulaciones Ingeniería
de circuito de phishing social
cerrado.

Evadir
Fuerza
Explotación soluciones
bruta
manual defensivas
manual
líderes

28
Metasploit permite

• Completar las asignaciones de pruebas de penetración más rápido automatizando tareas repetitivas y
aprovechando los ataques de varios niveles.
• Evaluar la seguridad de las aplicaciones web, la red y los sistemas de terminales, así como los
usuarios de correo electrónico.
• Canalizar cualquier tráfico a través de objetivos comprometidos para pivotar más profundamente en
la red.
• Personalizar el contenido y la plantilla de los informes ejecutivos, de auditoría y técnicos

29
Metasploit

[Link]

30
Wfetch

• Es una herramienta del kit de recursos del servidor de llS que permite al atacante personalizar
completamente una solicitud HTTP y enviarla a un servidor web para ver la solicitud HTTP sin
procesar y los datos de respuesta.
• Permite al atacante probar el rendimiento de sitios web que contienen elementos nuevos como
páginas Active Server (ASP) o protocolos inalámbricos.

31
Wfetch

[Link]

32
THC Hydra

[Link]

33
HULK DoS

[Link]

34
w3af

[Link]

35
6.3 Amenazas a aplicación web

36
Conceptos:

Las aplicaciones web son programas de software que


se ejecutan en navegadores web y actúan como
interfaz entre los usuarios y los servidores web a
través de páginas web.

37
Aplicación web

Ayudan a los usuarios a solicitar,


enviar y recuperar datos de una Construidas sobre lenguajes de
base de datos a través de programación compatibles con el
Internet interactuando a través navegador, como JavaScript, HTML y
de una interfaz gráfica de usuario CSS, las aplicaciones web funcionan
(GUI) fácil de usar. en combinación con otros lenguajes
de programación como SQL para
acceder a datos de bases de datos.

Los usuarios pueden ingresar


datos a través del teclado, el Han ayudado a hacer que las páginas
mouse o la interfaz táctil, según Permiten al usuario realizar tareas específicas web sean dinámicas, ya que permiten
el dispositivo que estén usando como buscar, enviar correos electrónicos, a los usuarios comunicarse con los
para acceder a la aplicación web. conectarse con amigos, comprar en línea y servidores utilizando scripts del lado
rastrear y rastrear. del servidor.

38
Aplicación web

Todas las aplicaciones de


Siempre que los usuarios
escritorio están disponibles
necesiten acceder a dichos
para los usuarios para
servicios, pueden solicitarlos
permitirles tener la
enviando el identificador
flexibilidad de trabajar
uniforme de recursos (URI) o el
también con Internet.
localizador uniforme de
recursos (URL) de la aplicación
web en un navegador.

Las entidades desarrollan Algunos servidores web


diversas aplicaciones web populares son Microsoft llS,
para ofrecer sus servicios a El navegador pasa esta solicitud al servidor, Apache HTIP Server de Apache
los usuarios a través de que almacena los datos de la aplicación Software Foundation, AOL /
Internet. web y los muestra en el navegador. Netscape's Enterprise Server y
Sun One.

39
Aplicación web

El mayor uso de Internet y


Además, son
los negocios en línea ha
relativamente fáciles de
acelerado el desarrollo y la
desarrollar, ofrecen
ubicuidad de las aplicaciones
mejores servicios que
web en todo el mundo.
muchas aplicaciones de
software basadas en
computadora, son fáciles
de instalar y mantener,
seguras y fáciles de
actualizar.

Un factor clave en la adopción de aplicaciones web para uso


empresarial es la multitud de funciones que ofrecen.

40
¿Cómo funciona la aplicación Web?

41
Los 10 principales riesgos de seguridad de aplicaciones
de OWASP

OWASP es una organización internacional que proporciona las 10


principales vulnerabilidades y defectos de las aplicaciones web. A
continuación se muestran:

Injection
Los defectos de injection, como SQL, inyección de comandos e inyección LDAP,
A1
ocurren cuando se envían datos que no son de confianza a un intérprete como parte
de un comando o consulta. Los datos hostiles del atacante pueden engañar al
intérprete para que ejecute comandos no deseados o acceda a datos sin la debida
autorización.

[Link] 42
Los 10 principales riesgos de seguridad de aplicaciones
de OWASP

Autenticación rota

Las funciones de la aplicación relacionadas con la autenticación y la administración de sesiones a menudo se


A2 implementan de manera incorrecta, lo que permite a los atacantes comprometer contraseñas, claves o tokens
de sesión o explotar otras fallas de implementación para asumir las identidades de otros usuarios (temporal o
permanentemente).

Exposición de datos sensibles


Muchas aplicaciones web y APls no protegen adecuadamente los datos confidenciales, como los financieros, de
A3 salud y Pll (información de identificación personal). Los atacantes pueden robar o modificar esos datos
débilmente protegidos para cometer fraude con tarjetas de crédito, robo de identidad u otros delitos. Los datos
confidenciales merecen una protección adicional, como el cifrado en reposo o en tránsito, así como
precauciones especiales cuando se intercambian con el navegador.
[Link]
43
Los 10 principales riesgos de seguridad de aplicaciones
de OWASP
Entidad externa XML (XXE)
Muchos procesadores XML más antiguos o mal configurados evalúan las referencias de entidades externas
A4 dentro de los documentos XML. Las entidades externas se pueden utilizar para divulgar archivos internos
mediante el controlador de archivos URI, recursos compartidos de archivos SMB internos en servidores
Windows sin parches, escaneo de puertos internos, ejecución remota de código y ataques de denegación de
servicio, como el ataque Billion Laughs.

Control de acceso roto

Las restricciones sobre lo que pueden hacer los usuarios autenticados no se aplican correctamente. Los
A5 atacantes pueden aprovechar estas fallas para acceder a funciones y/o datos no autorizados, como acceder a las
cuentas de otros usuarios, ver archivos confidenciales, modificar los datos de otros usuarios, cambiar los
derechos de acceso, etc.

[Link]

44
Los 10 principales riesgos de seguridad de aplicaciones
de OWASP
Configuración incorrecta de seguridad
La configuración incorrecta de la seguridad es el problema más común en la seguridad web, que se debe en
A6 parte a la configuración manual o ad hoc (o no configurar en absoluto), configuraciones predeterminadas
inseguras, 53 buckets abiertos, encabezados HTIP mal configurados, mensajes de error que contienen
información confidencial, no parchear o actualizar sistemas, marcos, dependencias y componentes de manera
oportuna (o en absoluto).

Cross-Site Scripting (XSS)


Las fallas de XSS ocurren cuando una aplicación incluye datos que no son de confianza en una nueva página web
A7 sin la validación o el escape adecuados, o actualiza una página web existente con datos proporcionados por el
usuario mediante una API de navegador que puede crear JavaScript. XSS permite a los atacantes ejecutar scripts
en el navegador de la víctima que pueden secuestrar sesiones de usuario, desfigurar sitios web o redirigir al
usuario a sitios maliciosos.
[Link]

45
Los 10 principales riesgos de seguridad de aplicaciones
de OWASP
Deserialización insegura
Las fallas de deserialización inseguras ocurren cuando una aplicación recibe objetos serializados hostiles. La
A8 deserialización insegura conduce a la ejecución remota de código. Incluso si las fallas de deserialización no dan
como resultado la ejecución remota de código, los objetos serializados se pueden reproducir, manipular o
eliminar para suplantar a los usuarios, realizar ataques de inyección y elevar los privilegios.

Uso de componentes con vulnerabilidades conocidas


Los componentes, como bibliotecas, marcos y otros módulos de software, se ejecutan con los mismos privilegios
que la aplicación. Si se explota un componente vulnerable, dicho ataque puede facilitar la pérdida de datos o la
A9
toma de control del servidor. Aplicaciones y APls usando
Los componentes con vulnerabilidades conocidas pueden socavar las defensas de las aplicaciones y permitir
varios ataques e impactos.
[Link]

46
Los 10 principales riesgos de seguridad de aplicaciones
de OWASP

Registro y monitoreo insuficientes


El registro y la supervisión insuficientes, junto con una integración faltante o ineficaz con la respuesta a
A10 incidentes, permite a los atacantes atacar aún más los sistemas, mantener la persistencia, cambiar a más
sistemas y manipular, extraer o destruir datos. La mayoría de los estudios de infracciones muestran que el
tiempo para detectar una infracción es de más de 200 días, generalmente detectados por partes externas en
lugar de procesos internos o monitoreo.

[Link]

47
Otras amenazas de aplicaciones Web

Las amenazas de aplicaciones web no se limitan a ataques


basados ​en URL y puerto 80. A pesar de utilizar puertos,
protocolos y la capa OSI, los proveedores deben proteger la
integridad de las aplicaciones de misión crítica de posibles
ataques futuros al poder hacer frente a todos los métodos
de ataque.

48
Otras amenazas de aplicaciones Web
1
Cruce de Directorio
Los atacantes explotan HTTP mediante el cruce de directorios, lo que les da acceso a directorios restringidos;
ejecutan comandos fuera del directorio raíz del servidor web.

49
Otras amenazas de aplicaciones Web

Redirecciones y reenvíos no validados


Los atacantes atraen a las víctimas y les hacen hacer clic en enlaces no validados que parecen ser legítimos.
Dichos redireccionamientos pueden intentar instalar malware o engañar a las víctimas para que revelen
contraseñas u otra información confidencial. Los reenvíos inseguros pueden permitir el desvío del control de
acceso, lo que lleva a:
 Ataque de fijación de sesión.
 Explotaciones de la gestión de seguridad.
 No restringir el acceso a URL.
 Ejecución de archivos maliciosos.

50
Otras amenazas de aplicaciones Web
3
Ataque Waterhole
Es un tipo de ataque de redireccionamiento no validado en el que el atacante primero identifica el sitio web
más visitado del objetivo, identifica las vulnerabilidades en el sitio web, inyecta código malicioso en la
aplicación web vulnerable y espera a que la víctima navegue por el sitio web. Una vez que la víctima intenta
acceder al sitio web, el código malicioso se ejecuta y la infecta.

Falsificación de solicitudes entre sitios


El método de falsificación de solicitud entre sitios es un tipo de ataque en el que se hace que un usuario
autenticado realice ciertas tareas en la aplicación web que eligen los atacantes. Por ejemplo, un usuario que
hace clic en un enlace en particular enviado a través de un correo electrónico o chat.

51
Otras amenazas de aplicaciones Web
5

Envenenamiento por cookies / sesiones


Al cambiar la información dentro de una cookie, los atacantes pasan por alto el proceso de autenticación; una
vez que obtienen el control sobre una red, pueden modificar su contenido, usar el sistema para un ataque
malicioso o robar información de los sistemas de los usuarios.

Ataques a servicios web


El atacante puede acceder a las aplicaciones web objetivo explotando una aplicación integrada con servicios
web vulnerables. Un atacante inyecta un script malicioso en un servicio web y puede divulgar y modificar
datos de la aplicación.

52
Otras amenazas de aplicaciones Web
7

Cookie Snooping
Los atacantes utilizan cookies en los sistemas de las víctimas para analizar los hábitos de navegación de los
usuarios y vender esa información a otros atacantes o para lanzar varios ataques en las aplicaciones web de
las víctimas.

Manipulación de campos ocultos


Los atacantes que intentan comprometer los sitios web de comercio electrónico utilizan principalmente este
tipo de ataques. Manipulan campos ocultos y cambian los datos almacenados en ellos. Las tiendas online
enfrentan este tipo de problemas todos los días. Los atacantes pueden alterar los precios y concluir
transacciones, designando los precios de su elección.

53
Otras amenazas de aplicaciones Web
9
Secuestro de autenticación
Para identificar a un usuario, cada aplicación web emplea un método de identificación de usuario, como una
identificación y una contraseña. Sin embargo, una vez que los atacantes comprometen un sistema, pueden
ocurrir varias cosas maliciosas, como el secuestro de sesiones y la suplantación de identidad del usuario.

10
Aplicación de ofuscación
Los atacantes suelen trabajar duro para ocultar sus ataques y evitar ser detectados. Los sistemas de detección
de intrusiones (IDS) de red y basados ​en host buscan constantemente signos de ataques conocidos, lo que
lleva a los atacantes a buscar diferentes formas de pasar desapercibidos. El método más común de ofuscación
de ataques consiste en codificar partes del ataque con codificación Unicode, UTF-8, Base64 o URL. Unicode es
un método para representar letras, números y caracteres especiales para mostrarlos correctamente,
independientemente de la aplicación o plataforma subyacente.

54
Otras amenazas de aplicaciones Web

11
Gestión de sesiones interrumpidas
Cuando las credenciales sensibles a la seguridad, como contraseñas y otros datos importantes, no
se protegen adecuadamente, los atacantes pueden comprometerlas fácilmente.

12
Gestión de cuenta rota
Las funciones de administración de cuentas vulnerables, incluida la actualización de la cuenta, la
recuperación o el restablecimiento de contraseña olvidada o perdida y otras funciones similares,
pueden debilitar los esquemas de autenticación válidos.

55
Otras amenazas de aplicaciones Web
13

Denegación de servicio (DoS)


Un ataque de denegación de servicio o DoS es un ataque a la disponibilidad de un servicio que reduce,
restringe o impide la accesibilidad de los recursos del sistema a sus usuarios legítimos.
Por ejemplo, un sitio web relacionado con un servicio bancario o de correo electrónico no puede funcionar
durante unas horas o incluso días, lo que genera una pérdida de tiempo y dinero.

14
Desbordamiento de búfer
La vulnerabilidad de desbordamiento del búfer de una aplicación web se produce cuando no protege
adecuadamente su búfer y permite escribir más allá de su tamaño máximo.

56
Otras amenazas de aplicaciones Web
15
Ataques CAPTCHA
CAPTCHA es una prueba de tipo desafío-respuesta implementada por las aplicaciones web para
asegurar si la respuesta es generada por la computadora o no. Aunque estos CAPTCHA están
diseñados para ser irrompibles, son propensos a varios tipos de ataques.

16

Exploits de plataforma
Los usuarios pueden crear varias aplicaciones web utilizando diferentes plataformas como BEA
Web logic y Cold Fusion. Cada plataforma tiene sus diversas vulnerabilidades y exploits asociados.

57
Otras amenazas de aplicaciones Web
15
Ataques de acceso a la red
Los ataques de acceso a la red pueden afectar principalmente a las aplicaciones web, incluido el nivel básico de
servicio. También pueden permitir niveles de acceso que los métodos de aplicación HTTP estándar no podrían
otorgar.

16
Ataques de protocolo DMZ
La DMZ ("zona desmilitarizada") es una zona de red semi-confiable que separa la Internet que no es de
confianza de la red interna confiable de la empresa. Un atacante, que es capaz de poner en peligro un sistema
que permite otros protocolos DMZ, tiene acceso a otras DMZ y sistemas internos. Este nivel de acceso puede
conducir a:
 Compromiso de la aplicación web y los datos o Desfiguración de sitios web.
 Acceso a sistemas internos, incluidas bases de datos, copias de seguridad y código fuente.
 Abrir en Google Traductor.

58
6.4 Herramientas para hackeo de aplicaciones web

59
Burp Suite

• Es una plataforma integrada para realizar pruebas de seguridad de aplicaciones web.


• Sus diversas herramientas funcionan juntas para respaldar todo el proceso de prueba, desde el
mapeo inicial y el análisis de la superficie de ataque de una aplicación, hasta la búsqueda y
explotación de vulnerabilidades de seguridad.
• Burp Suite contiene componentes clave como un proxy de interceptación, una araña con
reconocimiento de aplicaciones, un escáner de aplicaciones web avanzado, una herramienta para
intrusos, una herramienta de repetición, una herramienta de secuenciador y más.

60
Burp Suite

[Link]

61
Cookie Digger

• Ayuda a identificar la generación débil de cookies y las implementaciones inseguras de la gestión


de sesiones por parte de aplicaciones web.
• Funciona recopilando y analizando cookies.
• Emitido por una aplicación web para múltiples usuarios.
• La herramienta informa sobre la previsibilidad y entropía de la cookie y si se incluye información
crítica, como el nombre de usuario y la contraseña, en los valores de la cookie.

62
Cookie Digger

[Link]

63
WebScarab

Es un marco para analizar aplicaciones que se comunican mediante los protocolos HTTP y HTTPS. Le
permite al atacante revisar y modificar las solicitudes creadas por el navegador antes de que se envíen
al servidor y revisar y modificar las respuestas devueltas por el servidor antes de que el navegador las
reciba.
Este marco tiene los siguientes complementos:
* Fragmentos * Spider
* Proxy * Análisis SessionlD
* Intercepción manual * Parámetro "fuzzer"
* Beanshell * SOAP
* Simulador de ancho de banda * XSS / CRLF

64
WebScarab

[Link]

65
HTTrack

[Link]

66
WebCopier

[Link]

67
6.5 SQL Injection

68
SQL Injection

SQL Injection es una técnica de inyección de código en la que un atacante ejecuta consultas SQL
maliciosas que controlan la base de datos de una aplicación web.

Con el conjunto adecuado de consultas, un usuario


puede obtener acceso a la información almacenada en
bases de datos. SQLMAP prueba si un parámetro 'GET' es
vulnerable a la inyección SQL..

69
SQL Injection

Por ejemplo, considere el siguiente segmento de código php:

$variable = $_POST['input'];
mysql_query("INSERT INTO `table` (`column`) VALUES ('$variable')");

70
SQL Injection

Si el usuario ingresa “value’); DROP TABLE table; - ”como entrada, la consulta se convierte.

INSERT INTO `table` (`column`) VALUES('value'); DROP TABLE table;--')

lo cual no es deseable para nosotros, ya que aquí la entrada del usuario se compila directamente
junto con la consulta sql escrita previamente. Por lo tanto, el usuario podrá ingresar una consulta
SQL requerida para manipular la base de datos.

71
Usar SQLMAP

Si observa una URL web que tiene el formato [Link]


donde el parámetro 'GET' está en negrita, el sitio web puede ser vulnerable a este modo de SQL
injection y un atacante puede obtener acceso a la información de la base de datos. Además,
SQLMAP funciona cuando está basado en php.

72
Usar SQLMAP

73
Usar SQLMAP

Una prueba simple para verificar si su sitio web es vulnerable sería reemplazar el valor en el
parámetro de solicitud de obtención con un asterisco (*). Por ejemplo,

[Link]

74
Usar SQLMAP

Si esto da como resultado un error como el que se visualiza en la imagen, podemos decir de manera
concluyente que el sitio web es vulnerable.

75
Instalación de SQLMAP

SQLMAP viene preinstalado con kali linux, que es la opción preferida de la mayoría de los
probadores de penetración. Sin embargo, puede instalar sqlmap en otros sistemas linux basados ​en
debian usando el comando.

sudo apt-get install sqlmap

76
Instalación de SQLMAP

Ahora, haremos uso de un sitio web diseñado con vulnerabilidades con fines de demostración:

[Link]

Como puede ver, hay un parámetro de solicitud GET (cat = 1) que el usuario puede cambiar
modificando el valor de cat. Por lo tanto, este sitio web podría ser vulnerable a la SQL injection de
este tipo.

77
Instalación de SQLMAP

Para probar esto, usamos SQLMAP. Para


ver el conjunto de parámetros que se
pueden pasar, escriba en la terminal,

sqlmap -h
Los parámetros que usaremos para la SQL
injection básica se muestran en la imagen
de arriba. Junto con estos, también
usaremos los parámetros –dbs y -u, cuyo
uso se explicó en el Paso 1.

78
Uso de SQLMAP para probar un sitio web para detectar la
vulnerabilidad de SQL injection:

Paso 1: Listar información sobre las bases de datos existentes


Entonces, en primer lugar, debemos ingresar la URL web que queremos verificar junto con el
parámetro -u. También podemos usar el parámetro –tor si deseamos probar el sitio web usando
proxies. Ahora, normalmente, querríamos probar si es posible obtener acceso a una base de datos.
Entonces usamos la opción –dbs para hacerlo. –Dbs enumera todas las bases de datos disponibles.

sqlmap -u [Link] --dbs

79
Paso 1:
Observamos que hay dos bases de datos, acuart e information_schema

80
Paso 1:

Obtenemos el siguiente resultado que nos muestra que hay dos bases de datos disponibles. A
veces, la aplicación le dirá que ha identificado la base de datos y le preguntará si desea probar otros
tipos de bases de datos. Puede continuar y escribir 'Y'. Además, puede preguntarle si desea probar
otros parámetros en busca de vulnerabilidades, escriba 'Y' aquí ya que queremos probar a fondo la
aplicación web.

81
Paso 1:

82
Uso de SQLMAP para probar un sitio web para detectar la
vulnerabilidad de SQL injection:

Paso 2: Listar información sobre las Tablas presentes en una Base de Datos en particular
Para intentar acceder a cualquiera de las bases de datos, tenemos que modificar ligeramente
nuestro comando. Ahora usamos -D para especificar el nombre de la base de datos a la que
deseamos acceder, y una vez que tengamos acceso a la base de datos, querríamos ver si podemos
acceder a las tablas. Para ello, usamos la consulta –tables. Accedamos a la base de datos de acuart.

sqlmap -u [Link]
-D acuart --tables

83
Paso 2:
En la imagen, observamos que se han recuperado 8 tablas. Así que ahora definitivamente sabemos que el
sitio web es vulnerable.

84
Uso de SQLMAP para probar un sitio web para detectar la
vulnerabilidad de SQL injection:

Paso 3: Listar información sobre las Tablas presentes en una Base de Datos en particular
Si queremos ver las columnas de una tabla en particular, podemos usar el siguiente comando, en el
que usamos -T para especificar el nombre de la tabla y –columns para consultar los nombres de las
columnas. Intentaremos acceder a la tabla 'artists'.

sqlmap -u [Link]
-D acuart -T artists --columns

85
Paso 3:

86
Uso de SQLMAP para probar un sitio web para detectar la
vulnerabilidad de SQL injection:

Paso 4: Volcar los datos de las columnas


De manera similar, podemos acceder a la información en una columna específica usando el
siguiente comando, donde -C se puede usar para especificar el nombre de varias columnas
separadas por una coma, y ​la consulta –dump recupera los datos

sqlmap -u [Link]
-D acuart -T artists -C aname --dump

87
Paso 4:

En la imagen, podemos
observar que hemos
accedido a los datos de la
base de datos. Del mismo
modo, en sitios web tan
vulnerables, podemos
explorar literalmente las
bases de datos para extraer
información.

88
Prevenir SQL Injection

En el ejemplo al inicio, la entrada


Generalmente se puede evitar mediante ingresada por el usuario se inserta
el uso de declaraciones preparadas . directamente en el código y se compilan
Cuando usamos una declaración juntos, por lo que podemos ejecutar
preparada, básicamente estamos usando código malicioso. Para las declaraciones
una plantilla para el código y analizando preparadas, básicamente enviamos la
el código y la entrada del usuario por consulta SQL con un marcador de
separado. No mezcla la consulta posición para la entrada del usuario y
ingresada por el usuario y el código. luego enviamos la entrada del usuario
real como un comando separado.

89
Prevenir SQL Injection

Considere el siguiente segmento de código php.

$db = new PDO('detalles de conexión');


$stmt = db->prepare("Seleccione el nombre de los usuarios donde id = :id");
$stmt->execute(array(':id', $datos));
En este código, la entrada del usuario no se combina con la declaración preparada. Se compilan por
separado. Entonces, incluso si se ingresa un código malicioso como entrada del usuario, el programa
simplemente tratará la parte maliciosa del código como una cadena y no como un comando.

90
ewqrewrew
¡Muchas gracias!
wewerwer

91
CENTRO NACIONAL
DE SEGURIDAD DIGITAL

También podría gustarte