15
Arquitectura de red segura 1 st Santiago Chaparro Dpto. de Ingenier´ ıa de Sistemas Pontificia Universidad Javeriana Bogot´ a, Colombia [email protected] 2 nd Stiven Gonz´ alez Dpto. de Ingenier´ ıa de Sistemas Pontificia Universidad Javeriana Bogot´ a, Colombia stiven [email protected] 3 rd Nicol´ as Miranda Dpto. de Ingenier´ ıa de Sistemas Pontificia Universidad Javeriana Bogot´ a, Colombia [email protected] Abstract—This article shows all the components and the testing protocol for each attack that was used for the correct development of the secure network architecture project, where it is shown how the attack is carried out on each of the implemented services and the policies, techniques or countermeasures to prevent successful attacks. Index Terms—Link layer, MAC flooding, MAC spoofing, Man in The Middle attack, VLAN, Switch, Ethernet, Frame, ARP protocol, DHCP and STP protocol. I. I NTRODUCCI ´ ON En el presente proyecto, se configurar´ a una red de computadores con sus respectivos servicios ( haciendo uso de un simulador), la cual inicialmente no tendr´ a las medidas de seguridad adecuadas, con el fin de demostrar c´ omo se pueden explotar las vulnerabilidades. Posteriormente se debe configurar una arquitectura de red segura, implementando pol´ ıticas y procedimientos de seguridad haciendo uso de los mecanismos y herramientas existentes para minimizar las vulnerabilidades de la red. En la arquitectura se implementan diferentes servicios sus- ceptibles a ser vulnerados, tales como DNS, web, FTP, poste- riormente se implementar´ an ataques en diferentes protocolos y capas del modelo OSI, principalmente en la capa de enlace y transporte. En la secci´ on de escenario de pruebas, se har´ a la demostraci´ on efectiva de que cada ataque funciona correctamente. Posteri- ormente al aplicar las contramedidas correspondientes a cada ataque, este ya no tendr´ exito. II. MARCO TE ´ ORICO A. OWASP Top 10 OWASP (Open Web Application Security Project) es una comunidad dedicada a producir art´ ıculos, metodolog´ ıas, documentaci´ on, herramientas y tecnolog´ ıas en el campo de la seguridad en aplicaciones web. [1] OWASP Top 10 es un est´ andar de referencia de 10 de las vulnerabilidades m´ as cr´ ıticas en las aplicaciones web, en donde se facilitan las t´ ecnicas b´ asicas y buenas pr´ acticas para protegerse contra estas vulnerabilidades y concientizar a los desarrolladores, dise˜ nadores, arquitectos y en general a todos los stakeholders de la importancia de la seguridad en aplicaciones web [2]. El top 10 del a˜ no 2017 de las vulnerabilidades m´ as cr´ ıticas en aplicaciones web seg´ un OWASP ´ esta conformado por: 1) A1 - Injection: inyecci´ on de c´ odigo SQL, NoSQL, LDAP o comandos del sistema operativo. Ocurre cuando se env´ ıan datos no confiables que son interpretados como parte de un comando de una consulta. Los datos no confiables introducidos por el atacante pueden enga˜ nar a la aplicaci´ on web ejecutando comandos no deseados o acceder a informaci´ on sensible. [2]. 2) A2 - Broken Authentication: las funciones de la apli- caci´ on relacionadas con la autenticaci´ on y el manejo de sesi´ on normalmente son implementadas de manera incorrecta por los desarrolladores, permitiendo a los atacantes comprometer contrase˜ nas, tokens de sesi´ on o explotar otras fallas de implementaci´ on para obtener las identidades de otros usuarios. [2] 3) A3 - Sensitive Data Exposure: muchas aplicaciones web y APIs no protegen adecuadamente la informaci´ on sensible, como en el caso de la informaci´ on financiera, edica e informaci´ on personal de identificaci´ on. Esto abre una brecha para que los atacantes pueden robar o modificar los datos que se encuentran d´ ebilmente protegidos y as´ ı cometer alg ´ un tipo de cibercrimen como fraude de tarjetas o robo de identidad. [2] 4) A4 - XML External Entities (XXE): algunos proce- sadores XML mal configurados eval´ uan referencias de entidades externas dentro de los documentos XML. Las entidades externas se pueden usar para divulgar archivos internos utilizando el archivo de control de la URI, archivos internos compartidos, escaneo de puertos, ejecuci´ on de c´ odigo remoto o ataques de denegaci´ on de servicios. [2] 5) A5 - Broken Access Control: las restricciones sobre los usuarios autenticados no se realizan de manera adecuada, y los atacantes pueden explotar estas fallas para acceder a funcionalidades e informaci´ on sin au- torizaci´ on, como por ejemplo, acceder a otras de los usuarios, ver archivos sensibles, modificar informaci´ on de otros usuarios, cambiar los permisos de acceso, entre otros. [2]. 6) A6 - Security Misconfiguration: es el resultado de las

Arquitectura de red segura - exploitland.com

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arquitectura de red segura - exploitland.com

Arquitectura de red segura1st Santiago Chaparro

Dpto. de Ingenierıa de SistemasPontificia Universidad Javeriana

Bogota, [email protected]

2nd Stiven GonzalezDpto. de Ingenierıa de SistemasPontificia Universidad Javeriana

Bogota, Colombiastiven [email protected]

3rd Nicolas MirandaDpto. de Ingenierıa de SistemasPontificia Universidad Javeriana

Bogota, [email protected]

Abstract—This article shows all the components and thetesting protocol for each attack that was used for the correctdevelopment of the secure network architecture project, where itis shown how the attack is carried out on each of the implementedservices and the policies, techniques or countermeasures toprevent successful attacks.

Index Terms—Link layer, MAC flooding, MAC spoofing, Manin The Middle attack, VLAN, Switch, Ethernet, Frame, ARPprotocol, DHCP and STP protocol.

I. INTRODUCCION

En el presente proyecto, se configurara una red decomputadores con sus respectivos servicios ( haciendo usode un simulador), la cual inicialmente no tendra las medidasde seguridad adecuadas, con el fin de demostrar como sepueden explotar las vulnerabilidades. Posteriormente se debeconfigurar una arquitectura de red segura, implementandopolıticas y procedimientos de seguridad haciendo uso de losmecanismos y herramientas existentes para minimizar lasvulnerabilidades de la red.

