Ataques y Vulnerabilidades en Servidores Web
Ataques y Vulnerabilidades en Servidores Web
DE SEGURIDAD DIGITAL
1
Ethical Hacking
3
6.1 Ataques a servidores web
4
Conceptos:
5
Componentes de un servidor web
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
12
Secuestro del servidor DNS
13
Ataque de amplificación de DNS
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
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
18
Ataque de Man-in-the-Middle / sniffing
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.
19
Ataque de Man-in-the-Middle / sniffing
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
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
23
Ataque de envenenamiento de caché web
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.
25
6.2 Herramientas para ataques a servidores web
26
Metasploit
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:
37
Aplicación web
38
Aplicación web
39
Aplicación web
40
¿Cómo funciona la aplicación Web?
41
Los 10 principales riesgos de seguridad de aplicaciones
de OWASP
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 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).
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.
46
Los 10 principales riesgos de seguridad de aplicaciones
de OWASP
[Link]
47
Otras amenazas de aplicaciones Web
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
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.
51
Otras amenazas de aplicaciones Web
5
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.
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
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
60
Burp Suite
[Link]
61
Cookie Digger
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.
69
SQL Injection
$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.
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
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.
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
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:
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:
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
89
Prevenir SQL Injection
90
ewqrewrew
¡Muchas gracias!
wewerwer
91
CENTRO NACIONAL
DE SEGURIDAD DIGITAL