Tesis Blanco y Cattafesta
Tesis Blanco y Cattafesta
Tesis Blanco y Cattafesta
Queremos agradecer a todos los que nos han acompañado en este largo camino que
hemos recorrido. Sería imposible nombrarlos uno a uno. Familiares, parejas y amigos,
fueron el motor que nos impulsó a mantener la constancia, el esfuerzo y la dedicación, sobre
todo en aquellos momentos en que el horizonte parecía tan lejano. Hoy, con el objetivo
cumplido, no solo les agradecemos, sino que estamos inmensamente felices de poder
compartir con ellos el fin de esta gran etapa de nuestras vidas y queremos invitarlos a seguir
formando parte de los nuevos caminos que nos toque transitar de aquí en adelante.
2
Indice General
1. Introducción 11
1.1. Motivación 15
1.2. Objetivos 15
3
7.2.1.3.2. Ejecución 63
7.2.1.4. SHODAN 67
7.2.1.4.1. Introducción 67
7.2.1.4.2. Ejecución 67
7.2.1.5. Maltego 70
7.2.1.5.1. Introducción 70
7.2.1.5.2. Ejecución 70
7.2.2. Footprinting Externo Activo 73
7.2.2.1. Netcat 73
7.2.2.1.1. Introducción 73
7.2.2.1.2. Ejecución 73
7.2.2.2. Whatweb 74
7.2.2.2.1. Introducción 74
7.2.2.2.2. Ejecución 74
7.2.2.3. BlindElephant 76
7.2.2.3.1. Introducción 76
7.2.2.3.2. Ejecución 76
7.3. Footprinting Interno 77
7.3.1. Footprinting Interno Activo 77
7.3.1.1. Nmap 77
7.3.1.1.1. Introducción 77
7.3.1.1.2. Ejecución 77
7.4. Resumen 83
4
8.4.3. Servidor HTTP Apache Cookie httpOnly: Divulgación de Información 118
8.5. Vulnerabilidades de denegación del servicio 119
8.5.1. MS09-001: Vulnerabilidad de ejecución de código remoto de Microsoft
Windows SMB 119
8.5.2. MS12-020: Ejecución de código remoto permitida 120
8.5.3. Servidor HTTP Apache Rango de Bytes DoS 123
8.5.4. Vulnerabilidad de Badlock de Samba 124
8.6. Vulnerabilidades de divulgación de la información 127
8.6.1. Divulgación de información de transferencia de zona de servidor DNS (AXFR)
127
8.6.2. POP3: Permite inicio de sesión con texto plano 129
8.6.3. PostgreSQL Cuenta por defecto sin contraseña 132
8.6.4. Detección de páginas de ejemplo de XAMPP 134
8.6.5. Servicio SMTP permite logueo con texto plano 135
8.6.6. Servidor Web: detección de Proxy Inverso 136
8.6.7. Apache Multiviews: Lista arbitraria de directorios 138
8.6.8. Recuperación remota de información del caché del servidor DNS 140
8.6.9. Microsoft Windows SMB Autenticación de Sesión NULL 142
8.6.10. AMQP Autenticación Texto Plano 145
8.7. Vulnerabilidades de versiones deprecadas 146
8.7.1. Detección de versión de sistema operativo Unix sin soporte 146
8.8. Vulnerabilidades del día 0 149
8.8.1. MS17-010: Actualización de seguridad de Microsoft Windows SMB Server 149
8.8.2. Detección de gusano Conficker 152
8.9. Resumen 154
6
Índice de Figuras
Figura 2-1: Historial de metodologías de auditorías de seguridad 24
Figura 7-1: Respuesta del comando whois para la Ip 131.221.0.3 54
Figura 7-2: Ejecución de whois para la Ip 131.221.0.3 desde
http://whois.domaintools.com 55
Figura 7-3: Fragmento de respuesta del whois para la Ip 131.221.0.3
desde http://whois.domaintools.com 55
Figura 7-4: Fragmento de respuesta del whois para la Ip 131.221.0.3
desde http://whois.domaintools.com 56
Figura 7-5: Ejecución de whois para el dominio e-alternativas.edu.ar 56
Figura 7-6: Ejecución de whois para el dominio unicen.edu.ar 57
Figura 7-7: Directorio interno encontrado desde búsqueda en Google 60
Figura 7-8: Archivos privados encontrados desde búsqueda en Google 60
Figura 7-9: Directorio xgap perteneciente a unicen encontrados desde búsqueda en
Google 60
Figura 7-10: Directorio pipermail perteneciente a unicen encontrados desde búsqueda
en Google 61
Figura 7-11: Búsqueda dentro del dominino unicen.edu.ar para archivos pdf que
contengan la palabra “bradaschia” 61
Figura 7-12: Primer resultado de la búsqueda realizada en 7-11 62
Figura 7-13: Ruta bloqueada para accesos externos 63
Figura 7-14: Pdf con lista de usuarios perteneciente a la Secretaría de Administración 63
Figura 7-15: Información sobre listados de emails 64
Figura 7-16: JBoss log 64
Figura 7-17: Analisis de Robtex para unicen.edu.ar 66
Figura 7-18: Respuesta de Robtex con los host dentro del dominio unicen.edu.ar 66
Figura 7-19: Grafo de red generado por Robtex para el dominio unicen.edu.ar 67
Figura 7-20: Analisis de Robtex para rec.unicen.edu.ar 67
Figura 7-21: Respuesta de Robtex con los host dentro del dominio rec.unicen.edu.ar 68
Figura 7-22: Grafo de red generado por Robtex para el dominio unicen.edu.ar 68
Figura 7-23: Información genera de Shodanl sobre Ip 131.221.0.3 69
Figura 7-24: Información de Shodan sobre el puerto 21 de la Ip 131.221.0.3 70
Figura 7-25: Información de Shodan sobre el puerto 22 de la Ip 131.221.0.3 71
Figura 7-26: Información de Shodan sobre el puerto 80 de la Ip 131.221.0.3 72
Figura 7-27: Primera transformación de Maltego partiendo de www.unicen.edu.ar 73
Figura 7-28: NS Records encontrados por Maltego a partir del dominio unicen.edu.ar 73
Figura 7-29: Resultado obtenido luego de aplicar todas las transformaciones de los
NS Records con Maltego 74
Figura 7-30: Resultado obtenido luego de aplicar todas las transformaciones
de las direcciones Ip 131.221.1.0.1-2 con Maltego 74
Figura 7-31: Scan con la herramienta Netcat al puerto 80 del dominio perteneciente
a la UNICEN 76
Figura 7-32: Resultado de la herramienta Whatweb para el DNS www.unicen.edu.ar 77
Figura 7-33: Resultado de Blind Elephant para aplicaciones drupal en el
dominio www.unicen.edu.ar 78
Figura 7-34: Distribución de bandas Ip dentro del Centro de Datos y Comunicaciones 80
Figura 7-35: Distribución de bandas Ip dentro del Centro de Datos y Comunicaciones 80
Figura 7-36: Escaneo de nmap para la banda del Rectorado 81
7
Figura 7-37: Escaneo de nmap para la banda del Rectorado con volcado al
archivo scan_rectorado 82
Figura 7-38: Formateo de archivo generado en la figura 7-37, filtrado sólo los hosts
activos 83
Figura 7-39: Escaneo de nmap con detección de sistemas operativos 84
Figura 8-1: Opciones contenidas en la herramienta Nikto 89
Figura 8-2: Escaneo con la herramienta Nikto para el host 10.254.1.152 90
Figura 8-3: Versiones de descarga disponibles para la herramienta Nessus 91
Figura 8-4: Instrucción sobre cómo descargar Nessus desde la terminal de Kali Linux 92
Figura 8-5: Activación del daemon de Nessus 92
Figura 8-6: Creación de Usuario en Nessus 93
Figura 8-7: Ingreso del código de activación para Nessus 93
Figura 8-8: Configuración de escaneo en Nessus 94
Figura 8-9: Gráfico que contiene la cantidad de vulnerabilidades encontradas en el
escaneo de Nessus, clasificadas por niveles de criticidad 94
Figura 8-10: Reporte de vulnerabilidades de Nessus 95
Figura 8-11: Consulta sobre el estado del servicio postgresql seguido de su inicialización
96
Figura 8-12: Inicialización de la bases de datos de Metasploit 96
Figura 8-13: Ingreso a msfconsole (consola del framework Metasploit) 97
Figura 8-14: Volcado en la base de Metasploit mediante archivo xml de información
de hosts obtenidos con Nmap 98
Figura 8-15: Consulta a la base de Metasploit sobre la información de los host 98
Figura 8-16: Consulta a la base de Metasploit sobre la información de los servicios 99
Figura 8-17: Consulta a la base de Metasploit sobre la información de los servicios del
host 10.254.1.240 100
Figura 8-18: Consulta a la base de Metasploit sobre la información de los
servicios http 100
Figura 8-19: Volcado en la base de Metasploit sobre vulnerabilidades de hosts obtenidos
con la herramienta Nessus 101
Figura 8-20: Reporte de vulnerabilidades persistidas en la base de Metasploit 101
Figura 8-21: Consulta a la base de Metasploit sobre cantidad de vulnerabilidades en
host que utilicen Windows 101
Figura 8-22: Escaneo de Nmap para la Ip 10.254.1.18 103
Figura 8-23: Consulta de cabezados mediante cURL para la dirección 10.254.0.200 105
Figura 8-24: Consulta de cabezados mediante cURL para la dirección 10.254.0.130 106
Figura 8-25: Escaneo con detección de versiones mediante Nmap para el puerto
8080 del host 10.254.0.249 106
Figura 8-26: Ejecución del script de Nmap smb-os-discovery para el puerto 445
en la ip 10.254.1.18 107
Figura 8-27: Ejecución de script obtenido en https://www.exploit-db.com/exploits/97/ 108
Figura 8-28: Ejecución de script de Nmap, el cual verifica si la vulnerabilidad
ms08-067 existe en el puerto 445 de la dirección Ip 10.254.1.18 109
Figura 8-29: Ejecución del script de Nmap smb-os-discovery para el puerto 445
en la ip 10.254.1.18 y 10.254.1.152 111
Figura 8-30: Ejecución del script de Nmap smb-enum-shares para el puerto 445
en la ip 10.254.1.18 113
Figura 8-31: Inicio de conexión con protocolo TLS al puerto 25 de la Ip 10.254.0.160 114
8
Figura 8-32: Escaneo de versiones con Nmap al puerto 80 de las direcciones Ip
10.254.0.200 y 10.254.1.152 116
Figura 8-33: Llamada http con el método trace al host 10.254.0.160 mediante la
herramienta cURL 117
Figura 8-34: Ejecución del script de Nmap http-methods para la dirección ip
10.254.1.160 119
Figura 8-35: Llamada http con el método jeff al host 10.254.1.184 mediante la
herramienta cURL 119
Figura 8-36: Prueba realizada por la herramienta Nessus 121
Figura 8-37: Escaneo de versiones con Nmap al puerto 80 de la dirección Ip
10.254.1.18 122
Figura 8-38: Ejecución del script de Nmap rdp-vulns-ms12-020 para el puerto 3389
en la ip 10.254.0.133 124
Figura 8-39: Escaneo de versiones con Nmap al puerto 80 de la dirección Ip
10.254.1.18 126
Figura 8-40: Escaneo de versiones con Nmap al puerto 445 de la dirección Ip
10.254.1.251 127
Figura 8-41: Escaneo de versiones con Nmap al puerto 139 de la dirección Ip
10.254.1.251 128
Figura 8-42: Ejecución del script de Nmap dns-zone-transfer para el domino
unicen.edu.ar en la ip 10.254.0.3 130
Figura 8-43: Ejecución del script de Nmap dns-zone-transfer para el domino
unicen.edu.ar en la ip 10.254.0.5 131
Figura 8-44: Escaneo de versiones con Nmap a la dirección Ip 10.254.0.152 132
Figura 8-45: Ejecución del script de Nmap nfs-ls para la ip 10.254.0.32
(primer fragmento) 133
Figura 8-46: Ejecución del script de Nmap nfs-ls para la ip 10.254.0.32
(segundo fragmento) 133
Figura 8-47: Ejecución del script de Nmap nfs-showmount para la dirección Ip
10.254.0.32 134
Figura 8-48: Escaneo con Nmap a la dirección Ip 10.254.1.252 135
Figura 8-49: Fragmento de resultado de la figura 8-48 donde se presenta la
información sobre el servicio PostgreSQL 135
Figura 8-50: Página de ejemplo de XAMPP expuesta en el puerto 8080 de la
dirección Ip 10.254.0.249 136
Figura 8-51: Evidencia de implementación del método auth plain 137
Figura 8-52: Evidencia de implementación del método auth login 138
Figura 8-53: Captura de paquetes realizada mediante la herramienta Wireshark 138
Figura 8-54: Ejecución del script de Nmap http-traceroute para la dirección ip
10.254.1.203 139
Figura 8-55: Escaneo de versiones con Nmap al puerto 80 de la dirección Ip
10.254.1.151 141
Figura 8-56: Vista de directorios para la dirección Ip 10.254.1.151 141
Figura 8-57: Consula del DNS www.exa.unicen.edu.ar en la cache de la
dirección Ip 10.254.0.3 144
Figura 8-58: Escaneo con la herramienta Nmap para la dirección Ip 10.254.1.18,
más escaneo con el script smb-os-discovery para el puerto 445 de la misma Ip 146
Figura 8-59: Ejecución del script de Nmap smb-enum-shares para el puerto 445
9
en la Ip 10.254.1.18 146
Figura 8-60: Ejecución del script de Nmap amqp-info para el puerto 5672
en la Ip 10.254.1.171 148
Figura 8-61: Salida de la herramienta Nessus, la cual muestra los host afectados
separados por la versión de Debian 149
Figura 8-62: Escaneo de versiones (servicios y sistemas operativos) para todos los
puertos de la dirección Ip 10.254.0.32 (primer fragmento) 150
Figura 8-63: Escaneo de versiones (servicios y sistemas operativos) para todos los
puertos de la dirección Ip 10.254.0.32 (último fragmento) 151
Figura 8-64: Ejecución del script de Nmap smb-os-discovery para el puerto 445
en la ip 10.254.1.155 152
Figura 8-65: Ejecución del script de Nmap smb-vulns-ms17-010 para el puerto 445
en la ip 10.254.1.155 154
Figura 8-66: Ejecución de los scripts de Nmap p2p-conficker,
smb-os-discovery, smb-vulns-conficker para el puerto 445 en la ip 10.254.1.152 156
Figura 9-1: Fragmento de código con vulnerabilidad XSS de tipo-0 162
Figura 9-2: Interfaz web que permite la inyección de código html 165
Figura 9-3: Visualización de código inyectado desde un input de usuario,
procesado y embebido en la interfaz de usuario 166
Figura 9-4: Evidencia sobre la posibilidad de inyectar de texto plano en la interfaz
de usuario 167
Figura 9-5: Inyección de texto plano en la interfaz de usuario 168
Figura 9-6: Inyección payload en la interfaz de usuario 169
Figura 9-7: Ejecución del payload inyectado 170
Figura 9-8: Inyección de comando RSET en el archivo s_client.s 173
Figura 9-9: Verificación de ejecución del comando RSET (inyectado) 174
Figura 9-10: Listado de módulos de Metasploit relacionados con PostgreSQL 177
Figura 9-11: Opciones para el exploit postgres_login contenido en Metasploit 178
Figura 9-12: Configuración y ejecución del exploit posgres_login desde la consola
del Framework Metasploit 178
Figura 9-13: Conexión a base de datos postgreSQL seguido de comando
para listar sus esquemas 179
Figura 9-14: Conexión al esquema comedor 179
Figura 9-15: Listado de tablas definidas en el esquema comedor 180
Figura 9-16: Listado de usuarios junto a sus roles 181
Figura 9-17: Conexión al host 10.254.1.18 mediante el protocolo SMB utilizando un
usuario vacio 182
Figura 9-18: Conexión al host 10.254.1.18 mediante el protocolo SMB utilizando el
usuario anónimo 183
Figura 9-19: Conexión e interacción con el host 10.254.1.152 mediante el protocolo
SMB utilizando un usuario vacío 183
Figura 9-20: Configuración para poder utilizar el exploit eternalblue_doublepulsar
desde msfconsole 184
Figura 9-21: Información sobre el exploit eternalblue_doublepulsar (1er fragmento) 185
Figura 9-22: Información sobre el exploit eternalblue_doublepulsar (2do fragmento) 185
Figura 9-23: Configuración del exploit eternalblue_doublepulsar para correr sobre el
host 10.254.1.18 186
Figura 10-1: Creación de nuevo usuario en un servidor de base de datos con
10
motor PostgreSQL 191
1. Introducción
En la década del 80, la Seguridad Informática se basaba casi en su totalidad en la
seguridad física. Las bases de datos y los sistemas informáticos mediante los cuales era
posible extraer información de estas bases, eran resguardados en cuartos cerrados,
fuertemente custodiados y bajo estrictos controles de visitas. En esa época y bajo esas
condiciones, este modelo de seguridad funcionaba. Pero con los años los sistemas
informáticos dejaron de ser herramientas utilizadas únicamente por gobiernos y
corporaciones en cuartos cerrados, y se han vuelto un instrumento de alcance global accesible
a través de Internet, convirtiendo a la información en uno de los activos más preciados tanto
para gobiernos y empresas, como para particulares. [Fir05] [Ste92]
Con la aparición de Internet y su uso globalizado comenzaron a aparecer nuevos
vectores de ataques que permitían explotar vulnerabilidades que fueron surgiendo debido a la
posibilidad (e incluso muchas veces a la necesidad) de “estar conectados”. Es muy útil para
una corporación mostrar información que le permita promocionar sus objetivos o
proporcionar ciertos servicios a personas externas a la misma. Para ello debe tener un
servidor de acceso público. Pero además, también es algo muy común tener herramientas
internas, de uso corporativo, a las cuales solo los miembros pertenecientes a dicha
corporación puedan acceder. Llevando esto a un nivel más de complejidad, se podrían
requerir distintos niveles de acceso a estas herramientas para distintos niveles jerárquicos
dentro de la corporación. [Fir05]
Todos estos requerimientos exigieron a la Seguridad Informática una constante
evolución para satisfacer las necesidades que fueron surgiendo gracias al avance tecnológico.
Con esto, la seguridad se transformó en una amplia rama de la informática, tan amplia que
incluso se tuvo que dividir en subáreas (Ingeniería Social, Test de Intrusión, Informática
Forense, etc), dando lugar a una gran cantidad de profesionales que gracias a sus
investigaciones permiten seguir llevando a la Seguridad Informática a niveles superiores para
hacer frente a las innumerables y cada vez más variadas amenazas. [Pac09]
Como en la mayoría de las áreas relativamente jóvenes, existen muchos grises en la
Seguridad Informática, temas que aún hoy siguen en discusión y definiciones variadas sobre
11
los mismos conceptos. Pero en su mayoría discrepan en pequeños detalles en los que no se va
a profundizar en el presente trabajo. Esto se puede observar, por ejemplo, en la evolución que
han ido teniendo la norma ISO/IEC 27000 y sus familiares en la corta vida que llevan. Esta
familia de estándares tienen como base a la norma BS 7799. A su vez se puede encontrar la
guía Cobit mantenida por la organización ISACA, reconocida por sus múltiples
certificaciones relacionadas a la Seguridad Informática. Para el presente trabajo se utilizará
el sentido común a la hora de tomar decisiones ante conceptos con variadas definiciones.
[ISO27] [Jar120]
Para comenzar a tratar los temas relacionados con la Seguridad Informática, será
primero de suma utilidad saber precisamente a qué se está refiriendo. Una de las definiciones
que más gusta debido a lo concisa que es pero a su vez la gran cantidad de conceptos que
abarca, es la siguiente: “La Seguridad Informática es un conjunto de medidas de prevención,
detección y corrección, orientadas a proteger la confidencialidad, integridad y disponibilidad
de los activos de información.”. [Jar12]
En la primer parte, se define que en principio se debe intentar prevenir la ocurrencia
de un ataque. Para esto existen dos enfoques. El primero es la Precaución, que busca eliminar
por completo el riesgo. Para esto hacen falta elaborar serias políticas de seguridad que
requieren maduración (se va aprendiendo de la experiencia y modificando las políticas) y
educación del personal para respetar estas políticas. Este es un enfoque a largo plazo. El
segundo enfoque es el Proactivo, que está asociado a las medidas para prevenir incidentes a
corto plazo. Como se puede observar, la diferencia entre estos dos enfoques es el plazo.
[Jar12]
Si las medidas preventivas llegasen a fallar, se debe ser capaz de detectar el problema
y de poder tomar medidas correctivas. Y aquí entra el tercer enfoque de la seguridad, el
Reactivo. La mayoría de las personas no toma las mejores decisiones bajo presión, por lo que
es esencial tener un plan de contingencia, una serie de medidas que deban llevarse a cabo
luego de un incidente. [Jar12]
Aquí se toma un punto clave de la Seguridad Informática, el factor humano. “Un
sistema es tan seguro como su eslabón más débil”, por lo que no sirve de nada que se tomen
las mejores medidas técnicas para securizar un sistema si luego no son respetadas y llevadas a
cabo de la mejor manera. Por ejemplo, de nada serviría que se tenga una contraseña de 2048
bits si el usuario la deja anotada en un papel debajo del teclado.
12
La segunda parte de la definición, hace énfasis en los tres pilares fundamentales entre
los cuáles debe mantenerse el equilibrio:
- Confidencialidad: Los datos sólo deben ser accesibles para quienes estén
autorizados. Trata sobre el acceso/lectura.
- Integridad: Asegura que solo quienes tengan autorización pueden modificar el
estado de los datos. Los datos no pueden modificarse solos. Evita tanto la
corrupción intencional como casual de la información. Trata sobre la
alteración/escritura.
- Disponibilidad: Es el contrapeso de la seguridad. Es fácil hacer seguro algo
que no es accesible. Los datos deben estar disponibles cuando alguien
autorizado quiera acceder a ellos ya sea para leerlos como para modificarlos.
Existe otro concepto también importante, que incluso en algunas definiciones se lo
incluye entre los pilares fundamentales:
- Irrefutabilidad (No Repudio): Cuando alguien actúa dentro del sistema, éste
debe garantizar que sea de conocimiento quién, cómo y cuándo hizo qué cosa.
[Jar12] [Fir05]
Siguiendo todas estas definiciones se transita por el buen camino, pero no se garantiza
un sistema 100% seguro, ya que no se debe olvidar que la seguridad es un estado, no una
esencia. Por lo que un sistema no es seguro, sino que está seguro, y este estado puede
cambiar de un momento a otro, aunque si se siguen las buenas prácticas se mantendrá en ese
estado de seguridad la mayor cantidad de tiempo posible.
Dado esto, se ha decidido realizar un Test de Intrusión, tanto de infraestructura como
aplicativo, sobre las redes, servidores y hosts de ciertas áreas de la Universidad. Con esto, se
busca tener una primera evaluación sobre el nivel de seguridad de los distintos componentes
de la red auditados, y además, establecer una serie de técnicas a seguir, así como también
una suite de herramientas que utilizar para realizar auditorías futuras.
De esta forma, no solo se podrá elevar el nivel de seguridad, sino que también, puede
servir como un puntapié inicial para justificar la creación de un departamento o equipo
abocado al área. Además, toda esta información recolectada, y la experiencia adquirida, podrá
ser utilizada como referencia base para futuros trabajos finales que se centren en esta área y
utilicen a la UNICEN como dominio de estudio.
13
Durante la auditoría, se tendrá comunicación constante con los encargados del Centro
de Datos y Comunicaciones, y en caso de que se encuentren vulnerabilidades se deberá
consultar antes de que se realicen pruebas de explotación que puedan poner en riesgo la
integridad de los servidores y los datos dentro de los mismos. Además, debido a las
limitaciones geográficas, se utilizará una Red Privada Virtual (VPN de sus siglas en inglés)
para simular estar dentro de la red del campus universitario y así poder realizar escaneos y
ataques internos. Esto último es importante, ya que por la distribución de las computadoras y
el cableado de las redes dentro del campus, un atacante malintencionado podría hacerse con
el control de los mismos y estar conectado directamente dentro de la red interna.
En este caso, el Test de Intrusión hará principal hincapié en la seguridad de los
servidores del Centro de Datos y Comunicaciones y a las redes y equipos correspondientes a
las bandas del Rectorado y la Unicen.
Una vez finalizada la auditoría, se hará entrega de un informe técnico en el que se
pondrá en manifiesto la identificación del riesgo, la probabilidad de ocurrencia, el impacto en
la organización y la estimación de su gravedad así como las correspondientes
recomendaciones para solucionar los problemas encontrados.
Además, se pretende comenzar a documentar el estado de la seguridad, incluyendo
vulnerabilidades, medidas de resguardo, técnicas, herramientas, etc. Y se espera que toda esta
información sea considerada como referencia para que cuando otros alumnos de la UNICEN
deseen realizar sus trabajos finales de carrera, ya dispongan de una guía que les permita
centrarse con mayor foco en los aspectos que le sean de su interés.
Un aspecto interesante a resaltar, es la carencia de experiencia previa con la que se
cuenta, referente al área de Seguridad Informática. En este caso, la herramienta principal será
el conocimiento adquirido a lo largo de la carrera de Ingeniería de Sistemas para interpretar
conceptos y resolver problemas.
Por lo tanto, en este trabajo final se podrán apreciar los procesos y métodos que
implementa un ingeniero para solucionar problemáticas nuevas y desconocidas para él.
Siguiendo la filosofía “Divide y Conquista” y una metodología similar a la del desarrollo de
software, se dividirá el problema general en varias etapas. El resultado de cada etapa será
utilizado como base para la posterior, y se irán cumpliendo objetivos intermedios de manera
incremental hasta conseguir con éxito el resultado final esperado.
14
Para terminar, es importante aclarar que las evaluaciones de seguridad en si solo
muestran una captura de un momento determinado de la seguridad de la organización.
Únicamente representan un verdadero valor agregado cuando son llevadas adelante de forma
sistemática y continua en el tiempo, y cuando las recomendaciones que surgen de ellas son
implementadas. En otras palabras, para que las evaluaciones de seguridad sean realmente
efectivas, deben ser integradas al Sistema de Gestión de la Seguridad de la Información
(SGSI) de las organizaciones, siendo una entrada mas de su proceso de gestión de riesgos.
[Per13] [ISO27]
1.1. Motivación
1.2. Objetivos
15
- Generar un informe técnico en el que se ponga en manifiesto la identificación de
riesgos, la probabilidad de ocurrencia, el impacto en la organización y la estimación
de su gravedad así como las correspondientes recomendaciones para solucionarlo.
- El Test de Intrusión hará principal hincapié en la seguridad de los servidores del
Centro de Datos y Comunicaciones, correspondientes al Rectorado y la Unicen. Con
el resultado final de este test, se evaluará la necesidad de contar con un área o
personal dedicado exclusivamente a la Seguridad Informática.
- Por último, se pretende comenzar a documentar el estado de la seguridad, incluyendo
vulnerabilidades, medidas de resguardo, técnicas, herramientas, etc.
16
2. Estado del Arte
La Seguridad Informática se encuentra en constante evolución. Si bien no es algo
nuevo, ha ido cobrando mayor importancia recién en los últimos años. El ciberespacio no es
real, pero existe, y lo que ocurre en él tiene repercusiones en el mundo real.
Tal es así, que con el correr de los años han ido surgiendo ramificaciones de la
Seguridad Informática especializadas en diversas áreas. En [Pac09], Pacheco y Jara definen
las áreas descritas a continuación.
Haciendo una analogía con una cadena, se dice que un sistema es tan seguro como su
eslabón más débil. En este caso, ese eslabón, suele ser el ser humano, y es por donde
probablemente se produzca una brecha en la seguridad. Por este motivo es que surge la
Ingeniería Social.
Se puede decir que es un método no técnico para obtener información sobre un
sistema basado en el factor humano y que puede ser utilizado en el contexto de un ataque.
La Ingeniería Social se aprovecha de algunas características propias del
comportamiento humano para obtener información. Principalmente se basa en la teoría de que
el ser humano es bueno por naturaleza y en su necesidad de no querer decepcionar tiende a
intentar ayudar.
Algunas de las características humanas en las que se basa la Ingeniería Social son:
- Confianza: el creer en las personas hace que no se dude de su buena voluntad.
- Ignorancia: la falta de educación promueve la manipulación de los individuos.
- Miedo: las amenazas por incumplimiento pueden doblegar la voluntad.
- Codicia: lleva a aceptar algo en base a una falsa promesa.
- Deber Moral: lleva al cumplimiento por obligación moral.
- Intimidación: simulación de una figura de autoridad.
- Adulación: a todos les gusta que los halaguen.
- Ayuda: ofrecimiento de ayuda para generar confianza.
17
Para que puedan aprovecharse estas características y comportamientos del ser humano
es necesario que se genere un pensamiento más amplio, intentando ver el mundo desde la
perspectiva de un enemigo, una habilidad que puede beneficiar en casi cualquier profesión.
[Sch08]
Para realizar un ataque de Ingeniería Social existen diversos métodos, algunos
sencillos que no requieren conocimientos técnicos y otros más avanzados. Algunos de estos
métodos son:
- Inspección Visual: esta simple técnica está relacionada con los descuidos
típicos de los usuarios, como las páginas web y correos personales abiertos,
documentos cargados, etc. Un término relacionado con esta técnica es
Shoulder Surfing (mirar por encima del hombro), que consta básicamente de
espiar a un usuario mientras usa su computadora, por ejemplo, cuando ingresa
una contraseña.
- Trashing: también conocido como Dumpster. Basado en la conocida frase “la
basura de unos es el tesoro de otros”, consta en la recolección de residuos en
baldes de basura o contenedores, con el fin de encontrar información útil en
documentos descartados, impresiones, anotaciones, etc.
- Programación Neurolinguística: permite conocer la percepción de las otras
personas sobre su realidad, por lo que hace posible conocer datos que ni las
propias personas saben sobre sí mismas. Así, se pueden detectar mentiras,
persuadir de realizar alguna acción, analizar el porqué de un comportamiento,
interpretar información subyacente en un diálogo y mucho más. Para esto se
utilizan técnicas que se basan en la comunicación verbal y no verbal (postura,
gestos, movimientos reflejos, etc).
- Ingeniería Social Inversa: describe una situación en la que la víctima realiza el
contacto inicial y ofrece al atacante la información que éste deseaba. El
atacante logra esto de manera activa, provocando un problema adrede, o de
manera pasiva, esperando que el problema surja. La defensa contra esta
técnica es muy difícil debido a que la víctima es quien inicia el contacto y por
este motivo se eliminan las sospechas.
- Robo de Identidad: es un delito donde una persona utiliza la documentación y
datos identificatorios de otra para realizar operaciones, normalmente
18
financieras, que implican a la vez conductas delictivas. Las leyes no brindan
suficiente protección para los casos de identidad robada y, normalmente, solo
se puede saber qué ocurrió a partir de descubrir sus efectos.
- Phishing: es un método que los ciberdelincuentes utilizan para engañar y
conseguir que se revele voluntariamente información personal, como
contraseñas o datos de tarjetas de crédito. Se puede realizar mediante el envío
correos electrónicos fraudulentos o redirigiendo a un sitio web falso.
2.3. Criptografía
Es una rama de la Criptología que se ocupa del estudio de las técnicas de cifrado y
codificado destinadas a alterar las representaciones de los mensajes con el fin de hacerlos
ininteligibles a receptores no autorizados. Es decir, trabaja en pos de cuidar uno de los pilares
19
de la Seguridad Informática, la confidencialidad. Para esto se basa en técnicas y algoritmos
matemáticos.
Se puede clasificar la Criptografía en:
- Criptografía Simétrica: surge del uso de una sola clave para cifrar y descifrar,
denominada clave secreta o secreto compartido. Para enviar un mensaje desde
un emisor a un receptor dado, ambos deben compartir la clave. Aquí surge la
debilidad más importante de este tipo de sistemas, ya que trae aparejada la
necesidad de un mecanismo de gestión y distribución de claves porque estos
algoritmos no los poseen. Como principal ventaja tienen su eficiencia
temporal. Los algoritmos de cifrado simétrico más conocidos son DES, 3DES,
RC5, AES, Blowfish e IDEA.
- Criptografía Asimétrica: estos algoritmos usan dos claves, una pública y una
privada. Si se cifra con una se debe descifrar con la otra. Estos algoritmos se
utilizan para el intercambio de claves y las firmas digitales. Entre estos
algoritmos se pueden encontrar Diffie-Hellman, RSA, DSA y ElGamal. Los
protocolos SSH, TLS y SSL utilizan este tipo de algoritmos.
- Criptografía Híbrida: utiliza tanto cifrado simétrico como asimétrico. A través
del cifrado asimétrico comparte la clave que luego se utilizará para el cifrado
simétrico del mensaje que se desea enviar. Compartir una clave asimétrica no
es seguro, por lo que ésta debería cambiar en cada sesión. PGP y GnuPG
utilizan un cifrado híbrido. [Ash99]
20
especialización y conocimientos avanzados en materia de informática y sistemas para poder
detectar dentro de cualquier dispositivo electrónico lo que ha sucedido. El conocimiento
informático forense abarca el conocimiento no solamente del software sino también del
hardware, seguridad, hacking, cracking y recuperación de información.
La informática forense ayuda a detectar pistas sobre ataques informáticos, robo de
información, conversaciones o pistas de emails y chats. No es de índole preventivo, está
enfocada para utilizarse luego de que el hecho en cuestión suceda.
Hoy día existen múltiples estándares y metodologías para llevar a cabo auditorías de
seguridad. En su mayoría similares, aunque varían en los detalles, las herramientas y los
procesos. Además, estos estándares se han ido combinando para generar estándares nuevos e
incluso algunos han ido evolucionando con el correr del tiempo. Un ejemplo de esto es el
estándar BS 7799 publicado en 1995 por el BSI Group, que tuvo tanta aceptación que luego
se utilizó como base para elaborar las normas ISO/IEC 27000-series. [Arn07]
Uno de los primeros estándares referidos a la Seguridad Informática es el Trusted
Computer System Evaluation Criteria (TCSEC), también conocido como el Orange Book
(Libro Naranja). Fue creado por el Departamento de Defensa de los Estados Unidos (DoD) a
principio de la década del 80. Define siete conjuntos de criterios de evaluación denominados
clases (D, C1, C2, B1, B2, B3 y A1). Cada clase de criterios cubre cuatro aspectos de la
evaluación: política de seguridad, imputabilidad, aseguramiento y documentación. Los
criterios correspondientes a estas cuatro áreas van ganando en detalle de una clase a otra,
constituyendo una jerarquía en la que D es el nivel más bajo y A1 el más elevado. Todas las
clases incluyen requisitos tanto de funcionalidad como de confianza.[DoD83]
En Mayo de 1990, Alemania, Francia, Países Bajos y Reino Unido publicaron el
Information Technology Security Evaluation Criteria (ITSEC), también conocido como White
Book (Libro Blanco). Estas normas establecen que al Objetivo de Evaluación (OE, sistema
sometido a evaluación) se le debe realizar un examen detallado de sus características de
seguridad, que incluyan pruebas de funcionamiento y Tests de Intrusión. Según el nivel de
confianza deseado para el OE en cuestión, es el grado del examen que se debe realizar. Para
proporcionar diferentes grados de confianza se definen los llamados niveles de evaluación,
21
desde E0 a E6. Los niveles más altos de evaluación exigen exámenes y tests más detallados
del OE. A diferencia de TCSEC, ITSEC no requiere que los OE contengan características
técnicas específicas para alcanzar un determinado nivel de confianza. Por ejemplo, un OE
puede ofrecer características de autenticación o integridad sin proporcionar medidas de
confidencialidad o disponibilidad. Las especificaciones de seguridad de un OE dado deben
estar detalladas en el documento Objetivo de Seguridad, cuyo contenido debe ser evaluado y
aprobado antes de someter el OE a examen. Las evaluaciones basadas en ITSEC únicamente
verifican las características de seguridad descritas en el mencionado documento. [Eur91]
En 1993, en Canadá, el Communications Security Establishment publica el estándar
Canadian Trusted Computer Product Evaluation Criteria (CTCPEC) con el fin de proveer un
criterio de evaluación de productos IT. Es una combinación de TCSEC y ITSEC. [CSE93]
A fines de los años 90 surgen los Common Criteria (CC), que combinan los
estándares TCSEC, ITSEC y CTCPEC, con el fin de unificar criterios. Pero paralelamente en
Europa se comenzó a desarrollar un estándar ISO, con lo que se volvió al problema original
de tener distintos criterios y estándares según el continente. Con el tiempo, el CC evolucionó
a su versión 2.0, y luego de un trabajo colaborativo entre diversas organizaciones se combinó
con el estándar ISO que se estaba desarrollando en Europa para formar, a fines de 1999, el
estándar internacional Common Criteria o también conocido como ISO-15408. [CC99]
22
Estandarización (ISO) y la Comisión Electrotécnica Internacional (IEC). Esta serie de normas
proporcionan un marco de gestión de la seguridad de la información utilizable por cualquier
tipo de organización, pública o privada, grande o pequeña. La norma 27000 contiene todos
los conceptos y vocabulario necesarios para comprender el resto de las normas de la familia.
La 270001 habla de las certificaciones disponibles para las empresas, organizaciones e
instituciones. La 27002 de las buenas prácticas para la administración o gestión de seguridad
de la información. La norma 27003 muestra algunas de las directrices para la implementación
de un Sistema de Gestión de Seguridad de la Información. La 27004 muestra las métricas
para la gestión de seguridad de la información.[ISO27]
No todos los ataques son de la misma naturaleza por lo que existen diversas
clasificaciones. La siguiente clasificación está realizada desde el punto de vista técnico y
enfocada en lo que se intentará vulnerar [Per13]:
- Ataques al Sistema Operativo: constituyen un punto clásico de la seguridad.
Desde esta perspectiva, la búsqueda de fallas se realizará en lo concerniente al
propio sistema base de todo el resto del software, de tal modo que muchas
veces, independientemente de lo que se encuentre por encima, se podrá
explotar y tomar control del sistema en caso de que sea vulnerable. En la
actualidad se tienen tres líneas principales: los sistemas del tipo Windows, los
del tipo Linux o derivados de UNIX, y los sistemas MAC OSX, los cuales, si
bien están basados en UNIX, a esta altura presentan entidad propia. En el caso
de los primeros, desde su origen fueron objeto de ataques dada su masificación
y la relativa simplicidad con que se pudo acceder históricamente al núcleo del
sistema, incluso, sin contar con su código fuente. Para el caso de Linux la
situación es quizás peor, ya que, al poseer el código fuente, es posible detectar
problemas también a nivel de código. Y en cuanto a OSX, la velocidad con la
que ha acaparado mercado de múltiples plataformas en los últimos años,
sumado a que los controles de seguridad implementados no son suficientes
frente a las amenazas actuales, hacen que el sistema operativo de Apple sea un
blanco cada vez más buscado por los atacantes. Pese a lo que suele creerse, la
estadística de cantidad de vulnerabilidades de Windows no supera anualmente
a las de Linux, en general, la diferencia ha sido la velocidad con la que
aparecían las soluciones en cada caso, llevando aquí Linux la delantera,
23
aprovechando una de las grandes ventajas del código abierto, el
cooperativismo.
Los ataques al sistema operativo también incluyen las
implementaciones que éste realiza de las distintas tecnologías, lo cual puede
incluir bibliotecas externas.
Además, la masificación de los entornos de virtualización en el ámbito
corporativo agregan una nueva capa que también es susceptible de ser atacada,
dejando expuesto a todos los sistemas que corren sobre ella.
- Ataques a las aplicaciones: en este caso, la variedad es mayor. Existen miles y
miles de piezas de software y programas de todo tipo y tamaño. Por supuesto,
entre tantos millones de líneas de código, necesariamente se producen errores.
Para los ataques a las aplicaciones también se tendrá en cuenta la masividad de
uso.
Las aplicaciones amplían entonces la superficie de ataque de un
sistema, por lo que se recomienda siempre evitar la instalación de aquellas que
no se requieran, siguiendo el principio de seguridad que sugiere el
minimalismo. Dependiendo de los privilegios con los que se ejecute cierto
programa, si es comprometido, podría afectar de forma directa al sistema, ya
que se utilizará el mismo nivel de permisos para atacar desde adentro.
- Errores en configuraciones: por más seguro que sea un software, una mala
configuración puede volverlo vulnerable. Esto puede ocurrir incluso en
herramientas de protección como los antivirus, lo que lleva a un concepto muy
común en este rubro, una falsa sensación de seguridad.
Una mala pero frecuente práctica es dejar las configuraciones de
fábrica, lo cual facilita la tarea de los atacantes. Existen múltiples sitios web
donde se encuentran las contraseñas por defecto de aplicaciones y dispositivos.
La solución más efectiva a estos problemas es el hardening. Este
proceso consiste en utilizar las propias características de dispositivos,
plataformas y aplicaciones para aumentar sus niveles de seguridad. Cerrar
puertos que no son imprescindibles, deshabilitar protocolos y funciones que no
se utilicen, cambiar parámetros por defecto y eliminar usuarios que no sean
necesarios son solo algunos ejemplos sencillos de un proceso de hardening.
24
- Errores en protocolos: son los problemas más graves que se pueden encontrar,
aunque los menos frecuentes. Esto implica que, sin importar la
implementación, el sistema operativo, ni la configuración, algo que se
componga de dicho protocolo podría verse afectado. Dentro de esta rama de
errores, también se incluyen los protocolos y algoritmos criptográficos que
tienen un alto nivel de complejidad y pueden producir huecos de seguridad
realmente muy grandes dada la función de protección para la que son
utilizados.
Una de las pruebas posibles a la hora de evaluar la seguridad de un sistema y/o red es
el llamado Test de Intrusión o Pentesting. Este test evalúa los niveles de seguridad de un
sistema informático o red mediante la simulación, en un entorno controlado, de un ataque por
parte de un usuario malintencionado. Implica un proceso de análisis activo del sistema en
busca de posibles vulnerabilidades que podrían resultar de una mala o inadecuada
configuración de un sistema, defectos en software, o una falla de seguridad en un sistema
operativo o hardware.
Este análisis debe realizarse desde la posición de un atacante potencial, y puede
implicar la explotación activa de vulnerabilidades de seguridad. Los problemas de seguridad
que se encuentren se deben presentar al propietario del sistema junto con una evaluación del
impacto que supondría dentro de la organización, además de una propuesta de mitigación o
una solución técnica.
El propósito de un Test de Intrusión es determinar la viabilidad de un ataque y la
cantidad de impacto de la explotación exitosa, si ocurriese. La mejor manera de demostrar la
fuerza de una defensa es tratando de penetrar en ella.
Dado que los Tests de Intrusión están diseñados para simular un ataque y utilizar
herramientas y técnicas que pueden ser restringidas por la ley, es fundamental obtener el
permiso formal para realizar estas pruebas, que consideren tanto las regulaciones de la ley
como la política de la entidad sobre la cual se realizará la auditoría.
25
Este permiso debe estar previamente acordado, organizado y plasmado en un
documento físico firmado por ambas partes, donde se indicarán cuáles serán las pautas a
seguir, y a partir de allí empiezan a entrar en juego las fases prácticas de un Test de Intrusión.
Dependiendo la bibliografía, se podrán encontrar diferentes metodologías que dividen
el proceso en distintas etapas. A continuación se mencionan algunas de estas bibliografías y
se describen brevemente sus metodologías:
- El Manual de la Metodología Abierta de Comprobación de la Seguridad
(OSSTMM, Open Source Security Testing Methodology Manual) [Her08].
Este manual contiene gran parte de los estándares utilizados en auditorías de
seguridad. Incluye un marco de trabajo que describe las fases que habría que
realizar para la ejecución de la auditoría. OSSTMM supuso el primer
acercamiento a una estructura global del concepto de seguridad. Si bien las
pruebas incluidas y los test que se ejecutan no son especialmente innovadores,
se ha convertido en una auténtica referencia para los organismos que quieren
desarrollar un test de calidad ordenado y eficiente.
Actualmente está conformado por 6 fases: la seguridad de la
información, de los procesos, en las tecnologías de internet, en las
comunicaciones, y también hace referencia a la seguridad inalámbrica y física.
De manera sencilla se identifican una serie de actividades de testeo
específicas por área, sobre las que se comprueban las especificaciones de
seguridad, integradas con las verificaciones realizadas en las revisiones
rutinarias.
Con esta metodología, se realiza un esfuerzo para convertir en
predecible “qué” se debe de probar, “cómo” se puede hacer y “cuándo” es
necesario ejecutarlo. De esta manera se aumenta la calidad del desarrollo, ya
que al seguir esta metodología, se tiene la certeza de que se cumplen unos
objetivos prefijados.
Un aspecto importante de esta metodología, es que no solo se centra en
los aspectos técnicos de seguridad tradicionales, sino que abarca aspectos
sobre los responsables del testeo. Trata de estandarizar las credenciales del
desarrollador a cargo del test, el formato de los resultados, crear un código
ético, un plan temporal de ejecución, etc. Otro aspecto importante es la
26
incorporación del concepto de Valores de Evaluación de Riesgo, que permite
diferenciar y clasificar las diferentes problemáticas.
- ISSAF (Information Systems Security Assessment Framework). [Ois06] Esta
metodología está diseñada para evaluar las redes de trabajo, sistemas y
control de aplicaciones, enfocada en tres fases.
Planificación y preparación: Esta fase comprende los pasos
iniciales para el intercambio de información, planificar y preparar la prueba.
Antes de llevar a cabo la prueba formal, un acuerdo será firmado por ambas
partes. Este constituye la base de acciones y la mutua protección jurídica.
Asimismo especificará la participación del equipo, las fechas exactas, los
tiempos de la prueba, la escalada de privilegios y otros arreglos.
Evaluación: Esta es la fase en donde se lleva a cabo el Test de
Intrusión. En la fase de evaluación en un enfoque por capas deberán ir de
forma secuencial las siguientes tareas:
- Recolección de Información
- Mapeo de la red de trabajo
- Identificación de vulnerabilidades
- Penetración
- Obtención Acceso y Escalada de Privilegios
- Enumeración
- Comprometer Usuarios Remotos y Sitios
- Mantener Acceso
27
todas las pruebas realizadas junto a sus salidas (con exclusión de informes de
análisis de vulnerabilidad que pueden ser incluidos como documentos
adjuntos), etc.
Si bien las etapas y los nombres de las mismas varían de metodología en metodología,
son similares en gran parte. Por ejemplo, OSSTMM define 6 etapas, ISSAF 9, OWASP
también 9 y PTES 7. [Kan15] Cambian las fronteras de las etapas, las herramientas
recomendadas y algunos enfoques, pero la esencia del Test de Intrusión se mantiene.
Además, cada pentester, a través de la experiencia, va incorporando variantes propias.
La elección de una metodología va a depender del conocimiento del pentester, de su
experiencia previa y de un análisis sobre el sistema objetivo que se desea poner a prueba.
Los Test de Intrusión pueden llevarse a cabo de manera externa o de manera interna.
Por lo general, un Test de Intrusión suele contemplar ambos escenarios, aunque esto va a
depender del acuerdo con el cliente. En el análisis interno lo que se evalúa son todos aquellos
puntos relacionados con la red interna y la información que circula a todos los niveles. En el
28
caso del análisis externo, todas las pruebas se hacen en forma remota, buscando
vulnerabilidades en la frontera, como por ejemplo, en el firewall o en servidores que estén
brindando servicios de Internet. Se trata de hallar cualquier punto que, una vez explotado,
permite obtener acceso a la DMZ o a la red interna.
Además, según el grado de conocimiento con que el pentester comience la auditoría,
se pueden clasificar los Test de Intrusión en:
- Caja Blanca (White Box): en este, quien solicita el análisis provee quien lo realiza
cierta información relativa a la organización, como por ejemplo bloques de
direcciones IP, credenciales de acceso, estructura de servidores, etcétera.
- Caja Negra (Black Box): el pentester no recibe ningún tipo de información, con lo
cual esta prueba simula el caso más realista desde el punto de vista de un atacante.
- Caja Gris (Grey Box): es un punto intermedio entre los dos anteriores.
29
Existen un gran número de vulnerabilidades las cuales pueden ser agrupadas en diferentes
categorías, como por ejemplo:
- Vulnerabilidades de desbordamiento de buffer, las cuales se producen cuando un
programa no controla la cantidad de datos que se copian en buffer, de forma que si esa
cantidad es superior a la capacidad del mismo los bytes sobrantes se almacenan en
zonas de memoria adyacentes, sobrescribiendo su contenido original. Se puede
aprovechar para ejecutar código que otorgue privilegios de administrador.
- Vulnerabilidades de condición de carrera (race condition), esto ocurre
principalmente cuando varios procesos acceden al mismo tiempo a un recurso
compartido, por ejemplo una variable, cambiando su estado y obteniendo de esta
forma un valor no esperado de la misma.
- Vulnerabilidades de error de formato de cadena (format string bugs), la principal
causa en estos casos es que se acepte sin validar la entrada de datos proporcionada por
el usuario. Aqui, un ataque puede conducir de manera inmediata a la ejecución de
código arbitrario y a revelación de información.
- Vulnerabilidades de Cross Site Scripting (XSS). En esta categoría se encuentran
ataques que permiten ejecutar scripts desarrollados en lenguajes tales como VBScript
o JavaScript, en una interfaz web. Estos errores se encuentran en aplicaciones que
tenga como objetivo final presentar información mediante un navegador web. Uno de
los usos más comunes de esta vulnerabilidad es aplicar la técnica de phishing (la
víctima ingresa a un sitio que presume seguro, pero dicho sitio contiene código
malicioso inyectado por un tercero).
- Vulnerabilidades de Inyección SQL. El riesgo aquí es que se permita de alguna
manera, la inserción o "inyección" de código SQL invasor dentro del código SQL
programado, a fin de alterar el funcionamiento normal del programa y lograr así que
se ejecute la porción de código "invasor" incrustado, en la base de datos.
- Vulnerabilidades de denegación del servicio, que provocan que un servicio o recurso
sea inaccesible a los usuarios legítimos. Normalmente generan la pérdida de la
conectividad de la red mediante el consumo del ancho de banda de la misma, como
también mediante la sobrecarga de los recursos informáticos del sistema de la víctima.
- Vulnerabilidades de divulgación de la información, las cuales aparecen cuando
información sensible puede ser visualizada por usuarios no autorizados. La integridad
30
de los datos es uno de los pilares de la seguridad, por lo tanto el acceso no autorizado
a ellos presenta un gran peligro para cualquier sistema informático.
- Vulnerabilidades de versiones deprecadas. Muchas veces el software cuenta de
actualizaciones, en las cuales versiones antiguas dejan de tener soporte. En estos casos
cualquier tipo de riesgo encontrado no será solucionado y por lo tanto son puntos
críticos en la seguridad.
- Vulnerabilidades del día 0 (zero day). Una nueva vulnerabilidad para la cual no se
han creado parches o revisiones ya que aún no son conocidas por los usuarios y
creadores. El nombre 0-day (día cero) se debe a que aún no existe ninguna revisión
para mitigar el aprovechamiento de la vulnerabilidad. Estas a veces se usan junto a los
troyanos, rootkits, virus, gusanos y otros tipos de malware, para ayudarlos a
propagarse e infectar más equipos.
2.8. Herramientas
Hoy día, se puede utilizar cualquiera de los Sistemas Operativos tradicionales para
realizar auditorías de seguridad, ya que para cada necesidad que surge existen aplicaciones en
cada uno de ellos dedicadas a suplirlas. La selección de uno en específico va a depender tanto
de la experiencia como de la preferencia del auditor.
Para el Sistema Operativo Windows, además de poder instalar aplicaciones de manera
individual y a demanda, existen frameworks como Pentest Box (se puede descargar de su
sitio oficial pentestbox.org) que proveen una colección de herramientas para realizar tareas de
seguridad que corren de forma nativa y además son portables. Gracias a estos frameworks se
evita caer en la utilización de máquinas virtuales que a veces generan problemas de
performance, y que además, para usuarios habituales de Windows, los obliga a un cambio
drástico en cuanto a experiencia de usuario.
En Linux, la gama de distribuciones especialmente desarrolladas para fines de
seguridad que podemos encontrar es muy amplia. Entre las más destacadas están:
- Kali Linux: Desarrollado por Offensive Security y sucesor de la famosa
distribución Backtrack. Está basado en Debian y trae más de 600 herramientas
de pentesting preinstaladas. Cuenta con actualizaciones constantes que
31
permiten al auditor trabajar incluso con las amenazas 0-day. (Se lo puede
descargar del sitio oficial de offensive-security:
www.offensive-security.com/category/kali-linux)
- Parrot Security OS: también basada en Debian y desarrollada por una
comunidad de especialistas. Es una distribución ligera y eficiente, que ofrece
gran cantidad de herramientas. (Se lo puede descargar de su sitio oficial
www.parrotsec.org)
- Back Box: esta distribución está basada en Ubuntu con enfoque en
evaluaciones de seguridad y tests de intrusión. Trae una amplia gama de
herramientas, es rápida y fácil de usar. Cuenta con un entorno de escritorio
completo y los repositorios de software de las herramientas se actualizan
regularmente con las versiones más estables. (Se lo puede descargar de su sitio
oficial backbox.org)
Otras distribuciones que se pueden encontrar son Samurai Web Testing Framework,
Pentoo Linux, DEFT Linux, Caine, Network Security Toolkit (NST), BlackArch Linux,
Bugtraq, etc.
Para el Sistema Operativo de Apple, Mac OS X, existe una paquete de instalación
llamado KOSASP [Her16] que incluye un gran número de programas como los que se
encuentran en Kali Linux o Back Box, pero portados para Mac OS X, ordenados y
organizados por categorías. En la instalación permite seleccionar qué herramientas se desean
instalar. Y provee ciertos scripts corriendo por debajo que se encargan ejecutar estas
aplicaciones sin necesidad de compilar, y de ser necesario instalar software de terceros que se
requiera para su funcionamiento.
Muchas veces, debido a limitaciones en el hardware o a las ventajas que provee, se
busca trabajar en entornos virtualizados. [Mar08] Una de estas ventajas es la posibilidad de
realizar snapshots, es decir, realizar capturas de la máquina virtual con sus datos y el estado
de sus dispositivos en un momento dado. Una vez realizada esta captura se puede continuar
trabajando con la seguridad de que en caso de ser necesario, se pueda volver a ese mismo
instante que se capturó. Esto otorga un mayor nivel de seguridad tanto al cliente de la
auditoría como también al pentester que la realiza.
Un ejemplo en el que tomar un snapshot resulta útil, es cuando se quiere instalar o
actualizar una herramienta. Si dicha herramienta o su actualización no terminan siendo
32
favorables, o peor aún, terminan siendo perjudiciales ya que pueden presentar fallas o llevar
al mal funcionamiento del entorno de trabajo, se tendrá la opción de revertir la situación de
forma limpia, sin necesidad de desinstalar o de intentar pisar la versión nueva con una
anterior. Esto otorga la libertad de tomar muchas más iniciativas sin la preocupación por las
consecuencias, minimizando riesgos y maximizando potenciales beneficios.
Además, la utilización de este tipo de entorno permite tener un ambiente controlado,
en el cual cualquier falla, mal funcionamiento o posible exposición a vulnerabilidades, no
podrán trascender más allá de los límites de la máquina virtual.
2.8.2. Aplicaciones
33
- Maltego: es una aplicación de minería y recolección de información utilizada durante
las fases de recolección de información. La información la obtiene de Internet y la
representa en forma gráfica para que sea más sencillo de analizar. Es una herramienta
muy potente, llena de opciones que pueden ser muy útiles para investigar empresas,
sitios, personas y mucho más. Permite iniciar búsquedas a partir de dominios, IPs,
ubicaciones geográficas, correos, nombres, teléfonos e incluso frases.
- Metasploit: una forma sencilla de definir Metasploit Framework es que se trata de una
herramienta para desarrollar y ejecutar exploits contra un equipo remoto. Sin embargo
esta herramienta dispone de gran cantidad de funcionalidades, las cuales son muy
utilizadas en el día a día por los auditores de seguridad para llevar a cabo sus Tests de
Intrusión, pudiendo realizar no solamente la explotación y post explotación del
sistema, sino también los pasos previos a ellos.
- Nmap: es un programa por consola de comando que sirve para efectuar rastreo de
puertos y se usa para evaluar la seguridad de sistemas informáticos, así como para
descubrir servicios o servidores en una red informática. Identifica puertos abiertos en
una computadora objetivo, determina qué servicios está ejecutando la misma, obtiene
algunas características del hardware de red de la máquina testeada, contribuye a
realizar la labor de fingerprinting determinando qué sistema operativo y la versión
que utiliza dicho ordenador, identifica equipos en una red.
- Sqlmap: es una herramienta muy útil en los Tests de Intrusión que automatiza el
proceso de detección y explotación de fallos del tipo SQL Injection y de esta forma
permite obtener toda la información contenida dentro de los servidores de base de
datos.
- Wireshark: es un analizador de paquetes que permite examinar datos de una red viva o
de un archivo de captura salvado en disco. Analiza la información captada a través de
los detalles y sumarios de cada paquete. Aunque su uso docente está muy extendido,
no solamente se enmarca en el área educativa, sino que en la actualidad se ha
convertido en una herramienta profesional imprescindible para los auditores
informáticos.
- Zaproxy: es una herramienta fácil de usar y que forma parte de las aplicaciones de uso
habitual en el proceso de pentesting para encontrar vulnerabilidades en aplicaciones
web. Está diseñada para ser utilizada por usuarios con diferentes niveles en seguridad
34
y como tal, es ideal para desarrolladores y probadores funcionales que son nuevos en
el hacking ético, además de ser un conjunto de herramientas muy útil para pentesters
de nivel avanzado.
- Zenmap: es una versión gráfica de nmap que facilita su uso, y la interpretación de
resultados de forma visual.
- BlindElephant: analiza el CMS, y tras estudiar la existencia de determinados plugins
en el mismo, muestra en los resultados las posibles estimaciones acerca de la versión
de la plataforma CMS que se está analizando.
- Plecost: similar a BlindElephant, pero para utilizarlo requiere un paso previo en el que
se obtiene un listado de plugins de WordPress.
- JoomScan: lanza una serie de scripts para comprobar la seguridad de un sitio, y
muestra el segmento de direcciones URLs de cada uno de los fallos de seguridad
encontrados.
- Nikto: Es una de las mejores herramientas de auditoría web. Se complementa
perfectamente con nmap y con Nessus. Realiza un escaneo de todo el sitio web,
detectando la versión del servidor, la tecnología utilizada, algunos comportamientos
sospechosos como balanceadores de carga, diversas vulnerabilidades detalladas,
etcétera.
- OpenVAS: Es una suite de software que ofrece un marco de trabajo diseñado para
integrar servicios y herramientas especializadas en el escaneo y gestión de
vulnerabilidades.
- Nessus: es un programa de escaneo de vulnerabilidades. Es gratuito para uso personal
y entornos no corporativos. Su objetivo es detectar vulnerabilidades potenciales en los
sistemas a auditar.
- Buscadores: Google, Bing, Yahoo. Con ciertas técnicas se pueden lograr resultados
muy potentes a la hora de recolectar información. Además existen buscadores
diseñados para buscar dispositivos y sistemas de ordenadores conectados a Internet,
como lo es SHODAN.
- Robtex: es una página web considerada como “La navaja suiza de Internet”. Permite
realizar ciertas partes del procedimiento activo de footprinting de manera pasiva, es
decir, en lugar de preguntar directamente a los servidores la información sobre sus
35
dominios, subdominios, servidores DNS, etcétera, permite obtener dicha información
sin dejar rastro en el objetivo a través de una sencilla página web.
- Comandos útiles: ping, whois, traceroute, dig, nslookup, whatweb, etcétera. Son
scripts que se ejecutan desde la línea de comandos y permiten obtener información de
todo tipo sobre el sistema a auditar.
36
3. Descripción del problema
Generalmente, los sistemas informáticos, ya sean de entidades públicas o privadas,
incluyen tanto datos como infraestructura de red, para hacerlos circular, y de almacenamiento
para persistirlos.
Un ente estatal del campo académico, como la Universidad del Centro de la Provincia
de Buenos Aires, no es la excepción del caso. Cuenta con múltiples sistemas de diversa
índole coexistiendo en una red heterogénea. A través de su infraestructura viaja y es
procesada y almacenada información de todo tipo. Datos de alumnos y docentes, cátedras,
investigaciones, etc. A su vez se puede encontrar información pública, privada e incluso
restringida a cierto grupo específico de personas.
Debido a que es una entidad pública, mucha de su información también lo es por
cuestiones normativas. Esto, en algunos casos, puede ser perjudicial en lo que a seguridad
refiere.
Además, por la distribución física del campus universitario es factible, y en algunos
casos hasta esperado, que se pueda conectar a un punto de acceso a alguna de las redes
internas dentro del mismo. Por ejemplo, a través de las distintas señales de wifi disponibles,
un cable de red, un dispositivo de ruteo o incluso a través de alguna de las computadoras de
las numerosas aulas y oficinas.
Bajo este escenario, es que para los profesionales del Centro de Datos y
Comunicaciones de la UNICEN es de gran realizar investigaciones y evaluaciones sobre
diferentes metodologías, técnicas y prácticas relacionadas a la seguridad informática para
reforzar la integridad, disponibilidad y confidencialidad de los datos sensibles dentro de los
sistemas que se encuentran tanto en los servidores como en los distintos nodos de la red.
Para esto se desea evaluar pros y contras, costos de implementación, puntos de
vulnerabilidad e inclusive la posibilidad de crear un área encargada de gestionar todos los
asuntos concernientes a la Seguridad Informática de la UNICEN.
Se debe considerar además, que al ser una entidad estatal con fines académicos e
investigativos, no cuenta con un presupuesto elevado para tercerizar esta tarea a especialistas
del área. Tampoco tendría sentido hacerlo por dos motivos. El primero es que a pesar de no
contar con especialistas en Seguridad Informática, existen recursos humanos calificados en el
37
manejo de tecnologías de red y sistemas, que con la capacitación necesaria podrían hacerse
cargo del asunto.
El análisis de los mecanismos de protección debe ser una tarea proactiva, permitiendo
encontrar las vulnerabilidades dentro de los mismos y brindar una solución antes de que
alguien se aproveche de esta debilidad. Dado esto, una de las prácticas recomendadas dentro
del campo de la Seguridad Informática, es la de realizar un Test de Intrusión. Dicho test
consiste en llevar a cabo pruebas ofensivas contra los mecanismos de defensa existentes en el
entorno que se está analizando. No solo ayuda a identificar vulnerabilidades potenciales, sino
que también se intenta explotarlas y, así, confirmar su existencia y el impacto real que
podrían tener en la organización.
En la UNICEN, más específicamente en el área del Centro de Datos y
Comunicaciones, no hay ningún departamento o equipo que se esté encargando de estos
aspectos. Por lo tanto, prácticas como estas, que se recomiendan llevar a cabo con una estricta
periodicidad, son realizadas esporádicamente.
38
4. Configuración del Entorno
Antes de comenzar la primer fase de la auditoría, se deberá proceder a configurar el
entorno de trabajo. Esta planificación previa es de suma importancia debido a que
dependiendo de las decisiones que aquí se tomen se podrán potenciar las posibilidades de
éxito o restringirlas.
4.1. Red Privada Virtual
A grandes rasgos, se puede dividir la auditoría de seguridad en dos fases, una externa
y otra interna. En la fase externa se intentarán descubrir vulnerabilidades sobre los puntos de
acceso públicos de la red de la UNICEN. Para ello no se cuenta con limitaciones más que
tener acceso a Internet. Sin embargo, para la fase interna, en la cual se intentarán encontrar
vulnerabilidades en la red privada de la universidad, surgen ciertas limitaciones.
El campus universitario es un lugar muy amplio con numerosas aulas, laboratorios y
oficinas distribuidos a lo largo de sus 53 hectáreas. Cuenta con gran cantidad de
infraestructura de redes, computadoras, routers, wi-fi, cableado, etc. Por lo que es
relativamente fácil tomar el control de alguna computadora dentro del campus, ya sea en una
oficina o en un laboratorio, o incluso lograr conectar una computadora particular a alguna de
las tantas bocas disponibles.
Debido a que no se pudo contar con acceso físico al campus universitario por una
cuestión de locación geográfica, se tuvo que buscar una alternativa para poder simular dichas
condiciones. Ante esta necesidad, se optó por configurar una Red Privada Virtual (VPN por
sus siglas en inglés) a un host perteneciente a la red, el cual se configuró a modo de servidor.
Este host está dentro de la banda subred correspondiente al Rectorado del Campus
(192.168.128.0/19), cuya dirección Ip es 192.168.172.98.
A su vez, se tendrá en modo cliente las computadoras personales en las cuales estará
desplegada la suite de herramientas necesarias para llevar a cabo el Test de Intrusión.
Aquí se hará una intromisión para explicar en qué consiste este tipo de red y cuales
son sus ventajas y usos posibles. Una VPN es una tecnología de red que se utiliza para
conectar una o más computadoras a una red privada utilizando Internet. Las empresas suelen
utilizar estas redes para que sus empleados, desde sus casas, hoteles, etc; puedan acceder a
39
recursos corporativos que, de otro modo, no podrían. Sin embargo, la habilidad para
conectarse de manera remota a una red es solo una de sus funciones.
En conjunto con lo anterior, una implementación correcta de esta tecnología permite
asegurar la confidencialidad e integridad de la información.
Como puede suponerse, a través de una VPN pasa información privada y confidencial
que en las manos equivocadas, podría resultar perjudicial y por lo tanto supone un riesgo en
la seguridad de la red. Esto se agrava aún más si el usuario en cuestión se conecta utilizando
una red Wi-Fi pública sin protección. Afortunadamente, este problema puede ser mitigado
cifrando los datos que se envían y reciben. Para poder lograr este objetivo, se pueden utilizar
los siguientes protocolos:
● IPsec (Internet Protocol Security): permite mejorar la seguridad a través de
algoritmos de cifrado robustos y un sistema de autenticación más exhaustivo. IPsec
posee dos métodos de encriptado, modo transporte y modo túnel. Asimismo,
soporta encriptado de 56 bit y 168 bit (triple DES).
● PPTP/MPPE: tecnología desarrollada por un consorcio formado por varias
empresas. PPTP soporta varios protocolos VPN con cifrado de 40 bit y 128 bit
utilizando el protocolo Microsoft Point to Point Encryption (MPPE). PPTP por sí
solo no cifra la información.
● L2TP/IPsec (L2TP sobre IPsec): tecnología capaz de proveer el nivel de protección
de IPsec sobre el protocolo de túnel L2TP. Al igual que PPTP, L2TP no cifra la
información por sí mismo.
De esta forma se utilizará una herramienta llamada OpenVPN, la cual permite
configurar una red privada para acceder de forma remota y segura, y así evitar grandes
problemas de logística y protección a la hora de realizar el Test de Intrusión.
Algunas de las ventajas principales de OpenVPN son la facilidad de uso, y el hecho
de que es gratuito y multiplataforma. Al ser multiplataforma esta tecnología está disponible
para multitud de sistemas operativos: Windows, Linux, Mac OS X, Android, etc.
Otra de las grandes ventajas de OpenVPN es que ofrece un fuerte cifrado y
protección de confidencialidad, logrando que el tráfico no pueda ser examinado en caso de
ser interceptado. En este caso utiliza un protocolo de seguridad personalizado que
implementa SSL/TLS para intercambios de claves. Es capaz de atravesar traductores de
dirección de red (NATs, por sus siglas en inglés) y firewalls.
40
Este protocolo consta de dos tipos de funcionamientos que proveen la emisión y
recepción de paquetes. Estas implementaciones llevan el nombre de TUN (encapsula IP, capa
3) y TAP (encapsula tramas ethernet, capa 2).
En este caso, se utilizará el controlador TUN que emula una red de punto a punto, y es
utilizado para crear túneles virtuales operando con el protocolo IP. De esta forma serán
encapsulados todos los paquetes que se transporten a través de él como datagramas TCP o
UDP y, a su vez, las computadoras que queden detrás de cada uno de los extremos del enlace
pertenecerán a subredes diferentes.
41
declarado en los fines de la aplicación. Una de las ventajas del código abierto es poder
controlar estos aspectos, y como se mencionó antes, fue uno de los motivos por los cuales se
decidió elegir un sistema Linux.
Además, por las ventajas mencionadas acerca de trabajar en entornos virtuales en el
ámbito de auditorías de seguridad, y sumado a restricciones que se presentan en el hardware a
utilizar, se decidió instalar Kali Linux sobre una máquina virtual.
Para dicha virtualización se utilizará Virtual Box, ya que por medio de esta aplicación
es posible instalar sistemas operativos adicionales, conocidos como sistemas invitados, dentro
de otro sistema operativo anfitrión, cada uno con su propio ambiente virtual.
Una vez configurado el entorno de trabajo, ya se está en condiciones de avanzar en la
toma de decisiones acerca de la metodología a seguir para realizar el Test de Intrusión y de
esta forma dar comienzo a la auditoría de seguridad del Centro de Datos y Comunicaciones
de la UNICEN.
42
5. Metodología del Test de Intrusión
Como se mencionó en el capítulo Estado del Arte, existen varios estándares que
definen diversas metodologías para llevar a cabo un Test de Intrusión. Cada uno define una
serie de etapas en las cuales se divide la prueba y en cada una se plantean objetivos a cumplir
para poder seguir con las etapas siguientes.
La elección de la metodología va a depender de las características del sistema objetivo
que se desea auditar y de la experiencia previa del pentester.
El caso de estudio en el presente trabajo es una entidad educativa estatal, con una
distribución geográfica bastante particular de los distintos nodos de su red, donde el acceso
físico a la misma es relativamente fácil para cualquier persona que se encuentre dentro del
campus universitario.
Basado en lo mencionado previamente, en el análisis de los distintos estándares y en
el estudio de casos prácticos de Tests de Intrusión, se optó por la siguiente división de etapas:
Cuando se hace referencia a las reglas de juego se hace una comparación con las
reglas de cualquier actividad recreacional donde se imponen límites de acción, como podría
ser un juego de mesa. Donde las piezas tienen un determinado tipo de movimiento y cantidad
de desplazamientos, etcétera.
El caso del pentesting es similar, ya que al inicio de toda auditoría se debe llegar a un
acuerdo sobre los objetivos que el cliente desea alcanzar, los límites a los que se verá
expuesto el equipo de auditores, es decir, el ámbito de acción, ya que la información que
estará a su disposición será totalmente confidencial. Todo lo acordado deberá ser recogido en
un documento llamado NDA por sus siglas en inglés (non-disclosure agreement, o acuerdo
de confidencialidad en castellano). Este documento debe ser firmado por ambas partes donde
se declare la conformidad entre las mismas. Es importante que sea de esta manera ya que en
el caso de que alguna de las partes tenga alguna queja o reclamo en relación a las vías o
maneras que se están adoptando para realizar la prueba, siempre se pueda recurrir al contrato
para verificar que no se vulnera ninguna norma allí establecida.
43
Suele suceder que en esta etapa el cliente toma conciencia de los peligros a los que se
ve expuesta su organización, e incluso sobre la necesidad de realizar una auditoría de
seguridad cada cierto período de tiempo, atendiendo a las nuevas formas que van encontrando
los posibles atacantes para llegar a su objetivo.
Puede ocurrir que el cliente quiera delimitar el ámbito de la prueba, por lo que se
incorporan ciertas restricciones al test. Estas restricciones, siempre y cuando vayan por el
contrato, deben ser tomadas muy en cuenta por parte del auditor, ya que la información que
se maneja será confidencial.
Esta es la primer etapa puramente práctica, donde el equipo de auditores hará uso de
las diversas técnicas como Footprinting, Fingerprinting, Google Hacking, entre otras, para
intentar obtener la mayor cantidad de información sobre la organización que se va a someter
al test.
Otras vías muy comunes de localizar información es en redes sociales (al día de hoy
en dichas redes hay mucha más información de la que debería o se desearía), Ingeniería
Social a los trabajadores de la empresa, o simplemente en blogs dedicados, donde se puede
encontrar información proveniente de personas que por curiosidad o con malas intenciones ya
han estado en la búsqueda de vulnerabilidades de la organización objetivo.
Cuando se centra en personas físicas algunos ejemplos de información que se puede
obtener de ellas son direcciones de correo electrónico, direcciones postales, información
personal, etcétera. Desde la perspectiva corporativa, la información que se buscará obtener
abarca direcciones IP, resolución de nombres DNS, y otros datos no tan técnicos como el
organigrama de la empresa, patrones de las direcciones de correo electrónico, áreas internas,
nombre de gerentes, etcétera
Cuanta más información se obtenga, más posibilidades de ejecutar un ataque exitoso
se tendrá.
Dentro de esta etapa se encuentran dos fases:
- Footprinting Externo: detalla el procedimiento para recolectar información de
forma externa a la organización. A su vez esta fase se encuentra estructurada
en dos fases más:
44
- Footprinting Activo: se destaca por interactuar directamente con la
infraestructura de la empresa objetivo mediante consultas al DNS, análisis de
cabeceras HTTP, enumeración de puertos y sus servicios, etcétera.
- Footprinting Pasivo: recurre a la consulta de la información previamente
indexada por motores de búsqueda, registros públicos, foros, etcétera.
- Footprinting Interno: se centra en las actividades que se pueden realizar una
vez que el atacante haya conseguido acceso parcial a la red interna, donde
intentará volver a conseguir la mayor cantidad de información posible, para
seguir escalando el ataque a otros equipos dentro de la organización.
Esta probablemente sea la etapa que más entusiasmo le genera a los auditores.
Basándose en la información recopilada con anterioridad y fundamentándose en los
conocimientos adquiridos luego de numerosos análisis de vulnerabilidades, se logran superar
las barreras de seguridad que plantean las organizaciones dejando al descubierto las vías por
las cuales un atacante externo puede hacerse con el control del sistema víctima.
45
Sin embargo, en esta etapa también es posible caer en la cuenta de que hubo errores
en las etapas anteriores y se obtendrán los llamados falsos positivos. Esto no solamente
perjudicará en el tiempo utilizado sino que también podría afectar a la veracidad del proceso
que se ha empleado para realizar la recolección de información, con lo cual se pondrá en
riesgo el informe posterior que se le presentará al cliente.
Uno de los elementos más utilizados a la hora de querer tomar el control de un
sistema, es el uso de exploits. El significado de la palabra es aprovechar o explotar, lo cual
trasladándose al ámbito informático se podría concluir que se trata de un conjunto de
acciones, códigos o secuencias de comando con los cuales se quiere aprovechar o explotar
una vulnerabilidad de un sistema informático con el afán de conseguir un comportamiento
beneficioso para el atacante, o lo que es lo mismo, no deseado para la víctima.
Sin embargo, es verdad que un hacker puede lanzar todos los exploits que desee sin
importarle las consecuencias que con ello origine en la organización que está atacando, pero
el equipo de auditores dedicados al hacking ético no puede permitirse ese lujo, porque debe
asegurarse en todo momento de tener el control de las acciones que se estén realizando, por lo
que solamente debería ser lanzado si se dispone la certeza de que se obtendrá un resultado
positivo en la prueba. Es por ello que, aunque la automatización está muy bien vista para la
realización de labores de auditoría, en este caso no se considera una buena práctica, ya que el
uso de herramientas para realizar el lanzamiento automatizado e indiscriminado de exploits,
aunque resulta beneficioso en tiempo, casi nunca posee el completo conocimiento de lo que
realiza cada uno de los exploits y podría generar más daños que beneficios en el sistema
testeado.
Los frameworks más populares para la utilización de exploits son: Metasploit,
Immunity Canvas y Core Impact. El primero se encuentra en el Top Ten de herramientas más
utilizadas para labores de este tipo, y es el que se utilizará en el presente trabajo debido a la
gran calidad que posee su versión gratuita.
Una vez logrado el acceso total o parcial al sistema víctima, es imprescindible intentar
mantenerlo en el tiempo. ¿Por qué es importante? Porque es lo que un atacante real haría, no
se conformaría con acceder una sola vez si puede hacerlo en el momento que lo desee.
46
Además, es muy probable que un atacante utilice los equipos de la red que ya ha
logrado controlar para intentar hacerse con el control de nuevos equipos de mayor
importancia dentro de la red, e incluso así, poder escalar permisos.
Esta técnica, por la cual se va obteniendo acceso a los distintos equipos dentro de una
red se conoce habitualmente como pivoteo.
Por último se intentará dejar un backdoor (puerta trasera) para poder ingresar al
sistema cuando se desee sin tener que perder tiempo volviendo a aplicar las técnicas de
hacking que se utilizaron en un primer momento para acceder al sistema.
47
que va a ser leído por profesionales que, al interpretar los documentos, van a buscar las
soluciones adecuadas para paliar las deficiencias encontradas.
En cambio, en el informe ejecutivo se debe reportar el mismo número de
vulnerabilidades que en el informe anterior, pero sin entrar demasiado en detalle para que se
entiendan claramente los riesgos existentes en la organización. Todo esto complementado a
una lista de recomendaciones, que aunque no tengan carácter técnico haga entender al cliente
la necesidad de subsanar los fallos si lo que se desea es conservar los intereses de la
organización.
48
6. Fase 1: Establecimiento de alcance y reglas de juego
Si bien, en todas las auditorías de seguridad se firman contratos de confidencialidad, o
al menos deberían firmarse, este es un caso particular ya que no es realizada por auditores
profesionales, la entidad a ser auditada no es una empresa privada, y la relación entre
auditores y auditados no es comercial en la que una parte presta un servicio a la otra a cambio
de un pago de dinero.
Debido a lo mencionado, es que se realizó un Acuerdo de Confidencialidad y No
Divulgación de Información aplicable al caso en particular. Dicho acuerdo, fue armado por
los tesistas y luego validado, junto con las modificaciones correspondientes, por un abogado
de la Universidad Nacional del Centro.
Una vez se tuvo el acuerdo de confidencialidad terminado, se reunieron todas las
partes involucradas para firmarlo. En esta reunión, además de los auditores, estuvieron
presentes el Magister Claudio Aciti (Tutor de Tesis), el Ingeniero Martín Bradaschia (Tutor
de Tesis y encargado del Centro de Datos y Comunicaciones) y el Ingeniero Hernán Cobo
(Coordinador de Informática de UNICEN).
Lenguaje legal técnico de lado, en dicho documento se tratan 3 tópicos principales:
1- Confidencialidad: los auditores se comprometen a mantener la
confidencialidad de toda la información, ya sea de la recaudada como parte del
proceso de la auditoría o la provista por parte de los representantes del sistema
auditado.
2- Integridad: se debe mantener en todo momento la integridad de los datos
del sistema auditado. Con esto se quiere decir que no se puede eliminar, dañar,
modificar o alterar cualquier información, sea o no confidencial.
3- Duración: establece el tiempo durante el cual se debe mantener vigente el
cumplimiento de los ítems anteriormente mencionados.
Además, se establecen 3 tópicos más, referidos específicamente a establecer las pautas
a seguir en caso de no cumplir con lo establecido en dicho acuerdo. Estos establecen la
Indemnización, la Jurisdicción y Competencia, y los Domicilios Legales.
El Acuerdo de Confidencialidad y No Divulgación de Información se encuentra en el
Anexo I del presente informe.
49
7. Fase 2: Recolección de Información
La primer fase práctica del Test de Intrusión se centra en la recolección de la mayor
cantidad de información posible sobre el sistema a auditar, tanto de sus componentes de
software como de hardware, e incluso del personal de la entidad. Esta fase, también conocida
como Information Gathering, es el paso más crítico de una prueba de seguridad, debido a que
las fases subsiguientes van a estar basadas en la información con la que se cuente una vez
finalizada la misma. Si la información obtenida no es verídica podemos caer en falsos
positivos, e incluso llegar a callejones sin salida que harán que debamos volver sobre
nuestros pasos, con la pérdida de tiempo y esfuerzo que esto conlleva.
Esta tarea puede llevarse a cabo de muchas maneras diferentes. En esta ocasión se
utilizará el planeamiento propuesto por el Penetration Testing Execution Standard [PTE09] y
la Guía Inteco de Seguridad sobre Information Gathering [Feb11]. Este planeamiento se
divide en 2 etapas: External Footprinting e Internal Footprinting.
La primera consiste en obtener información de forma externa a la organización, ya sea
porque es pública intencionalmente o por error, mientras que la segunda consiste en realizar
estas búsquedas de información desde dentro de la red a la cual se desea realizar el Test de
Intrusión.
50
6. Encontrar correos electrónicos e información de usuarios que pueda servir para
planear un ataque de Ingeniería Social
7. Mapeo de la red interna
51
7.2.1.1. Whois
7.2.1.1.1. Introducción
7.2.1.1.2. Ejecución
52
Además, whois se puede ejecutar desde múltiples sitios web, obteniendo la
información de manera más detallada y amigable. Por ejemplo, en las figuras 7-2, 7-3 y 7-4
se puede ver una consulta para la misma IP desde la web http://whois.domaintools.com/.
53
Figura 7-4: Fragmento de respuesta del whois para la Ip 131.221.0.3 desde
http://whois.domaintools.com
Utilizando estas herramientas web la información presentada no solo es más
amigable, sino también, es más amplia. Esto se debe a que, por lo general, tanto las
herramientas web como las aplicaciones que simplifican el camino para obtener la
información, no suelen ser minimalistas. Cuando estas herramientas trabajan sobre una base
de datos, como es el caso del whois, son una ventaja. Pero cuando actúan directamente sobre
el sistema auditado pueden ser un problema, ya que mientras más invasivamente se
comporten, más probabilidades de ser descubiertos tenemos.
En este caso, a través de una búsqueda IP inversa, se obtuvieron los sitios web que
utilizan esta IP. Esto sirve como otro punto de partida para continuar buscando información.
En las figuras 7-5 y 7-6 se observa el resultado de utilizar esta herramienta sobre los
dominios encontrados.
54
Figura 7-6: Ejecución de whois para el dominio unicen.edu.ar
7.2.1.2.1. Introducción
55
En este caso se hará uso de los operadores avanzados de Google en su motor de
búsqueda para localizar cadenas específicas de texto dentro de los resultados de búsqueda.
A continuación se describen algunos de los operadores más útiles disponibles para
aplicar filtros a nuestras búsquedas:
site: Este operador filtra por el dominio. Si se desea buscar todo lo relacionado con el
dominio unicen.edu.ar, en Google se realizaría la siguiente consulta “site:unicen.edu.ar”.
Intitle y allintitle: Busca la cadena introducida a continuación del operador en el título de las
páginas web indexadas. Dentro de Google Groups buscará en el título de los mensajes.
Dentro de Google Code buscará en los mensajes dentro de los proyectos (issues). La
diferencia entre intitle y allintitle es:
- intitle:”index of” “backup”: busca “index of” en el título pero no “backup”.
- allintitle: “index of” “backup”: busca todas las cadenas en el título.
inurl y allinurl: Busca la cadena introducida a continuación del operador en el enlace
indexado por el robot de Google. La diferencia entre el operador con el prefijo all y sin él es
la misma que en el operador anterior pero aplicado a las urls.
filetype: Busca documentos con la extensión introducida tras el operador avanzado.
allintext: Busca la cadena introducida en el texto de la página web.
link: Este operador busca páginas que enlazan a la página introducida a continuación
del operador.
daterange: Se limita el resultado de la búsqueda a las fechas publicadas en
determinado rango horario.
cache: Busca el contenido en la caché de google.
info: Google ofrece información del sitio, como la caché, páginas similares a la
introducida, páginas que tengan un enlace a esta, páginas indexadas de ese dominio y páginas
que contengan la cadena introducida.
Estos operadores no se restringen únicamente al contexto web y alguno de los
operadores pueden ser utilizados en Google Images (indexa imágenes), Google Code
(proyectos de software), Google Groups, etcétera.
Hay servidores con búsquedas para ver cómo usarlos. La herramienta SEAT permite
automatizar estas búsquedas utilizando las bases de datos de GHDB, NIKTO, GSDB,
WMAP, URLCHK, NESTEA, y los motores de búsqueda de Google, Yahoo, MSN,
AltaVista, AOL y DMOZ.
56
El abanico de posibilidades es inmenso, y es una técnica que requiere de creatividad
por parte del atacante o auditor.
7.2.1.2.2. Ejecución
Hasta el martes,
Gabriela
57
Además se encontraron los siguientes links para explorar carpetas dentro del servidor.
Si se observa la parte inferior se puede apreciar información sobre el tipo y versión del
servidor, y el puerto por el que se accede.
Figura 7-9: Directorio xgap perteneciente a unicen encontrados desde búsqueda en Google
58
Figura 7-10: Directorio pipermail perteneciente a unicen encontrados desde búsqueda en Google
Figura 7-11: Búsqueda dentro del dominino unicen.edu.ar para archivos pdf que contengan la palabra
“bradaschia”
59
Como se puede observar, se logró obtener un padrón de docentes de la universidad
junto con sus DNI. Si bien esta es información intencionalmente pública, es de valiosa
información para un atacante. Puede ser utilizada, por ejemplo, para un ataque de Ingeniería
Social. Además se puede utilizar para nutrir un diccionario que luego pueda ser usado para
ataques a contraseñas.
60
Figura 7-13: Ruta bloqueada para accesos externos
61
La búsqueda site:unicen.edu.ar administrador admin arrojó los siguientes resultados:
http://listas.rec.unicen.edu.ar/cgi-bin/mailman/admin
http://listas.rec.unicen.edu.ar/cgi-bin/mailman/listinfo
Dentro de esos enlaces se encontró información sobre listas de emails como se puede
ver en la figura 7-15.
62
site:unicen.edu.ar login|logon: busca todos los dominios donde exista inicio de
sesión. Esto es útil para luego aplicar técnicas como Cross Site Scripting (XSS), fishing,
ataques a contraseñas, etcétera. Algunos de los resultados son los siguientes:
https://cas.rec.unicen.edu.ar:8443/cas/login
http://niecyt.exa.unicen.edu.ar/es/live/logon.html;jsessionid=cthgdfn5bbq9b
http://aula.fch.unicen.edu.ar/login/index.php
http://www.unicen.edu.ar/pasantias/code/login.php
http://www.ridaa.unicen.edu.ar/examples/jsp/security/protected/index.jsp
http://www.unicen.edu.ar/user
http://mail.vet.unicen.edu.ar/cgi-bin/openwebmail/openwebmail.pl
http://ead.fio.unicen.edu.ar/moodle2/login/forgot_password.php
http://apps.econ.unicen.edu.ar/wordpress/wp-login.php?action=lostpassword
7.2.1.3. Robtex
7.2.1.3.1. Introducción
Robtex es un motor de búsqueda que permite realizar ciertas partes del procedimiento
activo de Footprinting de manera pasiva, es decir, en lugar de preguntar directamente a los
servidores la información sobre sus dominios, subdominios, servidores dns, etc, permite
obtener dicha información sin dejar rastros en el objetivo a través de una sencilla consulta
web.
7.2.1.3.2. Ejecución
63
Figura 7-17: Analisis de Robtex para unicen.edu.ar
Figura 7-18: Respuesta de Robtex con los host dentro del dominio unicen.edu.ar
64
Figura 7-19: Grafo de red generado por Robtex para el dominio unicen.edu.ar
65
Figura 7-21: Respuesta de Robtex con los host dentro del dominio rec.unicen.edu.ar
Figura 7-22: Grafo de red generado por Robtex para el dominio unicen.edu.ar
Estos son tan solo algunos de los datos que se puede obtener utilizando Robtex. Como
se puede observar, los resultados son extremadamente gráficos y permiten hacer un análisis
profundo de los dominios, hasta incluso poder realizar mapeos de la red.
66
7.2.1.4. SHODAN
7.2.1.4.1. Introducción
Shodan recoge datos sobre todo en los servidores web (HTTP puerto 80), pero
también hay algunos datos de FTP (21), SSH (22) Telnet (23), SNMP (161) y SIP (5060).
7.2.1.4.2. Ejecución
En la figura 7-23 puede apreciarse la información básica de sobre esta Ip, como lo
puede ser la organización a la que pertenece y el país donde se encuentra, entre otras.
67
Figura 7-24: Información de Shodan sobre el puerto 21 de la Ip 131.221.0.3
La figura 7-25 indica que el puerto 22 está abierto, contiene el servicio OpenSSH
versión 5.5p1 y utiliza el sistema operativo Debian 6. Adicionalmente se proveen otros datos
como los posibles algoritmos de encriptación, su llave pública, etc.
68
Figura 7-25: Información de Shodan sobre el puerto 22 de la Ip 131.221.0.3
Por último, también se consigue información sobre el puerto 80(http). Para este caso
(figura 7-26), se consiguió información útil como lo puede ser el servidor que se expone
(Apache 2.2.16), el sistema operativo (Debian) y la versión de Php utilizada (5.3.3-7).
69
Figura 7-26: Información de Shodan sobre el puerto 80 de la Ip 131.221.0.3
7.2.1.5. Maltego
7.2.1.5.1. Introducción
7.2.1.5.2. Ejecución
Lo primero que se debe hacer es crear una entidad del tipo “dominio” e introducir el
dominio de la UNICEN (www.unicen.edu.ar). Luego se aplica la primer transformación
donde se parte del DNS y se buscan datos del dominio. De toda la información devuelta, se
hará hincapié en la IP del dominio la cual es 131.221.0.3.
70
Figura 7-27: Primera transformación de Maltego partiendo de www.unicen.edu.ar
Figura 7-28: NS Records encontrados por Maltego a partir del dominio unicen.edu.ar
71
Figura 7-29: Resultado obtenido luego de aplicar todas las transformaciones de los NS Records con Maltego
Figura 7-30: Resultado obtenido luego de aplicar todas las transformaciones de las direcciones Ip
131.221.1.0.1-2 con Maltego
72
La ventaja de esta herramienta es la rapidez con la que se encontraron estos resultados
y la presentación visual de los mismos. La desventaja es la falta de posibilidad de aplicar
búsquedas creativas o explotar distintos ángulos o acercamientos. Esto hizo que rápidamente
se vuelva al mismo lugar del que se partió, o se llegó siempre a los mismos resultados por
más que se exploren caminos distintos.
Hasta este punto todas las distintas herramientas y técnicas que se utilizaron, son
consideradas como pasivas ya que no se realiza ningún tipo de escaneo o contacto con la
máquina objetivo, pero de todas formas se puede construir un mapa del mismo sin interactuar
con él.
La otra categoría dentro de Footprinting es la activa. Esta misma, como su nombre lo
indica, consiste en la identificación activa de objetivos mediante tareas tales como escaneo de
puertos, identificación de servicios, identificación de sistemas operativos, etc.
7.2.2.1. Netcat
7.2.2.1.1. Introducción
Es una herramienta de red que permite a través de intérprete de comandos y con una
sintaxis sencilla abrir puertos TCP/UDP en un HOST (quedando netcat a la escucha), asociar
una shell a un puerto en concreto (para conectarse por ejemplo a MS-DOS o al intérprete
bash de Linux remotamente) y forzar conexiones UDP/TCP (útil por ejemplo para realizar
rastreos de puertos o realizar transferencias de archivos bit a bit entre dos equipos). En este
caso se utilizó para realizar un escaneo de puertos, desde el 01 al 999 sobre el dominio de la
UNICEN.
7.2.2.1.2. Ejecución
El comando ejecutado fue “nc -zv www.unicen.edu.ar 1-999”. En donde nc invoca a
la herramienta Netcat, la opción “z” se utiliza para reportar puertos abiertos, la opción “v” es
para incrementar el nivel de verbosidad en la salida visual del escaneo, www.unicen.edu.ar es
el dominio a escanear y 1-999 el rango de puertos. Para este caso se encontró que dicho
dominio cuenta con los puertos 80 (http) y 21(ftp) abiertos.
73
En la figura 7-31 se puede apreciar el mismo escaneo, pero esta vez para facilitar su
comprensión, se limitó la operación solamente al puerto 80.
Figura 7-31: Scan con la herramienta Netcat al puerto 80 del dominio perteneciente a la UNICEN
7.2.2.2. Whatweb
7.2.2.2.1. Introducción
7.2.2.2.2. Ejecución
74
Figura 7-32: Resultado de la herramienta Whatweb para el DNS www.unicen.edu.ar
75
7.2.2.3. BlindElephant
7.2.2.3.1. Introducción
7.2.2.3.2. Ejecución
Figura 7-33: Resultado de Blind Elephant para aplicaciones drupal en el dominio www.unicen.edu.ar
76
7.3. Footprinting Interno
Dentro del Footprinting Interno se ha optado por realizar tareas catalogadas como
activas. Esta denominación nace del grado de intrusión que estas tienen sobre el sistema. Las
herramientas que se describirán a continuación dejan un mayor nivel de rastros e indicios, los
cuales pueden levantar alertas ante los administradores de redes, sobre escanemos masivos de
host y puertos, o paquetes enviados con comportamientos pocos comunes.
7.3.1.1. Nmap
7.3.1.1.1. Introducción
Es un programa de código abierto que sirve para efectuar rastreo de puertos. Esta
herramienta fue creada originalmente para Linux aunque actualmente es multiplataforma y se
usa para evaluar la seguridad de sistemas informáticos, así como para descubrir servicios o
servidores en una red informática. Para ello Nmap envía unos paquetes definidos a otros
equipos y analiza sus respuestas.
Este software posee varias funciones para sondear redes de computadores, incluyendo
detección de equipos, servicios y sistemas operativos. Estas funciones son extensibles
mediante el uso de scripts para proveer servicios de detección avanzados, detección de
vulnerabilidades y otras aplicaciones. Además, durante un escaneo, es capaz de adaptarse a
las condiciones de la red incluyendo latencia y congestión de la misma. Todos los scripts
existentes se encuentran en https://nmap.org/nsedoc/. Como se podrá observar es una
herramienta extremadamente amplia.
7.3.1.1.2. Ejecución
Para comenzar se utilizarán las tablas con las divisiones internas de IPs de la
universidad que obtenidas de la wiki del rectorado en la etapa de Footprinting Externo
(utilizando Google Hacking) mediante el siguiente enlace:
- http://www.rec.unicen.edu.ar/wiki/doku.php?id=informatica:red:distribucion_ip
77
Figura 7-34: Distribución de bandas Ip dentro del Centro de Datos y Comunicaciones
78
Sobre esta información, se utilizarán las siguientes bandas de direcciones Ip:
- Unicen: 10.254.0.0/24
- Rectorado Data Center: 10.254.1.0/24
A continuación se muestra un ejemplo detallado sobre su uso sobre la banda de
direcciones Ips pertenecientes al Rectorado. En las etapas posteriores se continuará
demostrando lo efectiva y útil que resulta ser esta herramienta en la auditoría.
Se realizó un escaneo de la red para encontrar hosts activos dentro de la misma. En la
figura 7-36 se puede apreciar el comando ingresado en la terminal de Kali Linux.
79
Luego se puede indicar qué puertos de cada host se desea escanear. Si no se
especifican, el escaneo se realizará en una cantidad predeterminada de puertos lo cual no solo
conlleva un alto costo temporal sino que además dejará rastros notorios en la red. Entonces,
con la opción “-p”, se definen los puertos que se desean escanear.
Al escanear una combinación de protocolos (por ejemplo, TCP y UDP), se puede
especificar un protocolo particular, precediendo los números de puerto por T: para TCP, U:
para UDP, S: para SCTP o P: para el protocolo IP. El calificador dura hasta que se
especifique uno nuevo. Por ejemplo, el argumento -p U: 53,111,137, T: 21-25,80,139,8080
escanea tanto los puertos UDP 53, 111, y 137, como también los puertos TCP 21, 22, 23, 24,
25, 80, 139 y 8080. Hay que tener en cuenta que para escanear ambas UDP y TCP, se debe
especificar “-sU” y al menos un tipo de escaneo TCP (como -sS, -sF, o -sT). Si no se declara
calificador de protocolo, los números de puerto se añaden a todas las listas de protocolo.
Los puertos también pueden ser especificados por el nombre de acuerdo a lo que el
puerto hace referencia en los nmap-services. Incluso se pueden utilizar comodines como * y ?
con los nombres. Por ejemplo, para escanear FTP y todos los puertos cuyos nombres
comienzan con "http", se debe utilizar -p FTP, HTTP *.
Para este caso en particular se optó por la opción “-F”, la cual especifica un número
menor de puertos que los predeterminados. Normalmente Nmap utiliza los 1.000 puertos más
comunes para cada protocolo de escaneado. Con -F, esto se reduce a 100.
Por último, la opción “-v” (verbose) es definida para obtener la salida de los
resultados del scan y adicionalmente se agrega otra “v” para indicar que se desea información
extra (extra verbose).
Si bien la salida obtenida contiene una gran cantidad de información. La misma es
demasiado grande y solo queda plasmada dentro de la terminal, por lo tanto, en el momento
que dicha terminal sea cerrada, estos resultados se perderán. Ante esto se agregó una última
parte al comando, la cual vuelca la salida de la operación anterior en un archivo al cual
llamaremos “scan_rectorado”.
Figura 7-37: Escaneo de nmap para la banda del Rectorado con volcado al archivo scan_rectorado
80
Este archivo contendrá líneas como la siguiente, para aquellos hosts que se encuentren
caídos:
- Host: 10.254.1.185 () Status: Down
Y además contendrá líneas como las siguientes para aquellos host que están
levantados:
- Host: 10.254.1.1 () Status: Up
- Host: 10.254.1.1() Ports:22/open/tcp//ssh///, 25/open/tcp//smtp///,
135/filtered/tcp//msrpc///, 179/open/tcp//bgp///, 993/filtered/tcp//imaps///,
1720/filtered/tcp//h323q931///, 5666/open/tcp//nrpe/// Ignored State: closed (93)
En base a esto se puede concluir que el host 10.254.1.1 está levantado. A esta
información se le agrega el conocimiento de que dicha computadora consta de los puertos 22,
25, 135, 179, 993, 1720 y 5666 abiertos junto a la información de qué protocolo tiene cada
puerto y qué funcionalidad cumplen. Como en el caso del puerto 22 que está abierto, tiene el
protocolo TCP y sirve como puerto SSH.
En base a este archivo, en formato “grepeable”, se puede correr el siguiente comando:
Figura 7-38: Formateo de archivo generado en la figura 7-37, filtrado sólo los hosts activos
Primero se ejecuta “cat scan_rectorado” para generar una salida con la totalidad del
contenido del archivo, y como el formato dicha salida “grepeable”, se realiza un grep
(comando de filtrado) por la expresión Up. Esta última operación retornará todas las líneas
en donde se encuentra dicha expresión. Un fragmento de ejemplo puede ser el siguiente:
Host: 10.254.1.224 () Status: Up
Host: 10.254.1.225 () Status: Up
Host: 10.254.1.226 () Status: Up
Host: 10.254.1.227 () Status: Up
Host: 10.254.1.228 () Status: Up
Host: 10.254.1.229 () Status: Up
Host: 10.254.1.230 () Status: Up
Sobre esta salida se implementa el AWK, el cual es un lenguaje de programación
diseñado para procesar datos basados en texto, ya sean ficheros o flujos de datos. Dicho
comando tendrá la opción -F para declarar un campo separador (field separator), eligiendo un
espacio vacío (“ “). Esto separará cada línea en 4 columnas y de esas 4 se imprimirá la
81
segunda ({print $2}), que contiene la dirección Ip. Dejando la entrada anterior, de la siguiente
forma:
10.254.1.224
10.254.1.225
10.254.1.226
10.254.1.227
10.254.1.228
10.254.1.229
10.254.1.230
Por último se volcaran todo esto en el archivo scan_rectorado_hosts_up, y así se
obtiene una lista de todos los host levantados en el rango correspondiente al rectorado, para
posteriormente utilizarlo como una nueva entrada de nmap y poder realizar escaneos de
forma mucho más eficiente.
Tomando como entrada este nuevo archivo (lista de hosts activos) se realizará la
detección de los sistemas operativos (fingerprinting activo) de los mismos a través de la
siguiente instrucción de nmap:
Al igual que la instrucción anterior, ésta comienza con “nmap”, haciendo referencia a
la herramienta utilizada, y “-oG” para que la salida sea en formato “grepeable”. Con la
opción “-iL” se indica que el rango de direcciones Ip se encontrará en el archivo
scan_rectorado_hosts_up.
La opción “-O” habilita la detección del Sistema Operativo (también podría usarse la
opción “-A”). Esta detección es más efectiva si al menos se encuentran un puerto TCP
abierto y uno cerrado. Con la opción --osscan-limit se restringe la detección solo a los host
que cumplan este requisito. Esto genera una mejora en los tiempos de escaneo la cual es
efectiva sobre todo cuando se realiza el escaneo sobre una lista larga de hosts.
Como ya se ha mencionado, en etapas posteriores se volverá a hacer uso de nmap
como una de las herramientas principales del Test de Intrusión, y se profundizará en más
posibilidades y configuraciones que la misma permite.
82
7.4. Resumen
83
autenticación de ningún tipo. Por último, también se logró enumerar gran cantidad de sitios
web que poseen formularios de inicio de sesión. Esto último aumenta la probabilidad de
efectuar ataques de Cross Site Scripting (XSS), phishing, ataques de contraseñas, etc.
Con Robtex se obtuvo información similar a la obtenida con whois, como IP’s, DNS,
IP’s relacionadas mediante la utilización de Reverse Proxy, etc. Pero además, la información
fue presentada a través de gráficos que permiten visualizar la relación entre los servidores e
IP’s.
Mediante Shodan se lograron enumerar los puertos y servicios expuestos en las IP’s
públicas analizadas, e información de los sistemas operativos, aplicaciones y sus versiones,
enriqueciendo el fingerprinting del sistema auditado..
Maltego brindó información replicada con respecto al resto de las herramientas
utilizadas en el Footprinting Externo Pasivo, pero la representa visualmente de una manera
que permite interpretarla de forma sencilla. Con un simple vistazo a los gráficos se puede
notar la relación entre las URL’s, IP’s, DNS. Y además brinda información no técnica como
nombres de personas, e-mails, ubicaciones geográficas, etc.
Durante el Footprinting Externo Activo se utilizaron herramientas como netcat la cual
brindó información sobre puertos abiertos y servicios corriendo en los mismos. Esta
información ya había sido obtenida de forma pasiva, por lo que no resultó de gran utilidad, al
menos en los casos de uso que se probaron.
La herramienta whatweb fue una de las herramientas que resultaron más útiles para el
fingerprinting, ya que brindó información sobre las aplicaciones corriendo en los diversos
dominios auditados y sus versiones, y luego se utilizó su salida como entrada de
Blindelephant, para complementar aún más esta información. Obteniendo las aplicaciones y
sus versiones, es posible conseguir un listado de vulnerabilidades a las cuales se encuentran
expuestas. Son dos herramientas que se complementan y que expresan resultados amplios de
forma amigable. Un ejemplo de esto es que whatweb en sus resultados tiene un apartado
donde da una breve descripción sobre las aplicaciones encontradas.
En la etapa de Footprinting Interno se logró identificar los hosts activos en la red y
hacer un mapeo de la misma. Gracias a la tabla de IP’s encontrada en una wiki mediante la
técnica de Google Hacking en el Footprinting Externo Pasivo se realizó un escaneo de las
bandas de Unicen y Rectorado previamente habiendo acordado el alcance con los
representantes del Centro de Datos y Comunicaciones.
84
Utilizando esta información como entrada en la herramienta Nmap se identificaron
decenas de hosts activos en dichas bandas, junto con sus puertos abiertos, los servicios
corriendo en los mismos e información de sistemas operativos y aplicaciones.
85
8. Fase 3: Análisis de vulnerabilidades
Una vez completada la fase anterior, se cuenta con una gran cantidad de información
sobre el sistema que se desea auditar. Dicha información está catalogada y priorizada de
cierta forma que permite tener un amplio conocimiento sobre la red informática en cuestión.
Dado que una red informática es un conjunto de dispositivos interconectados entre sí
a través de un medio, que intercambian información y comparten recursos. Es fundamental
comprender cada nodo de dicho sistema para luego intentar buscar puntos débiles y ser
conscientes del impacto que puede llegar a tener un ataque sobre estos.
Por lo tanto, es momento de analizar los datos recolectados en búsqueda de todas las
secciones que pueden ser susceptibles a amenazas. De esta forma se podrá acceder a un
nuevo nivel de conocimiento, en el que no solo se comprenda la red junto a la funcionalidad
y finalidad de cada elemento que la compone. Sino también, tener una comprensión de las
vulnerabilidades a las que esta red está sometida, logrando así, la capacidad de buscar
soluciones que fortalezcan e incrementen en la mayor forma posible su seguridad.
8.1. Herramientas
Las principales herramientas utilizadas en esta fase son las siguientes: Nmap,
Wireshark, Nikto, Nessus, Metasploit.
La primer herramienta mencionada, Nmap, ya ha sido descrita en el capítulo
anterior, por lo que en este capítulo solamente se explicarán los scripts utilizados para
encontrar y justificar vulnerabilidades.
Mediante la herramienta Wireshark (incluida por defecto en la distribución Kali
Linux) podremos analizar la información que transita la red. Aqui se podra ver de qué forma
viajan los paquetes, junto a su nivel de seguridad (cifrado). El objetivo aquí será la búsqueda
de servicios expuestos con seguridad precaria, como lo pueden ser las autenticaciones
mediante texto plano.
Por lo tanto esta herramienta se utilizará como complemento para obtener de forma
más precisa el alcance de las vulnerabilidades existentes debido a la mala implementación de
protocolos de comunicación.
86
Nikto es una herramienta de tipo open source y se encuentra incluida en la
distribución Kali Linux. Su propósito es el escaneo de servidores web en busca de malas
configuraciones y vulnerabilidades, detección de ficheros en instalaciones por defecto, listado
de la estructura del servidor, versiones y fechas de actualizaciones de servidores, tests de
vulnerabilidades XSS, ataques de fuerza bruta por diccionario, reportes en formatos txt, csv,
html, etc.
Esta herramienta realiza tests comprensivos por múltiples ítems, incluyendo más de
6700 archivos de interfaces de entradas comunes (por sus siglas en inglés CGI, Common
Gateway Interfaces) potencialmente peligrosos, chequeos de versiones desactualizadas de
más de 1250 servidores, y problemas de versiones específicas de más de 270 servidores. A su
vez, también realiza chequeos en la configuración del servidor, tales como la presencia de
múltiples índices de archivos, opciones de servidor HTTP, y también intenta identificar
software y servidores webs instalados.
Esta herramienta se utiliza mediante la terminal de linux. A modo introductorio se
puede ingresar el comando nikto -Help para desplegar una descripción de todas las
operaciones que se pueden realizar. Dentro de ellas se tienen la opciones de Tuning.
Estas opciones controlan los tests que ejecuta Nikto contra un objetivo. Por defecto
todos los tests son ejecutados, sin embargo, con la opción -tuning (-T) se puede especificar
cuales de los test deben de ser ejecutados por Nikto en el caso de que sea de interés solamente
ejecutar algunos.
Cada test está identificado por el siguiente listado de argumentos que identifican el
test que debe ejecutar Nikto. La opción -Tunning admite varios argumentos, de esta forma se
87
puede declarar más de uno de los tests definidos. Un escaneo realizado sobre un host está
conformado por la siguiente sintaxis:
De todas formas, esto resulta útil si se requiere un escaneo específico sobre una
dirección IP, pero si se quiere realizar un chequeo sobre toda la banda que se desea auditar,
los resultados obtenidos no estarán en un formato cómodo y legible para su análisis. Es por
88
esto que se utilizará Nessus, que usa Nikto y Nmap pero a su vez retorna resultados en
formatos visuales fáciles de interpretar.
Esta herramienta trabaja escaneando los puertos con nmap o con su propio scanner
para buscar puertos abiertos y después intentar varios exploits sobre ellos. Tanto las pruebas
de vulnerabilidad disponibles como también una larga lista de plugins, están escritos en
NASL (Nessus Attack Scripting Language, o Lenguaje de Scripting de Ataque Nessus por sus
siglas en inglés), un lenguaje de scripting optimizado para interacciones personalizadas en
redes.
89
Figura 8-4: Instrucción sobre cómo descargar Nessus desde la terminal de Kali Linux
90
Figura 8-6: Creación de Usuario en Nessus
91
Figura 8-8: Configuración de escaneo en Nessus
92
Figura 8-10: Reporte de vulnerabilidades de Nessus
93
Figura 8-11: Consulta sobre el estado del servicio postgresql seguido de su inicialización
94
Figura 8-13: Ingreso a msfconsole (consola del framework Metasploit)
Desde este entorno el primer paso deberá ser generar una conexión con la base de
datos creada anteriormente. Esta operación se realiza mediante el siguiente comando:
db_connect postgres:[password_del_usuario]@127.0.0.1/msf.
Tras crear la conexión, ya se estarán en condiciones de realizar el volcado de la
información, mediante los archivos XML obtenidos de los escaneos con Nmap. En este caso
el comando a ingresar tendrá el siguiente formato: db_import [archivo xml].
De esta acción se obtienen numerosas ventajas. La primera es la capacidad de tener un
accesos rápido, eficiente y centralizado a la información obtenida en la etapa previa. Ya que
ahora es posible acceder a la información de los hosts y los servicios, con una gran variedad
de comandos y variantes. Para demostrar esto, el primer ejemplo será el comando hosts, el
cual devolverá el listado completo de los hosts importados detallado por dirección ip,
nombre, sistema operativo, propósito (por ejemplo: servidor), etc.
95
Figura 8-14: Volcado en la base de Metasploit mediante archivo xml de información de hosts
obtenidos con Nmap
Otro comando que resulta de gran utilidad es services, el cual tiene el mismo
propósito de hosts, pero en este se desplegará un listado con todos los servicios encontrados
96
por los escaneos de Nmap. El detalle de cada servicio contendrá la dirección del host y el
puerto donde se expone, el protocolo por el cual se puede acceder (tcp, udp), el nombre del
servicio (ssh, smtp, http, https, etc), el estado (abierto, cerrado o filtrado) y en algunos casos
información adicional.
97
Figura 8-17: Consulta a la base de Metasploit sobre la información de los servicios del host
10.254.1.240
Figura 8-18: Consulta a la base de Metasploit sobre la información de los servicios http
98
Figura 8-19: Volcado en la base de Metasploit sobre vulnerabilidades de hosts obtenidos con la
herramienta Nessus
Aquí tendremos el comando vulns. El cual nos mostrará todas las vulnerabilidades
que tengamos importadas.
Figura 8-21: Consulta a la base de Metasploit sobre cantidad de vulnerabilidades en host que utilicen
Windows
99
8.2. Vulnerabilidades de desbordamiento de buffer
Factor de Riesgo
Crítico
Descripción
El desbordamiento de búfer en el servicio del servidor en Microsoft Windows 2000
SP4, XP SP1 y SP2 y Server 2003 SP1 permite a los atacantes remotos, incluidos los usuarios
anónimos, ejecutar código arbitrario a través de un mensaje RPC.
Vulnerabilidades
CVE: 2006-3439
BID: 19409
MSFT: MS06-040
Hosts Afectados
10.254.1.18 (puerto 445/tcp/cifs)
10.254.1.152 (puerto 445/tcp/cifs)
Evidencia
Para evidenciar esta vulnerabilidad se han ejecutado 2 escaneos con la herramienta
Nmap. El primero ha evidenciado que hay un servicio microsoft-ds expuesto en el puerto 445
de dicho host.
En el segundo escaneo se ha utilizado el script smb-os-discovery, directamente sobre
el puerto 445. Este script intenta determinar el sistema operativo, el nombre de la
computadora, el dominio, el grupo de trabajo y la hora actual sobre el protocolo SMB. Esto
se hace iniciando una sesión con una cuenta anónima. En respuesta a una sesión que
comienza, el servidor devolverá toda la información necesaria como para justificar la
existencia de la vulnerabilidad.
100
Figura 8-22: Escaneo de Nmap para la Ip 10.254.1.18
Solución
Microsoft lanzó una serie de parches para Windows 2000, XP y 2003.
Factor de Riesgo
Crítico
Descripción
De acuerdo con su banner auto-reportado, si la versión de Apache 2.2.x que se
ejecuta en el host es anterior a 2.2.13 entonces, incluye una versión empaquetada de la
biblioteca Apache Portable Runtime (APR) que contiene una falla en 'apr_palloc()' que
101
podría causar un desbordamiento (overflow) del heap. Esta vulnerabilidad es crítica y podría
ser explotada a través de alguna aplicación con fines maliciosos.
Además, estas mismas versiones, al ser menores a la 2.2.15 también se ven expuestas
a las siguientes vulnerabilidades de estado crítico.
- Es posible un ataque de inyección de prefijo de renegociación TLS.
(CVE-2009-3555).
- El módulo 'mod_proxy_ajp' devuelve el código de estado incorrecto si encuentra un
error que hace que el servidor back-end sea puesto en un estado de error.
(CVE-2010-0408).
- El 'mod_isapi' intenta descargar el 'ISAPI.dll' cuando encuentra varios estados de
error que podrían dejar call-backs con estados indefinidos. (CVE-2010-0425)
- Una falla en el código de proceso de la sub-petición puede conducir a que la
información sensible sea manejada por un hilo (thread) incorrecto si se utiliza un
entorno de hilos múltiples (multi-threaded). (CVE-2010-0434)
Vulnerabilidades
- CVE-2009-3555: El protocolo TLS y el protocolo SSL 3.0 y posiblemente anterior,
como se utiliza en los Servicios de Microsoft Internet Information Server (IIS) 7.0,
mod_ssl en el servidor HTTP Apache 2.2.14 y anteriores, OpenSSL antes 0.9.8l,
GnuTLS 2.8.5 y anteriores, Mozilla Network Security Services (NSS) 3.12.4 y
versiones anteriores, varios productos de Cisco y otros productos, no asocian
adecuadamente los “apretones de manos” (handshakes) de renegociación con una
conexión existente, lo que permite a los atacantes intermedios insertar datos en
sesiones HTTPS y posiblemente otros tipos de sesiones protegidas por TLS o SSL,
enviando una solicitud no autenticada que es procesada retroactivamente por un
servidor en un contexto posterior a la renegociación, relacionado con un ataque de
inyección de texto plano, también conocido como el problema de Project Mogul.
- CVE-2010-0408: La función ap_proxy_ajp_request que se encuentra en
mod_proxy_ajp.c/mod_proxy_ajp de Apache HTTP Server 2.2.x con versiones
anteriores a 2.2.15 no maneja correctamente ciertas situaciones en las que un cliente
no envía un cuerpo de solicitud (request), lo que permite a atacantes remotos
provocar una denegación de servicio a través de una solicitud creada, relacionada con
102
el uso de un código de error 500 (error interno) en lugar del código de error 400
(solicitud incorrecta) que sería el apropiado.
- CVE-2010-0425: El archivo modules/arch/win32/mod_isapi.c en mod_isapi en el
Servidor HTTP Apache 2.0.37 a 2.0.63, 2.2.0 a 2.2.14, y 2.3.x antes de la 2.3.7,
cuando se ejecuta en Windows, no garantiza que el procesamiento de peticiones se
completa antes de llamar a isapi_unload para un módulo .dll de ISAPI, que permite a
atacantes remotos ejecutar código arbitrario a través de vectores no especificados
relacionados con una solicitud creada, un paquete de restablecimiento y "punteros
huérfanos de devolución de llamada".
Hosts Afectados
10.254.0.130 (puerto 80 /tcp/www)
10.254.0.200 (puerto 80 /tcp/www)
10.254.0.249 (puerto 8080 /tcp/www)
Evidencia
En este caso se utilizará la herramienta cURL, la cual proporciona una biblioteca y
una herramienta de línea de comandos para transferir datos usando varios protocolos. Es una
herramienta muy útil para hacer peticiones HTTP/S, y además consta de múltiples opciones,
entre ellas está la opción -I o --head. La cual retorna información de los encabezados. Los
servidores HTTP cuentan con el comando HEAD, que usa para obtener nada más que el
encabezado de un documento. Cuando se usa en un archivo FTP o FILE, curl muestra solo el
tamaño del archivo y la última modificación.Pero en este caso lo utilizamos para ver la
versiones de los Apaches que corren en dichos hosts.
103
Figura 8-24: Consulta de cabezados mediante cURL para la dirección 10.254.0.130
Figura 8-25: Escaneo con detección de versiones mediante Nmap para el puerto 8080 del host 10.254.0.249
Solución
Actualizar la versión de Apache a la 2.2.15 o superior.
Factor de Riesgo
Crítico
Descripción
La versión de Windows corriendo en el host tiene un error en la función
RemoteActivation en la interfaz RPC, que permite al atacante ejecutar código arbitrario con
permisos de sistema. Una serie de gusanos (Blaster) explotan esta vulnerabilidad.
Vulnerabilidad
CVE: 2003-0352
BID: 8205
MSFT: MS03-026
Host Afectados
10.254.1.18 (puerto 445/tcp/cifs)
10.254.1.152 (puerto 445/tcp/cifs)
104
Evidencia
Nuevamente se ha utilizado la herramienta Nmap, junto a su script smb-os-discovery,
de esta forma se ha confirmado que la versión de Windows está dentro de las afectadas por
dicha vulnerabilidad
Figura 8-26: Ejecución del script de Nmap smb-os-discovery para el puerto 445 en la ip 10.254.1.18
Solución
Microsoft lanzó parches para las versiones NT, 2000, XP y 2003.
Factor de Riesgo
Crítico
Descripción
El host está corriendo una versión de Windows que tiene un error en la interfaz RPC,
que permite al atacante ejecutar código arbitrario y ganar permisos de sistema. Se puede
utilizar un gusano para ganar control del host. Notar que este no es el mismo bug que el
descrito en MS03-026, que puede ser explotado con el gusano MSBlast (o LoveSan).
Vulnerabilidades
CVE: CVE-2003-0715, CVE-2003-0528, CVE-2003-0605
BID: 8458, 8460
MSFT: MS03-039
Hosts Afectados
10.254.1.18 (puerto 445/tcp/cifs)
10.254.1.152 (puerto 445/tcp/cifs)
105
Evidencia
A través de la ejecución de un script se pudo llegar al descubrimiento de esta
vulnerabilidad. Dicho script funciona como un escáner que envía nombres UNC (siglas del
inglés que significan Universal Naming Convention, es un método que se usa para identificar
carpetas, archivos y programas en un equipo en red. Una ruta UNC comienza con barras
invertidas \\ seguidas por el nombre del equipo, el nombre del recurso compartido y,
generalmente, el directorio y/o el nombre del archivo) a las solicitudes de activación remotas
y observa los mensajes de error. En base a estos mensajes de error puede darse cuenta de la
situación del host respecto a esta vulnerabilidad. Un tipo de mensajes de error indica que el
sistema es vulnerable, otro tipo diferente indica que el sistema está parcheado. Existe un
tercer tipo que indica que se encuentra DCOM instalado y la herramienta los descarta
silenciosamente. Y por último, un tipo de mensajes que indican que el sistema tiene DCOM
deshabilitado, por lo que no se puede saber si el parche está o no instalado.
Existen dos maneras de que los objetos sean activados remotamente. La primera es a
través de la interfaz ISystemActivator de la infraestructura .NET, y la segunda a través de la
conocida interfaz IRemoteActivation. El script realiza queries a ambas interfaces. Dicho
script se puede encontrar en la web de exploit-db.
Solución
Microsoft lanzó parches para las versiones NT, 2000, XP y 2003.
106
8.2.5. MS08-067: Vulnerabilidad en Microsoft Windows Server Service RPC
Factor de Riesgo
Crítico
Descripción
El host se encuentra afectado por una vulnerabilidad que permite la ejecución de
código remoto debido a errores en el manejo de consultas RPC. Un atacante remoto no
autorizado puede ejecutar código arbitrariamente con privilegios de Sistema, mediante el uso
de paquetes de consulta RPC especialmente diseñados.
Eclipsewing es un exploit diseñado por Shadow Brokers el 14/4/2017 con el cual se
puede explotar esta vulnerabilidad.
Vulnerabilidades
CVE: 2008-4250
BID: 31874
MSFT: MS08-067
CERT: 827267
EDB-ID: 6824, 7104, 7132
CWE: 94
Hosts Afectados
10.254.1.18 (puerto 445/tcp/cifs)
Evidencia
Se ha ejecutado un scan con la herramienta Nmap, junto a un script específicamente
diseñado para determinar si esta vulnerabilidad está o no presente.
Figura 8-28: Ejecución de script de Nmap, el cual verifica si la vulnerabilidad ms08-067 existe en el
puerto 445 de la dirección Ip 10.254.1.18
107
Solución
Microsoft lanzó una serie de actualizaciones para Windows 2000, XP, 2003, Vista y
2008.
Factor de Riesgo
Alto
Descripción
El host remoto es vulnerable a un desbordamiento de montículo (heap overflow), en el
servicio mencionado, que puede permitir a un atacante ejecutar código arbitrariamente con
privilegios de Sistema (SYSTEM privileges). Además, el host también está afectado por una
vulnerabilidad de divulgación de información en SMB que puede permitir al atacante obtener
porciones de la memoria de dicho host. Estas vulnerabilidades son fácilmente explotables con
la herramienta Core Impact.
Vulnerabilidades
CVE: 2006-1314, 2006-1315
BID: 18863, 18891
TRA: 2006-01
MSFT: MS06-035
Hosts Afectados
10.254.1.18 (puerto 445/tcp/cifs)
10.254.1.152 (puerto 445/tcp/cifs)
Evidencia
Igual que en casos anteriores, se ha acudido al script smb-os-discovery ejecutado con
la herramienta Nmap, el cual permite determinar la versión del sistema operativo. De esta
forma se puede deducir si es de aquellas que son susceptibles a esta vulnerabilidad.
108
Figura 8-29: Ejecución del script de Nmap smb-os-discovery para el puerto 445 en la ip 10.254.1.18 y
10.254.1.152
Solución
Microsoft lanzó una serie de parches para Windows 2000, XP y 2003.
109
8.3. Vulnerabilidades de error de formato de cadena
Factor de Riesgo
Crítico
Descripción
El host posee la biblioteca ASN.1 que puede permitir a un atacante ejecutar código
arbitrario. Para explotar este error, el atacante necesita enviar un paquete ASN.1
especialmente diseñado con longitudes incorrectas a las publicadas. Se envió un paquete
NTLM mal formado y determinó que el host no está parcheado. Se puede usar Metasploit,
CANVAS o Core Impact para explotar esta vulnerabilidad.
Vulnerabilidades
CVE: CVE-2003-0818
BID: 9633, 9635, 9743, 13300
MSFT: MS04-007
Hosts Afectados
10.254.1.18 (puerto 445/tcp/cifs)
10.254.1.152 (puerto 445/tcp/cifs)
Evidencia
Para evidenciar esto se utilizó la herramienta Nmap junto al script smb-enums-shares
el cual enumera las distintas bibliotecas, retornado entre ellas la que causa esta
vulnerabilidad.
110
Figura 8-30: Ejecución del script de Nmap smb-enum-shares para el puerto 445 en la ip 10.254.1.18
Solución
Microsoft lanzó parches para las versiones NT, 2000, XP y 2003.
Factor de Riesgo
Alto
Descripción
El servicio SMTP remoto contiene una falla de software en su implementación
STARTTLS que podría permitir a un atacante remoto no autenticado inyectar comandos
durante la fase de protocolo de texto plano que se ejecutará durante la fase del protocolo de
cifrado.
La explotación exitosa podría permitir a un atacante robar el correo electrónico de una
víctima o las credenciales SASL (Simple Authentication and Security Layer) asociadas.
Vulnerabilidades
CVE: 2011-2165, 2011-1506, 2011-1432, 2011-1431, 2011-1430, 2011-0411
OSVDB: 75256, 75014, 73251, 71946, 71854, 71021, 71020
BID: 46767
111
CERT: 555316
Hosts Afectados
10.254.0.160 (puerto 25/tcp/smtp)
Evidencia
El protocolo TLS cifra la comunicación y la protege contra modificación por otras
partes. Esta protección sólo existe si:
- El software está libre de defectos
- Los clientes verifican el servidor TLS certificado, para que no pueda haber
“man in the middle" (servidores generalmente no verifican certificados de
cliente).
El problema es causado por una falla de software. La falla permite a un atacante
inyectar comandos de cliente en un SMTP sesión durante la fase de protocolo SMTP sin
protección, de tal manera que el servidor ejecutará los comandos durante la fase de protocolo
SMTP-sobre-TLS cuando toda la comunicación es supuestamente protegido.
Las órdenes inyectadas podrían usarse para robar el correo electrónico de la víctima o
nombre de usuario y contraseña SASL (Simple Authentication and Security Layer).
En la figura 8-31 se demuestra la posibilidad de comenzar una comunicación
mediante el protocolo TLS. Haciendo uso del kit de herramientas openssl, se establece una
conexión con el puerto 25 del host 10.254.0.160 gracias al comando STARTTLS.
Solución
Póngase en contacto con el proveedor para ver si hay una actualización disponible.
112
8.4. Vulnerabilidades de Cross Site Scripting
8.4.1. Apache HTTP Server: Página de error 403 UTF-7 Encoded XSS
Factor de Riesgo
Alto
Descripción
De acuerdo con su banner, la versión del servidor HTTP Apache corriendo en el host
puede ser utilizada en ataques cross-site-scripting (XSS). Diseñando peticiones especiales se
puede inyectar código encodeado UTF-7 en la página de respuesta 403. Esto es una
vulnerabilidad del navegador web debido a no compluir con el RFC 2616. El servidor
Apache no es vulnerable, pero su mala configuración por default permite explotar este
comportamiento en navegadores vulnerables.
Vulnerabilidades
CVE: (2008-2168) La vulnerabilidad de Cross-site scripting (XSS) en Apache 2.2.6 y
versiones anteriores permite a los atacantes remotos inyectar secuencias de comandos web o
HTML arbitrarios a través de URL codificadas en UTF-7 que no se manejan adecuadamente
cuando se muestra la página de error 403 Prohibido.
BID: 29112
CWE: 79
Hosts Afectados
10.254.0.200 (puerto 80/tcp/www)
10.254.1.152 (puerto 80/tcp/www)
Evidencia
Al ejecutar un escáner sobre el puerto 80 de los hosts, se puede apreciar que las
versiones de Apache expuestas en dichos puertos son previas a la 2.2.6. Esto indica que están
afectados ante esta vulnerabilidad.
113
Figura 8-32: Escaneo de versiones con Nmap al puerto 80 de las direcciones Ip 10.254.0.200 y 10.254.1.152
Solución
Actualizar a versiones de Apache 2.2.8 / 2.0.63 / 1.3.41 o superiores.
Factor de Riesgo
Medio
Descripción
El servidor web soporta la ejecución de los métodos HTTP Trace y Track. Estos
métodos son utilizados para debuguear la conexión del servidor web. Normalmente, se utiliza
el método HTTP TRACE para devolver la solicitud HTTP completa al cliente solicitante para
propósitos de depuración de proxy. Un atacante puede crear una página web usando
XMLHTTP, ActiveX o XMLDOM para que un cliente emita una solicitud TRACE y poder
capturar sus cookies. Esto resulta efectivamente en un ataque Cross-Site Scripting.
114
responderá al cliente la información contenida en la solicitud. Trace proporciona toda la
información sobre qué datos envía un cliente http y qué es lo que está recibiendo el servidor.
Apache, IIS e iPlanet son compatibles con dicho método, según lo definido por el
HTTP / 1.1 RFC y actualmente esto se encuentra habilitado de forma predeterminada. Muy
pocos administradores de sistemas han deshabilitado este método de solicitud ya sea porque
el método no presentaba riesgos conocidos, la configuración predeterminada se consideraba
lo suficientemente buena o simplemente no tenía la opción de hacerlo. [Gro03]
La figura 8-33 muestra un ejemplo de una llamada http con este método mediante la
herramienta cURL:
Figura 8-33: Llamada http con el método trace al host 10.254.0.160 mediante la herramienta cURL
Esta es una opción de cookies HTTP utilizada para informar al navegador que no
permita el uso de lenguajes de scripting (JavaScript, VBScript, etc.) acceso al objeto
document.cookie (objetivo de ataque XSS normal). La sintaxis de una cookie httpOnly es la
siguiente:
- Set-Cookie: name=value; httpOnly [Gro03]
El método TRACE, aunque aparentemente inofensivo, puede aprovecharse con éxito
en algunos escenarios para robar las credenciales legítimas de los usuarios. Esta técnica de
ataque fue descubierta por Jeremiah Grossman en 2003, en un intento de eludir la etiqueta
httpOnly que Microsoft introdujo en Internet Explorer 6 SP1 para evitar que JavaScript tenga
115
acceso a las cookies. Como cuestión de hecho, uno de los patrones de ataque más recurrentes
en Cross Site Scripting es acceder al objeto document.cookie y enviarlo a un servidor web
controlado por el atacante para que pueda secuestrar la sesión de la víctima. Etiquetar una
cookie como httpOnly impide que JavaScript acceda a ella, protegiéndola de ser enviada a un
tercero. Sin embargo, el método TRACE puede usarse para eludir esta protección y acceder a
la cookie incluso en este escenario.[Owa14]
Vulnerabilidades
CVE: 2003-1567, 2004-2320, 2010-0386
BID: 9506, 9561, 11604, 33374, 37995
CERT: 288308, 867593
CWE: 16, 200
Hosts Afectados
10.254.0.59 (puerto 80/tcp/www)
10.254.0.62 (puerto 80/tcp/www)
10.254.0.130 (puerto 80/tcp/www)
10.254.0.144 (puerto 80/tcp/www)
10.254.0.160 (puerto 80/tcp/www)
10.254.0.200 (puerto 80/tcp/www)
10.254.0.249 (puerto 8080/tcp/www)
10.254.1.152 (puerto 80/tcp/www)
10.254.1.178 (puerto 80/tcp/www)
10.254.1.184 (puerto 80/tcp/www)
10.254.1.234 (puerto 443/tcp/www)
10.254.1.243 (puerto 80/tcp/www)
Evidencia
Para encontrar la evidencia de esta vulnerabilidad se utilizó la herramienta Nmap
junto al script http-methods, el cual averigua qué opciones admite un servidor HTTP
enviando una solicitud de OPTIONS. Luego enumera los métodos potencialmente riesgosos.
Prueba los métodos que no se mencionan en los encabezados OPTIONS de forma individual
y ve si están implementados.
En este script, los métodos "potencialmente riesgosos" son todos excepto GET,
HEAD, POST y OPTIONS. Si la secuencia de comandos informa métodos potencialmente
116
riesgosos, es posible que no sean todos riesgos de seguridad, pero se deben verificar para
asegurarse.
Figura 8-34: Ejecución del script de Nmap http-methods para la dirección ip 10.254.1.160
Figura 8-35: Llamada http con el método jeff al host 10.254.1.184 mediante la herramienta cURL
Solución
Deshabilitar estos métodos.
117
8.4.3. Servidor HTTP Apache Cookie httpOnly: Divulgación de Información
Factor de Riesgo
Medio
Descripción
La versión del Servidor HTTP Apache corriendo en el host está afectada por una
vulnerabilidad de divulgación de información. Enviando una petición con encabezado HTTP
lo suficientemente grande para exceder el límite del servidor causa que el servidor web
responda un mensaje HTTP 400. Por defecto, el encabezado y valor HTTP son mostrados en
la página de error 400. Cuando esto es usado en conjunto con otros ataques, como por
ejemplo cross-site scripting, puede resultar comprometida la cookie httpOnly.
Vulnerabilidades:
CVE: (2012-0053) El archivo protocol.c en las versiones de Apache HTTP Server que
van desde 2.2.0 hasta 2.2.21 no restringe apropiadamente la información del encabezado
durante la construcción de documentos de error de Bad Request (código 400), lo que permite
a los atacantes remotos obtener los valores de las cookies HTTPOnly a través de vectores que
involucran encabezados largos o mal formados junto con un script web elaborado.
BID: 51706
EDB-ID: 18442
Hosts Afectados
10.254.0.32 (puerto 80/tcp/www 443/tcp/www)
10.254.0.59 (puerto 80/tcp/www)
10.254.0.62 (puerto 80/tcp/www)
10.254.0.130 (puerto 80/tcp/www)
10.254.0.160 (puerto 80/tcp/www)
10.254.0.200 (puerto 80/tcp/www)
10.254.0.249 (puerto 8080/tcp/www)
10.254.1.152 (puerto 80/tcp/www)
Evidencia
Ante esto se implementó un escaneo con la herramienta Nessus de detección de
vulnerabilidades. Dicha herramienta realiza un llamado con el método GET del protocolo
HTTP, en el cual añade una cookie extremadamente larga.
118
Figura 8-36: Prueba realizada por la herramienta Nessus
Solución
Actualizar a la versión de Apache 2.0.65 / 2.2.22 o superior.
Factor de Riesgo
Crítico
Descripción
El host está afectado por una vulnerabilidad de corrupción de memoria en SMB que
permite a un atacante ejecutar código arbitrario o realizar un ataque de denegación de servicio
contra el host. Explotable mediante Metasploit o Core Impact.
Vulnerabilidades
CVE-2008-4834: El desbordamiento del buffer en el servicio SMB de los sistemas
operativos Microsoft Windows 2000 SP4, XP SP2 y SP3, y Server 2003 SP1 y SP2 permite a
atacantes remotos ejecutar código arbitrario a través de la explotación de un error en los
campos dentro de los paquetes SMB en solicitudes NT Trans. Es también conocida como la
vulnerabilidad SMB Buffer Overflow Remote Code Execution Vulnerability.
CVE-2008-4835: El servicio SMB en Microsoft Windows 2000 SP4, XP SP2 y SP3,
Server 2003 SP1 y SP2, Vista Gold y SP1, y Server 2008, permite a atacantes remotos
119
ejecutar código arbitrario a través de valores no especificados dentro de los campos de los
paquetes SMB en solicitudes NT Trans2, relacionado con la insuficiente validación del
tamaño del buffer. Es también conocida como la vulnerabilidad SMB Validation Remote
Code Execution.
CVE-2008-4114: srv.sys en Microsoft Windows 2000 SP4, XP SP2 y SP3, Server
2003 SP1 y SP2, Vista Gold y SP1, y Server 2008, permite a atacantes remotos causar una
denegación de servicio o generar otros posibles impactos a través de paquetes SMB
WRITE_ANDX con un offset inconsistente con respecto al tamaño del paquete, relacionado
a la insuficiente validación del tamaño del buffer demostrada con una solicitud a
\PIPE\lsarpc. Esta vulnerabilidad también es conocida como SMB Validation Denial of
Service.
Hosts Afectados
10.254.1.18 (puerto 445/tcp/cifs)
10.254.1.152 (puerto 445/tcp/cifs)
Evidencia
A través del scan de Nmap que se puede observar en la siguiente imagen, se corrobora
la versión de Microsoft Windows instalada en el host, evidenciando que puede ser tanto
Windows 2003 como 2008, ambos afectados por esta vulnerabilidad.
Solución
Microsoft lanzó una serie de parches para Windows 2000, XP, 2003, Vista y 2008.
120
Descripción
Existe una vulnerabilidad de ejecución de código remoto en la implementación de
Remote Desktop Protocol (RDP). La vulnerabilidad es debido a la manera en que RDP
accede a un objeto en memoria que fue inicializado inapropiadamente o que fue eliminado.
Si RDP está habilitado en el sistema afectado, un atacante no autorizado puede
aprovechar esta vulnerabilidad para lograr que el sistema ejecute código arbitrario enviándole
una secuencia de paquetes RDP especialmente diseñados.
Vulnerabilidades
CVE-2012-0002: El servicio RDP (Remote Desktop Protocol) en Microsoft Windows
Server 2008 R2 y R2 SP1 y en Windows 7 Gold y SP1, permite a atacantes remotos causar la
denegación de servicio a través del envío de una serie de paquetes modificados. Esta
vulnerabilidad también se conoce como Terminal Server Denial of Service Vulnerability.
CVE-2012-0152: La implementación de RDP (Remote Desktop Protocol) en
Microsoft Windows XP SP2 y SP3, Windows Server 2003 SP2, Windows Vista SP2,
Windows Server 2008 SP2, R2 y R2 SP1, y Windows 7 Gold y SP1, no procesa los paquetes
de forma apropiada en la memoria, lo que permite a un atacante remoto ejecutar código de
manera arbitraria enviando paquetes RDP modificados que disparen acceso a un objeto que
no fue apropiadamente inicializado o eliminado. Esta vulnerabilidad también se conoce como
Remote Desktop Protocol Vulnerability.
BID: 52353, 52354
MSFT: MS12-020
EDB-ID: 18606
Hosts Afectados
10.254.0.133 (puerto 3389/tcp)
Evidencia
El script rdp-vuln-ms12-020 de la herramienta Nmap realiza un escaneo para
corroborar que el host posee dicha vulnerabilidad.
En el boletín MS12-020 de Microsoft se informa acerca de esta vulnerabilidad y sobre
el lanzamiento de parches para solucionarla. Lo que el script ejecutado hace es fijarse si estos
parches se encuentran instalados, y lo realiza sin necesidad de hacer que el host objetivo sufra
la denegación de servicio.
121
Para esto, primero envía una petición de usuario. El servidor responde con un
identificador de usuario y un canal para ese usuario. Luego envía otra petición de usuario, la
cual el server responde con otra identificación de usuario y otro canal. Luego envía una
petición de unificación de canal indicando como solicitante al primer usuario y como canal
solicitado el del segundo usuario. Si el servidor responde con un mensaje de éxito se
concluye que el servidor es vulnerable.
En caso de que el servidor sea vulnerable se envía una solicitud para deshacer el
comportamiento anterior, así se evita la posibilidad de que se caiga el servidor. El resultado
de la ejecución de este script puede observarse en la figura 8-38.
Figura 8-38: Ejecución del script de Nmap rdp-vulns-ms12-020 para el puerto 3389 en la ip
10.254.0.133
Solución
Microsoft lanzó una serie de parches para Windows XP, 2003, Vista, 2008, 7 y 2008
R2. Para obtener este parche para la versión de Windows 2000 es necesario un contrato de
soporte extendido con Microsoft.
122
8.5.3. Servidor HTTP Apache Rango de Bytes DoS
Factor de Riesgo
Alto
Descripción
La versión del servidor HTTP Apache corriendo en el host remoto se encuentra
afectada por una vulnerabilidad de denegación de servicio. Mediante la realización de una
serie de peticiones HTTP con rangos superpuestos en los encabezados de las peticiones
Range o Request-Range puede lograrse el agotamiento tanto de memoria como de CPU. Un
atacante no autorizado puede explotar esta vulnerabilidad y lograr que el sistema afectado no
de respuesta. El código de explotación está disponible públicamente, se lo puede encontrar
como ApacheKill.
Hosts Afectados
10.254.0.130 (puerto 80/tcp/www)
10.254.0.160 (puerto 80/tcp/www)
Vulnerabilidades
CVE-2011-3192: El filtro de rango de byte en los servidores HTTP Apache 1.3.x,
2.0.x a 2.0.64, y 2.2.x a 2.2.19, permite a atacantes remotos causar la denegación de servicio
a través de la saturación tanto de la memoria como del CPU aprovechando una deficiencia del
encabezado Range que expresa múltiples superposiciones de rangos.
BID: 49303
CERT: 405811
EDB-ID: 17696 18221
Evidencia
A través de la ejecución de un script de la herramienta Nmap se corrobora la versión
de Apache que tiene corriendo el host. Cruzando esta información contra bases de datos de
vulnerabilidades se puede encontrar fácilmente a qué problemas está expuesto un sistema con
dicha versión de Apache instalada. En la figura 8-39 se puede observar el resultado de la
ejecución del script al que se hace referencia.
123
Figura 8-39: Escaneo de versiones con Nmap al puerto 80 de la dirección Ip 10.254.1.18
Solución
Actualizar a la versión de Apache HTTPD 2.2.21 o superior. Como alternativa, puede
aplicar una de las soluciones mencionadas en los avisos de Apache para CVE-2011-3192. La
versión 2.2.20 solucionó el problema, pero también introdujo una regresión.
Factor de Riesgo
Medio
Descripción
La versión de Samba, un servidor CIFS / SMB para Linux y Unix, que se ejecuta en
el host remoto, se ve afectada por una falla conocida como Badlock, que existe en el
Administrador de cuentas de seguridad (SAM) y en la Autoridad de seguridad local (LSAD).
Debido a una negociación de nivel de autenticación incorrecta a través de los canales RPC
(Remote Procedure Call), un atacante que sea capaz de interceptar el tráfico entre un cliente
y un servidor que aloja una base de datos SAM puede explotar esta falla para forzar una
degradación del nivel de autenticación, lo que permite la ejecución de llamadas de red Samba
arbitrarias en el contexto del usuario interceptado, como ver o modificar datos de seguridad
sensibles en la base de datos de Active Directory (AD) o inhabilitar servicios críticos.
124
Existen varios ataques MITM (Man in the Middle) que pueden realizarse contra una
variedad de protocolos utilizados por Samba. Esto permitiría la ejecución de llamadas de red
Samba arbitrarias utilizando el contexto del usuario interceptado. Un ejemplos del impacto
de interceptar tráfico de red de administrador del servidor SAMBA es la posibilidad de ver o
modificar secretos dentro de una base de datos, incluidos los hashes de contraseñas de
usuario o los servicios críticos de apagado. Si el usuario interceptado fue estándar se podrían
modificar permisos de usuario en archivos o directorios.
Además, los servicios de Samba son vulnerables a una denegación de servicio de un
atacante con conectividad de red remota a dicho servicio.
Hosts Afectados
10.254.1.206 (puerto 139/tcp/smb)
10.254.0.32 (puerto 445/tcp/cifs)
10.254.1.180 (puerto 445/tcp/cifs)
10.254.1.204 (puerto 445/tcp/cifs)
10.254.1.205 (puerto 445/tcp/cifs)
10.254.1.207 (puerto 445/tcp/cifs)
10.254.1.208 (puerto 445/tcp/cifs)
10.254.1.251 (puerto 445/tcp/cifs)
Evidencia
A través de la ejecución de un script de Nmap sobre estos hosts se puede corroborar
que la versión de Samba instalada está dentro de las afectadas por dicha vulnerabilidad.
Figura 8-40: Escaneo de versiones con Nmap al puerto 445 de la dirección Ip 10.254.1.251
125
Figura 8-41: Escaneo de versiones con Nmap al puerto 139 de la dirección Ip 10.254.1.251
Solución
Aplicar los parches proporcionados por el equipo de Samba y SerNet para
EnterpriseSAMBA / SAMBA+.
Las versiones parchadas son (tanto la versión de seguridad provisional como final
tienen los parches): 4.2.10 / 4.2.11, 4.3.7 / 4.3.8 y 4.4.1 / 4.4.2.
Con el lanzamiento de Samba 4.4.0 el 22 de marzo la rama de lanzamiento 4.1 ha
sido marcada DESCATALOGADA (ver Samba Release Planning). Hay que tener en cuenta
que Samba 4.1 y siguientes están por lo tanto fuera de soporte, incluso para arreglos de
seguridad. No habrá lanzamientos de seguridad oficiales para Samba 4.1 y debajo publicados
por el Equipo de Samba o SerNet (para EnterpriseSAMBA). Se recomienda que los usuarios
realicen la actualización a una versión admitida.
Algunos distribuidores pueden optar por enviar las versiones 4.4.1, 4.3.7 y 4.2.10 y
agregar parches de regresión encima de ellos, debido a la gran escala y complejidad de esta
versión. Algunos también pueden retrotraer los parches a versiones anteriores. Lo
recomendable es ponerse en contacto con el proveedor de Samba para obtener más detalles.
Otras posibles mejoras son:
- Mitigación de ataques de hombre en el medio (MITM): Las protecciones de red que
podrían utilizarse son los ataques MITM que incluyen el reconocimiento de DHCP,
ARP Inspection y 802.1x. Se recomienda que los administradores establezcan estas
opciones adicionales, si son compatibles con su entorno de red:
Firma del servidor = obligatorio
Ntlm auth = no
Sin la firma del servidor = obligatorio, los ataques de Man in the Middle siguen
siendo posibles contra el servidor de archivos y el controlador de dominio clásico /
NT4-like / Samba3. Hay que tener en cuenta que esto tiene un gran impacto en el
126
rendimiento del servidor de archivos, por lo que se debe decidir entre el rendimiento
y la seguridad.
Sin 'ntlm auth = no', puede haber clientes que no utilicen NTLMv2, y estas
contraseñas observadas pueden ser forzadas brutalmente usando recursos de
computación en nube o tablas de arco iris.
- Mitigación de ataques de denegación de servicio (DoS): Aplicar reglas de
cortafuegos en el servidor para permitir la conectividad sólo desde direcciones de
confianza.
El protocolo SMB, de forma predeterminada, sólo cifra credenciales y
comandos mientras los archivos se transfieren en texto plano. Se recomienda que en
escenarios confidenciales de seguridad / privacidad el cifrado se use para proteger
todas las comunicaciones.
Samba añadió cifrado en la versión 3.2 en 2008, pero sólo para clientes de
Samba. Microsoft agregó soporte de cifrado SMB a SMB 3.0 en Windows 8 y
Windows Server 2012. Sin embargo, ambos tipos de cifrado sólo protegen las
comunicaciones, tales como transferencias de archivos, después de que la
negociación SMB y los comandos se hayan completado.
El cifrado de Samba / SMB es una buena práctica pero no es suficiente para
protegerse contra estas vulnerabilidades. El cifrado a nivel de red, como IPSec, es
necesario para una protección completa como solución
Factor de Riesgo
Alto
Descripción
El servidor de nombres remoto permite realizar transferencias de zona DNS.
Una transferencia de zona permite que un atacante remoto rellene instantáneamente
una lista de blancos potenciales. Además, las empresas a menudo utilizan una convención de
nomenclatura que puede dar indicaciones sobre una aplicación principal de servidores (por
127
ejemplo, proxy.example.com, payroll.example.com, b2b.example.com, etc.).
Como tal, esta información es de gran utilidad para un atacante, que puede utilizarla
para obtener información sobre la topología de la red y detectar nuevos objetivos.
CVE: 1999-0532
OSVDB: 492
Hosts Afectados
10.254.0.3 (puerto 53 /tcp/dns)
10.254.0.5 (puerto 53 /tcp)
Evidencia
Mediante la utilización de un script a través de la herramienta Nmap se verifica que
los hosts implicados permiten realizar transferencias de zona DNS.
Dicho script envía una consulta AXFR al servidor DNS. El dominio se define en la
línea de comandos a través del argumento dns-zone-transfer.domain, como se puede observar
en las imágenes. Seguido del dominio se debe especificar la IP del host objetivo. Si la
consulta es exitosa, todos los dominios y tipos de dominio se devuelven junto con los datos
específicos de tipo común (SOA/MX/NS/PTR/A).
Figura 8-42: Ejecución del script de Nmap dns-zone-transfer para el domino unicen.edu.ar en la ip 10.254.0.3
128
Figura 8-43: Ejecución del script de Nmap dns-zone-transfer para el domino unicen.edu.ar en la ip 10.254.0.5
Solución
Limitar las transferencias de zona DNS sólo a los servidores que necesitan la
información.
Factor de Riesgo
Alto
Descripción
El host está ejecutando un demonio de POP3 que permite inicio de sesión con texto
plano sobre conexiones sin cifrar. Un atacante puede descubrir nombres de usuarios y
contraseñas mediante sniffeo del tráfico al demonio POP3.
Hosts Afectados
10.254.0.152 (puerto 110/tcp/pop3)
Evidencia
Mediante un escaneo con la herramienta Nmap se puede apreciar que el servicio
POP3 está expuesto en el puerto 110, el cual por convención tiene una seguridad de texto
plano.
129
Figura 8-44: Escaneo de versiones con Nmap a la dirección Ip 10.254.0.152
Solución
Contactar al fabricante para solucionar el problema o cifrar el tráfico mediante el uso
de túneles SSL / TLS.
8.6.3. Montaje del usuario compartido NFS
Factor de Riesgo
Alto
Descripción
Se ha podido revelar información potencialmente confidencial, como una lista de
directorios. Un atacante puede explotar este problema para obtener acceso de lectura y
posiblemente de escritura a archivos en el host remoto.
Hay que tener en cuenta que no se requieren privilegios de root para montar los
recursos compartidos remotos, ya que el puerto de origen para montar los recursos
compartidos es superior a 1024.
Hosts Afectados
10.254.0.32 (puerto 2049 /udp/rpc-nfs)
Evidencia
La herramienta Nmap provee dos scripts para detectar recursos compartidos de
archivos en red, nfs-ls y nfs-showmount.
El primero, intenta obtener información útil desde las exportaciones de archivos NFS.
El script empieza enumerando y montando las exportaciones NFS remotas.
130
Esta información también puede ser obtenida de manera manual, utilizando el
comando showmount. Este comando permite mostrar información de montaje para un
servidor NFS, para esto realiza consultas al demonio mount sobre el objetivo remoto por
información sobre el estado del servidor NFS en la máquina objetivo.
El script nfs-showmount es una optimización de dicho comando que muestra mucha
más información, como puede apreciarse en la figura 8-47.
Figura 8-45: Ejecución del script de Nmap nfs-ls para la ip 10.254.0.32 (primer fragmento)
Figura 8-46: Ejecución del script de Nmap nfs-ls para la ip 10.254.0.32 (segundo fragmento)
131
Figura 8-47: Ejecución del script de Nmap nfs-showmount para la dirección Ip 10.254.0.32
Solución
Configurar NFS en el host remoto para que sólo los hosts autorizados puedan montar
los recursos compartidos remotos. El servidor NFS remoto debe evitar las solicitudes de
montaje que se originan desde un puerto no privilegiado.
Factor de Riesgo
Alto
Descripción
Es posible conectar al servidor de base de datos remoto PostgreSQL usando una
cuenta sin contraseña. Esto pone en riesgo todos los pilares de la seguridad. Empezando por
la autenticación, al poder ingresar con el usuario mencionado, y una vez dentro de la base de
datos se compromete la confidencialidad e integridad de los datos.
Hosts Afectados
10.254.1.252 (puerto 5432/tcp/postgresql)
132
Evidencia
Utilizando un scan básico de Nmap sobre el host objetivo se verifica que en el puerto
5432 existe una base de datos PostgreSQL. En el próximo capítulo se demuestra cómo se
logró el ingreso a la misma a través del uso de la herramienta Metasploit Framework.
Figura 8-49: Fragmento de resultado de la figura 8-48 donde se presenta la información sobre el
servicio PostgreSQL
Vulnerabilidad
CVE-1999-0508: Una cuenta de usuario en un router, cortafuego o algún otro
dispositivo de red tiene una cuenta por defecto, null, en blanco o con ausencia de contraseña.
Solución
Iniciar sesión en el host y configurar una contraseña para cada una de las cuentas
afectadas utilizando el comando ALTER USER. Adicionalmente, configurar el servicio
editando el archivo pg_hba.conf para que requiera autenticación por contraseña para todos los
hosts remotos que tengan acceso legítimo a este servicio y requerir una contraseña local
utilizando la línea local all password.
133
8.6.4. Detección de páginas de ejemplo de XAMPP
Factor de Riesgo
Alto
Descripción
El servidor web remoto pone a disposición scripts de ejemplo de XAMPP, una
distribución de Apache fácil de instalar que contiene MySQL, PHP y Perl. No se recomienda
el acceso a estos ejemplos, ya que algunos son conocidos por revelar información
confidencial sobre el host remoto y otros pueden verse afectados por vulnerabilidades como
los problemas de secuencias de comandos entre sitios. Además, algunas páginas contienen
vulnerabilidades conocidas de secuencias de comandos entre sitios, inyección de SQL e
inclusión de archivos locales.
Hosts Afectados
10.254.0.249 (puerto 8080 /tcp/www)
Evidencia
Una vez descubierta la instalación de XAMPP en el host mediante el uso de escaneos
con la herramienta Nmap, se realizó una consulta a las posibles URLs que se suelen utilizar
para almacenar este tipo de páginas web que provocan la vulnerabilidad antes explicada.
Como puede observarse en figura 8-50, se encontró en el puerto 8080 una página
llamada index, en la cual es posible acceder a información sobre algunos servicios de host.
Figura 8-50: Página de ejemplo de XAMPP expuesta en el puerto 8080 de la dirección Ip 10.254.0.249
134
Solución
Consultar la documentación de XAMPP para obtener información sobre cómo
proteger las páginas de ejemplo, así como otras aplicaciones, si es necesario.
Factor de Riesgo
Alto
Descripción
El host remoto está ejecutando un servidor SMTP que anuncia que permite
conexiones de texto sin cifrado sobre conexiones no cifradas. Un atacante puede ser capaz de
descubrir nombres de usuario y contraseñas realiza una técnica de sniffing sobre tráfico al
servidor si se utiliza un mecanismo de autenticación menos seguro (es decir, LOGIN o
PLAIN).
Hosts Afectados
10.254.0.160 (puerto 25/tcp/smtp)
Evidencia
Para evidenciar esta vulnerabilidad la primer acción a realizar es intentar autenticarse
con el servidor SMTP mediante los métodos inseguros LOGIN y PLAIN. Para de esta forma
constatar que están disponibles. Para esto se realizará una conexión mediante el protocolo de
red Telnet al puerto 25 de host a analizar.
Una vez establecida la conexión se introducirán los comandos “auth plain” y “auth
login”. En ambos casos el servidor responde con un 334 lo que indica que está esperando el
próximo paso de autenticación, por lo tanto ambos métodos están implementados.
Por último en se introducirán contraseña no válidas. La validez no es un factor
importante ya que lo que se necesita verificar aquí, es en qué formato arribarán al servidor
SMTP.
135
Figura 8-52: Evidencia de implementación del método auth login
Esta última verificación se hará mediante el uso de la herramienta Wireshark. Aquí se
ha definido un filtro para escuchar el tráfico hacia dicho host. De esta forma, en la image
inferior se puede apreciar que tanto para el método PLAIN, como también para LOGIN, las
respuesta se encuentran en formato de texto plano. Por lo tanto si un atacante pudiera
conseguir posicionarse entre el router y dicho host, y de esta forma escuchar el tráfico hacia
este último, sería capaz de capturar todas las contraseñas.
136
Un proxy inverso es un tipo de servidor proxy que recupera recursos en nombre de un
cliente de uno o más servidores. Estos recursos se devuelven al cliente como si se originaran
en el servidor web en sí. Contrariamente a un proxy directo (foward proxy), que es un
intermediario para que sus clientes asociados se comuniquen con cualquier servidor, un proxy
inverso es un intermediario para que sus servidores asociados sean contactados por cualquier
cliente. [Apa11]
Hosts Afectados
10.254.1.203 (puerto 8080/tcp/www)
Evidencia
Para evidenciar esta vulnerabilidad se ha acudido a la herramienta Nmap, ejecutando
el script http-traceroute. Este script funciona enviando solicitudes HTTP con valores del
encabezado HTTP Max-Forwards que varían de 0 a 2 y verificando cualquier anomalía en
ciertos valores de respuesta como el código de estado, el servidor, Content-Type y
Content-Length encabezados HTTP y valores corporales como el título HTML. En respuesta
a esto, se ha detectado que el puerto 80 contenga dicha vulnerabilidad y pueda ser utilizado
como reverse proxy.
Figura 8-54: Ejecución del script de Nmap http-traceroute para la dirección ip 10.254.1.203
Solución
Deshabilitar o restringir el acceso al Reverse Proxy.
137
8.6.7. Apache Multiviews: Lista arbitraria de directorios
Factor de Riesgo
Medio
Descripción
El servidor web Apache corriendo en el host tiene una vulnerabilidad de divulgación
de información. Un atacante remoto no autorizado puede explotarla enviando una petición
especialmente diseñada y obtener una lista de directorios.
Vulnerabilidad
CVE-2001-0731: La versión de Apache con multivistas habilitadas permite a
atacantes remotos ver contenido de directorios y bypassear la página index a través de una
URL conteniendo la consulta string “M=D”.
BID: 3009
EDB-ID: 21002
Hosts Afectados
10.254.1.151 (puerto 80/tcp/www)
10.254.1.189 (puerto 80/tcp/www)
10.254.1.232 (puerto 80/tcp/www)
Evidencia
Mediante la herramienta Nmap se realizó un scan en el que se identificó un servidor
HTTP Apache corriendo en el puerto 80.
Además, se pudo obtener la versión de dicho servidor Apache, y consultando en bases
de datos de vulnerabilidades se encontró que se encuentra afectada por lo explicado
anteriormente.
138
Figura 8-55: Escaneo de versiones con Nmap al puerto 80 de la dirección Ip 10.254.1.151
Además, para tener mayor certeza, se accedió a la vista de directorios, como se puede
apreciar en la figura 8-56.
139
Solución
Actualizar a una versión de Apache superior. Alternativamente se puede deshabilitar
Multiviews.
Factor de Riesgo
Medio
Descripción
Uno de los aspectos más críticos de la seguridad de la información es la conciencia.
Uno debe ser consciente de todas las posibles debilidades de seguridad, por intrascendentes
que puedan parecer cuando se estudian de forma aislada. Siendo DNS el "motor invisible"
detrás de casi todos los servicios disponibles en Internet, parece pertinente crear conciencia
sobre una vulnerabilidad de divulgación de información conocida como DNS Cache
Snooping.
El DNS (por sus siglas en inglés Domain Name System, que significan Sistema de
Nombre de Dominios), es una base de datos distribuida y tolerante a fallas. Esta base de datos
contiene, entre otras cosas, información sobre dominios, nombres de host y cómo se
relacionan con las direcciones IP que están asignadas a los diversos sistemas informáticos
que componen Internet.
Al igual que con cualquier servicio basados en directorios, hay dos enfoques
principales para el usuario del sistema DNS:
- El editor, quien quiere hacer que su información esté disponible para que otros la
miren.
- El navegador, que consulta el sistema en busca de información para su uso personal.
Esta dualidad se transpone a la arquitectura DNS como una separación natural de la
funcionalidad, donde a veces un sistema DNS funcionará como un caché y almacenará
información consultada recientemente para optimizar otras consultas locales, y en otras
ocasiones, el sistema proporcionará información sobre los nombres de host y / o IP de los que
es responsable o "autoritativo".
La búsqueda en la caché de DNS (DNS Cache Snooping) es entonces el proceso de
determinar si un Registro de recursos (RR) determinado está (o no) presente en un caché de
DNS determinado. [Gra04]
140
Para este caso, el servidor DNS remoto responde a las consultas de dominios de
terceros que no tienen el bit de recursividad establecido. Esto puede permitir a un atacante
remoto determinar qué dominios han sido resueltos recientemente a través de este servidor de
nombres y, por lo tanto, qué hosts han sido visitados recientemente.
Por ejemplo, si un atacante estaba interesado en saber si su empresa utiliza los
servicios en línea de una institución financiera en particular, podrían utilizar este ataque para
construir un modelo estadístico sobre el uso de la empresa de esa institución financiera. Por
supuesto, el ataque también puede ser utilizado para encontrar socios Business-to-Business
(transmisión de información referente a transacciones comerciales, normalmente utilizando
tecnologías como el intercambio electrónico de datos), patrones de navegación web,
servidores de correo externos y más.
Una aclaración ante todo esto, es que en este caso se trata de un servidor DNS interno
no accesible a las redes externas, los ataques se limitarían a la red interna. Esto puede incluir
empleados, consultores y potenciales usuarios en una red de invitados o conexión WiFi si se
admite.
Hosts Afectados
10.254.0.3 (puerto 53/udp/dns)
10.254.0.5 (puerto 53/udp/dns)
10.254.1.221 (puerto 53/udp/dns)
10.254.1.222 (puerto 53/udp/dns)
Evidencia
Para evidenciar esta vulnerabilidad se aplicará una técnica de DNS cache snooping
basada en la realización de consultas no recursivas sobre el caché de DNS.
La forma más efectiva de husmear una caché de DNS es usar consultas iterativas. Uno
le pide a la memoria caché un registro de recursos de cualquier tipo (A, MX, CNAME, PTR,
etc.) configurando el bit RD (recursión deseada) en la consulta a cero. Si la respuesta se
almacena en caché, la respuesta será válida, de lo contrario, la caché responderá con
información de otro servidor que pueda responder mejor a nuestra consulta o, más
comúnmente, envíe de vuelta el contenido del archivo root.hints.
En la figura 8-57 se ha realizado una consulta al caché de DNS en 10.254.0.3 para la
dirección www.exa.unicen.edu.ar, con el registro A. Ante esto, el servidor devuelve un
registro que contiene una respuesta a la consulta (la sección ANSWER tiene entradas). Dado
141
que se ha realizado una consulta no recursiva, existe la certeza de que el registro ya estaba
almacenado en caché localmente, porque una consulta no recursiva indica a la memoria caché
de DNS que no use la recursión para encontrar una respuesta.
Factor de Riesgo
Medio
Descripción
Es posible iniciar sesión con una sesión NULL, es decir, sin inicio de sesión o
contraseña. Dependiendo de la configuración, es posible para un atacante remoto no
142
autorizado aprovechar este problema para obtener información sobre el host. En este caso en
particular, fue posible enlazar con el pipe /browser.
CVE-1999-0519: La contraseña de un recurso compartido de NETBIOS/SMB es null,
no existe o está la contraseña por defecto.
CVE-1999-0520: Existe un control de acceso inapropiado para un recurso compartido
de NETBIOS/SMB crítico para el sistema.
CVE-2002-1117: Veritas Backup Exec 8.5 y versiones anteriores requieren que la
clave de registro RestrictAnonymous para Microsoft Exchange 2000 se establezca en 0, lo que
permite la inclusión anónima de la base de datos y recursos compartidos de SAM.
BID: 494
Hosts Afectados
10.254.1.18 (puerto 445/tcp/cifs)
10.254.1.152 (puerto 445/tcp/cifs)
Evidencia
Con un scan sencillo de Nmap, se descubrió un servicio microsoft-ds abierto en el
puerto TCP 445, que suele ser utilizado por el protocolo SMB (Server Message Block), que
permite compartir archivos, impresoras, etcétera, entre nodos de una red de computadoras que
usan el sistema operativo Microsoft Windows.
Luego, nuevamente con la ayuda de Nmap, se ejecutó el script smb-os-discovery
sobre ese mismo puerto, para obtener más información. Dicho script intenta determinar el
sistema operativo, el nombre de la computadora, dominio, grupo de trabajo y el tiempo actual
sobre el protocolo SMB.
Para esto inicializa sesión con una cuenta anónima (o con una cuenta apropiada si se
ingresa como parámetro). En respuesta al inicio de sesión, el servidor enviará toda la
información mencionada.
Algunos sistemas, como Samba, blanquean su nombre y solo envían el dominio.
Otros sistemas, como algunos embebidos, simplemente envían toda la información. Y por
último, existen sistemas que blanquean varios campos de información, como por ejemplo el
tiempo actual, devolviendo un cero.
143
Figura 8-58: Escaneo con la herramienta Nmap para la dirección Ip 10.254.1.18, más escaneo con el
script smb-os-discovery para el puerto 445 de la misma Ip
Figura 8-59: Ejecución del script de Nmap smb-enum-shares para el puerto 445 en la Ip 10.254.1.18
En el próximo capítulo se mostrará el inicio de sesión exitoso a través del puerto 445
con una cuenta anónima.
144
Solución
Aplicar los siguientes cambios en los registros:
Establecer (Set):
- HKLM\SYSTEM\CurrentControlSet\Control\LSA\RestrictAnonymous=1
- HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\restrictnullses
saccess=1
Remover BROWSER de:
- HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters\NullSessionPi
pes
Reiniciar una vez que el cambio en los registros se haya realizado.
145
AMQPlain: es una versión no estándar de Plain definida por la especificación AMQP
0-8. Se encuentra habilitada por defecto en el servidor RabbitMQ, y también en clientes
QPid’s Python.
Figura 8-60: Ejecución del script de Nmap amqp-info para el puerto 5672 en la Ip 10.254.1.171
Solución
Deshabilitar el mecanismo de autenticación por texto plano en la configuración del
servicio AMQP.
8.7. Vulnerabilidades de versiones deprecadas
Factor de Riesgo
Crítico
Descripción
Según su número de versión autoinformado, el sistema operativo Unix corriendo en
los hosts ya no posee más soporte. La falta de soporte implica que ya no se desarrollen
nuevos parches de seguridad para este producto por parte del fabricante. Como consecuencia,
es probable encontrar vulnerabilidades de seguridad.
146
Hosts Afectados
Figura 8-61: Salida de la herramienta Nessus, la cual muestra los host afectados separados por la
versión de Debian
Evidencia
Realizando un escaneo con la herramienta Nmap, se obtiene la versión del sistema
operativo de los hosts, y corroborando en los sitios oficiales de los distintos distribuidores se
puede verificar que muchos están deprecados, por lo que ya no reciben más soporte.
Con la opción -sV se determina la información de los servicios y versiones. Con la
opción -O se activa la detección del sistema operativo. --allports indica que se realice el
escaneo sobro todos los puertos. --version-all habilita todas las pruebas, lo que genera un
análisis más intensivo y también ruidoso. -vv incrementa la verbosidad, es decir, brinda más
información.
147
En la segunda imagen se observa que a través del puerto TCP 22 que tiene un servicio
SSH se descubre la versión del sistema operativo del host.
Es importante configurar el script de esta manera, ya que dependiendo de los puertos
abiertos y los servicios que estén corriendo, puede variar el método por el cual se encuentra la
versión del sistema operativo.
Figura 8-62: Escaneo de versiones (servicios y sistemas operativos) para todos los puertos de la dirección Ip
10.254.0.32 (primer fragmento)
148
Figura 8-63: Escaneo de versiones (servicios y sistemas operativos) para todos los puertos de la dirección Ip
10.254.0.32 (último fragmento)
Solución
Actualizar a la versión más reciente de cada sistema operativo Unix que tenga soporte
vigente.
Factor de Riesgo
Crítico
Descripción
Microsoft Windows Server Message Block 1.0 (SMBv1) tiene múltiples
vulnerabilidades que permiten la ejecución de código remoto debido al manejo inapropiado
de ciertas solicitudes. Un atacante remoto no autorizado puede explotar estas vulnerabilidades
a través de paquetes especialmente diseñado para ejecutar código arbitrario. Además, también
debido al manejo inapropiado de solicitudes, es posibles para un atacante obtener
información sensible.
EternalBlue, EternalChampion, EternalRomance y EternalSynergy son 4 exploits
desarrollados por el grupo conocido como Shadow Brokers para explotar estas
149
vulnerabilidades. Son considerados Zero Day todavía, ya que a la fecha de elaboración de
este informe recién pasaron 21 días.
Además la vulnerabilidad con código CVE-2017-0148 es aquella que permite la
explotación del actualmente famoso (por las repercusiones mediáticas y el alto grado de
daño) WannaCry.
Vulnerabilidades
CVE: 2017-0148, 2017-0147, 2017-0146, 2017-0145, 2017-0144, 2017-0143
IAVA: 2017-A-0065
OSVDB: 155635, 155634, 155620, 153678, 153677, 153676, 153675, 153674,
153673
BID: 96709, 96707, 96706, 96705, 96704, 96703
MSFT: MS17-010
Hosts Afectados
10.254.1.18 (puerto 445/tcp/cifs )
10.254.1.152 (puerto 445/tcp/cifs )
10.254.1.155 (puerto 445/tcp/cifs )
Evidencia
La primera acción que se realizó fue un escaneo con la herramienta Nmap utilizando
su script smb-os-discovery (el cual ya ha sido explicado con anterioridad). Dichos resultados
permiten ver que en el puerto 445 de estos hosts se encuentra expuesto un servicio que tiene
como sistema operativo Windows Server.
Figura 8-64: Ejecución del script de Nmap smb-os-discovery para el puerto 445 en la ip 10.254.1.155
150
Una vez que la existencia de Windows Server ha sido confirmada, se procede a hacer
uso de un nuevo script, en este caso es smb-vuln-ms17-010. Dicho script intenta detectar si
un servidor Microsoft SMBv1 es vulnerable a una vulnerabilidad de ejecución remota de
código (EternalBlue). La secuencia de comandos se conecta al árbol de comunicación de
interprocesos (IPC) para luego ejecutar una transacción FID en cero y comprueba si se
devuelve el error "STATUS_INSUFF_SERVER_RESOURCES" para determinar si el
destino no tiene parches contra ms17-010. Además, verifica los códigos de error conocidos
devueltos por los sistemas parcheados.
Se aclara que FID (por sus siglas en inglés File ID) es un identificador de archivo que
referencia a un archivo abierto en el servidor. Un FID devuelto de una operación de apertura
o creación, debe ser único dentro de una conexión SMB.
Luego de correr el script, se puede observar en sus resultados que las versiones de
Windows Server que se encuentran en los host identificados, efectivamente son vulnerables.
151
Figura 8-65: Ejecución del script de Nmap smb-vulns-ms17-010 para el puerto 445 en la ip 10.254.1.155
Solución
Microsoft ha publicado un conjunto de parches para Windows Vista, 2008, 7, 2008
R2, 2012, 8.1, RT 8.1, 2012 R2, 10 y 2016.
Para sistemas operativos Windows no compatibles, como Windows XP, Microsoft
recomienda que los usuarios interrumpan el uso de SMBv1 ya que carece de características
de seguridad que se incluyeron en versiones posteriores de SMB. SMBv1 se puede
deshabilitar siguiendo las instrucciones del proveedor proporcionadas en Microsoft
KB2696547. Además, US-CERT recomienda que los usuarios bloqueen SMB directamente
bloqueando el puerto TCP 445 en todos los dispositivos de límite de red. Para SMB sobre la
API de NetBIOS, bloquee los puertos TCP 137/139 y los puertos UDP 137/138 en todos los
dispositivos fronterizos de la red.
Factor de Riesgo
Crítico
152
Descripción
El host remoto parece estar infectado con el gusano Conficker. Dicho gusano posee la
capacidad de permitir al atacante ejecutar código arbitrario sobre el sistema operativo.
Además, el host infectado puede propagar el gusano a otros hosts. El host está infectado por
Conficker.A , Conficker.B o Conficker.C.
Hosts Afectados
10.254.1.152 (puerto 445/tcp/cifs)
Evidencia
Para evidenciar la siguiente vulnerabilidad se recurrirá a la herramienta Nmap, junto a
una combinación de scripts, los cuales son:
- p2p-conficker: Comprueba si un host está infectado según la comunicación entre
pares de Conficker. Cuando un Conficker.C o superior infecta un sistema, abre cuatro
puertos, dos TCP y dos UDP. Los puertos son aleatorios, pero están sembrados en la
semana actual y la IP del host infectado. Al determinar el algoritmo, uno puede
verificar si estos cuatro puertos están abiertos y puede ser escaneados para obtener
más información.
Una vez que se encuentran los puertos abiertos, la comunicación puede iniciarse
utilizando el protocolo personalizado de punto a punto (p2p) de Conficker. Si se
recibe una respuesta válida, se ha encontrado una infección válida de Conficker.
- smb-os-discovery: Este script ya ha sido utilizado y explicado con anterioridad, de
todas formas, la finalidad es descubrir las versiones del Sistema Operativo para luego
ver qué tan vulnerable es ante este tipo de malware.
- smb-vuln-conficker: Este script comenzó formando parte del smb-check-vulns, el cual
hace una revisión sobre las principales vulnerabilidades que pueden afectar a un host
con un servicio smb abierto. En este caso, solo se realizarán algunas pruebas para
verificar la probabilidad del host de estar infectado por un gusano Conficker.
Al correr este escaneo, se obtuvo como resultado que el host efectivamente está
infectado por el gusano, el cual probablemente sea un Conficker.C o inferior. Esta
vulnerabilidad debe de ser informada de inmediato a los responsables del Centro de Datos y
Comunicaciones debido a su criticidad y peligrosidad.
153
Figura 8-66: Ejecución de los scripts de Nmap p2p-conficker, smb-os-discovery, smb-vulns-conficker para el
puerto 445 en la ip 10.254.1.152
Solución
Actualizar el antivirus y realizar un escaneo completo del sistema operativo.
8.9. Resumen
Haciendo uso de los datos obtenidos en la fase de recolección de la información, en
este capítulo se han identificado y analizado vulnerabilidades existentes en el sistema a
auditar. Para esto se ha hecho uso de un conjunto de herramientas, cuyas principales se
describen a continuación.
La primer herramienta es Nmap, la cual fue utilizada mayormente junto a scripts
específicos para verificar que haya condiciones tales que den lugar a vulnerabilidades. Por
ejemplo validar que versiones de servicios o sistemas operativos, estén dentro de aquellas que
ya no cuentan con soporte.
La segunda herramienta es Nikto cuya función es la de escanear servidores web en
busca de malas configuraciones, detección de ficheros en instalaciones por defecto, listar la
estructura del servidor, versiones y fechas de actualizaciones de servidores, realizar tests de
vulnerabilidades XSS, ataques de fuerza bruta por diccionario, reportes en formatos txt, csv,
html, etc.
Siguiendo con la lista de herramientas se encuentra Nessus. Esta herramienta utiliza
Nikto y Nmap pero a su vez retorna resultados en formatos visuales fáciles de interpretar. De
esta forma, Nessus cumple la función de ser un programa de escaneo de vulnerabilidades en
diversos sistemas operativos. Consiste en un demonio (tipo especial de proceso informático
154
que se ejecuta en segundo plano en vez de ser controlado directamente por el usuario)
llamado nessusd, que realiza el escaneo en el sistema objetivo, y nessus, el cliente (basado en
consola o interfaz gráfica) que muestra el avance e informa sobre el estado de los escaneos.
Por último, se utilizó el framework Metasploit, el cual proporciona la infraestructura
necesaria para automatizar tareas rutinarias y complejas. Esto permite que se concentre aún
más en los aspectos únicos o especializados de las pruebas de penetración y en identificar
fallas dentro de su programa de seguridad de la información.
Metasploit es un framework, ya que consta con una suite de herramientas que
cumplen distintos roles y ayudan en numerosas partes del proceso de pentesting. Para esta
fase, se volcaron todos los resultados obtenidos por Nessus y Nmap, para tener acceso de
manera más eficiente (mediante el uso peticiones por parámetros soportadas por el
framework) y así poder realizar análisis complejos de manera sencilla sobre grandes
cantidades de información.
Las vulnerabilidades encontradas se han separado en 6 categorías, las cuales son:
- Vulnerabilidades de desbordamiento de buffer, las cuales se producen cuando un
programa no controla la cantidad de datos que se copian en buffer.
- Vulnerabilidades de error de formato de cadena (format string bugs), la principal
causa en estos casos es que se acepte sin validar la entrada de datos proporcionada por
el usuario.
- Vulnerabilidades de Cross Site Scripting (XSS). En esta categoría se encuentran
ataques que permiten ejecutar scripts desarrollados en lenguajes tales como VBScript
o JavaScript, en una interfaz web.
- Vulnerabilidades de denegación del servicio, que provocan que un servicio o recurso
sea inaccesible a los usuarios legítimos.
- Vulnerabilidades de divulgación de la información, las cuales aparecen cuando
información sensible puede ser visualizada por usuarios no autorizados.
- Vulnerabilidades del día 0 (zero day). Una nueva vulnerabilidad para la cual no se
han creado parches o revisiones ya que aún no son conocidas por los usuarios y
creadores.
Por cada vulnerabilidad se especificaron las siguientes secciones:
- Factor de riesgo, el cual puede tomar los valores crítico, alto, medio y bajo.
155
- Descripción sobre la vulnerabilidad identificada, con el fin de que el usuario
comprenda el riesgo al que puede estar expuesto.
- Evidencia de la vulnerabilidad, donde se demuestra de manera empírica la existencia
de dicha vulnerabilidad.
- Y por último, la solución que el usuario debería implementar para suplir dicha
vulnerabilidad.
En base a las vulnerabilidades encontradas, en el siguiente capítulo se intentará
explotar un subconjunto de ellas para demostrar con un mayor nivel el riesgo e impacto que
estas tienen sobre el Centro de Datos de la UNICEN.
156
9. Fase 4: Explotación de las vulnerabilidades
A esta altura en el proceso de auditoría ya se conocen las principales vulnerabilidades
del sistema objetivo. Esta información es vital para conocer el nivel de seguridad con el que
se cuenta, sus puntos débiles y las acciones que se deben tomar para mejorar cada aspecto
vulnerable.
Por lo tanto, es esta etapa se realizará la explotación de alguna de las vulnerabilidades
encontradas, con el fin de demostrar fehacientemente cómo pueden ser utilizadas
exitosamente por un atacante y terminar causando un daño real a la integridad del sistema
auditado.
En este capítulo se concretarán ataques sobre un subconjunto de las vulnerabilidades
expuestas con anterioridad. Estos ataques contendrán una introducción teórica con la
explicación de las causas de dicha vulnerabilidad, como también, una demostración práctica
donde se apreciará cómo sucede la explotación y el impacto que puede llegar a tener.
Esta etapa sirve, por un lado, para cerciorarse que las vulnerabilidades no entren en la
categoría de falsos positivos. Por otro lado presentar la evidencia concreta de las distintas
explotaciones, genera una motivación innegable en el cliente de la auditoría a corregir todos
los problemas que hacen posibles a dichas vulnerabilidades. Por ejemplo, cambiar
configuraciones, actualizar versiones de software, cerrar o bloquear puertos expuestos, etc.
157
Siguiendo este razonamiento, mientras más expuesto esté el código a ingresos de
datos externos por parte de un usuario, como puede ser un formulario HTML, mayor será el
peligro de que esto ocurra.
Existen una serie de aplicaciones que utilizan el lenguaje HTML pero que no
necesariamente están ligadas a los entornos web, como la recepción y el envío de correos
electrónicos con texto enriquecido, los archivos de ayuda, GUI (Interfaz Gráfica de Usuario,
o por sus siglas en inglés Graphic User Interface), entre otras.
HTML contiene una etiqueta propia que invoca al objeto script. En este caso, el
lenguaje llama a un script (desarrollado en Visual Basic Script, ActiveX, Flash o JavaScript,
entre otros) que realiza una función en particular, extendiendo el potencial del lenguaje. Los
ataques de HTML Scripting tienen por objetivo inyectar código de modo que sea retornado
como parte de la salida (output) de una aplicación, modificando su comportamiento según lo
solicitado.
Por otro lado, cada motor de renderización de HTML agrega funciones extra según el
desarrollador (la ejecución de determinados tipos de scripts, la instalación de plugins,
applets, etc.). Además, cada navegador tiene su propio motor de renderización. Todos estos
recursos le brinda al desarrollador la posibilidad de crear aplicaciones con mejores
funcionalidades y más atractivas. Pero desde el punto de vista de la seguridad, al sumar
funcionalidades, se agrega más código y, entonces, la probabilidad de error se incrementa, lo
que se traduce en un aumento de las posibilidades de explotación. [Jar12]
158
malicioso son <script>, <object>, <applet>, <embed> y <form>. También puede utilizarse
una nomenclatura alternativa de escritura inline, como: javascript:alert(‘Soy una alerta’).
En particular el tag <script> determina un código de script. Este código puede
encontrarse en cualquier parte de un documento (encabezado y cuerpo), de esta forma:
<script type=”text/javascript”>
function saludarAlMundo()
{
document.write(‘Hola mundo’);
}
</script>
Como también es posible definirlo dentro del tag HTML script o en un archivo
externo. En este caso se hará referencia al recurso donde se encuentre el código. Por ejemplo:
<script type=”text/javascript” src=”miscript.js”></script>
En condiciones normales, el script HTML que se le devuelve a un navegador desde un
servidor web, fue colocado allí por alguien que tiene la autoría de páginas HTML en dicho
servidor, como el webmaster. En el ataque de XSS, el ejecutante logra que el servidor
devuelva un script, sin contar con el nivel de permisos para realizarlo. El punto fundamental
de este tipo de ofensivas es que el atacante no modifica nada en el servidor, sino que solo
inyecta código que luego se ejecuta del lado del cliente. El ataque se lleva a cabo cuando el
código del servidor (server side-code) toma la entrada ingresada por el usuario y la repite de
modo que los datos sean ejecutados como script en el equipo cliente. Es decir que, en los
ataques de XSS, se busca forzar a un sitio web a repetir el código inyectado, de modo que sea
cargado en el navegador del usuario y ejecutado en dicho contexto. [Jar12]
Existen múltiples clasificaciones de ataques de este tipo, las cuales contemplan
distintos aspectos como la finalidad, nivel de persistencia, tipo de inyección, etc. Pero hay
una clasificación principal que engloba todas las demás y separa al Cross Site Scripting en 3
categorías. [Gro07]
- Tipo-0: utilizado para ejecutar código de forma remota con los permisos de otro
usuario.
- Tipo-1: ataque no-persistente o reflejado utilizado en páginas no estáticas.
- Tipo-2: ataque persistente, donde se inyecta código en páginas estáticas.
159
9.1.1.1. Tipo-0 (Basados en el DOM)
160
El motivo de esto es el siguiente, el navegador de la víctima visita el enlace, hace una
petición HTTP a vulnerable.com y recibe la página index.html. Después, el navegador
empieza a interpretar el HTML de la página y forma la estructura del documento. El
documento contiene un objeto llamado ‘document’, que contiene una propiedad llamada
‘URL’, y esta propiedad es remplazada por la URL de la página actual, como parte de la
estructura del documento.
Cuando el intérprete llega al código Javascript lo ejecuta y modifica el HTML en
bruto. En este caso, el código hace referencia a ‘document.URL’, por este motivo la cadena
es incluida en el HTML al momento de interpretar el código, después es inmediatamente
interpretada y ejecutada en el contexto de la misma página, aqui es donde se da la condición
de inyección referente a XSS.
En el ejemplo anterior todavía se puede discutir que la inyección si llegó al servidor
(en el ‘?nombre=’ de la petición HTTP), y por lo tanto puede ser detectado como cualquier
ataque XSS. Pero aún así esto se puede arreglar. Por ejemplo, el siguiente ataque:
- http://vulnerable.com/index.html#name=<script>alert();</script>
El numeral (#) le dice al navegador que todo lo que se encuentra después de él es un
fragmento, y no parte de la petición. Los navegadores no mandan los fragmentos al servidor,
así el servidor solamente vería:
- http://vulnerable.com/index.html
Logrando que ni el servidor vea la inyección, esta técnica de evasión evita que los
navegadores envíen la inyección al servidor.
Una técnica muy utilizada para evitar inyecciones al servidor, es la implementación de
funciones que analizan todos los datos que manda el navegador con el fin de que si se
encuentra alguna inyección, se elimine. Este método de protección es inefectivo contra este
tipo de ataques, porque si los datos nunca llegan al servidor estos no pueden ser analizados.
Así se logra el XSS tipo-0. El navegador ejecuta código localmente, código que el
servidor no incrustó en una página, sino que el navegador incrustó él mismo. Así si la víctima
tiene una página vulnerable en su máquina (o en otro servidor), puedes realizar acciones
remotamente como si las hubiera hecho otro usuario.
161
9.1.1.2. Tipo-1 (Reflejados)
En lo que concierne a XSS, es la vulnerabilidad más común que hay, por lo usual se
encuentra en motores de búsqueda. El tipo-1 es una vulnerabilidad no-persistente o reflejada.
Este agujero de seguridad sucede cuando un servidor genera una página instantánea
de resultados de acuerdo a información proporcionada por el navegador (ejemplo: una
búsqueda). Si los datos proporcionados por el navegador no son validados y se incluyen en el
código fuente de la página, hay XSS.
Esta vulnerabilidad es catalogada como no-persistente porque la página con la
inyección solo es visualizada por la víctima. Tampoco es una página que existe o se mantiene
en el servidor (página estática), sólo se genera cuando un usuario proporciona cierta
información a alguna aplicación.
Además, se la llaman vulnerabilidad reflejada porque para realizar un ataque, el
código inyectado primero pasa del navegador al servidor, y luego del servidor a otro
navegador; como si fuera un reflejo.
Comparando con el ataque tipo-0, se pueden distinguir algunas diferencias. En el
tipo-1 el servidor procesa la inyección enviada por el usuario y la incluye en el código de la
página. Pero en el tipo-0 la inyección nunca llega al servidor, no es un ataque tipo reflejo
como el tipo-1. La información sale del navegador y entra al navegador.
Esta vulnerabilidad permite que se realicen los ataques más peligrosos y poderosos a
las aplicaciones web. Es conocida como vulnerabilidad persistente o almacenada.
La diferencia de este cross-site-scripting a los anteriores, es que la inyección se hace
en una página estática. La información proporcionada por el usuario es almacenada en la base
de datos, en el sistema de archivos o algún otro lugar; después es mostrada a otros usuarios
que visiten la página, por eso se dice que la vulnerabilidad “persiste”.
Aquí se encuentra el poderío del tipo-2, la inyección se quedará siempre en alguna
parte de la web, no estará en una página que se genera cada vez que se pasa información al
servidor. Las posibilidades de esta vulnerabilidad son muy amplias, pudiéndose realizar
desde un robo de cookies o troyanización de navegadores masivos, hasta un deface de la
página.
162
Un ejemplo típico de este tipo de vulnerabilidades son los foros de discusión, los
libros de visita o los tagboards. Si se logra inyectar código en un mensaje de estos sistemas,
todos los usuarios que carguen la página con el mensaje son afectados al fallo.
Una vez que un sitio web se identifica como potencialmente vulnerable, los atacantes
intentarán inyectar código de script en los datos que se van a almacenar en el servidor. El
código malicioso en sí mismo suele ser entregado manualmente por el atacante en los campos
de entrada de las páginas web vulnerables, pero hay casos en que los atacantes construyen
herramientas que inyectan secuencias de comandos de forma automática.
A diferencia de los otros ataques no persistentes, los ataques a vulnerabilidades de
tipo 2 no requieren una fase de ingeniería social, ya que las víctimas de este ataque no
necesitan ser atraídas al hacer click en un enlace creado. Sin embargo, al explotar estas
vulnerabilidades, los atacantes tratarán de atraer a más y más víctimas para visitar la página
web vulnerable, de modo que probablemente envíen mensajes de SPAM o lo promocionen en
sitios de redes sociales.
A modo de ejemplo, se podría plantear un caso en el que un foro contiene dicha
vulnerabilidad. En este caso, un atacante puede abrir un nuevo tema e insertar secuencias de
comandos maliciosas en el título o el cuerpo del tema. [Acu14]
El contenido de la publicación del foro será almacenado por el servidor. Cuando las
víctimas navegan por temas o buscan determinadas palabras clave, pueden llegar al tema
163
infectado. Cuando el tema se carga, su contenido se enviará al navegador de la víctima y el
payload puede ser ejecutado.
Figura 9-3: Visualización de código inyectado desde un input de usuario, procesado y embebido en la interfaz
de usuario
Al realizar un escaneo sobre los sitios webs que contienen la vulnerabilidad referente
al método HTTP TRACE activado, se llegó al host con IP 10.254.1.184.
Este host contiene una aplicación web llamada Sistema Integral de Gestión de
Pasantías (SIGP). Al ingresar un usuario y contraseña inexistentes, la página vuelve a ser
cargada, pero esta vez se le adiciona un parámetro “data” con un mensaje de error.
164
Figura 9-4: Evidencia sobre la posibilidad de inyectar de texto plano en la interfaz de usuario
165
Figura 9-5: Inyección de texto plano en la interfaz de usuario
166
Figura 9-6: Inyección payload en la interfaz de usuario
167
Figura 9-7: Ejecución del payload inyectado
Cabe destacar que el payload utilizado tiene el fin de demostrar que la vulnerabilidad
existe y es explotable. Un atacante malintencionado puede realizar acciones realmente
dañinas, como robar las credenciales del usuario o modificar el correcto funcionamiento del
sistema.
La seguridad en la capa de transporte (TLS, por sus siglas en inglés Transfer Protocol
Layer), es un protocolo criptográfico definido por el Grupo de Trabajo de Ingeniería de
Internet (IETF, por sus siglas en inglés Internet Engineering Task Force) utilizado para
garantizar comunicaciones seguras por una red.
Muchas aplicaciones con cliente SMTP no verifican que el servidor TLS esté
certificado. Estos clientes SMTP son vulnerables a ataques tales como la inyección de
comandos. Sus sesiones TLS están encriptadas pero no protegidas, por lo tanto, una falla de
inyección de texto plano puede existir en dichos clientes, la cual se da en la forma que
manejan las respuestas de SMTP sobre TLS del servidor.
SMTP no es el único protocolo vulnerable a estos ataques. Otros ejemplos son POP3,
168
IMAP, NNTP y FTP. Implementaciones de estos protocolos pueden verse afectados por el
mismo defecto.
Existen dos formas en que los protocolos de texto sin formato pueden proporcionar
encriptación con TLS. La primer forma es escuchando en dos puertos: un puerto que es
siempre texto sin formato y un segundo puerto que siempre está encriptado con TLS. La otra
forma es usando un solo puerto en el que la comunicación comience sin cifrar, pero pueda
"actualizarse" a una conexión encriptada TLS utilizando un comando de nivel de aplicación
específico para el protocolo.
HTTP / HTTPS usa exclusivamente el primer enfoque, con los puertos 80 y 443. El
segundo enfoque, llamado STARTTLS, es utilizado por SMTP, XMPP, IMAP y POP3,
aunque varios de estos protocolos también son compatibles con el primer enfoque.
Cuando IETF estandarizó el uso de TLS con IMAP y POP3 en 1999, prescribió el
uso de STARTTLS y dio varias razones por las cuales STARTTLS debería usarse en lugar
de un TLS alternativo. Estas fueron básicamente:
1. Los puertos separados llevan a un esquema de URL separado, lo que significa que el
usuario tiene que elegir entre ellos. El software suele ser más apto que el usuario a la
hora de tomar estas decisiones.
2. Los puertos separados han provocado que los clientes implementen solo dos políticas
de seguridad: “utilizar TLS” o “no utilizar TLS”. La política de seguridad deseable
"utilizar TLS cuando esté disponible" sería engorrosa con el modelo de puerto
separado, pero es simple con STARTTLS.
3. Los puertos separados implican un modelo de "seguro" o "no seguro", que puede ser
engañoso. Por ejemplo, el puerto "seguro" puede ser inseguro porque está utilizando
software criptográfico export-crippled, el cual está limitado a una clave de tamaño
pequeño. De esta manera, el texto cifrado que se consigue con él puede descifrarse
por medio de fuerza bruta. En su caso contrario, el puerto normal podría estar
utilizando un mecanismo SASL que incluye una capa de seguridad.
4. Los números de puerto son un recurso limitado.
169
Comenzando por el motivo número uno, el cual no siempre es cierto. A menos que el
software mantenga una base de datos de los hosts que deberían usar TLS, es incapaz de
elegir entre TLS y no TLS en lugar del usuario sin ser susceptible a ataques activos.
De la misma manera, el segundo motivo es discutible ya que "utilizar TLS cuando
está disponible" también es susceptible a ataques activos. Ya que si el software detecta que
TLS no está disponible, no tiene forma de saber si es porque el servidor no lo admite o si un
atacante lo está bloqueando.
Por último, la razón tres puede haber tenido algún sentido en 1999, pero ciertamente
no lo hace hoy. La preocupación de la cifra de exportación se debatió cuando se eliminaron
los controles de exportación en 2000, lo que provocó la desaparición de cifras cifradas por la
exportación. Si bien en ese momento las capas de seguridad SASL eran de lo más viable, en
la actualidad TLS las ha superado.
Entonces, STARTTLS realmente no es mejor que usar un puerto alternativo de TLS.
Pero eso no es todo. Hay varias razones por las que STARTTLS es realmente peor para la
seguridad.
La primera de ellas es que STARTTLS hace que sea imposible finalizar TLS de
forma independiente del protocolo. Resulta trivial terminar un protocolo de puerto
independiente como HTTPS en un software proxy como titus (Totally Isolated TLS
Unwrapping Server, o en su traducción al castellano, Servidor Desempaquetado TLS
Totalmente Aislado ) o en un balanceador de carga de hardware. Tan solo se debe aceptar la
conexión TLS y generar un proxy sobre el texto plano enviado al puerto no-TLS del servidor.
Por otro lado, la terminación de un protocolo STARTTLS requiere que el terminador TLS
comprenda que el protocolo es proxy, por lo que puede vigilar el comando STARTTLS y
solo actualizar a TLS una vez que se envía el comando.
Esto es preocupante ya que es deseable terminar la conexión TLS en servidores
SMTP, IMAP y XMPP dentro del entorno altamente aislado de titus, para que una
vulnerabilidad en la implementación de TLS no pueda comprometer el estado de ellos.
Desafortunadamente STARTTLS hace que esto sea innecesariamente difícil de concretar.
Otra forma en que STARTTLS perjudica la seguridad es agregando complejidad.
Aquí es donde se puede encontrar como ejemplo la vulnerabilidad que se explotará a
continuación, la cual lleva el identificador CVE-2011-0411. Esta vulnerabilidad es causada
por implementaciones de SMTP que no descartan comandos enlazados con el comando
170
STARTTLS. De esta forma se permite inyectar comandos SMTP que serán ejecutados por el
servidor durante la fase de la conexión que se supone que debe estar protegida con TLS.
Es posible demostrar este problema modificando tan solo una línea del código fuente
del comando s_client en OpenSSL. Este comando puede establecer una conexión con soporte
directo TLS, SMTP sobre TLS, o un puñado de otros protocolos sobre TLS. En este caso se
modificará la línea 1129 (con OpenSSL 1.0.0, archivo ubicado en /apps/s_client.c).
Línea original: BIO_printf (sbio, "STARTTLS \ r \ n");
Línea modificada: BIO_printf (sbio, "STARTTLS \ r \ nRSET \ r \ n");
171
limpiarse. El receptor debe enviar “250 OK” de respuesta a este comando sin ningún
argumento. Esto es efectivamente equivalente a un NOOP emitido inmediatamente luego de
un comando EHLO.
Ambos comandos se envían como texto plano en el mismo paquete TCP / IP, y llegan
juntos al servidor. Los "\ r \ n" son los caracteres de retorno y de nueva línea, estos son
necesarios para finalizar un comando SMTP.
Cuando un servidor SMTP tiene la falla de inyección de texto plano lee primero el
comando STARTTLS, cambia al modo SMTP-sobre-TLS y, solo en ese caso, el servidor lee
el comando RSET.
Se debe tener en cuenta que que el comando RSET se transmitió durante la fase
SMTP de texto sin pantalla cuando no hay protección, dado esto, el servidor lee el comando
como si se recibiera a través del canal protegido por TLS.
Por lo tanto, el resultado del comando s_client mostrará dos "250" como respuestas
del servidor SMTP en lugar de uno. El primer "250" es normal y está presente incluso
cuando el servidor no está defectuoso. La segunda respuesta "250" es para el comando
RSET, e indica que el servidor SMTP tiene la falla de inyección de texto plano.
Es importante aclarar que se utilizó el comando RSET ya que es relativamente
inofensivo y cuadra de forma oportuna para ejemplificar este ataque. Pero un atacante real
puede hacer uso de combinaciones de comandos muchos más dañinos, los cuales pueden
generar un flujo de acción no deseado que comprometa sustancialmente la seguridad del
servicio.
172
9.2. Explotación sobre Base de Datos
173
DDOS incluyen desbordamientos de búfer, corrupción de datos, la inundación de la
red y el consumo de recursos.
- Vulnerabilidades en los protocolos de las bases de datos: Existe una constante
preocupación por la seguridad de la base de datos: Muchas veces la seguridad se ve
afectada por la configuración de los procesos de conexión. Las vulnerabilidades en
los protocolos de bases de datos pueden permitir el acceso no autorizado a datos, la
corrupción o la disponibilidad. Por ejemplo, SQL Slammer Worm se aprovecha de una
vulnerabilidad de protocolo de Microsoft SQL Server para ejecutar código de ataque
en los servidores de base de datos destino.
- La exposición de los datos de backup: El robo de información y la filtración de datos
confidenciales son noticias del día a día, Algunos ataques recientes de alto perfil han
involucrado el robo de cintas de backup de base de datos y discos duros. Es
importante que todas las copias de seguridad sean cifradas. De hecho, algunos
proveedores han sugerido que los futuros productos DBMS no deberían admitir la
creación de copias de seguridad sin cifrar. El cifrado de base de datos en línea es un
pobre sustituto de controles granulares de privilegios según expertos de seguridad de
base de datos.
- Autenticación débil: La autenticación basada en contraseña es probablemente una de
las funciones más importantes que se usan todos los días, sin embargo no se ha
evolucionado mucho desde los primeros sistemas informáticos de usuarios múltiples,
incluso cuando se desarrollan métodos más seguros. Los esquemas de autenticación
débiles permiten a los atacantes asumir la identidad de los usuarios de bases de datos
legítimos. Algunas de las estrategias de ataque a la autenticación incluyen la fuerza
bruta, la ingeniería social, phishing, etc.
174
Haciendo uso de Metasploit, lo primero que se realizará es indagar sobre la existencia
de algún módulo que se encargue de intentar varios casos de autenticaciones en PostgreSQL.
Esta tarea se realiza mediante la invocación del comando search, el cual realiza una
búsqueda en la base de datos de módulos del framework.
Estos módulos son agrupados en las siguientes subcategorías:
- Módulo Auxiliary: Permite la interacción del framework con herramientas
externas como pueden ser escáneres de vulnerabilidades, sniffers, etc.
- Módulo Encoders: Proporciona algoritmos para codificar y ofuscar los
payloads utilizados una vez que un exploit resultó exitoso.
- Módulo Exploit: Aquí es donde se encuentran todos los exploits disponibles en
el framework.
- Módulo Payloads: Proporciona gran cantidad de códigos “maliciosos” que se
podrá ejecutar una vez haya tenido éxito un exploit.
- Módulo Post: Proporciona funcionalidades para la fase de Post Explotación.
- Módulo Nops: Permite realizar y/u obtener operaciones nop para mantener la
consistencia en el tamaño de los payloads.
Dentro de la consola de Metasploit (msfconsole), ingresando el comando search
postgresql, se obtiene la lista de módulos para PostgreSQL. Entre ellas se puede encontrar,
dentro del módulo Auxiliary, el script postgres_login.
175
En la figura 9-11, se ingresa el comando use seguido de la ruta completa a dicho
script con el fin de activar el uso del mismo. Continuado a esto se utiliza el comando show
options para visualizar los distintos parámetros del script junto a información adicional como
la descripción, si son requeridos u opcionales, etc.
Figura 9-12: Configuración y ejecución del exploit posgres_login desde la consola del Framework Metasploit
176
En los resultados se encontró que el usuario postgres no cuenta de contraseña por lo
tanto es posible conectarse directamente a la base con él.
Para finalizar con la explotación de esta vulnerabilidad se ingresará, exitosamente, a
la base de datos utilizando el usuario encontrado. Esto se realiza ingresando el servicio de
conexión de PostgreSQL, el cual tiene el formato “psql -h [host] -p [puerto] -U [usuario]“.
Figura 9-13: Conexión a base de datos postgreSQL seguido de comando para listar sus esquemas
Una vez que se ha establecido la conexión con la base, se puede ingresar el comando
\l el cual desplegará el listado de los diferentes esquemas de base de datos que están presentes
en el servidor. Como se puede observar en la imagen superior existen 28 esquemas, los
cuales pueden llegar a contener información sensible e importante. Un ejemplo de estos
esquemas pueden ser comedor, telefonía e infraestructura. Por lo tanto, se procederá a
conectarse a uno de ellos mediante el comando: \connect [nombre base de datos].
177
Una vez realizada esta conexión se puede hacer uso del comando \dt para obtener el
listado de todas las tablas declaradas dentro de dicho esquema. Para comedor el listado
encontrado fue el siguiente:
Luego de haber obtenido conocimiento sobre los distintos esquemas, el siguiente paso
es averiguar con qué privilegios consta el usuario que se está utilizando, y adicionalmente
que otros usuarios hay configurados en dicha base. En este caso se utilizará el comando \du,
el cual mostrará el listado con toda la información requerida.
178
Figura 9-16: Listado de usuarios junto a sus roles
179
9.3. Explotación de Server Message Block (SMB)
En las figuras 9-17 y 9-18 se observa cómo a través de smbclient, se logra conectar
tanto con usuario blank como con un usuario anónimo, sin necesidad de ingresar contraseña.
Figura 9-17: Conexión al host 10.254.1.18 mediante el protocolo SMB utilizando un usuario vacio
180
Figura 9-18: Conexión al host 10.254.1.18 mediante el protocolo SMB utilizando el usuario anónimo
Figura 9-19: Conexión e interacción con el host 10.254.1.152 mediante el protocolo SMB utilizando un
usuario vacío
181
9.3.2. Explotación vulnerabilidad MS17-010
Figura 9-20: Configuración para poder utilizar el exploit eternalblue_doublepulsar desde msfconsole
182
Una vez concluido lo anterior, se cargará el exploit desde el msfconsole mediante el
comando: use exploit/windows/smb/eternalblue_doublepulsar. En las figuras 9-21 y 9-22 se
podrán ver las opciones disponibles para configurar el ataque.
183
- DOUBLEPULSARPATH (ruta a Double Pulsar) y ETERNALBLUEPATH (ruta a
Eternal Blue): estos parámetros vienen configuradas por defecto con la locación del
exploit que se descargó al comienzo.
- PROCESSINJECT (proceso inyectado): hace referencia al nombre del procesos a
inyectarse. El cual como la descripción dice, se cambiará a lsass.exe.
- RHOST: es la dirección Ip del host objetivo, para este caso será 10.254.1.18.
- RPORT: se utilizará para indicar cuál será el puerto con el que se hará el contacto. Al
estar explotando una vulnerabilidad en el servicio SMB, el puerto ya estará por
defecto configurado en 445.
- TARGETARCHITECTURE (arquitectura del objetivo): Los valores para este
parámetro puede ser x86 o x64, haciendo referencia a la arquitectura del procesador
(32 o 64 bits). En este caso, se escogerá x64.
- WINEPATH (ruta de Wine): Wine es una reimplementación de la interfaz de
programación de aplicaciones de Win16 y Win32 para sistemas operativos basados en
Unix. Permite la ejecución de programas diseñados para MS-DOS, y las versiones de
Microsoft Windows 3.11, 95, 98, Me, NT, 2000, XP, Vista, 7, 8 y 10. En este caso
será utilizada para poder soportar una sesión de windows desde nuestra máquina
(unix), dicha sesión será la conexión con la máquina objetivo. Por lo tanto
configuraremos la ruta por defecto de wine.
Figura 9-23: Configuración del exploit eternalblue_doublepulsar para correr sobre el host 10.254.1.18
184
En la parte de la figura 9-23 se puede apreciar que además de los parámetros ya
descritos, también se seleccionó el payload reverse_tcp, utilizado para generar una conexión
con otro ordenador.
Y por último están los parámetros genéricos de todo exploit como por ejemplo el host
que escuchará la conexión, el cual siempre será ordenador desde el que se está realizando la
auditoría y correrá el ataque y el puerto desde donde se lanzará (4444).
El paso final solo será ejecutar el comando exploit. Si el host realmente era vulnerable
y el parche de seguridad no estaba añadido, se podrá tomar acceso de dicho objetivo.
9.4. Resumen
185
servidor TLS esté certificado. Estos clientes SMTP son vulnerables a ataques tales como la
inyección de comandos. Sus sesiones TLS están encriptadas pero no protegidas, por lo tanto,
una falla de inyección de texto plano puede existir en dichos clientes, la cual se da en la
forma que manejan las respuestas de SMTP sobre TLS del servidor.
En lo que respecta al comando STARTTLS, se explotó la vulnerabilidad identificada
como CVE-2011-0411. Esta vulnerabilidad es causada por implementaciones de SMTP que
no descartan comandos enlazados con el comando STARTTLS. De esta forma se permite
inyectar comandos SMTP que serán ejecutados por el servidor durante la fase de la conexión
que se supone que debe estar protegida con TLS.
Esto se demostró modificando tan solo una línea del código fuente del comando
s_client en OpenSSL. Este comando puede establecer una conexión con soporte directo TLS,
SMTP sobre TLS, para este caso se concateno luego de STARTTLS el comando RSET.
Ambos comandos se envían como texto plano en el mismo paquete TCP / IP, de esta forma,
cuando un servidor SMTP tiene la falla de inyección de texto plano lee primero el comando
STARTTLS, cambia al modo SMTP-sobre-TLS y, solo en ese caso, el servidor lee el
comando RSET.
Cabe destacar que para esta demostración se utilizó el comando RSET ya que se
considera inofensivo. De todas formas un atacante puede concatenar una cadena de
comandos que pueden llegar a alterar el correcto funcionamiento del comando s_client,
generando un comportamiento malicioso.
Continuando con la próxima categoría de ataques, se realizó una explotación sobre
Base de Datos. El tipo de vulnerabilidad que se tomó en este caso fue de autenticación débil.
Los esquemas de autenticación débiles permiten a los atacantes asumir la identidad de los
usuarios de bases de datos legítimos. Algunas de las estrategias de ataque a la autenticación
incluyen la fuerza bruta, la ingeniería social, phishing, etc.
Se detectó que en el puerto 5432 del host 10.254.1.252 hay un servicio que expone
una conexión a una base de datos PostgreSQL. Por lo que se intentó descubrir si hay algún
usuario mal configurado, lo que en este caso significa que no tiene ninguna contraseña o
tiene una contraseña de fábrica. De esta forma con solo saber su nombre se podrá acceder a
dicha base.
Haciendo uso de Metasploit, se utilizó el script postgres_login que se encuentra
dentro del módulo Auxiliary. Mediante este script se encontró la existencia del usuario
186
“postgres”, el cual no cuenta de contraseña por lo tanto es posible conectarse directamente a
la base con él.
Una vez que se ha establecido la conexión con la base, se desplegó el listado de los
diferentes esquemas de base de datos que están presentes en el servidor, los cuales pueden
llegar a contener información sensible e importante. Unos ejemplos de estos esquemas fueron
comedor, telefonía e infraestructura.
Luego de haber obtenido conocimiento sobre los distintos esquemas, el siguiente paso
fue averiguar con qué privilegios consta el usuario que con el que se ingresó, y
adicionalmente que otros usuarios hay configurados en dicha base. En este caso el usuario
utilizado es un super usuario, el cual genera una vulnerabilidad de privilegios excesivos. En
otras palabras si un atacante logra autenticarse con dicho usuario, este mismo tendrá los
privilegios suficientes como para modificar o borrar a otros usuarios, modificar o borrar
tablas o esquemas, etc.
Las últimas explotaciones realizadas fueron sobre hosts (10.254.1.18 y 10.254.1.152)
que exponen puertos con el protocolo de Server Message Block (SMB), el cual es un
protocolo de red que permite compartir archivos, impresoras, etcétera, entre nodos de una red
que usan Microsoft Windows.
La primer vulnerabilidad explotada fue la de “autenticación con usuario nulo y
anónimo”. Nuevamente otro escenario de autenticaciones débiles, las cuales permiten
establecer una conexión a cualquier usuario sin grandes dificultades, lo cual facilita mucho a
un posible atacante que quiera realizar alguna interacción malintencionada con dichos hosts.
Por último, en estos últimos hosts también se había detectado la famosa
vulnerabilidad MS17-010 más conocida como Wanna Cry. Por lo tanto se dió un instructivo
de como preparar y ejecutar un ataque para poder así explotarla.
A modo de conclusión, se realizó un abanico variado con distintos tipos de ataques,
cuyas fuentes de vulnerabilidad provienen de diferentes motivos, como lo son, software
desactualizado, mala configuración de entornos, o incluso errores de desarrollo en
aplicaciones alojadas en los host. Está gran lista de factores a tener en cuenta demuestra una
vez más la importancia que se le debe dar a la seguridad de un sistema o red.
187
10. Fase 5: Post-Explotación
Esta fase del Test de Intrusión se caracteriza por intentar mantener el acceso a los
distintos dispositivos de la red involucrados en la auditoría. Esto se realiza para que, en un
futuro, no haga falta aplicar nuevamente todas las técnicas que se utilizaron en un principio
para lograr el acceso a dichos dispositivos.
Para esto se utilizan diversas técnicas, algunas manuales y otras apoyándose en
herramientas, como por ejemplo Meterpreter. También se pueden utilizar distintos tipos de
malware (software malicioso), como pueden ser troyanos, spyware, virus, etcétera.
En el caso de estudio del presente trabajo final no es de utilidad intentar lograr acceso
a un dispositivo de la red para poder asegurar una vía de entrada a la misma, ya que por lo
explicado en capítulos anteriores, es muy fácil poder conectar un dispositivo propio a alguna
de las bocas de red, conectarse a cualquiera de las señales wi-fi disponibles e incluso tomar el
control físico de alguna de las computadoras de los distintos salones, laboratorios u oficinas.
Además, el ataque a través de la utilización de malware a alguno de los equipos de la
red no está dentro de las posibilidades de la auditoría, ya que sería demasiado riesgoso para la
integridad de los datos y difícil de volver hacia atrás el daño causado.
En la fase de Análisis de Vulnerabilidades, se encontró que el host 10.254.1.152 de la
red se encuentra infectado con el gusano Conficker. Dicho gusano, luego de infectar y
propagarse, desactiva varios servicios de Windows y además genera una conexión con un
servidor desde el cual recibe indicaciones. Dicho comportamiento es una manera de Post
Explotación. Por esto, ni bien se encontró la vulnerabilidad se dio aviso inmediato a los
responsables del Centro de Datos y Comunicaciones para que tomaran las medidas necesarias
ya que era un peligro crítico ocurriendo en tiempo real.
Otro caso interesante que se trató en la fase de Análisis de Vulnerabilidades, en el que
sí vale la pena realizar una técnica de Post Explotación manual es el del host 10.254.1.252,
donde se logró acceso a una base de datos Postgre. Esta explotación es considerada relevante
dentro de la auditoría ya que la información alojada en dicha base de datos también se puede
utilizar para mostrar riesgos, alcanzar objetivos de evaluación, determinar la configuración y
la función de los servicios e inclusive para penetrar aún más en una red de clientes y hosts.
188
De esta forma, el objetivo es conseguir un método para tener acceso inmediato cada
vez que se lo desee. Para esto se creará un nuevo usuario, el cual escalará todos los
privilegios posibles. Esta tarea será posible gracias a que el usuario vulnerado en la
explotación contiene el rol de “superusuario”, el cual lo habilita a crear usuarios nuevos, por
lo tanto se ejecutará el siguiente comando:
- CREATE USER [nombre usuario] WITH PASSWORD [password]
CREATEDB CREATEUSER;
Aquí se creará un usuario con contraseña y los roles requeridos para crear, modificar y
eliminar esquemas de base de datos y usuarios terceros con el mismo nivel de privilegios.
Figura 10-1: Creación de nuevo usuario en un servidor de base de datos con motor PostgreSQL
En la figura 10-1, en el último registro de la primer columna se puede observar el
usuario creado, unicen_pentest. En la segunda columna se pueden apreciar los atributos que
posee este nuevo usuario: Superuser, Create DB, Replication.
Con este usuario, aseguramos el acceso futuro al servidor y a las distintas bases de
datos que allí se hostean. Además, como se puede apreciar, para la Post Explotación realizada
no se utilizó ninguna herramienta adicional, más allá de las posibilidades que brinda Postgre.
Por lo que es importante no olvidar que a veces sólo hace falta utilizar el sentido común.
189
11. Conclusión
Luego de haber realizado una investigación sobre los estándares existentes hoy día
relacionados a la Seguridad Informática, las diversas técnicas y herramientas disponibles, y
las metodologías que se aplican a la hora de llevar a cabo las auditorías, se considera que
haber realizado el Test de Intrusión tanto aplicativo como de infraestructura fue una decisión
acertada para tener una primera imagen del estado de la seguridad del Centro de Datos y
Comunicaciones de la UNICEN.
Durante el proceso se debieron aplicar métodos de aprendizaje adquiridos durante la
carrera de Ingeniería de Sistemas para poder comprender conceptos totalmente nuevos,
analizarlos y poder tomar decisiones en base a esos análisis. Gracias a estos nuevos
conocimientos, se pudo colaborar a la mejora de un aspecto importante como es la seguridad
de la universidad que supo brindar esas herramientas de aprendizaje mencionadas.
Una red como la de UNICEN en la que si bien existe un centro de datos, pero no es
una red centralizada ya que posee muchos nodos independientes de propósitos tanto
específicos como generales, tareas tales como la administración y el mantenimiento de la
seguridad no son sencillas en lo absoluto.
Durante el Test de Intrusión se encontraron diversas vulnerabilidades, algunas de las
cuales eran evitables a través de cambios en la configuración de los servidores tanto http
como de base de datos. Otras tantas también se podrían haber evitado con las
correspondientes actualizaciones del software utilizado y los parches de seguridad que surgen
día a día con la constante aparición de nuevas amenazas..
No obstante, a medida que se fueron encontrando vulnerabilidades consideradas
críticas dado el nivel de facilidad con las que se pueden explotar o el alto grado de daño que
pueden causar, se fue dando aviso a los encargados del Centro de Datos y Comunicaciones de
forma inmediata, para que puedan solucionarlas en el acto.
Por otro lado, un factor que añade complejidad en el campo de la seguridad es el
índole público de mucha de la información, lo cual se encuentra estrictamente ligado a las
características de una institución pública como lo es la UNICEN.
Estrechamente relacionado con esta divulgación de información se encuentra la
facilidad con la que se puede acceder a información sobre las bandas de IP, saber las
190
versiones de los distintos servicios y sistemas operativos. Todo esto tampoco colabora a
mantener la red y sus nodos en un estado seguro.
Si bien estos problemas tienen solución, el escenario ideal sería la precaución, es
decir, intentar evitarlos antes de que ocurran. Por lo tanto, se recomienda que la universidad
cuente con un departamento avocado a realizar tareas como por ejemplo:
- Verificar que el software esté actualizado.
- Verificar que todos los parches de seguridad existentes estén actualizados.
- Verificar que las aplicaciones webs concernientes a la UNICEN no permitan
la posibilidad de ser inyectadas con código javascript (XSS), sql (SQL
Injection), etc.
- Verificar que todo sistema que requiera autenticación (aplicaciones webs,
bases de datos, servicios expuestos de mail, etc) constan de usuarios con
contraseñas adecuadas.
- Verificar que toda la información expuesta públicamente no revele o ayude a
revelar datos sensibles.
- Verificar que acciones tales como autenticaciones, se realicen mediante
protocolos seguros como ssh y no por medios que permitan la comunicación
mediante texto plano.
Estas tareas, al ser realizadas con periodicidad, incrementarían significativamente el
nivel de seguridad de la red ya que limitan la cantidad de puntos críticos que posibles
atacantes pueden explotar. Además, en caso de que un ataque esté siendo llevado a cabo, los
escaneos diarios ayudarán a encontrarlos a tiempo y anularlos, disminuyendo así los daños e
impactos negativos que puedan tener sobre la red en cuestión.
Se recomienda además, conformar un Sistema de Gestión de la Seguridad de la
Información (SGSI), con las políticas que se crean convenientes, como las mencionadas
previamente, y considerar la inclusión de diversos tests al proceso de gestión, como puede ser
el Test de Intrusión realizado en el presente trabajo. Este tipo de prácticas deben realizarse al
menos una vez al año, ya que como se dijo en capítulos anteriores, la seguridad es un estado y
por lo tanto puede cambiar de un momento a otro.
Al finalizar el Test de Intrusión, se presentó un informe técnico detallado sobre las
vulnerabilidades encontradas, sus potenciales riesgos al ser explotadas y cómo solucionarlas.
191
Además se llevó a cabo la documentación de todos los estándares, procesos y
herramientas que se han utilizado y que servirá de puntapié inicial para trabajos futuros.
192
12. Trabajos Futuros
El propósito de esta capítulo es el de enunciar tres posibles trabajos que podría
desprenderse de ésta tesis. Dichas propuestas pueden profundizar aspectos planteados en este
trabajo, como también pueden utilizarlo como base para obtener objetivos nuevos. El factor
común aquí es el de incrementar el nivel de seguridad de la Universidad Nacional de la
Provincia de Buenos Aires.
Dichos trabajos pueden ser continuaciones que profundicen ciertos aspectos o
abarquen aquellos que por cuestiones de alcance no fueron tenidos en cuenta. Otros también
pueden utilizar como ayuda la información recopilada a lo largo de la auditoría y utilizarla
con otros fines, como por ejemplo tareas referentes al área de redes e infraestructura.
193
el número de bandas excede ampliamente a dichas dos. Entre ellas se encuentran las
pertenecientes a cada Facultad como por ejemplo: Exactas (192.168.0.0/19), Veterinaria
(192.168.32.0/19), Humanas (192.168.192.0/19) y Económicas (192.168.224.0/19).
En ellas quizás se encuentren vulnerabilidades de otro tipo, las cuales lleven a realizar
ataques diferentes a los implementados en este trabajo. También se puede aprovechar la
oportunidad para cambiar el conjunto de herramientas utilizado o profundizar más en técnicas
que no han sido tomadas tan en cuenta, como lo puede ser realizar un sniffing riguroso sobre
la red.
Por último la tercer propuesta plantea utilizar los resultados obtenidos para lograr
objetivos aún más ambiciosos. En este trabajo se ha realizado una auditoría de seguridad en la
que se han encontrado algunas de las vulnerabilidades de las que adolece el Centro de Datos
de la UNICEN. Junto a estas vulnerabilidades también se han documentado acciones a tomar
para anularlas. El análisis de dichas acciones puede llevar a la definición de comportamientos
bases para definir un Sistema de Gestión de la Seguridad Informática (SGSI), el cual consta
de políticas y procedimientos para administrar sistemáticamente la información sensible de
una organización.
La gestión de la seguridad de la información trata de la protección de los activos de
información frente a posibles infracciones de seguridad. Se refiere a todo tipo de información,
incluidos los formatos tanto electrónicos como de papel. Estos sistemas determinan cómo se
procesa, almacena, transfiere, archiva y destruye la información.
194
13. Bibliografía
[Jar12] “Ethical Hacking 2.0”, Héctor Jara y Federico G. Pacheco, Editorial Fox Andina en
coedición con DÁLAGA S.A., 2012.
[Pac09] “Hackers al descubierto”, Federico G. Pacheco y Héctor Jara. , Editorial Gradi S.A.,
2009.
[Fir05] “Seguridad Informática”, Sebastián Firtman, Editorial MP Ediciones S.A., 2005.
[Per13] “Pentesting con Kali”, Pablo González Pérez, Germán Sánchez Garcés y José Miguel
Soriano, Editorial 0xWORD Computing S.L., 2013.
[Ste92] “The Hacker Crackdown”, Bruce Sterling , 1992.
[Lev96] “Hackers, Heroes of The Computer Revolution”, Steven Levy, 1996.
[Her08] “Open Source Security Testing Methodology Manual (OSSTMM)”, Pete Herzog
(Manager Director de ISECOM), 2008.
[ISO27] Portal con información sobre la serie ISO 27000.
[Gro07] “XSS Attacks, Cross Site Scripting Exploits and Defense”, Jeremiah Grossman,
Robert Hanse, Petko D. Petkov, Anton Rager y Seth Fogie, Editorial Syngress, 2007.
[Acu14] “¿Qué es un XSS persistente?”, ACUNETIX, 2014.
[DoD83] “Trusted Computer System Evaluation Criteria (TCSEC)”, DoD, 1983.
[Arn07] “Introduction to ISO Security Standars”, Arnason & Willett, 2007.
[Eur91] “Information Technology Security Evaluation Criteria”, ITSEC, 1991.
[CSE93] “The Canadian Trusted Computer Product Evaluation Criteria (CTCPEC)”,
Communications Security Establishment.
[CC99] “Common Criteria for Information Technology Security Evaluation v2.1”, CC, 1999.
[Ois06] “Information Systems Security Assessment Framework (ISSAF)”, OISSG, 2006.
[OWA01] “Open Web Application Security Project (OWASP), 2001.
[Kan15] “Comparative Study of Penetration Test Methods”, Yong-Suk Kang, Hee-Hoon
Cho, Yongtae Shin and Jong-Bae Kim, 2015.
[PTE09] “Penetration Testing Execution Standard (PTES)”, 2009
[PCI15] “Information Supplement: Penetration Testing Guidance”, 2015.
[Sch08] “The Security Mindset”, Bruce Schneier, 2008.
[Ash99] “Guía de Gnu Privacy Guard”, Mike Ashley, 1999.
195
[Her16] “K0SASP - Pentesting con Mac OS X”, Daniel Herrero, 2016.
[Feb11] “Guía Inteco de Seguridad sobre Information Gathering”, Borja Merino Febrero,
José Miguel Holguín, 2011.
[Mar08] “Ventajas y Desventajas de la Virtualización”, Isabel Martín, 2008.
[Gro03] “Cross Site Tracing: The new Techniques and emerging threats to bypass current
web security measures using trace and XSS”, Jeremiah Grossman, 2003.
[Owa14] “Test HTTP Methods (OTG-CONFIG-006)”, Guía Test v4 OWASP, 2014.
[Apa11] "Forward and reverse proxies", The Apache Software Foundation, 2011.
[Gra04] “DNS Cache Snooping or Snooping The Cache For Fun and Profit”, Luis Grangeia,
2004.
196
14. Anexo
Acuerdo de confidencialidad
Suscrito entre:
La Universidad Nacional del Centro de la Provincia de Buenos Aires, Damián Blanco y
Matías Francisco Cattafesta
En fecha: ………………………
En la localidad de Tandil.
REUNIDOS
De una parte:
………………. , de DNI ………………, con domicilio en …………………. y CP ……… .
El Sr. ……………… interviene en nombre de La Universidad Nacional del Centro de la
Provincia de Buenos Aires, en la ciudad de Tandil.
A partir de ahora se la llamará Parte Informadora, por el resto del presente documento.
Y de otra:
………………. , de DNI ………………, con domicilio en ……………….. y CP ……. . El
Sr. ………………… interviene en su propio nombre y derecho.
A partir de ahora se la llamará Parte Receptora, por el resto del presente documento.
Ambas partes se reconocen recíprocamente la capacidad legal necesaria para la suscripción
del presente acuerdo, y al efecto,
EXPONEN
I. Que la Parte Receptora, con el fin de realizar su tesis de grado de la carrera,
realizará una auditoría de seguridad sobre algunos de los servicios del datacenter
de la universidad.
II. Que la Parte Informadora ha manifestado su interés en la realización de dicha
tesis, con el fin de colaborar con la Parte Receptora y además obtener un informe
sobre la seguridad de su sistema, con el objetivo de lograr mejorar sus
vulnerabilidades.
III. Que la Parte Informadora, solicita que durante el proceso se mantenga la
confidencialidad e integridad de la información accedida.
IV. Que la Parte Receptora, se compromete a mantener el secreto de toda la
información que de cualquier forma, con anterioridad o con posterioridad a la
firma de este documento, obtenga o haya obtenido del sistema pertinente y de la
parte Informadora, de tal forma que cualquier relación entre las Partes estará
197
sujeta a lo dispuesto en este Acuerdo de Confidencialidad y No Divulgación de
Información, que se regirá conforme a las siguientes
CLÁUSULAS
1-Definiciones:
1.1- “Información Confidencial”: significa toda la información referida a la Parte
Informadora que se le haya proporcionado por cualquier medio (oral, escrito,
electrónico, etc.) a la Parte Receptora, con anterioridad a la firma del presente
Acuerdo o durante su vigencia. Se adhiere además, toda la información a la que se
logre acceder durante el proceso de auditoría. No obstante lo anterior, queda
excluida la información que: (i) sea pública en el momento de facilitarse la
información; (ii) esté en posesión de la Parte Receptora previamente a ser revelada
y libre de cualquier restricción de uso.
1.2- “Integridad de la Información”: se refiere a no (i)borrar; (ii)dañar;
(iii)modificar/alterar de cualquier forma o manera, ninguna información
considerada confidencial o no.
2-Información Confidencial:
2.1- La Parte Receptora tratará y mantendrá toda la información como secreta y
confidencial, y no comunicará dicha información Confidencial, bien directa o
indirectamente, ya sea de modo escrito, oral o por cualquier otro medio, sin el
consentimiento previo y por escrito de la Parte Informadora, a cualquier otra
persona distinta de las personas autorizadas conforme a lo establecido en los
términos del presente Acuerdo.
2.2- No obstante lo establecido en la cláusula 2.1, la Parte Receptora podrá facilitar
la Información Confidencial a aquellos de sus Agentes que estrictamente
necesiten conocer la Información Confidencial, siempre y cuando la Parte
Receptora acredite que dichos Agentes han sido informados con anterioridad
de que la misma es considerada como confidencial y que se encuentran
obligados por un deber de confidencialidad en los términos establecidos en el
presente Acuerdo. La Parte Receptora será considerada en todo momento
como responsable de cualquier acción u omisión por parte de dichos Agentes
que pudiera considerarse como un incumplimiento del presente Acuerdo.
2.3- En caso de que alguna Información Confidencial sea copiada, facilitada o
utilizada de un modo distinto al permitido en el presente acuerdo, la Parte
Receptora lo notificará a la Parte Informadora en un plazo máximo de 72 horas
hábiles contadas a partir de que se tenga conocimiento de tal hecho y, si así lo
solicita la Parte Informadora, la Parte Receptora adoptará las medidas
necesarias, incluyendo el inicio de acciones legales, para subsanar dicho
incumplimiento y/o, si esto no fuera posible, evitar que más información sea
copiada, facilitada o utilizada sin autorización.
2.4- La parte receptora está de acuerdo en que la “Información Confidencial” que
reciba de la otra parte es y seguirá siendo propiedad de ésta última, a usar
dicha información únicamente de la manera y para los propósitos autorizados
en la Cláusula Sexta de este contrato y que este instrumento no otorga, de
198
manera expresa o implícita, derecho intelectual o de propiedad alguno,
incluyendo, mas no limitando, Licencias de uso respecto de la “Información
Confidencial”
3-Duración:
El deber de confidencialidad asumido por la parte Receptora a través de la
suscripción del presente será de carácter vitalicio sin contar con plazo fijo o
determinado de vigencia manteniéndose su obligación durante la totalidad de su vida .
4-Indemnización:
La Parte Receptora indemnizará a la Parte Informadora de cuantos gastos,
responsabilidades, daños y perjuicios se le pudieran irrogar por el incumplimiento por
su parte de cualquier obligación del presente Acuerdo.
5- Jurisdicción y Competencia:
Para el supuesto caso de controversia en cuanto a los alcances del presente, las
partes se someten a la jurisdicción y competencia del Juzgado Federal de Azul
renunciando a cualquier otro fuero y/o jurisdicción.
6- Domicilio Legales:
A todos los efectos legales las partes fijan sus domicilios en los denunciados
ut supra donde serán válidas todas las notificaciones judiciales y extrajudiciales.
En prueba de conformidad se firman cuatro ejemplares de un mismo tenor y a un solo
efecto, en Buenos Aires, a los ___ días del mes de ______ de 200_.
………………………. ……………………..
199