En la arquitectura se implementan diferentes servicios sus-ceptibles a ser vulnerados, tales como DNS, web, FTP, poste-riormente se implementaran ataques en diferentes protocolosy capas del modelo OSI, principalmente en la capa de enlacey transporte.En la seccion de escenario de pruebas, se hara la demostracionefectiva de que cada ataque funciona correctamente. Posteri-ormente al aplicar las contramedidas correspondientes a cadaataque, este ya no tendra exito.

II. MARCO TEORICO

A. OWASP Top 10

OWASP (Open Web Application Security Project) esuna comunidad dedicada a producir artıculos, metodologıas,documentacion, herramientas y tecnologıas en el campo de laseguridad en aplicaciones web. [1]

OWASP Top 10 es un estandar de referencia de 10 delas vulnerabilidades mas crıticas en las aplicaciones web,en donde se facilitan las tecnicas basicas y buenas practicaspara protegerse contra estas vulnerabilidades y concientizara los desarrolladores, disenadores, arquitectos y en general atodos los stakeholders de la importancia de la seguridad en

aplicaciones web [2].

El top 10 del ano 2017 de las vulnerabilidades mas crıticasen aplicaciones web segun OWASP esta conformado por:

1) A1 - Injection: inyeccion de codigo SQL, NoSQL,LDAP o comandos del sistema operativo. Ocurre cuandose envıan datos no confiables que son interpretados comoparte de un comando de una consulta. Los datos noconfiables introducidos por el atacante pueden enganara la aplicacion web ejecutando comandos no deseadoso acceder a informacion sensible. [2].

2) A2 - Broken Authentication: las funciones de la apli-cacion relacionadas con la autenticacion y el manejode sesion normalmente son implementadas de maneraincorrecta por los desarrolladores, permitiendo a losatacantes comprometer contrasenas, tokens de sesion oexplotar otras fallas de implementacion para obtener lasidentidades de otros usuarios. [2]

3) A3 - Sensitive Data Exposure: muchas aplicacionesweb y APIs no protegen adecuadamente la informacionsensible, como en el caso de la informacion financiera,medica e informacion personal de identificacion. Estoabre una brecha para que los atacantes pueden robaro modificar los datos que se encuentran debilmenteprotegidos y ası cometer algun tipo de cibercrimen comofraude de tarjetas o robo de identidad. [2]

4) A4 - XML External Entities (XXE): algunos proce-sadores XML mal configurados evaluan referencias deentidades externas dentro de los documentos XML.Las entidades externas se pueden usar para divulgararchivos internos utilizando el archivo de control de laURI, archivos internos compartidos, escaneo de puertos,ejecucion de codigo remoto o ataques de denegacion deservicios. [2]

5) A5 - Broken Access Control: las restricciones sobrelos usuarios autenticados no se realizan de maneraadecuada, y los atacantes pueden explotar estas fallaspara acceder a funcionalidades e informacion sin au-torizacion, como por ejemplo, acceder a otras de losusuarios, ver archivos sensibles, modificar informacionde otros usuarios, cambiar los permisos de acceso, entreotros. [2].

6) A6 - Security Misconfiguration: es el resultado de las

Page 2: Arquitectura de red segura - exploitland.com

configuraciones por defecto (inseguras), configuracionesincompletas, almacenamiento en la nube, encabezadosHTTP mal configurados y mensajes de errores quecontienen informacion sensible. Todas las bibliotecas oframeworks que se utilicen deben estar configurados deforma segura, ademas de parcharlos cuando exista unanueva actualizacion. [2]

7) A7 - Cross-Site Scripting (XSS): ocurre cuando seincluyen datos no confiables en una pagina web sin lavalidacion adecuada. Permite a los atacantes ejecutarscripts en el navegador de las vıctimas donde puedensecuestrar la sesion del usuario, secuestrar la pagina webpara redirigir al usuario a sitios maliciosos, o ataques dehombre en el medio. [2]

8) A8 - Insecure Deserialization: se produce cuando envez de utilizar formatos estandar para la deserializacion,como JSON o XML, se usan datos binarios, lo quepermite que los atacantes ejecuten el codigo de maneraremota y tambien puedan realizar ataques de inyeccion,replay y escalamiento de privilegios. [2]

9) A9 - Using Components with Known Vulnerabili-ties: si alguna biblioteca, framework u otro modulo desoftware tiene alguna vulnerabilidad y se logra explotar,se puede comprometer la aplicacion web, produciendoperdida grave de datos o tomar control del servidor. [2]

10) A10 - Insufficient Logging and Monitoring: si nose cuenta con un sistema de respuesta a incidentes,y ademas no se tiene un apropiado monitoreo de laaplicacion web, se les permite a los atacantes entraral sistema y vulnerarlo, logrando manipular, extraer odestruir la informacion.Estudios muestran que el tiempo para detectar unabrecha de seguridad es de 200 dıas aproximadamente,y normalmente son detectados por entidades externasen vez de un proceso interno. [2]

B. Active Directory

Active Directory (AD) es un producto de Microsoft hechopara Windows Server, el cual permite administrar y utilizarlos recursos de una red con el fin de almacenar y conocer alos usuarios que se encuentran en este servicio. Esto se hacemediante objetos los cuales representan activos importantescomo usuarios, aplicaciones o dispositivos. Con esto en menteActive Directory clasifica por medio de nombre y atributos. [3]

Ahora bien el servicio principal de Active Directory esofrecer un servicio de domino para almacenar la informacionen un directorio y manejar las intervenciones que tieneel usuario con el dominio; utiliza un servicio de dominollamado Active Directory Domain Services (AD DS), lacual le permite a un administrador controlar, administrar yalmacenar la informacion sobre los recursos presentes enla red y los datos de las aplicaciones de forma distribuida,generando un ordenamiento jerarquico personalizado conayuda del bosque AD y las unidades organizativas. ActiveDirectory Domain Services integra su seguridad mediante la

