33
Penetration Testing Documento Metodológico Ámbito 2 Escáner

Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

Penetration Testing

Documento MetodológicoÁmbito 2

Escáner

Page 2: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

Alcalde de BogotáEnrique Peñalosa Londoño

Secretario General Raúl Buitrago Arias

Alto Consejero Distrital del TICSergio Martínez Medina

Profesional Especializado en Seguridad de la InformaciónMaría del Pilar Niño Campos

Estrategia de Seguridad y Privacidad de la Información de la Alcaldía de Bogotá

Diciembre 2018

Page 3: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

4 5

Page 4: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

7

Figura 1. Logo PTES Figura 2. Logo OSSTM Figura 3. Modelo de seguridad y privacidad de la información Figura 4. Metodología para el pentesting Figura 5. Ejemplo de ipconfig Figura 6. Ejecución de Pentesting Figura 7. Barrido de ping Nmap Figura 8. Escaneo SYN Figura 9. Escaneo TCP Figura 10. Banner grabbing Figura 11. Escaneo de sistema operativo Figura 12. Pantalla de inicio OWASP ZAP Figura 13. Parametrización de url 29Figura 14. Resultados de OWASP ZAP Figura 15. Ejemplo de vulnerabilidad encontrada Figura 16. Pantalla de inicio de Wireshark Figura 17. Selección de interfaz de captura Figura 18. Filtro método GET Figura 19. Follow TCP Stream Figura 20. Metasploit

Figura 21. Openvas Figura 22. Configuración de nuevo objetivo Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada Figura 27. Informe de Openvas Figura 28. Ejemplo de informe detallado Figura 29. Pantalla principal de Wireshark Figura 30. Menú Wireshark Figura 31. Barra de herramientas Wireshark Figura 32. Descripción barra de herramientas Figura 33. Barra de filtros Figura 34. Panel de lista de paquetes Figura 35. Protocolos y campos de paquete Figura 36. Panel bytes del paquete Figura 37. Barra de estado Figura 38. Consola de Metasploit Figura 39. Comandos de Metasploit Figura 40. Opciones del exploit Figura 41. Opciones del Payload Figura 42. Ejemplo de explotación de una vulnerabilidad

Tabla 1. Descripción de herramientas

101213

1518192021212223242525262627282830

32

404242434343444445454647474748484848495050

51

ÍNDICE DE TABLAS

ÍNDICE DE FIGURAS PÁG.PÁG.

PÁG.

1La velocidad y los cambios son conceptos que en tecnología evolucionan diariamente. Del mismo modo, la obsolescencia se hace presente debido a la velocidad de los cambios en el software, hardware, procesos y políticas de las instituciones, de tal forma que pone en evidencia que lo que hoy es un estándar, mañana podría ser obsoleto.

Por otro lado, la efectividad de la estrategia de seguridad de las instituciones se demuestra cuando repetidamente se pone a prueba su tecnología, sus procesos y sus personas, y así identificar las vulnerabilidades de la institución, que con dichos resultados se elaboran protocolos que busquen enfrentar las situaciones que se salgan de la normalidad, como un ataque.

Por lo anterior, una adecuada estrategia de seguridad exige que las instituciones se sometan a pruebas de penetración o pentesting en inglés, con el fin de probar la efectividad de sus controles de seguridad implementados, ante hackers y especialistas en ciberseguridad, y este documento es una guía para hacer esto.

INTRODUCCIÓN

Page 5: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

8 9

2Penetration testing: prueba de penetración, o “pentest”, es un ataque controlado a un sistema informático con la intención de encontrar las debilidades o vulnerabilidades de seguridad y todo lo que podría tener acceso a ella, su funcionalidad y datos 1.

El pentest es la forma legal y autorizada para realizar el descubrimiento de vulnerabilidades aplicando metodologías y uso de herramientas para obtener información sensible, acceso no autorizado o vulnerar activos de información críticos para la entidad.

Usar técnicas y herramientas de ethical hacking para identificar vulnerabilidades como lo haría un atacante. Verificar bajo situaciones de ataque, cuál es el comportamiento de los mecanismos de defensa. Identificar los umbrales configurados por parte de la entidad, en los sistemas de detección y protección contra de ataques.

El pentest busca la ejecución de pruebas, tanto de caja gris como de caja negra, simulando un contexto real sobre posibles ataques a la entidad de potenciales ciber-delincuentes que buscan atentar contra la confidencialidad, integridad o disponibilidad de los activos de información.

En las pruebas de caja gris, los realizadores conocen algunos datos de la institución como por ejemplo el mapa de red y los segmentos de direcciones relevantes, pero no se conoce el código fuente de los aplicativos a analizar, ni otros elementos de arquitectura de software, despliegue de la solución (aplicativo) o credenciales y controles de seguridad en el despliegue de las soluciones, este es el ambiente de simulación de funcionarios, contratistas, proveedores, ex-proveedores, ex-contratistas y ex-funcionarios.

Para las pruebas de caja negra la información que conoce el realizador de la prueba es mínima, es decir se conoce a lo sumo el nombre del dominio (www) y la información publicada, que por la Ley 1712 de 2014 (Congreso de la República de Colombia, 2014) - de Transparencia y del Derecho de Acceso a la Información Pública y Nacional - se pueda obtener.

Las pruebas de vulnerabilidad se realizan a tres (3) aplicativos Web y tres (3) aplicativos cliente/servidor definidos por la entidad, sobre el protocolo de internet IPv4. Se hacen las

Realizar evaluaciones estructuradas de la seguridad de la red y los sistemas de tecnologías de la información (TI) utilizando escenarios conocidos de ciberataques, incluyendo la explotación de las vulnerabilidades actuales mediante exploits 2.

Nota: Para ello se requiere contar con el consentimiento y autorización de la entidad; La finalidad es identificar vulnerabilidades y puntos claves que carezcan o cuenten con inapropiados mecanismos de protección 3 .

DEFINICIÓN

1 https://es.wikipedia.org/wiki/Examen_de_penetraci%C3%B3n

2 Un exploit es un programa o código que explota una vulnerabilidad del sistema o de parte de él para aprovechar esta deficiencia en beneficio del creador

del mismo. Fuente: https://www.segu-info.com.ar/malware/exploit.htm3

Anexo técnico del concurso de méritos SGA-CM-07-2018 realizado por la Alta Consejería de TIC.

3OBJETIVOGENERAL

4OBJETIVOSESPECÍFICOS

5ALCANCE

Page 6: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

10 11

recomendaciones pertinentes, para que la selección de los aplicativos pertenezca a los activos críticos de la entidad. Adicionalmente, se realizan las actividades para la vuelta a la normalidad, generando el menor impacto institucional aceptable, en caso de que las pruebas de vulnerabilidad y análisis generen alguna interrupción de uno o más servicios de TI, o de los sistemas de información que operan.

Para las pruebas realizadas a los aplicativos, se estudian los factores y/o recursos que sean utilizados en el almacenamiento, transporte y procesamiento de la información, lo anterior implica hardening, verificación de puertos, configuración de servicios, validación de permisos críticos, existencia y uso de keyloggers, verificación de las actualizaciones de los antivirus y, estado de la actualización de parches críticos y de seguridad.

Los tipos de pruebas que se orientan en este documento son credenciales débiles, Cross Site Scripting, SQLi, explotación de vulnerabilidades de componentes Java y finalmente ataques por buscadores web.

El PTES o Estándar de ejecución de pruebas de penetración, es un estándar diseñado para ofrecer, tanto a las empresas como a los proveedores de servicios de seguridad, un lenguaje y un ámbito común, para realizar pruebas de penetración 4.

El PTES consta de siete secciones principales que abarcan temas relacionados con pruebas de penetración de la siguiente forma:

Interacciones previas al compromiso: El objetivo de esta sección del PTES es presentar y explicar las herramientas y técnicas disponibles que ayudan a tener un preacuerdo exitoso de la prueba de penetración. La información de esta sección es el resultado de los muchos años de experiencia combinada de algunos de los pentesters más exitosos del mundo. Recopilación de información: Esta sección define las actividades de recopilación de inteligencia de un penetration testing. El propósito de esta sección es, proporcionar un estándar diseñado específicamente para que el pentester realice un reconocimiento contra un objetivo.La sección detalla el proceso de pensamiento y los objetivos del reconocimiento del pentesting, y cuando se usa adecuadamente, orienta al pentester a producir un plan altamente estratégico para atacar un objetivo. Modelado de amenazas: Esta sección define un enfoque de modelado de amenazas para una ejecución correcta de un pentesting. El estándar no utiliza un modelo específico, sino que requiere que el modelo utilizado sea consistente en términos de su representación de amenazas, sus capacidades, las calificaciones según la organización que se está probando, y la capacidad de aplicarse repetidamente a pruebas futuras con los mismos resultados. El estándar se centra en dos elementos clave del modelado tradicional de amenazas: activos y atacante. Análisis de vulnerabilidades: La prueba de vulnerabilidad es el proceso de descubrir fallas en sistemas y aplicaciones que pueden ser aprovechadas por un atacante. Estos defectos pueden variar desde la configuración incorrecta del host y del servicio, hasta el diseño de aplicaciones inseguras. Aunque el proceso utilizado para buscar fallas varía y depende en gran medida del componente particular que se está probando, algunos principios clave se aplican al proceso. Explotación: La fase de explotación de un pentesting, se centra en establecer el acceso a un sistema o recurso eludiendo las restricciones de seguridad. Si la fase previa, el análisis de vulnerabilidades, se llevó a cabo correctamente, esta fase debería estar bien planificada y sería un ataque de precisión. El objetivo es identificar el punto de entrada principal en la organización e identificar los activos objetivo de alto valor. Informes: Esta sección está destinada a definir los criterios básicos para el informe del pentest. Si bien se recomienda enfáticamente utilizar un formato personalizado y de marca, debe proporcionar un alto nivel de comprensión sobre los elementos del informe, y una estructura para que el informe ofrezca valor al lector.

6MARCO TEÓRICOY JURÍDICO

6.1 Marco teórico

6.1.1. PTES - Penetration Testing Execution Standard

Figura 1. Logo PTES

Fuente: Tomada de www.pentest-standard.org

4 http://www.pentest-standard.org/index.php/PTES_Technical_Guidelines

Page 7: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

12 1366OWASP es una comunidad abierta que ayuda a las organizaciones a concebir, desarrollar, adquirir, operar y mantener aplicaciones en las que se pueda confiar. Todas las herramientas, documentos, foros y capítulos de OWASP son gratuitos y están abiertos a cualquier persona interesada en mejorar la seguridad de las aplicaciones.

Abogan por abordar la seguridad de las aplicaciones como un problema de personas, procesos y tecnología, ya que los enfoques más efectivos para la seguridad de las aplicaciones incluyen mejoras en todas estas áreas.

El OSSTMM – por su siglas en inglés Open source security testing methodology manual o Manual de la metodología abierta de testeo de seguridad. Es uno de los estándares profesionales más completos y comúnmente utilizados a la hora de verificar la seguridad de los sistemas y se encuentra en constante desarrollo.

OSSTMM es un proyecto mantenido por ISECOM - Institute for Security and open methodologies, desarrollado por una comunidad abierta, y sujeto a revisión interdisciplinaria entre pares 5 .

OSSTMM provee una metodología para probar la seguridad operacional de las ubicaciones físicas, las interacciones humanas y todas las formas de comunicación, como inalámbrica, cableada, analógica y digital.

6.1.2. OWASP - Open Web Application Security Project

6.1.3. OSSTMM 3 – The Open Source Security Testing Methodology Manual 6.1.4. Pruebas de efectividad del MSPI propuesto por MinTIC

Figura 2. Logo OSSTM Figura 3. Modelo de seguridad y privacidad de la información

Fuente: Tomada de www.isecom.org

Fuente: Tomada de MinTIC

Desde sus comienzos a finales del año 2.000, OSSTMM creció rápidamente para abarcar todos los canales de seguridad con la experiencia aplicada de miles de colaboradores. Para el año 2005, OSSTMM ya no se consideraba sólo un marco de mejores prácticas, sino que se había convertido en una metodología para garantizar que la seguridad se está haciendo de la forma correcta en el nivel operativo. En el año 2006, OSSTMM pasó de definir pruebas basadas en soluciones (como pruebas de cortafuegos y pruebas de enrutadores), a ser un estándar para quienes necesitaban una prueba de seguridad confiable, en lugar de solo un informe de cumplimiento para una regulación o legislación específica.

“La metodología de pruebas de efectividad es una serie de actividades, que tienen por finalidad comprobar o medir la eficiencia de la implementación del modelo de seguridad en las entidades.”

Esta metodología ha sido diseñada para ayudar a las entidades a entender y comprender la realización de pruebas, los objetivos de estas y el beneficio que se obtiene al identificar sus etapas y gestionarlas.

Esta metodología es desarrollada en diferentes etapas que permiten concluir que tanto ha avanzado la entidad con la implementación del modelo; de esta manera, a través de la valoración de diferentes aspectos se permite identificar vulnerabilidades y amenazas a las cuales está expuesta la entidad, así como también posibles debilidades en los controles implementados.

Al igual que los demás procedimientos planteados en el modelo de seguridad y privacidad de la información, se busca proteger la disponibilidad, integridad y confidencialidad de la información de la entidad. Un factor externo de mucho impacto, que se alinea con la ejecución de las pruebas de seguridad y privacidad y sus resultados, 5

http://www.isecom.org/mirror/OSSTMM.3.pdf

Page 8: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

14 15

6 http://www.mintic.gov.co/gestionti/615/articles-5482_G1_Metodologia_pruebas_efectividad.pdf

6.2 Marco jurídico

son los intereses de lo que se denomina Alta dirección, que para nuestro caso son los directivos de las entidades del estado, estos se ven reflejados en las capacidades de las entidades de llevar a buen término la implementación del modelo de seguridad para dar cumplimiento a la normatividad vigente; así como llevar a la entidad al siguiente nivel de seguridad que permite que sus procesos y atención al ciudadano deje una buena imagen en la sociedad colombiana” 6 .

La presente documento metodológico (guía) está alineado con la Ley 1581 de 2012 (Congreso de la Republica, 2012), por la cual se dictan disposiciones generales para la protección de datos personales. Es la ley que desarrolla el derecho que tienen las personas a conocer, actualizar y rectificar las informaciones que se hayan recogido sobre ellas en bases de datos o archivos. Al igual que la Ley 1273 de 2009 (Congreso de la República de Colombia, 2009), que creó nuevos tipos penales relacionados con delitos informáticos y la protección de la información y de los datos con penas de prisión de hasta 120 meses y multas de hasta 1500 salarios mínimos legales mensuales vigentes.

7DESARROLLO DE LAMETODOLOGÍA

!

!

ADALID Corp. propone la siguiente metodología para desarrollar el penetration testing en las entidades distritales, la cual contempla una etapa de 1) planeación de las pruebas, otra de 2) ejecución de actividades para pruebas de pentesting, y una última etapa de 3) entrega y presentación de informes.

Esta metodología describe los pasos para realizar las pruebas de penetración en dos ámbitos determinados por la Alta Consejería Distrital de TIC.

Primero se realiza un análisis para tres (3) aplicativos web determinando los puertos y servicios publicados por la dirección IP y el set de pruebas de Intrusión que incluyan entre otras debilidades de autenticación, ataques de cross site script, ataques Java, ataques al browser, pruebas de keylogger.

Segundo se hace un análisis para aplicativos cliente/servidor determinando los puertos en escucha, configuraciones por default, actualizaciones pendientes y el set de pruebas de intrusión, que incluyan entre otras debilidades de autenticación, ataques de cross site script, ataques Java, ataques al browser, pruebas de keylogger.

Debido a su naturaleza y ancho de banda necesario, los aplicativos cliente/servidor usualmente no se utilizan a través de redes públicas. Por lo tanto el primer escenario se centrará, de ser posible, en pruebas desde redes públicas. Y el segundo escenario se

Figura 4. Metodología para el pentesting

Fuente: ADALID Corp.

Para más información consultar el anexo técnico de Buenas Prácticas y Marco Normativo de la Seguridad Digital

Page 9: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

16 17777!

!

7.1.1 Inventario de aplicativos web de la entidad destino

7.1.3 Definiractivostecnológicosparalaspruebas

7.1.4 Definirelkitdeherramientasparalaspruebas

7.1.5 Generacióndedocumentodepropuestadepruebas

7.1.2 Inventario de aplicativos cliente/servidor de la entidad destino