autentificacion de inicio de sesion para los usuarios y de uncontrol de quien tiene el acceso a ciertos recursos. De estaforma se garantiza una forma de proteger los recursos quecontiene la red que estamos usando, diferenciando los rolesque ejerce cada activo o individuo dentro de nuestra red. [?]

Active Directory nos brinda caracterısticas importantespara su correcto funcionamiento, tales como los dominiosque son un grupo de objetos que comparten la misma basede datos con una estructura de DNS, cuenta con arbolesque es uno o mas dominios agrupados de forma jerarquicadonde un dominio A puede confiar en un dominio B y Bconfıa en un dominio C de tal forma que A confıa en Cde forma indirecta, y por ultimo se encuentra un bosqueque es la unificacion de multiples arboles donde comparteninformacion de aplicaciones, configuraciones de dominio,etc. Sin olvidarnos de las unidades organizativas (UO) queorganizan a los usuarios, grupos o dispositivos para cadadominio donde cada usuario u objeto debe ser unico [4]

Entre algunos servicios ofrecidos por Active Directoryencontramos LDAP, un protocolo de aplicacion utilizadopara acceder a servicios a traves de la red, estos serviciosalmacenan objetos como nombres de usuarios y contrasenas.Tambien encontramos Certificate Services (AD CS), quebrinda la generacion y gestion de certificados cifrados parael intercambio de informacion por internet de forma segurausando una clave publica. Federation Services (AD FS),permite autenticar el acceso a multiples aplicaciones medianteun inicio de sesion unico (SSO). Por otra parte tenemosel Rights Management (AD RMS) capaz de controlar losderechos y gestion de la informacion haciendo que se encripteel contenido de correos o documentos Word, etc. [3]

C. VLAN

Para la comunicacion entre varias LANs se usan puentes.Los conmutadores o switches son puentes que proveenfunciones sobre la capa de enlace de datos, en la que seencuentra la union de redes LAN fısicas. Los puentes sediferencian de los routers en que estos realizan mas bien unalabor de enrutamiento de paquetes a partir de la direccionIP de los mismos. Los puentes tambien pueden separar lasLAN fısicas en varias LAN logicas, este tipo de redes sonlas conocidas como VLAN o LAN Virtual. [5]

Las redes VLAN funcionan a partir de un formato parecidoal del protocolo Ethernet. Se usa el estandar 802.1Q, elcual ofrece tres campos adicionales al del protocolo Ethernetcomun y corriente. Este protocolo se caracteriza por ser usadosolamente entre switches, puesto a que los dispositivos notienen que saber en que VLAN estan porque el conmutadorya tiene esa informacion. [5]

Page 3: Arquitectura de red segura - exploitland.com

III. DESARROLLO

La arquitectura inicial contiene un total de sietecomputadores y tres VLANs, cada computador esta conectadoa uno de los dos switches de capa dos. Asimismo, cadaswitch de capa 2 esta conectado a un switch de capa3 y este ultimo a un router. Los enlaces entre switchesestan establecidos como enlaces troncales por medio delcomando switchport mode trunk y las conexiones entrelos end devices y los switches se establecen por mediodel comando switchport access vlan [numerovlan]. Elrouter es un Cisco 3745, los dos switches capa dos son unCisco vIOS-L2 y el switch de capa 3 es un Cisco 3640.Tambien se encuentra una maquina virtual con WindowsXP y otra con Kali Linux (esta ultima para lanzar los ataques).

Para evitar la comunicacion entre vlans cuando estascompartan el mismo router, se definieron varias listas decontrol acceso que limitan la conexion entre los computadoresde diferentes vlans, a excepcion del computador con la ip30.0.0.1, el cual puede considerarse como el administradorde la red.

En la figura 1 se presenta la arquitectura de la red imple-mentada usando GNS3 que es un software para emular redescomplejas y permite combinar dispositivos reales, maquinasy dispositivos virtuales disponibles en el marketplace delsoftware. [6]

Fig. 1. Usuarios en Active Directory.

Los servicios y ataques que se decidieron implementar sedescribiran en las siguiente secciones

A. DNS SpoofingPara realizar este ataque, se debe realizar a la vez un ataque

de ARP Poison y se procede como un ataque de tipo Man InThe Middle en el que se va a cambiar la direccion IP de laURL de una pagina web dentro de la red interna y redirigirlas peticiones a una maquina atacante que muestra una paginadiferente o falsa.

B. Active DirectorySe configuro Active Directory en Windows Server 2019

Datacenter y donde se configuro 3 grupos (docentes, estu-diantes y adminsitrativos) y 6 usuarios (Alice, Bob, Rafael,Mariela, Luis y Diana) como se puede observar en la figura 2,para simular algunos ataques al Directorio Activo y a algunosservicios implementados como ISS, FTP y DNS.

Fig. 2. Usuarios en Active Directory.

C. Aplicacion web

Para la implementacion de la aplicacion web se hizo usode Damn Vulnerable Web Application (DVWA) que es unaaplicacion escrita en PHP y MySQL y que su principalobjetivo es ayudar a los profesionales del area de la seguridadinformatica para practicar las habilidades de seguridad enaplicaciones web en un ambiente seguro, controlado y legal[7].

D. CDP Flooding

Los dispositivos Cisco tienen un protocolo llamado CiscoDiscovery Protocol (CDP) capaz de detectar dispositivos Ciscoconectados de forma directa simplificando la configuraciony conectividad, estos mensajes no estan encriptados. La in-tencion de este ataque es generar un DoS generando un envıomasivo de mensajes CDP para inundar el dispositivo Ciscogenerando fallos de procesamiento.

E. SYN flood

Para la implementacion del SYN flood se hizo uso deHping3 que es una aplicacion de Linux que tiene como obje-tivo principal la creacion de paquetes TCP/IP. Ahora bien lafuncion principal de un SYN flood es abrir muchas conexionesen la maquina objetivo. Este ataque se hace mediante paquetesTCP que tienen la bandera SYN activa y no hay finalizacionformal del three way handshake (TWH). La no finalizacion delprotocolo TWH da como consecuencia nueva generacion decomunicaciones y de esta forma se van agotando los recursosde la maquina para finalizar con un ataque de denegacion deservicio DoS [7].

F. MAC Flooding

Se sabe que los dispositivos Switch dentro de una red tienenuna MAC-table, la cual utilizan para direccionar el enviode paquetes entre las distintas maquinas que se encuentranconectadas en la misma red, de tal forma que existe lavulnerabilidad de poder desbordar esta MAC-table generandouna denegacion de servicio (DoS) al enviar un gran numero depaquetes ARP, con direcciones MAC aleatorias, que supere lacapacidad de la tabla. Por consiguiente, para el desarrollo deeste ataque se utilizo una herramienta que podemos encontraren Kali Linux llamada macof especializada para este tipo de

Page 4: Arquitectura de red segura - exploitland.com

ataques, la cual mediante sus diferentes comandos podemoscontrolar el numero de paquetes que se envian, la interfaz yhasta la direccion IP del objetivo si se desea.

G. VLAN Hopping Attack

El Vlan hopping attack es un tipo de exploit basado en elDynamic Trunk Protocol. Con este protocolo, dos dispositivospueden negociar una conexion troncal con encapsulacion[8]. En el VLAN hopping Attack, el atacante suplanta dichoprotocolo y establece una conexion troncal con un swtich,permitiendole acceder a todas las vlan de una red [9].

Hay una variacion del VLAN hopping attack en donde semanda una trama 802.1Q dentro de otra trama 802.1Q [9].En esta situacion, el switch que esta directamente conectadocon el dispositivo del atacante desencapsula la trama unavez y se la manda al siguiente switch. Este ultimo es elque negocia el puerto troncal con la maquina del atacante,permitiendole enviar mensajes a vlans externas. Este ataquese realiza en el escenario de pruebas utilizando un sistemaoperativo especializado para realizar ataques: Kali Linux, ycon la aplicacion llamado Yersinia [10].

H. EternalBlue

El EternalBlue es un exploit que permite a los atacantesrealizar codigo arbitrario de forma remota y obtener acceso auna rede mediante el envio de paquetes disenados. Este ataqueexplota la vulnerabilidad del sistema operativo Windows deMicrosoft en el protocolo de Server Message Block (SMB),este protocolo permite el acceso a archivo a traves de unservidor remoto. Ademas este ataque compromete a todos losdispositivos conectados a una misma red, si alguno de estoses infectado [11].

Uno de los ataques mas reconocidos por utilizar este exploites el WannaCry, esto propuso que el EternalBlue sea popularcomo entre otros programas maliciosos, por ultimo este ex-ploit tambien es utilizado para obtener acceso a la potenciainformatica para la extraccion de criptomonedas [11].

IV. ESCENARIO DE PRUEBAS

En esta seccion se presenta la descripcion tecnica detalladade cada uno de los ataques y contramedidas para los serviciosdescritos en la seccion III

A. DNS Spoofing

Para el ataque se utilizan las siguientes herramientas:• Un servidor web Apache, mostrando una pagina avisando

del ataque o una pagina creada por la herramienta SET,copiando una pagina existente.

• Ettercap, Con los modulos de dns spoof y arp poison.• Nmap, para analizar las ip dentro de la red interna.El ataque se realiza de la siguiente forma:1) En caso de utilizar una pagina clonada, se configura la

herramienta SET: sudo setoolkit:llamamos al ejecutablede SET que se encuentra en /usr/bin/setoolkit 1 - opcion

1, Social-Engineering Attacks 2 - opcion 2, WebsiteAttack Vectors 3 - opcion 3, Credential Harvester AttackMethod sudo apt-get install apache2 e iniciar el servidoren el puerto 80.

2) utilizando nmap, se escanea la red y se verifica cualesson las maquinas activas y algunos datos extras. nmap -sP [rango ip del segmento] (192.168.1.1-254) - Escaneatodas las IP’s de la red local con ayuda de peticionesARP y muestra los hosts que activos nmap -O [ipespecifica] -¿ Muestra datos del host con esta ip

3) Se configura el dns de ettercap desde el archivo etter.dns,tomando este ejemplo: Ver Fig. 3.

Fig. 3. Configuracion etter.dns.

4) Se configura el archivo de ettercap etter.conf.

Fig. 4. Configuracion etter.conf.

5) se inicia ettercap con los siguientes plugins y el ataqueya estara en curso.

6) Escaneamos los hosts de la red, desde la pestana superiorde ettercap Hosts ¿ Scan for hosts, posteriormente loslistamos con Hosts ¿ Hosts list

7) Posteriormente vamos a Plugins ¿ Manage the pluginsy seleccionamos dns spoof:

8) Finalmente iniciamos el ataque con Start ¿ Start sniffing.9) Si se usa SET, este mostrara todos los datos relevantes

que sean introducidos en las paginas web, si se usa

Page 5: Arquitectura de red segura - exploitland.com

apache, unicamente se mostrara esta pagina en losdispositivos atacados.

La contramedida para estos ataques, se consigue haciendoun filtrado de paquetes, inhabilitando o buscando por sniffersen la red, utilizando redes VPN de confianza o utilizandofiltros en web que detectan un comportamiento sospechosoen las paginas visitadas por medio de certificados SSL/TSL.

Fig. 5. Aviso de seguridad de la pagina web.

B. Active Directory

1) AS-REP-Roast: AS-REP Roasting es un ataquecontra Kerberos para cuentas de usuario que no requierenautenticacion previa. La autenticacion previa es el primerpaso en la autenticacion Kerberos y esta disenada para evitarataques de adivinacion de contrasena de fuerza bruta.

Durante la autenticacion previa, un usuario ingresara sucontrasena que se usara para cifrar el timestamp y luego elcontrolador de dominio intentara descifrarla y validar quese uso la contrasena correcta y que no esta repitiendo unasolicitud anterior. A partir de ahı, se emitira el TGT para que elusuario lo use para futuras autenticaciones. Si la autenticacionprevia esta deshabilitada, un atacante podrıa solicitar datos deautenticacion para cualquier usuario y el DC devolverıa unTGT cifrado que puede ser forzado sin conexion.

En la figura 6 se observa que el usuario Alice tiene la opcionde no requerir preautenticacion seleccionada, lo que significaque es vulnerable a un ataque AS-REP-Roast.

Por lo tanto, se procede a hacer uso de la herramientaImpacket que es una coleccion de clases en Python ysirve para realizar pentesting en maquinas Windows. Enespecıfico, se hizo uso del script GetNPUsers.py que enumeray obtiene TGT para aquellos usuarios que tienen la propiedadUF DONT REQUIRE PREAUTH activada.

En la figura 7 se observa el comando utilizado para obtenerlos hashes de los usuarios que tenıan la opcion de no requerirpreautenticacion activada.

En la figura 8 se observa los hashes de los usuarios quefueron susceptibles al ataque AS-REP-Roast.

Fig. 6. Opcion de no requerir preautenticacion seleccionada.

Fig. 7. Comando Impacket para ataque AS-REP-Roast.

Ahora, se hace uso de la herramienta John The Ripperpara crackear los hashes encontrados anteriormente, usando undiccionario. En la figura 9 se observan las 2 contrasenas delos usuarios que fueron susceptibles al ataque AS-REP-Roast.

Como contramedidas para este ataque se recomienda

• Deshabilitar la opcion de no requerir la preautenticacionKerberos.

Fig. 8. Hashes de los usuarios.

Fig. 9. Contrasenas encontradas con John The Ripper.

Page 6: Arquitectura de red segura - exploitland.com

• Usar contrasenas largas y complejas que no se encon-traran en los diccionarios de contrasenas.

En la figura 10 se observan que la opcion de no requerirpreautenticacion Kerberos ya esta desactivada.

Fig. 10. Opcion no requerir preautenticacion Kerberos desactivada.

Como evidencia de la efectividad de la contramedida, sevuelve a correr el script GetNPUser.py y como se observa enla figura 11 ya no tiene exito este ataque, informa que todoslos usuarios (incluidos Alice y Bob) ya no son susceptibles alataque AS-REP-Roast.

Fig. 11. Ataque AS-REP-Roast sin exito.

C. Aplicacion web

1) Brute Force: Para realizar este ataque se hizo uso dela herramienta THC-Hydra que sirve para forzar el nombrede usuario y contrasena de diferentes servicios como SSH,FTP, MySQL, etc. Tambien, se uso Burp Suite como servidorproxy para interceptar las peticiones hacıa el servidor yencontrar informacion relevante.

En la figura 12 se observa el codigo de la pagina login,en el cual se utiliza el metodo GET para que la informacionviaje a traves de la URL y por ende, la informacion puede serrobar y por lo tanto es inseguro. Tambien, se observa que nose realiza ninguna validacion de usuario y numero de intentospermitidos.

Fig. 12. Codigo inseguro pagina login.

En la figura 13 se muestra el formulario de login en el cualse introduce cualquier usuario y contrasena.

Fig. 13. Pantalla login fuerza bruta.

Posteriormente, se usa Burp Suite para interceptar lapeticion realziada al servidor una vez se hace click en el botonde login y como se puede observar enla figura 14 se encuentrainformacion importante como los parametros del login y lacookie de sesion.

Fig. 14. Trafico interceptado usando Burp Suite.

Una vez realizado el reconomiento del comportamiento decomo se envıa la informacion y de informacion como la cookiede sesion, se procede a realizar un ataque de diccionario con laherramienta THC-Hydra, usando el comando que se observaen la figura 15 y como se puede ver, se obtiene la contrasena

Page 7: Arquitectura de red segura - exploitland.com

del usuario admin, que para fines practicos y academicos, seasume a priori que se conce el nombre del usuario.

Fig. 15. Contrasena encontrada.

Como contramedidas para ataques de fuerza bruta en apli-caciones web se pueden considerar las siguientes

• Agregar un retraso aleatorio de segundos en los iniciosde sesion fallidos.

• Agregar un token Anti Cross-Site Request Forgery(CSRF) para prevenir ataques CSRF que es un ataquede aplicacion web del lado del cliente donde el atacanteengana a la vıctima para que ejecute una solicitud webmaliciosa. Estos tokens son un par criptograficamenterelacionados que se le dan a un usuario para validar sussolicitudes.

• Sanitizar el input del campo usuario y contrasena, estoes, validar que el cliente introduzca valores del mismotipo de datos.

• Para transferir datos desde el cliente al servidor HTTP,usar el metodo POST que transporta todos los parametrosde la solicitud en un body message lo que significa quees una manera mas segura de enviar los datos.

• Incluir una funcion de bloqueo donde si hay cinco iniciosde sesion incorrectos en 15 minutos, la cuenta de usuarioqueda bloqueada.

En la figura 16 se observa alguna de las contramedidasmencionadas anteriormente, implementadas en codigo PHP.

Fig. 16. Contramedidas en codigo PHP.

Como evidencia de que las contramedidas mencionadsaanteriormente funcionan, en la figura 17 se observa en elBurp Suite que ahora hay un parametro llamado user tokenque es el token CSRF y como se describio en la seccion decontramedidas, se utiliza para agregar credibilidad al origende la solicitud que recibe el servidor, este token es un numeroaleatorio imposible de adivinar generado por el servidor y seenvıa junto a la solicitud GET.

En cuanto a la herramienta Hydra, en la figura 18 se observaque Hydra muestra 16 contrasenas validas.

Fig. 17. Interceptacion con Burp Suite.

Fig. 18. Ataque con Hydra sin exito.

Y por ultimo, en figura 19 se observa que la aplicacion webya bloqueo el acceso por muchos intentos fallidos y se puedeprobar otra vez hasta despues de 15 minutos.

Fig. 19. Pantalla login, usuario bloqueado.

2) Command Injection: Para realizar este ataque de in-yeccion de comandos arbitrarios del sistema operativo y comose puede ver en la figura 20, el codigo de la aplicacion web enla que no hay ninguna validacion de entrada de los comandos yespecıficamente, la variable target no hay ninguna verificacionque coincida con una direccion IP valida y tampoco hayfiltrado de caracteres.

En la figura 21 se observa que se puede concatener coman-dos de sistema con el caracter ; y aquı se imprime el archivode contrasenas de Linux que se encuentra en etc/passwd ycontiene informacion sensible quepuede ser explotada por losatacantes.

Como contramedidas para este tipo de ataque de inyeccionde comandos en las aplicaciones web se recomienda lo sigu-iente

• Aplicar una validacion de los datos de entrada de maneraadecuada, que cumplan con el formato de la informacionsolicitada.

Page 8: Arquitectura de red segura - exploitland.com

Fig. 20. Codigo PHP de la pagina de inyeccion de comandos.

Fig. 21. Impresion del archivo passwd.

• Filtrar ciertas frases y caracteres especiales, es decir, usaruna lista blanca para los comandos que son unicamentevalidos.

• Implementar practicas de codigo seguro y revision decodigo.

• Usar APIs confiables que proporcionen datosparametrizados.

• Ejecutar aplicaciones con los privilegios mas bajos posi-bles.

• Omitir por completo la funcionalidad de los comandosdel sistema operativo.

En la figura 22 se observa algunas de las contramedidasimplementadas en el servidor web para evitar una inyeccionde comandos del sistema operativos exitosa.

Fig. 22. Contramedidas implementadas en PHP para inyeccion de comandos.

Como evidencia de la implementacion de las contramedidas,en la figura 23 se puede observar que los mismos comandos

previamente probados ya no funciona y muestra un mensajede error.

Fig. 23. Pagina inyeccion comandos error.

3) File Inclusion: Para esto, se realizo un ataque dedirectoio trasversal que consiste en explotar una vulnerabilidadcuando no existe seguridad en la validacion de un usuario yse permite acceder a cualquier tipo de directorio superior sinnecesidad sin ningun tipo de control.

En la figura 24 se observa como explotando esta vulnera-bilidad se puede tener acceso a archivos sensibles.

Fig. 24. Directorio trasversal.

Esto se debe a que no existe ningun tipo de sanitizacion dedatos como se puede observar en la figura 25.

Fig. 25. Codigo vulnerabilidad directorio trasversal.

En cuanto a las contramedidas, como ya se ha mencionadoen los ataques anteriores, es muy importante realizar lavalidacion de los datos de entrada, permitir solo los archivosque se requieran.

En la figura 26 se observa claramente que existe unavalidacion de los archivos que son unicamente permitidos porla aplicacion web, de lo contrario, mostrara un mensaje deerror.

Como evidencia de la efectividad de la contramedida, en lafigura 27 se observa que al intentar hacer el mismo ataque dedirectorio trasversal de la figura 24 no tiene exito y muestraun mensaje de error

Page 9: Arquitectura de red segura - exploitland.com

Fig. 26. Sanitizacion vulnerabilidad directorio trasversal.

Fig. 27. Vvulnerabilidad directorio trasversal sin exito.

4) File Upload: Para realizar este ataque se hizo uso de laherramienta Weevely que permite generar webshell en PHP,simular conexiones tipo Telenet y sirve como backdoor enaplicaciones web.

En primer lugar, se genera la webshell como se observa enla figura 28.

Fig. 28. Generacion de la webshell usando Weevely.

Posteriormente, se sube el archivo creado shell.php a laaplicacion web y debe aparecer que se cargo satisfactoriamentecomo lo muestra la figura 29

Fig. 29. Archivo cargado satisfactoriamente.

Ahora, para ganar acceso al sistema usamos el comandoque se muestra en la figura y como se logra evidenciar, ya nosencontramos dentro del servidor de la aplicacion web comousuario www-data y por ende, podemos ejecutamos los co-mandos de consola que deseemos para acceder a informacionsensible.

El anterior ataque fue posible gracias a la nula validacionde entradas en el codigo fuente como se muestra en la figura31.

Algunos controles de seguridad, que sirven como contrame-dida se describen a continuacion

• Solo permitir tipos especıficos de archivos para evitar quese ejecuten scripts maliciosos.

• Verificar los tipos de archivos y asegurarse de que ningunarchivo se ”enmascara” como tipos de archivo permitidos.

Fig. 30. Acceso ganado en la aplicacion web.

Fig. 31. Codigo fuente inseguro.

• Establecer una longitud maxima de nombre y un tamanomaximo de archivo para evitar una posible interrupciondel servicio.

• Almacenar archivos cargados fuera de la carpeta rootweb.

En la figura 32 se observa claramente que existe unavalidacion de los archivos que son unicamente permitidos porla aplicacion web, de lo contrario, mostrara un mensaje deerror.

Fig. 32. Codigo fuente con contramedidas implementadas.

Como evidencia de la efectividad de la contramedida, en lafigura 33 se observa que al intentar cargar el mismo archivoshell.php muestra un mensaje de error.

Fig. 33. Vulnerabilidad carga de archivos sin exito.

5) SQL Injection: Para realizar este ataque, primero sereviso el codigo fuente para saber los campos de la base dedatos y revisar si hay validaciones en las entradas o no y comose observa en la figura 34 no hay ninguna validacion.

Page 10: Arquitectura de red segura - exploitland.com

Fig. 34. Codigo fuente SQLi.

En la pagina escribimos el siguiente codigoen el formulario ’and 1=0 union select null,concat(first name,0x0a,last name,0x0a,user,0x0a,password)from users y como se puede observar en la figura 35 seobtiene datos sensibles de la base de datos de la aplicacionweb.

Fig. 35. Ataque SQLi exitoso.

Algunos contramedidas para mitigar el ataque de inyeccionSQL son

• En los mensajes de error no revelar informacion sensible,sino mensajes generalizados.

• Derechos de acceso a los usuarios para conectarse a labase de datos unicamente los estrictamente necesarios.

• Validar el ingreso de datos de los usuarios .• Expresiones regulares, para detectar codigo peligroso y

eliminarlo antes ejecutar cualquier sentencia SQL.• Encapsulan sentencias SQL y reciben todos los

parametros de entrada.

En la figura 36 se ve claramente que en este caso enparticular, para evitar este tipo de ataque unicamente lo quese debe hacer es agregar una validacion de que lo que ingreseel usuario sea de tipo de dato numerico, en caso de que no seintroduzca un numero, no se ejecutara la consulta a la base dedatos, lo que inhabilitara una posible explotacion.

Como evidencia del exito de la contramedidaimplementada, en la figura 37 se puede observar que alintroducir el comando SQL ’and 1=0 union select null,concat(first name,0x0a,last name,0x0a,user,0x0a,password)no retorna nada.