centrará en pruebas desde redes internas de la entidad; excepto en el caso en que haya alguna aplicación cliente/servidor publicada en internet, en este caso esa aplicación se probará externamente.A los dos escenarios se les aplicará en conjunto los tres pasos de la metodología:1. Planeación de las pruebas2. Ejecución de actividades de las pruebas de pentesting3. Entrega y presentación de informes.

Se realiza una reunión preparatoria con la entidad destino de las pruebas, donde se realizan las siguientes actividades para escoger los aplicativos web y los aplicativos cliente/servidor objeto del análisis.

ADALID Corp. recomienda que para el desarrollo de esta actividad se tenga en cuenta los siguientes factores:1. Resolver las posibles dudas sobre los activos de información (Incluyendo aplicaciones web y aplicaciones cliente/servidor), seleccionados por la entidad para el desarrollo de las pruebas.2. Prescindir de aplicaciones, que por motivos de negocio se considere inviable la definición de una ventana de mantenimiento, durante los períodos disponibles para aplicar las pruebas.3. Establecer un orden inicial de preferencia de selección por parte de los representantes de la Entidad destino, tanto para las aplicaciones web como las cliente/servidor.4. Identificar los posibles riesgos de indisponibilidad, de corrupción y pérdida de información ante la aplicación de las pruebas, sus estrategias de mitigación y sus planes de continuidad o rollback, en caso de ser requeridos.5. Escoger las aplicaciones web y las aplicaciones cliente/servidor que tengan distintas metodologías de desarrollo, lenguajes de programación, o middleware. Buscando una mayor variabilidad de estos criterios en las aplicaciones escogidas.6. Definir la fecha y hora de aplicación de las pruebas y un estimado de duración de la aplicación de la prueba.

Con la información generada por la aplicación de la cartilla del Ámbito 1 - “Reconocimiento de Área” y la información entregada por la entidad de cada aplicación se seleccionan las herramientas a utilizar para cada una de ellas.

Se generará un documento gerencial que contenga: Aplicaciones a las que se realizan las pruebas. Períodos (fecha, hora y duración) estimados en que se aplicarán las pruebas. Posibles riesgos de indisponibilidad y de corrupción y/o pérdida de información ante la eventual aplicación de las pruebas, las estrategias de mitigación sugeridas y los planes de continuidad o rollback.

Este documento se entregará a la Alta Consejería Distrital de TIC, para solicitar una la autorización de la ejecución de las pruebas por parte de la entidad objetivo.

La planeación de las pruebas para aplicativos web y cliente/servidor se realiza con acompañamiento de la entidad destino de la prueba. ADALID Corp. entrega los requisitos a la Alta Consejería Distrital de TIC, quien es el enlace entre la empresa y la entidad destino de las pruebas.

La planeación incluye los siguientes pasos:

Se solicita a la entidad destino de las pruebas, un inventario de aplicaciones web funcionales, y que sea remitido a la Alta Consejería Distrital de TIC, con el fin de ser insumo para las pruebas.La información que se requiere de las aplicaciones web es la siguiente:- Dirección IP y nombre interno de publicación- Dirección IP y nombre externo de publicación (en caso haberlos)- Lenguaje de programación- Base de datos utilizada (en caso de tenerla)- Año de puesta en servicio- Proceso que soporta, y si ese proceso es misional o de apoyo.

Se solicita a la entidad destino de las pruebas, un inventario de aplicaciones cliente/servidor funcionales, y que sea remitido a la Alta Consejería Distrital de TIC, con el fin de ser insumo para las pruebas.La información que se requiere de las aplicaciones cliente/servidor es la siguiente:- Dirección IP y nombre interno de publicación del servidor- Dirección IP y nombre externo de publicación del servidor (en caso haberlos)- Lenguaje de programación del servidor- Lenguaje de programación del cliente- Base de datos utilizada (en caso de haberla)- Año de puesta en servicio- Proceso que soporta, y si ese proceso es misional o de apoyo

7.1 Planeación de las pruebas

Page 10: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

18 19

!! !

!Figura 5. Ejemplo de ipconfig

Figura 6. Ejecución de Pentesting

Fuente: Tomada de https://www.groovypost.com

Fuente: ADALID Corp.

Se requiere por parte de ADALID Corp. que, la Alta Consejería Distrital de TIC obtenga aprobación y un permiso por escrito por parte de la entidad destino de las pruebas, para la ejecución de estas.

Para realizar la ejecución de las pruebas, se aplican metodologías reconocidas como las propuestas por Ec-Council, OSSTMM y pruebas de efectividad, mencionadas anteriormente en el marco teórico de esta guía. ADALID Corp. propone las siguientes etapas para la ejecución de las pruebas:

Para el reconocimiento, se considera como entrada los resultados obtenidos en el Documento Metodológico 1 - Reconocimiento del Área. En el caso de no tener estos resultados, se deben efectuar las siguientes tareas.

Se realiza una búsqueda en la página web de la entidad sobre información útil como: números telefónicos, direcciones de email, empresas asociadas, nombres de funcionarios, redes sociales, etc. De la misma forma, se hace una búsqueda en la sección de noticias sobre información filtrada de forma no intencional, como aquella Información que es conocida por los funcionarios al interior de la entidad, pero que no es de dominio público.

Se revisan los mensajes de datos (Congreso de la República de Colombia, 1999) publicados en internet que haga referencia a la entidad, y que pueda revelar información sobre tecnologías y equipos usados al interior.

Se hace una búsqueda en sitios que permitan consultas whois para conocer datos de contacto y DNS. Whois es un protocolo que se usa para realizar consultas en una base de datos y muestra el propietario de un dominio o de una dirección IP. Para América del

Se procede a generar un documento técnico que contenga: Personal requerido por parte de la entidad y de la Alta Consejería para realizar acompañamiento en la realización de las pruebas. Los acompañamientos, permisos, tareas previas y posteriores a las pruebas. Activos de información objetivo de las pruebas Costos asociados al desarrollo de las pruebas. Herramientas utilizar en cada una de las pruebas. Comportamiento esperado de las aplicaciones durante la ejecución de las pruebas. Fecha y hora de las pruebas Tiempos de ejecución de las pruebas. Tiempos de indisponibilidad de los servicios.

Este documento técnico se entrega a la Alta Consejería Distrital de TIC para coordinar con la entidad destino de las pruebas.

ADALID Corp. propone que, en caso de no tener la información de las IP por parte de las entidades, esta se debe obtener de la siguiente forma: identificar los servidores que tienen las aplicaciones que serán objeto de pruebas, y revisar su configuración de red a través del comando ipconfig, de esta forma determinar sus direcciones IP y CIDR. A continuación, se detalla un ejemplo:a. Acceder a la consola con el comando “cmd”b. Mostrar la configuración de red con el comando: “ipconfig”c. Identificar la dirección IP, que está escrita en el formato: 123.456.789.123

7.1.6 Definicióndelcronograma

7.2.1 Reconocimiento

7.2 Ejecución de actividades para pruebas de pentesting

Page 11: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

20 21

sur está LACNIC , que es una organización no gubernamental internacional establecida en Uruguay en el año 2002 y su función es la asignación y administración de los recursos de numeración de Internet -IPv4 e IPv6- (LANIC, 2018).Se ejecuta una búsqueda en internet a través de buscadores como Bing, Google, Yahoo!, Shodan, con ayuda de técnicas como Google hacking para conseguir información más detallada sobre la entidad.

También se hace una búsqueda en redes sociales como Facebook o Twitter, que brinden información sobre la entidad.Se revisan los metadatos de archivos de la entidad encontrados en internet. Los metadatos son los datos que describen otros datos, por ejemplo, el autor de un archivo.

Analizar en cada host cada uno de sus puertos, es un proceso lento y probablemente innecesario. Por tanto, la primera tarea es reducir el rango de direcciones IP a una lista de equipos activos.

Esta tarea se realiza mediante un escaneo de ICMP o barrido de ping, con el fin de encontrar los hosts activos en la red, y hacer más efectivas las pruebas siguientes, de esta manera, se limitan las pruebas, a la lista de hosts descubiertos.Para el siguiente ejemplo se usan direcciones IP genéricas, sin embargo, las entidades deberán usar las direcciones IP definidas previamente en la planeación de las pruebas.Nmap permite hacer esta tarea de la siguiente forma: con el modificador “-sn”, se configura Nmap para que no haga un escaneo de puertos después del descubrimiento de host. Luego, lista los hosts disponibles que respondieron al descubrimiento de host.

nmap -sn <IP objetivo>

Se hace un escaneo SYN o TCP para descubrir puertos en los hosts activos. Posterior a ello, se requiere identificar los puertos activos que serán sujetos a análisis. Esto se hace con el fin de reducir el rango de búsqueda y así ahorrar tiempo en pruebas innecesarias.Para esta actividad se usa nmap con la opción “-sS”, que permite hacer un escaneo SYN. El escaneo SYN se realiza rápidamente, ya que escanea una gran cantidad de puertos por segundo y no se ve obstaculizada por firewalls restrictivos. También es relativamente discreto y sigiloso, ya que no completa las conexiones TCP.

nmap -sS <rango de red>

En el caso de que no sea posible realizar un escaneo SYN por falta de privilegios para modificar los paquetes, se usa un escaneo TCP.

7.2.2 Escaneo de puertos, servicios, OS

Figura 7. Barrido de ping Nmap

Figura 8. Escaneo SYN

Figura 9. Escaneo TCP

Fuente: ADALID Corp.

Fuente: ADALID Corp.

Fuente: ADALID Corp.

Page 12: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

22 23

En este caso, Nmap pide al sistema operativo que establezca una conexión con la máquina y el puerto de destino, emitiendo la llamada al sistema de conexión, esto es pedir al sistema operativo que haga un Ping por TCP.

nmap -sT <rango de red>

A continuación, se ejecuta un banner grabbing e identificación de sistemas operativos de los dispositivos de la red. Esto con el fin de enfocar cada vez más las pruebas y ganar conocimiento de la red y sus hosts. Nmap permite con el argumento “-sV --script=banner”, ejecutar el script de un sencillo banner grabber, que se conecta a un puerto TCP abierto y lista todo lo enviado por el servicio en escucha, durante cinco segundos.

nmap -sV --script=banner <target>

Una de las características más conocidas de Nmap es la detección remota del sistema operativo, analizando la huella de la pila TCP/IP. Se envían paquetes TCP y UDP al host remoto y se examinan los bits en las respuestas. Reconocer el sistema operativo de host remoto permite orientar la parametrización de las herramientas de análisis de vulnerabilidades.

nmap -O <target>

Se identifica plenamente el sistema operativo del host con los resultados obtenidos previamente, para enfocar el análisis de vulnerabilidades.

Se identifica el administrador de contenidos – CMS por sus siglas en ingles Content management system- en caso de que aplique, con análisis de banners. Esto es importante porque los CMS y sus plugins, son una fuente importante de vulnerabilidades conocidas, y en el caso de que las vulnerabilidades no estén subsanadas, es un potencial punto de explotación.

Se hace un escaneo de vulnerabilidades a los dispositivos identificados. Para esto se usan herramientas como Nessus, OpenVas, Nikto o Burp Suite entre otras. La descripción de estas herramientas se encuentra en el numeral 8 de este documento, que corresponde a la descripción de las herramientas.

OWASP ZAP es una herramienta basada en Java que sirve para probar la seguridad de las aplicaciones web. Tiene una Interfaz gráfica de usuario -GUI por sus siglas en inglés graphical user interface- intuitiva y potentes funciones para hacer cosas como fuzzing, scripting, spidering, proxying y atacar aplicaciones web. También es extensible a través de una serie de complementos. Es una herramienta de prueba de aplicaciones web todo en uno.

Figura 10. Banner grabbing

Figura 11. Escaneo de sistema operativo

Fuente: ADALID Corp.

Fuente: ADALID Corp.

Fuente: ADALID Corp.

7.2.3 Identificaciónyanálisisdevulnerabilidades

7.2.3.1 Análisisdeaplicación

Page 13: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

24 25

El procedimiento para realizar un análisis con la herramienta OWASP ZAP, es el siguiente: ejecutar el comando: “owasp-zap”

En el momento que OWASP ZAP inicie, se observa la siguiente pantalla. En primera instancia aparece su función “Ataque” en la ventana de la derecha. Con esta opción, OWASP ZAP dirige una prueba agresiva al sitio web especificado y comienza a buscar vulnerabilidades.

OWASP ZAP lanzará el ataque y probará la aplicación web en busca de vulnerabilidades.Cuando se haya completado el ataque, debería verse una pantalla como la que se muestra en la figura 14.

Como se puede observar en la ventana inferior izquierda, OWASP ZAP reporta las alertas. Estas alertas están categorizadas por el tipo de vulnerabilidad.En el informe de OWASP ZAP, aparecen las vulnerabilidades que el usuario debe clasificar e identificar, con el fin de determinar cuáles son verdaderas y cuáles pueden ser falsos positivos que arroja la herramienta.

En el campo “URL to attack” se debe digitar la URL objetivo de la prueba y se hace clic en el botón “Ataque” que se encuentra debajo.

Figura 12. Pantalla de inicio OWASP ZAP

Figura 13. Parametrización de url

Figura 14. Resultados de OWASP ZAP

Fuente: Tomada de https://resources.infosecinstitute.com

Fuente: Tomada de https://resources.infosecinstitute.com

Fuente: Tomada de https://resources.infosecinstitute.com

7.2.3 Identificaciónyanálisisdevulnerabilidades

Page 14: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

26 27777Como se muestra en el siguiente ejemplo, en la pestaña “Alertas”, una de ellas se identifica como “Cross Site Scripting”. Esta es una vulnerabilidad que permite a los atacantes inyectar código malicioso en los campos de entrada de la aplicación web. ZAP identifica que, al inyectar una carga en la URL del sitio web, la aplicación responderá de manera tal que procesará el código inyectado.

Esto es importante porque es necesario saber si los datos que usa la aplicación viajan cifrados o al contrario, viaja en texto claro exponiendo la información de los usuarios.

Para analizar el tráfico de las aplicaciones, lo primero que debe hacerse es iniciar Wireshark, y activar la escucha de la interfaz que tenga acceso al tráfico de la aplicación.

Wireshark inicia a capturar los paquetes que logra escuchar la interfaz de red. A partir de este momento, debe analizarse el tráfico para detectar si está cifrado o si no.

Por medio de filtros, una de las principales funciones de Wireshark, se logra agrupar los paquetes que se trasmiten entre orígenes y destinos, de esta manera se logra entender las comunicaciones que existen entre ellos. A continuación, se detalla un filtro para el método GET:

Figura 15. Ejemplo de vulnerabilidad encontrada Figura 17. Selección de interfaz de captura

Figura 16. Pantalla de inicio de Wireshark

Fuente: Tomada de https://resources.infosecinstitute.com Fuente: Tomada de https://resources.infosecinstitute.com

Fuente: Tomada de http://www.cursodehackers.com

7.2.3.2 Análisisdetráficodelasaplicaciones

Page 15: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

28 29

Figura 18. Filtro método GET

Figura 19. Follow TCP Stream

Fuente: Tomada de http://www.cursodehackers.com

Fuente: Tomada de https://samsclass.info

Otros filtros muy usados son los siguientes:• Credenciales POP: pop.request.command• Credenciales con IMAP: imap.request• Credenciales con SMTP: smtp.req.command• Filtrar peticiones HTTP: http.request.method

En el caso de que la comunicación no esté cifrada, con ayuda de la función Follow TCP Stream, podría observarse algo como en el siguiente ejemplo:

Partiendo del inventario de vulnerabilidad encontradas, se realiza una clasificación por el tipo de vulnerabilidad, su criticidad y si hay un exploit disponible. La disponibilidad de los exploits se puede encontrar en sitios web como: https://www.rapid7.com/db https://www.exploit-db.com/search/

De esta clasificación tomamos las vulnerabilidades con exploit disponible, y las separamos en cuatro (4) categorías, las que permiten hacer explotación remota (exploits remotos), los que requieren tener un acceso a la máquina a explotar (exploits locales), las que explotan vulnerabilidades de las aplicaciones web y las vulnerabilidades que permiten generan indisponibilidad en el servicio.

El caso ideal de explotación es cuando se encuentra una vulnerabilidad con un exploit remoto que permite un acceso privilegiado a la máquina; o cuando se encuentra un exploit remoto que sirve como puerta de entrada para ejecutar un exploit local de una vulnerabilidad detectada del sistema. Si este escenario se encuentra, esta se escogerá como el objetivo primario en el plan de explotación.

De ahí en adelante se genera una lista ordenada de las exploits a ejecutar, en el orden de clasificación de criticidad de las vulnerabilidades asociadas al exploit.