6) Reflected XSS: Reflected XSS se produce cuando unaaplicacion toma alguna entrada de una solicitud HTTP einserta esa entrada en la respuesta inmediata de una manera

Fig. 36. Validacion para mitigar ataques SQLi.

Fig. 37. Evidencia contramedida.

insegura.

En la figura 38 se observa como inyectando un simple scriptgenera una ventana emergente y en vez de guardar el nombre,que es el campo, se inyectara el script en el servidor.

Fig. 38. Alerta emergente ataque XSS.

Lo anterior es posible debido a la mala configuracıon en elcodigo de la aplicacion como se observa en la figura 39

Fig. 39. Codigo susceptible a ataque XSS.

Ademas de todas las contramedidas mencionadas anteri-ormente sobre la inyeccion de codigo, otras contramedidasrecomendadas son

• Codificar las salidas de los datos• Usar encabezados de respuesta apropiado como Content-

Type y X-Content-Type-Options• Usar la Polıtica de seguridad de contenido (CSP)

En la figura 40 se implementa una contramedida para miti-gar el ataque XSS y es usar la funcion htmlspecialchars() enPHP, que convierte caracteres especiales en entidades HTML

Como evidencia de la contramedida, en la figura 41 seobserva que el mismo comando usado anteriormente ya nomuestra la alerta y ahora, lo muestra como texto.

Page 11: Arquitectura de red segura - exploitland.com

Fig. 40. Contramedida ataque XSS.

Fig. 41. Contramedida exitosa ataque XSS.

D. CDP Flooding

Para el ataque se uso una herramienta en Kali-Linux lla-mado Yersenia con el fin de realizar el ataque ya que tiene laposibilidad de enviar una cantidad consecutiva de tramas delprotocolo CDP, ahora bien vamos a explicar los pasos usadospara identificar este ataque y su contramedida.

1) Verificar el debido funcionamiento del dispositivo deCisco usando tres comando.

• show cdp neighbors: el cual permite ver la tabla delos dispositivos Cisco que estan conectados directa-mente.

• show processes cpu sorted — include CPU—PIDRuntime—CDP Protocol CPU utilization for fiveseconds: nos permite ver el uso que la cpu deldispositivo Cisco esta usando.

• show cdp traffic: nos permite ver el trafico depaquetes CDP entre dispositivos.

Fig. 42. Estado del dispositivo.

2) Utilizando la herramienta de Yersenia se envıan lastramas del protocolo CDP para empezar el ataque.

3) Ya con el envio constante de tramas nos dirigimos aldispositivo que esta siendo atacado para verificar suestado usando los comando usado en el numeral 1.

De esta forma este ataque genera una Denegacion deServicio (DoS) inhabilitando el debido funcionamiento deldispositivo. Por otra parte para este ataque existen dos tiposde contramedidas desde el dispositivo de Cisco:

1) el uso del comando no cdp run: el cual deshabilita elprotocolo de forma global en el dispositivo.

Fig. 43. Envio de tramas.

Fig. 44. Estado del dispositivo despues del ataque.

2) el uso del comando no cdp enable: el cual se encargade deshabilitar el protocolo en una interfaz especıfica.

E. MAC Flooding

Para la ejecucion del ataque, primero se debe instalar enKali-Linux una libreria llamada dsniff, es una coleccion deherramientas para auditorıas de red y pruebas de penetracion.En los siguientes pasos se ilustra la funcion del ataque ysu contramedida correspondiente, cabe recalcar que la de-mostracion se hara con un maximo de 10 paquetes, ya quepara hacer el desbordamiento tomaria bastante tiempo parasuperar el maximo de la tabla.

1) Ya instalado la libreria dsniff, procedemos al haceruso de la herramienta macof. Como primera instanciahacemos un envio de 10 paquetes para la demostracionusando la bandera -i para indicar la interfaz por dondehacer el envio y la bandera -n para indicar el numero depaquetes.

Fig. 45. Envio de paquetes con macof.

Page 12: Arquitectura de red segura - exploitland.com

2) Ahora podemos verificar el ataque por medio de lainterfaz del Switch en el GNS3, mostrando la MAC-table donde se puede evidenciar las nuevas direccionesMAC ademas de las que ya existian, dando un total de14 registros.

Fig. 46. MAC-table despues del ataque.

3) Teniendo los dos primeros pasos, procedemos a imple-mentar la contramedida desde el Switch. Se configura elpuerto gi0/3 para que tenga un maximo de 5 direccionesMAC en la tabla y los siguientes comandos son parahabilitar la seguridad en el puerto. Por ultimo, se muestrala seguridad en el puerto para evidenciar que se hayaejecutado correctamente.

Fig. 47. Implementacion de la contramedida.

4) Se vuelve a ejecutar el ataque como en el punto 1para comprobar que este funcionando correctamentela seguridad del puerto. Se limpia la MAC-table contal de no tener confusion al momento de comprobarla ejecucion, las unicas direcciones MAC que deben

aparecen son las correspondientes a las maquinas decada VLAN dentro de la topologıa y de este modo secomprueba que la contramedida fue exitosa al MACFlooding por parte de macof.

Fig. 48. MAC-table sin registros adicionales por el ataque.

F. SYN flooding

Para la ejecucion del ataque, primero se debe asegurarde tener instalada la herramienta hping3 para Kali-Linux,de no ser asi se debe instalar. Hping3 nos proporciona unaherramienta que crea y envıa paquetes TCP, modificados segunel escenario, a una maquina destino.

1) Ya instalada la herramienta hping3, procedemos a haceruso de ella. Como primera instancia vamos a hacer usodel comando mostrado a continuacion.

Fig. 49. Comando para activacion de SYN flood

El comando tiene como entradas la bandera -p que hacereferencia al numero de puerto que se va a atacar y labandera -S que hace referencia a que son paquetes con labandera SYN activa y por ultimo la bandera –flood paraindicar que es una inundacion.Los resultados obtenidosse pueden verificar en la siguiente imagen.

Fig. 50. Estado de la maquina atacada, realizacion del ataque

2) La contramedida necesaria para evitar un SYN floodpuede ser a traves de listas de acceso del switch. Eneste caso vamos a denegar cualquier paquete TCP quevaya a la maquina atacada desde la maquina atacante.Esta lista de acceso se le aplica a la interfaz del switchdel atacante como se muestra en la siguiente figura.

Page 13: Arquitectura de red segura - exploitland.com

Fig. 51. Contramedida de un SYN flood

3) Al aplicar la lista de acceso se vuelve a correr lainundacion y se puede evidenciar que la maquina atacadaya no va a quedar fuera de servicio por el ataque.

G. VLAN Hopping Attack

1) En el primer paso se revisa la vlans del switch tal comose muestra en la figura 52

Fig. 52. Vlan Hopping Attack. Comprobacion de las vlans y puertos troncalesdel switch.

2) Ahora, en Kali Linux se abre Yersinia y se lanzael ataque para habilitar que el puerto en el que estaconectado la maquina de Kali sea troncal, tal como seve en la figura 53

Fig. 53. Vlan Hopping Attack. Realizacion del ataque.

3) Con los comandos de show vlan brief y show interfacetrunk mostrar una vez mas el estado de las vlans y lospuertos troncales.En la figura 54 se puede observar comoel puerto de la maquina atacante ya no tiene una vlan,sino que es una puerto troncal que tiene acceso a todaslas demas vlans del switch

4) Para aplicar una contramedida, se debe poner los co-mandos de las figuras 55 y 56 en el switch

Fig. 54. Vlan Hopping Attack. Comprobacion del ataque.

Fig. 55. Vlan Hopping Attack. Aplicar contramedida 1.

5) Por ultimo en la figura 56, se puede comprobar queaunque el intento de ataque persista, las vlans se con-servaran sobre las interfaces en las que se aplicaron lascontramedidas.

H. EternalBlue

Para este escenario se tomo la maquina atacante desde KaliLinux y la maquina vulnerada desde Windows 7

1) El primer paso para hacer el EternalBlue es descargarlos recursos de codigo [12]. Luego escanear los puertosde la maquina Windows y ver que tenga los puertos 139y 445.

2) Se procede hacer la preparacion del ataque conshell prep.sh, donde nos pide la direccion ip de lamaquina atacante, y los puertos a escuchar. ya con estose genera el archivo sc all.bin

3) Luego se realiza el programa listener prep.sh, donde nospide los mismos datos que el paso anterior. Ya preparadoel listener prep.sh se procede a ejecutar el codigo depython eternalblue exploit7.py con los parametros de ladireccion ip a la maquina a atacar y el archivo sc all.bin.

4) Se procede a mirar las sesiones en la cual esta lamaquina a ser atacada, luego se seleccionar la sesion,ya estaremos dentro de la carpeta de C: de Windows

Fig. 56. Vlan Hopping Attack. Aplicar contramedida 2.

Fig. 57. Vlan Hopping Attack. Comprobando contramedidas.

Page 14: Arquitectura de red segura - exploitland.com

Fig. 58. Escaneo de Puertos

Fig. 59. Generacion archivo sc all.bin

Fig. 60. Ejecucion eternalblue exploit7.py

Fig. 61. Ataque Realizado

Fig. 62. Acceso a los archivos de la maquina

5) Ya la contramedida tomada es ir a reglas de entrada delfirewall en Windows 7 y deshabilitar las reglas de Com-partir archivos e impresoras (sesion NB de entrada) yCompartir archivos e impresoras (SMB de entrada), quecorresponden a los puertos 139 y 445 respectivamente.

Fig. 63. Contramedida Firewall

6) Nos dirigimos al editor de registro y en laruta HKEY LOCAL MACHINE/SYSTEM/CurrentControlSet/Services/LanmanServer ymodificamos el valor de SMB1 de 1 a 0, ya conestas contramedidas se hace el bloqueo de los puertos.

Fig. 64. Contramedida Editor del Registro

Page 15: Arquitectura de red segura - exploitland.com

V. CONCLUSIONES

Para finalizar, se logro identificar las vulnerabilidades deseguridad que se presentan en la capa de enlace, capa detransporte, capa de red y capa de aplicacion y se mostroel desarrollo tecnica para atacar vulnerabilidades en algunosservicios y protocolos y las contramedidas pertinentesparamit-igarestos ataques. Es de vital importancia realizar buenasconfiguraciones, usar la polıtica del menor privilegio y no tenerabiertos puertos que no se esten utilizando, esto con el fin decerrar el abanico de vectores de ataque que podrıan tener losdelincuentes informaticos para explotar el sistema.

REFERENCES

[1] O. Foundation, “OWASP,” 2020. [Online]. Available: https://owasp.org/[2] OWASP Foundation, “OWASP Top 10 - 2017,” 2017. [Online].

Available: https://owasp.org/www-pdf-archive/[3] TechTarget, “Microsoft Active Directory Domain Services (AD DS),”

2014. [Online]. Available: https://searchwindowsserver.techtarget.com/definition/Microsoft-Active-Directory-Domain-Services-AD-DS

[4] Microsoft, “Active Directory,” 2018. [Online]. Available: https://searchwindowsserver.techtarget.com/definition/Active-Directory

[5] P. Frantz and G. Thompson, “VLAN frame format,” Tech. Rep., 3 1996.[6] J. Grossmann, “Graphical Network Simulator 3,” 2008. [Online].

Available: https://www.gns3.com/[7] D. Security, “Damn Vulnerable Web Application (DVWA),” 2020.

[Online]. Available: http://www.dvwa.co.uk/[8] S. Lendberg, “VLAN Hopping,” Tech. Rep., 1 2014.[9] S. A. Rouiller, “Virtual LAN Security: weaknesses and countermeasures

GIAC Security Essentials Practical Assignment Version 1.4b,” Tech.Rep.

[10] K.-H. Yeung, D. Fung, and K.-Y. Wong, Tools for Attacking Layer 2Network Infraestructure, 3 2008.

[11] S. Mansfield-Devine, “Ransomware: the most popular form of attack,”Computer Fraud & Security, vol. 2017, no. 10, pp. 15–20, 2017.

[12] “AutoBlue-MS17-010.” [Online]. Available: https://github.com/3ndG4me/AutoBlue-MS17-010