Se selecciona la herramienta y los exploits para explotar las vulnerabilidades seleccionadas. Para el desarrollo de estas pruebas se selecciona Metasploit. Los exploits se seleccionan de acuerdo con el informe de vulnerabilidades.

7.2.3.3 Plan de explotación

7.2.4 Explotación de vulnerabilidades y evidencias

Page 16: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

30 31

Se configura el framework de explotación. Esto es parametrizar cada una de las opciones de ataque de Metasploit, de acuerdo con las vulnerabilidades encontradas y las versiones tanto de sistema operativo, como de aplicación o servicio.

Se lanza el exploit, esto es ejecutar el exploit ya configurado en Metasploit contra el host objetivo.Se recolectan las evidencias de la explotación que informe Metasploit o las capturas que se realicen durante la explotación.

Se analizan y sintetizan las evidencias encontradas durante cada una de las pruebas y se elabora el informe con los resultados obtenidos

Durante esta etapa, se propone realizar la presentación ejecutiva y técnica de los resultados de las pruebas de pentesting realizadas en las diferentes entidades y activos tecnológicos designados.

Se presenta el informe previamente elaborado, de acuerdo con las condiciones propuestas por el CIO o dirección de la entidad.

7.2.5 Documentaciónyresultados

7.3 EntregaypresentacióndeInformesFigura 20. Metasploit

Fuente: ADALID Corp.

Page 17: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

32 33

8 DESCRIPCIÓN DE HERRAMIENTAS PARA REALIZAR

EL PENETRATION TESTINGHerramienta Descripción CaracterísticasNmap

Openvas

Es una herramienta para exploración de red y auditoría de seguridad

Framework que integra servicios y herramientas para escaneo y gestión de vulnerabilidades de seguridad

Descubrimiento de servidoresIdentifica puertos abiertos en un host objetivo.Determina qué servicios está ejecutando un host.Determinar qué sistema operativo y versión utiliza un host.Obtiene algunas características del hardware de la máquina objeto de la prueba.

Escaneo de varios hosts simultáneamenteSoporte SSL para OTPSoporte de WMI (opcional)Gestión de notas para resultados de escaneoGestión de falsos positivosEscaneos programadosGestión de usuarios

Tabla 1. Descripción de herramientas

Licencia Requerimiento DescargaGPL v2

GNU General Public License

Multiplataforma• Procesador de 64 or 32-bit x86.• 30 MB de espacio disponible en disco.• 512 MB de memoria RAM.

Multiplataforma• Procesador moderno de 64 or 32-bit x86.• 3 GB de memoria RAM.• 1 GB de espacio disponible en disco.

https://nmap.org/download.html

http://www.openvas.org/download.html

Tabla 3. Herramientas

Fuente: ADALID Corp.

Page 18: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

34 35

Herramienta Descripción CaracterísticasWireshark

Metasploit

Analizador de protocolos / Sniffer

Framework para pruebas de penetración, Pentesting

Inspección profunda de protocolosCaptura en vivo y análisis fuera de líneaNavegador de paquetes estándar de tres panelesLos datos de red capturados se pueden navegar a través de una GUILos filtros de visualizaciónLee / escribe diferentes formatos de archivos de capturaSoporte de descifrado para muchos protocolos, incluidos Ipsec, ISAKMP, Kerberos, SNMPv3, SSL / TLS, WEP y WPA / WPA2Las reglas de coloreado se pueden aplicar a la lista de paquetes

Escanea importación de datosEscaneo de descubrimientoExplotación manualExportación de datosIntegración de escaneo NexposeGestión de sesionesGestión de credencialesPivote ProxyMódulos post-explotacióninterfaz webLimpieza de la sesión

Licencia Requerimiento DescargaGNU General Public License

BSD / Proprietary

• Multiplataforma• Procesador moderno de 64 or 32-bit x86.• 400 MB de memoria RAM.• 300 MB de espacio disponible en disco. • Resolución del monitor al menos de 1024 × 768, 16-bit color.• Una tarjeta de red.

Multiplataforma• Procesador de 2 GHz+ • 4 GB de memoria RAM • 1 GB de espacio disponible

https://www.wireshark.org/#download

https://github.com/rapid7/metasploit-framework/wiki/Nightly-Installers

888Fuente: ADALID Corp.

Page 19: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

36 37

9DESCRIPCIÓN DE USO DE LAS HERRAMIENTAS PARA REALIZAR

EL PENETRATION TESTING

9.1 NmapEsta descripción de uso es tomada de la “Guía de referencia de Nmap (Página de manual)” disponible en: https://nmap.org/man/es/index.html

La principal forma de usar Nmap es la siguiente:nmap [ <Tipo de sondeo>...] [<Opciones>] {<especificación de objetivo>}

-sS (sondeo TCP SYN)El sondeo SYN es el utilizado por omisión y el más popular por buenas razones. Puede realizarse rápidamente, sondeando miles de puertos por segundo en una red rápida en la que no existan cortafuegos. El sondeo SYN es relativamente sigiloso y poco molesto, ya que no llega a completar las conexiones TCP.

-sT (sondeo TCP connect())El sondeo TCP Connect() es el sondeo TCP por omisión cuando no se puede utilizar el sondeo SYN. Esto sucede, por ejemplo, cuando el usuario no tiene privilegios para enviar paquetes en crudo o cuando se están sondeando redes IPv6. Nmap le pide al sistema operativo subyacente que establezcan una conexión con el sistema objetivo en el puerto indicado utilizando la llamada del sistema connect(), a diferencia de otros tipos de sondeo, que escriben los paquetes a bajo nivel.

9.1.1. Tipos de sondeo

-sU (sondeos UDP)Aunque la mayoría de los servicios más habituales en Internet utilizan el protocolo TCP, los servicios UDP también son muy comunes. Tres de los más comunes son los servicios DNS, SNMP, y DHCP (puertos registrados 53, 161/162, y 67/68 respectivamente). El sondeo UDP se activa con la opción -sU. Puede combinarse con un tipo de sondeo TCP como el sondeo SYN (-sS) para comprobar ambos protocolos al mismo tiempo.

-sN; -sF; -sX (sondeos TCP Null, FIN, y Xmas)Estos tres tipos de sondeos aprovechan una indefinición en la RFC de TCP que diferencia los puertos abiertos y cerrados. “Si el estado del puerto [destino] es CERRADO .... un segmento entrante que contiene un RST hace que se envíe un RST en la respuesta.” Cuando se sondean sistemas que cumplen con el texto de esta RFC, cualquier paquete que no contenga los bits SYN, RST, o ACK resultará en el envío de un RST si el puerto está cerrado.

-sA (sondeo TCP ACK)Este sondeo es distinto de otros que se han discutido hasta ahora en que no puede determinar puertos abiertos (o incluso abiertos|filtrados). Se utiliza para mapear reglas de cortafuegos, y para determinar si son cortafuegos con inspección de estados y qué puertos están filtrados.

-sW (sondeo de ventana TCP)El sondeo de ventana («window», N. del T.) es exactamente igual al sondeo ACK que se aprovecha de un detalle de implementación de algunos sistemas que permite diferenciar puertos abiertos de los cerrados, en lugar de imprimir no filtrado cuando se devuelve un RST. Algunos sistemas fijan un tamaño de ventana positivo para puertos abiertos, mientras que se utiliza una ventana de tamaño cero para los cerrados. Así, en lugar de listar el puerto como no filtrado cuando se recibe un RST, el sondeo de ventana permite listar el puerto como abierto o cerrado en función de si el valor de la ventana TCP en ese paquete RST es positivo o cero, respectivamente.

-sM (sondeo TCP Maimon)El sondeo Maimon debe su nombre a la persona que lo descubrió: Uriel Maimon. Describió la técnica en la revista Phrack número 49 (noviembre de 1996). Nmap, que incluye esta técnica, se publicó dos números más tarde. Esta técnica es exactamente la misma a los sondeos Null, FIN, y Xmas, pero en los que se envía una sonda FIN/ACK. Según el RFC 793 (TCP), se debería generar un paquete RST cuando se responde a dicha sonda independientemente de si el puerto está cerrado o abierto. Uriel se dio cuenta, sin embargo, de que muchos sistemas derivados de BSD simplemente descartan el paquete si el puerto está abierto.

--scanflags (Sondeo TCP a medida)Los usuarios realmente avanzados de Nmap no tienen por qué limitarse a los tipos de sondeos preparados que se ofrecen. La opción --scanflags le permite diseñar su propio sondeo mediante la especificación de banderas TCP arbitrarias.

-sI <sistema zombi [:puerto_sonda]> (Sondeo ocioso)Este es un método de sondeo avanzado que le permite hacer un sondeo de puertos TCP a ciegas de verdad (lo que significa que no se envía ningún paquete al sistema objetivo desde su dirección IP real). En lugar de esto se utiliza un ataque con un canal alternativo que se aprovecha de la generación de la secuencia de los identificadores de fragmentación IP del sistema zombi para obtener información de los puertos abiertos en el objetivo.

-sO (sondeo de protocolo IP)El sondeo de protocolo IP le permite determinar qué protocolos (TCP, ICMP, IGMP, etc.) soportan los sistemas objetivo.-b <sistema de rebote ftp> (sondeo de rebote FTP)

Una funcionalidad interesante en el protocolo FTP (RFC 959) es la posibilidad de utilizar conexiones FTP de pasarela. Esta opción puede abusarse a muchos niveles así que muchos servidores han dejado de soportarla. Una de las formas de abusar de ésta es utilizar el servidor de FTP para hacer un sondeo de puertos a otro sistema. Simplemente hace falta decirle al servidor de FTP que envíe un fichero a cada puerto interesante del servidor objetivo cada vez.

Page 20: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

38 39

9.1.2. Opciones

-p <rango de puertos> (Sólo sondea -p <rango de puertos> (Sólo sondea unos puertos específicos)Esta opción especifica los puertos que desea sondear y toma precedencia sobre los valores por omisión.

-F (Sondeo rápido (puertos limitados))Indica que sólo quiere sondear los puertos listados en el fichero nmap-services que se incluye con nmap (o el fichero de protocolos si indica -sO).

-sV (Detección de versiones)Activa la detección de versiones como se ha descrito previamente. Puede utilizar la opción -A en su lugar para activar tanto la detección de versiones como la detección de sistema operativo.

-O (Activa la detección de sistema operativo)Tal y como se indica previamente, activa la detección de sistema operativo. También se puede utilizar la opción -A para activar la detección de sistema operativo y de versiones.

-f (fragmentar los paquetes); --mtu (utilizar el MTU especificado)La opción -f hace que el sondeo solicitado (incluyendo los sondeos ping) utilicen paquetes IP fragmentados pequeños.

-D <señuelo1 [,señuelo2][,ME],...> (Esconde un sondeo con señuelos)Realiza un sondeo con señuelos. Esto hace creer que el/los equipo/s que utilice como señuelos están también haciendo un sondeo de la red.

-S <Dirección_IP> (Falsifica la dirección de origen)Nmap puede que no sea capaz de determinar tu dirección IP en algunas ocasiones. En esta situación, puede utilizar la opción -S con la dirección IP de la interfaz a través de la cual quieres enviar los paquetes.

-oN <filespec> (Salida normal)Solicita que la salida normal sea redirigida al archivo especificado. Como se ha dicho anteriormente, esto difiere un poco de la salida interactiva.

-A (Opciones de sondeos agresivos)Esta opción activa algunas opciones avanzadas y agresivas.

-V; --version (Mostrar el número de versión)Imprime el número de versión de Nmap y aborta.

-h; --help (Mostrar la página resumen de ayuda)Imprime una pequeña pantal la de ayuda con las opciones de órdenes más habituales.

9.1.3.Especificacióndeobjetivo

Puede darse la situación en que se desee analizar una red completa de equipos adyacentes. Nmap soporta el direccionamiento estilo CIDR para estos casos. Puede añadir /<numBits> a una dirección IP o nombre de sistema para que Nmap sondee toda IP cuyos primeros <numBits> sean los mismos que los de la dirección IP o nombre de sistema indicado.Por ejemplo, 192.168.10.0/24 analizaría los 256 sistemas que existen entre la dirección 192.168.10.0 y la dirección 192.168.10.255.

La notación CIDR es breve pero no siempre es suficientemente flexible. Por ejemplo, puede querer sondear la red 192.168.0.0/16 pero omitir cualquier IP que termine por .0 o por .255 ya que son habitualmente direcciones de difusión. Es posible hacer esto con Nmap mediante el direccionamiento por octetos. En lugar de especificar una dirección IP normal puede especificar una lista separada por comas de números o rangos para cada octeto. Por ejemplo, si utiliza 192.168.0-255.1-254 se omitirán todas las direcciones del rango que terminen en .0 o .255.

-iL <archivo_entrada> (Entrada de una lista), que toma la especificación de objetivos del archivo <archivo_entrada>.

-iR <cant. sistemas> (Elegir objetivos al azar), cuando se quieren realizar encuestas que cubran toda Internet se puede elegir objetivos al azar.- - e x c l u d e < e q u i p o 1 [ , e q u i p o 2 ][,equipo3],...> (Excluir equipo o redes),

que indica con una lista separada por comas, los objetivos que deben excluirse del análisis.

--excludefile <archivo> (Excluir desde una Lista), al igual que --exclude, esta función permite excluir objetivos, pero en lugar de utilizar la línea de órdenes toma el listado de un <archivo>, que utiliza la misma sintaxis que la opción -iL.

Page 21: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

40 41

9.1.4 Openvas

Esta descripción de uso es tomada de “Cómo utilizar OpenVAS para la evaluación de vulnerabilidades”, de Eset. Consultada en la siguiente URL: https://www.welivesecurity.com/la-es/2014/11/18/como-utilizar-openvas-evaluacion-vulnerabilidades/

Para ingresar a la herramienta, de forma predeterminada se utiliza la siguiente URL: https://localhost:9392

En la instalación de Openvas se configura el puerto 9392 como puerto de acceso a la aplicación.

En este momento, solo existe la cuenta de acceso inicial con el usuario admin y la contraseña generada durante la configuración:

Luego de iniciar la sesión de trabajo, se tienen las siguientes opciones para configurar e iniciar el gestor y escáner de OpenVAS:

9.1.5 Opciones de OpenVAS

Gestión de escaneo (Scan management): La gestión del escáner permite crear nuevas tareas de exploración, modificar aquellas que se hayan creado previamente, revisar las notas (comentarios asociados con un NVT que aparecen en los informes), o invalidaciones (reglas para cambiar amenazas de elementos dentro de uno o varios informes, especialmente utilizadas cuando se presentan falsos positivos).

Gestión de activos (Asset management): En la pestaña de gestión de activos se enlistan los hosts que han sido analizados junto con el número de vulnerabilidades identificadas.

Configuración (Configuration): La tercera pestaña permite configurar los objetivos, asignar credenciales de acceso para revisiones de seguridad locales, configurar el escaneo (selección de NVT, parámetros generales y específicos para el servidor de exploración), programar escaneos, configurar la generación de los informes, entre otras opciones.

Adcionales (Extras): En general, en esta pestaña se muestra información sobre las opciones de configuración, del desempeño o de la gestión de seguridad de la información de OpenVAS.

Administración (Administration): Permite gestionar los usuarios del escáner, la configuración para la sincronización de NVT Feed y muestra las opciones de configuración de OpenVAS.

Ayuda Help: Como su nombre lo indica, la sexta pestaña ofrece información de ayuda para todos los elementos de la interfaz web. El inicio rápido se realiza desde la pestaña Configuration, a través de configurar un objetivo o un conjunto de sistemas (hosts) a analizar. Los sistemas se pueden identificar a través de sus direcciones IP, nombres de host o por su notación de red CIDR (Classless Inter-Domain Routing)

Figura 21. Openvas

Fuente: ADALID Corp.

Page 22: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

42 43

Una vez realizada la configuración del objetivo, en la sección Scan Management es necesario generar una nueva tarea (new task) para la ejecución del análisis y evaluación. La tarea se conforma por un objetivo y una configuración de escaneo. La ejecución significa iniciar el escaneo y como resultado se obtiene un informe con los resultados.A continuación, se muestran las opciones de configuración de una tarea.

Con la conclusión del escáner, se obtienen los resultados de las vulnerabilidades priorizadas de acuerdo con el impacto sobre los sistemas. La herramienta Openvas cataloga la criticidad de la vulnerabilidad en alto, medio o bajo.

Por último, es necesario ejecutar la tarea para obtener los resultados de las comprobaciones realizadas por las NVT. En las siguientes imágenes se muestra el proceso del escaneo:

Figura 22. Configuración de nuevo objetivo

Figura 24. Ejecutar (Botón “play”)

Figura 25. Tarea en ejecución

Figura 26. Tarea finalizada

Figura 23. Configuración de nueva tarea

Fuente: ADALID Corp.

Fuente: Tomada de www.welivesecurity.com

Fuente: Tomada de www.welivesecurity.com

Fuente: Tomada de www.welivesecurity.com

Fuente: ADALID Corp.

Page 23: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

44 45

Figura 27. Informe de Openvas

Figura 29. Pantalla principal de Wireshark

Figura 30. Menú Wireshark

Figura 28. Ejemplo de informe detallado

Fuente: Tomada de www.welivesecurity.com

Fuente: ADALID Corp.

Fuente: ADALID Corp.

Fuente: Tomada de https://openwebinars.net/blog/openvas-en-linux-explorando-nuestros-sistemas/

En el informe se muestra con mayor detalle la vulnerabilidad identificada y evaluada. Incluye la prueba de red utilizada (NVT), un resumen del hallazgo, así como una posible solución a la falla

El manual de wireshark puede ser descargado desde el siguiente URL: https://www.wireshark.org/download/docs/user-guide.pdf

Esta descripción de uso es tomada del manual de wireshark, mencionado previamente.Al iniciar Wireshark, se observa la pantalla principal. La siguiente imagen muestra a Wireshark normalmente después de capturar o cargar algunos paquetes.

La ventana principal de Wireshark consiste en partes conocidas comúnmente en otros programas con interfaz gráfica.

El menú se usa para iniciar acciones. El menú principal se encuentra en la parte superior de la ventana principal. Un ejemplo se muestra a continuación.

9.2 Wireshark

9.2.1 MenúWireshark

Page 24: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

46 47

Archivo (File): Este menú contiene elementos para abrir y fusionar archivos de captura, guardar, imprimir o exportar archivos de captura, y para salir de la aplicación Wireshark.Editar (Edit): Este menú contiene elementos para encontrar un paquete, referencia de tiempo o marcar uno o más paquetes, manejar los perfiles de configuración y establecer sus preferencias.

Ver (View): Este menú controla la visualización de los datos capturados, incluida la coloración de los paquetes, el tamaño de la fuente, la visualización de un paquete en una ventana separada, la expansión y contracción de los árboles en los detalles del paquete.

Ir (Go): Este menú contiene elementos para ir a un paquete específico.Capturar (Capture): Este menú le permite iniciar y detener capturas, configurar opciones y editar filtros de captura.Analizar (Analyze): Este menú contiene elementos para manipular filtros de visualización, activar o desactivar la disección de protocolos, configurar decodificaciones especificadas por el usuario y seguir una transmisión TCP.

Estadísticas (Statistics): Este menú contiene elementos para mostrar varias ventanas estadísticas, incluido un resumen de los paquetes que se han capturado, mostrar estadísticas de jerarquía de protocolo y más.

Telefonía (Telephony): Este menú contiene elementos para mostrar varias ventanas estadísticas relacionadas con la telefonía, incluyendo un análisis de medios, diagramas de flujo, estadísticas de jerarquía de protocolo de visualización entre otras.

Inalámbrico (Wireless): Los elementos en este menú muestran las estadísticas inalámbricas Bluetooth e IEEE 802.11.

Herramientas (Tools): Este menú contiene varias herramientas disponibles en Wireshark, como la creación de reglas de ACL de firewall.

Ayuda (Help): Este menú contiene elementos para ayudar al usuario, por ejemplo, acceso a ayuda básica, páginas de manual de las diversas herramientas de línea de comandos, acceso en línea a algunas de las páginas web y el diálogo habitual de ayuda.

El usuario no puede personalizar esta barra de herramientas, pero puede ocultarse usando el menú Ver si el espacio en la pantalla es necesario para mostrar más datos de paquetes. Los elementos en la barra de herramientas se habilitarán o deshabilitarán (atenuados) de forma similar a sus elementos de menú correspondientes.

La barra de herramientas de filtro proporciona una forma de manipular directamente el filtro de visualización usado.

El panel de la lista de paquetes muestra un resumen de cada paquete capturado. Al hacer clic en los paquetes en este panel, se controla lo que se muestra en los otros dos paneles.

El panel de detalles del paquete muestra los protocolos y campos de protocolo del paquete seleccionado en el panel “Lista de paquetes”.Los protocolos y campos del paquete que se muestran en un árbol pueden expandirse y colapsarse.

9.2.2 BarradeherramientasWireshark

La barra de herramientas principal proporciona acceso rápido a los elementos de uso frecuente del menú.

Figura 31. Barra de herramientas Wireshark

Figura 32. Descripción barra de herramientas

Figura 33. Barra de filtros

Fuente: ADALID Corp.

Fuente: Imagen tomada de: https://profesorcyber.blogspot.com/2018/04/uso-basico-de-wireshark-parte-1.html

Fuente: ADALID Corp.

Page 25: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

48 49

Figura 35. Protocolos y campos de paquete

Figura 36. Panel bytes del paquete

Figura 37. Barra de estado

Figura 38. Consola de Metasploit

Figura 39. Comandos de Metasploit

Fuente: ADALID Corp.

Fuente: ADALID Corp.

Fuente: Tomada de http://www.cursodehackers.com

Fuente: ADALID Corp.

Fuente: Tomada de http://www.cursodehackers.com

El panel de “Bytes del paquete” muestra los datos del paquete seleccionado en el panel de la lista de paquetes, y resalta el campo seleccionado en el panel de detalles del paquete. También muestra un volcado hexadecimal canónico de los datos del paquete. Cada línea contiene el desplazamiento de datos, dieciséis bytes hexadecimales y dieciséis bytes ASCII.

Esta descripción de uso es basada en la información del siguiente sitio: http://www.cursodehackers.com/metasploit.html. “Metasploit es una suite o conjunto de programas en realidad. Está diseñada para explotar las vulnerabilidades de los equipos y es sin duda es el programa más usado por los mejores hackers del mundo. Dentro de Metasploit, se dispone de multitud de herramientas y programas para ejecutar en las diferentes vulnerabilidades de cada equipo, a cada una de estas aplicaciones se le llama sploit.”

Se debe digitar el comando “msfconsole” para ingresar a Metasploit.

Para listar los comandos de Metasploit, se digita el carácter ‘¿’.

En la pantalla de configuración de opciones del exploit seleccionado, en este caso se usa el comando: “use exploit/unix/ftp/vsftpd_234_backdoor”.

Para mostrar las opciones de configuración se usa el comando: “show options”, lo cual se muestra a continuación:

La barra de estado muestra información detallada sobre el programa actual estado y los datos capturados. En general, el lado izquierdo mostrará información relacionada con el contexto, la parte central mostrará información sobre el archivo de captura actual y el lado derecho mostrará el perfil de configuración seleccionado.

9.3 Metasploit

Page 26: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

50 51

Figura 40. Opciones del exploit

Figura 42. Ejemplo de explotación de una vulnerabilidad

Figura 41. Opciones del Payload

Fuente: Tomada de https://revista.seguridad.unam.mx 10

Fuente: Tomada de https://revista.seguridad.unam.mx

Fuente: Tomada de https://revista.seguridad.unam.mx

10 https://revista.seguridad.unam.mx/numero-19/pruebas-de-penetraci%C3%B3n-para-principiantes-explotando-una-vulnerabilidad-con-metasploit-fra

Con el comando “set”, se almacenan las opciones elegidas. Por ejemplo:“set RHOST 172.16.1.119”

El payload es la carga útil que esta adjunta al exploit, que se ejecuta tan pronto haya una explotación exitosa. Con el comando “show payloads” se observa los payloads disponibles.

Para la ejecución del exploit se usa el comando: “exploit”

En la imagen se observa cómo se abre una Shell que demuestra la explotación exitosa de la vulnerabilidad.

Page 27: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

52 53

10PLANTILLAS DOCUMENTALES

DE APOYOChecklist para hardening de servidores Linux y Windows: Esta plantilla documental de apoyo se encuentra anexa a este documento.

11GLOSARIOA continuación, algunos de los términos más importantes sobre el Documento Metodológico del Ámbito 2 Penetration testing por orden alfabético.

Activo de información: Conocimiento o información que tiene valor para el individuo u organización.

Ataque: Tentativa de destruir, exponer, alterar, inhabilitar, robar o acceder sin autorización o hacer un uso no autorización de un activo. [ISO/IEC 27000:2017].

Autenticidad: Propiedad consistente en que una entidad es lo que dice ser. [ISO/IEC 27000:2014].

Bot: Es una aplicación de software que puede ser controlada remotamente para ejecutar o automatizar tareas predefinidas.

Ciberataque : Un ciberataque es cualquier tipo de maniobra ofensiva hecha por individuos u organizaciones que atacan a sistemas de información como lo son infraestructuras, redes computacionales, bases de datos que están albergadas en servidores remotos, por medio de actos maliciosos usualmente originados de fuentes anónimas que también roban, alteran o destruyen un blanco específico mediante hackeo de un sistema vulnerable.

Ciberseguridad: La ciberseguridad o seguridad informática, es el área relacionada con la informática y la telemática que se enfoca en la protección de la infraestructura computacional y todo lo relacionado con esta, especialmente la información contenida en una computadora o circulante a través de las redes de computadoras.

CIDR: Classless Inter-Domain Routing. Enrutamiento entre Dominios sin Clases.

Confidencialidad: Propiedad de la información que se mantiene inaccesible y no se revela a individuos, entidades o procesos no autorizados. [ISO/IEC 27000:2014]

Control: Las políticas, los procedimientos, las prácticas y las estructuras organizativas concebidas para mantener los riesgos de seguridad de la información por debajo del nivel de riesgo asumido. Control es también utilizado como sinónimo de salvaguarda o contramedida.

Daisy chaining: Obtener acceso a una red o computador y usar la misma información para obtener acceso a múltiples redes o computadores, que contienen información deseada.

Disponibilidad: Propiedad de ser accesible y utilizable a demanda por una entidad autorizada. [ISO/IEC 27000:2017]

Doxing: Es una práctica basada en Internet, cuyo objetivo es investigar y publicar información privada o personal, sobre un individuo o una organización.

Exploit: Explotar o aprovechar un fragmento de software, fragmento de datos o secuencia de comandos o acciones, utilizada con el fin de aprovechar una vulnerabilidad de seguridad de un sistema de información para conseguir un comportamiento no deseado del mismo.

Page 28: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

54 55

Ethical hacking: Prueba realizada por una empresa o individuo para ayudar a identificar amenazas potenciales en una computadora o red. Para realizar las pruebas se necesita tener un premiso por escrito, respeto por la privacidad de las personas o instituciones y dar a conocer las vulnerabilidades encontradas.

Framework (Entornos de trabajo): Es una abstracción en la cual el software que proporciona una funcionalidad genérica, puede ser cambiado selectivamente por un código adicional escrito por el usuario, proporcionando así un software específico para cierta aplicación.

No repudio: Capacidad para corroborar que es cierta la reivindicación de que ocurrió un evento o una acción y las entidades que lo originaron. [ISO/IEC 27000:2017]

Payload (Carga útil): Es el conjunto de datos transmitidos, que es en realidad el mensaje enviado. La carga útil excluye las cabeceras o metadatos, que son enviados simplemente para facilitar la entrega del mensaje.

PTES: Penetration Testing Execution Standard:.

Hacker ético: Es un profesional capacitado que entiende y sabe cómo buscar debilidades y vulnerabilidades en los sistemas objetivo. Utiliza los mismos conocimientos y herramientas que un pirata informático (sombrero negro), pero de una manera legal y legítima, para evaluar la postura de seguridad de un sistema objetivo.

OWASP: Open Web Application Security Project O

Seguridad de la información: Preservación de la confidencialidad, integridad, y disponibilidad de la información. (ISO/IEC 27000

SQLi: Inyección SQL es un método de infiltración de código intruso que se vale de una vulnerabilidad informática presente en una aplicación en el nivel de validación de las entradas para realizar operaciones sobre una base de datos.

SYN Escaneo: Es un escaneo de red en el que se envía un paquete SYN, y después se espera una respuesta. Si se recibe un paquete SYN/ACK esto indica que el puerto está en escucha (abierto).

Vulnerabilidad: Debilidad de un activo o de un control que puede ser explotada por una o más amenazas. [ISO/IEC 27000:2017]

Three Way Handshake: Es el método utilizado por TCP para configurar una conexión TCP/IP a través de una red basada en el Protocolo de Internet. (SYN -> SYN/ACK -> ACK).

Zero-day Attack (Ataque de día cero): Es un ataque contra una aplicación o sistema que tiene como objetivo la ejecución de código malicioso gracias al conocimiento de vulnerabilidades que, por lo general, son desconocidas para la gente y el fabricante del producto.

Page 29: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

56

12BIBLIOGRAFÍA

Aprendeahackear.com. (2018). MetaSploit, tomar control de equipos remotos. Obtenido de http://www.cursodehackers.com/metasploit.html

Catoira, F. (2018). Pruebas de penetración para principiantes: explotando una vulnerabilidad con metasploit framework. Obtenido de https://revista.seguridad.unam.mx/numero-19/pruebas-de-penetraci%C3%B3n-para-principiantes-explotando-una-vulnerabilidad-con-metasploit-fra

Congreso de la Republica. (2012). Ley estatutaria No. 1581 del 17 de Oct de 2012. Ministerio de comerico, industria y turismo. https://doi.org/10.1017/CBO9781107415324.004

Congreso de la República de Colombia. (1999). Ley 527 de 1999. https://doi.org/10.1364/OE.25.030651

Congreso de la República de Colombia. (2009). Diario Oficial. Ley 1273 de 2009. Diario Oficial LEY. Bogotá D.C. Recuperado a partir de http://www.sic.gov.co/recursos_user/documentos/normatividad/Ley_1273_2009.pdf

Congreso de la República de Colombia. (2014). Ley 1712 de transparencia y del derecho a la información pública nacional. 6 De Marzo De 2014. Recuperado a partir de https://www.alcaldiabogota.gov.co/sisjurMantenimiento/normas/Norma1.jsp?i=60556

ISECOM. (2010). The Open Source Security Testing methodology Manual. Obtenido de http://www.isecom.org/mirror/OSSTMM.3.pdf

LANIC. (2018). Portal LACNIC. Recuperado 9 de diciembre de 2018, a partir de https://www.lacnic.net/966/1/lacnic/acerca-de-lacnic

MinTIC. (2016). Guía Metodológica de Pruebas de Efectividad. Obtenido de https://www.mintic.gov.co/gestionti/615/articles-5482_G1_Metodologia_pruebas_efectividad.pdf

PTES Standard. (2018). PTES Technical Guidelines. Obtenido de http://www.pentest-standard.org/index.php/PTES_

Technical_Guidelines

ANEXOS

Page 30: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

58

ComodoSSLAnalyzer

SSL Analyzer es un comprobador de certificados SSL, escáner de vulnerabilidades SSL y una herramienta de generación de informes de configuración del servidor SSL. Es gratuita y desarrollada por COMODO.

La herramienta está disponible en la URL:https://sslanalyzer.comodoca.com/

Figura 1. SQLMap

Fuente: ADALID CORP

Anexo 1.Herramientas

alternativas

1.Análisisdeaplicacionesweb

SQLmap

SQLmap es una herramienta para pruebas de penetración de código abierto, que automatiza el proceso de detección y explotación de fallas de inyección SQL y toma de control de servidores de bases de datos.

Esta herramienta tiene un potente motor de detección, funciones para el pentester y una amplia gama de switches, que están disponibles desde el reconocimiento de la base de datos, hasta la obtención de datos desde la misma, que permiten acceder al sistema de archivos subyacente y ejecutar comandos en el sistema operativo.

La herramienta está disponible en la URL: https://github.com/sqlmapproject/sqlmap

Anexo 1Anexo 1

Page 31: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

60 61

SSL Server Test

Es un servicio gratuito y en línea, que realiza un análisis profundo de la configuración de cualquier servidor web SSL en Internet. La información que se envía ahí, se usa solo para proporcionar el servicio.

La herramienta está disponible en la URL:

https://www.ssllabs.com/ssltest/

Figura 2. Comodo SSL Analizer

Fuente: ADALID CORP

Figura 3. SSL Server Test

Fuente: ADALID CORP

Page 32: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada
Page 33: Penetration Testing - tic.bogota.gov.co · Figura 23. Configuración de nueva tarea Figura 24. Ejecutar (Botón “play”) Figura 25. Tarea en ejecución Figura 26. Tarea finalizada

64

Penetration Testing

Documento MetodológicoÁmbito 2

Elaborado por: