Está en la página 1de 90

Ethical Hacking

Curso de Seguridad Informática

Alonso Eduardo Caballero Quezada


Consultor en Hacking Ético, Informática Forense &
GNU/Linux

Sitio Web: http://www.ReYDeS.com

e-mail: ReYDeS@gmail.com
“Ethical Hacking”
Curso de Seguridad Informática

Primer Módulo
Temario del Primer Módulo

La mentalidad de un Hacker Ético.

Tipos de Pruebas de Penetración y proyectos de Hacking Ético

Limites de las Pruebas de Penetración.

Construir una infraestructura de pruebas

Definir las reglas del contrato y alcance del proyecto.

Temas legales con las pruebas de penetración.

Reportar

Herramientas de reconocimiento.

Búsquedas Whois

Búsquedas DNS

Herramientas para encontrar vulnerabilidades con motores de búsqueda.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
La Mentalidad del Hacker Ético
Un Hacker Ético es motivado por diferentes razones, pero su propósito es similar
al de los Hackers Maliciosos. Determinar lo que es visible en la red o sistema
objetivo, y lo que se puede realizar con esta información. Este proceso de
pruebas de seguridad contra los sistemas o redes, se conoce como una Prueba
de Penetración.

Un Hacker Ético “irrumpe” en computadoras, realizando acciones que los


diseñadores, administradores de sistemas y demás personal involucrado no
planeó que era factible realizar. Esto no es algo misterioso o mágico; solo es tener
conocimiento, persistencia, conocimiento de trucos y comprender las debilidades
para explotar las fallas de seguridad en los sistemas.

Un Hacker Ético debe ser flexible y pragmático, pensar “Fuera de la Caja”. Es


decir pensar de manera diferente a los administradores de redes, resolviendo
problemas de formas inusuales. Y al mismo tiempo debe ser metódico y
cuidadoso para realizar un trabajo de valor, que se pueda comprender y ser
reproducido por el personal de la organización.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Terminología Básica
1. Amenaza: Es una acción o evento que puede comprometer la seguridad.

2. Vulnerabilidad: Es una debilidad en un activo o valor que puede ser


aprovechado o explotado por alguna amenaza.

3. Ataque: Es un asalto deliberado contra la seguridad de un sistema.

3.1 Ataque Activo: Afectan la Disponibilidad, Integridad, Confidencialidad,


y Autenticidad del Sistema.
3.2 Ataque Pasivo: Violan la confidencialidad.

* Ataques Internos / Ataques Externos

4. Riesgo: Donde la Amenaza y la Vulnerabilidad se interceptan. Es decir cuando


se tiene una vulnerabilidad que una amenaza puede atacar.

5. Exploit: Es una manera específica de comprometer la seguridad de un sistema


de TI mediante una vulnerabilidad.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Terminología Avanzada
1. Hacking Ético: El Hacking Ético en su concepto más tradicional consiste en
manipular la tecnología de tal manera que funcione de maneras diferentes para
las cuales no fue diseñada originalmente.

2. Prueba de Penetración: Se orienta en encontrar vulnerabilidades en un


objetivo que pueda permitir al atacante penetrar en la redes, sistemas, etc.

* Un Hacking Ético es un término global que abarca varias técnicas de Hacking


utilizadas, mientras que una Prueba de Penetración es un subconjunto de un
Hacking Ético, que se orienta a encontrar vulnerabilidades en el objetivo.

3. Evaluaciones de Seguridad (Vulnerabilidades): Se orientan a encontrar


vulnerabilidades, pero sin llegar a explotarlas.

4. Auditoría de Seguridad: Implica medir, comparar, evaluar objetos contra una


conjunto fijo, predeterminado y riguroso de estándares. Siempre se realizan con
una lista detallada de verificaciones.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Tipos de Pruebas de Penetración
Los Hackers Éticos utilizan diferentes métodos para violar la seguridad de una
organización La mayoría de ellos son especialistas en algunos o varios de los
siguiente métodos de ataque. Los puntos de entrada más comunes para un
ataque son:

1. Red Remota: Simula a un intruso lanzando una ataque sobre Internet. El


Hacker Ético intenta romper o encontrar vulnerabilidades en las defensas
externas de la red, tales como vulnerabilidades en el Firewall, Proxy o Router.

2. Red local (LAN): Simula a alguien con acceso físico ganando acceso adicional
no autorizado utilizando la red local. El Hacker Ético debe ganar acceso directo a
la red local para poder lanzar este tipo de ataque. Las Redes Inalámbricas
también caen en esta categoría y añade un nuevo vector de ataque sobre las
ondas de radio.

3. Red Remota Dial-up: Simula a un intruso lanzando un ataque contra un pool


de modems del cliente. “War Dialing” es el proceso de marcar o “llamar”
repetidamente hasta encontrar un sistema abierto.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Tipos de Pruebas de Penetración (Cont.)
4. Robo de Equipos: Simula el robo de equipos conteniendo recursos con
información crítica tal como una laptop propiedad de un empleado. Con esta
acción se puede ganar Información tal como nombres de usuario, contraseñas,
configuraciones de seguridad, y tipos de cifrado. Esto generalmente se pasa por
alto en muchas organizaciones.

5. Ingeniería Social: Verifica la integridad y seguridad de los empleados de la


organización utilizando comunicación vía telefónica o cara a cara para obtener
información que será utilizada en un ataque. El ataque de ingeniería social se
utiliza para obtener, nombres de usuarios, contraseñas y otros mecanismos de
seguridad de la organización.

6. Aplicaciones Web: Este tipo de pruebas busca vulnerabilidades en las


aplicaciones basadas en web desplegadas sobre el entorno objetivo.

7. Entrada física: Intenta comprometer las premisas físicas de la organización.


Un Hacker Ético que gana acceso físico puede colocar virus, troyanos, rootkits, o
keylogger por Hardware, directamente en los clientes. Además se pueden
capturar documentos almacenados de manera inadecuada.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Fases del Hacking Ético
Los atacantes maliciosos y profesionales aplican varias fases en los ataques o
pruebas.
Reconocer
1. El Reconocimiento es el proceso de investigar (Reconnaissance)
la organización objetivo para obtener la mayor
Cantidad de información sobre ella.
Escanear
2. El Escaneo es el proceso de encontrar entradas (Scanning)
o vulnerabilidades en la organización objetivo.

3. En la fase de Explotación el atacante explota las Ganar Acceso


fallas del sistema objetivo para comprometerlo. (Gaining Access)

4. La siguiente fase utiliza técnicas para tratar de


mantener el control en el sistema objetivo. Mantener Acceso
(Maintaining Access)

5. Como fase final se deberían de cubrir los rastros,


dejado por las pruebas o ataques editando los
Cubrir Huellas
archivos pertinentes (logs). (Covering Tracks)

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Limitaciones en las Pruebas de Penetración
Algunas de las limitaciones de las Pruebas de Penetración están asociadas con la
naturaleza de los proyectos. Generalmente tiene un alcance limitado, dado que
las organizaciones algunas veces no pueden evaluar todo debido a una limitación
de recursos. Otro factor es el tiempo, dado que normalmente se define un tiempo
para realizar la evaluación.

Para los atacantes maliciosos no hay limitaciones, dado que estos pueden atacar
cualquier sistema del objetivo que se crea conveniente y realizar estos ataques en
días, meses o años.

Otro factor importante es el acceso a los objetivos de evaluación, simulando


donde los atacantes se pueden situar y realizar los ataques. Se debe tener en
consideración que estas pruebas pueden dar una visión parcial. Por ejemplo,
realizar las pruebas contra el servidor web desde Internet, pero no hacerlas desde
el interior, como un atacante malicioso.

El riesgo de dejar fuera de servicio un objetivo durante las pruebas debe ser
comunicado y coordinado con el cliente. Dado que debe ser definido en las reglas
del contrato.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Metodologías
1. OSSTMM: Open Source Security Testing Methodology Manual 3.0

2. OWASP: Open Web Application Security Project. - OWASP Testing Guide v3

3. NIST SP800-115: Technical Guide to Information Security Testing and


Assessment

4. NIST SP800-42: Guideline on Network Security Testing

5. Penetration Testing Framework 0.59

6. ISSAF: Information Systems Security Assessment Framework - Draft 0.2.1B

* OSSTMM: http://www.isecom.org/research/osstmm.html
* OWASP: https://www.owasp.org/index.php/Category:OWASP_Testing_Project
* NIST SP800-115: http://csrc.nist.gov/publications/nistpubs/800-115/SP800-115.pdf
* NIST SP800-42: www.iwar.org.uk/comsec/resources/netsec-testing/sp800-42.pdf
* http://www.oissg.org/issaf
* http://www.vulnerabilityassessment.co.uk/Penetration%20Test.html

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Construir una Infraestructura de Pruebas
Para realizar pruebas satisfactorias, se debe establecer una infraestructura para
hacerlas, en lo referente a Software, Hardware e Infraestructura de Red. A
continuación se presentan algunas consideraciones.

Sistemas Operativos: Distribuciones GNU/Linux, Windows (Todas las versiones).

Distribuciones Específicas: Kali Linux, Samurai WTF, BlackBuntu, Matriux.

Herramientas Comerciales: Core Impact, Inmunity Canvas.

Sitios Webs con Vulnerabilidades y Exploits: Exploit DB, Inj3ct0r.

Hardware: Máquinas físicas dedicadas a las pruebas. Máquinas potentes


utilizando software de virtualización como Vmware Player, VirtualBox.

Red: Una conexión de alta velocidad, sin filtros de ningún tipo.

* Toda la infraestructura debe ser actualizada, fortalecida y asegurado.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Proceso de la Prueba de Penetración
Cuando se ha definido la infraestructura de pruebas es momento de realizar el
Hacking Ético o Pruebas de Penetración. Este procedimiento debe ser aplicado a
todas las pruebas a realizar y no se debe olvidar u obviar alguno de los pasos
detallados a continuación:

1. Conversar con el cliente, discutir sus requerimientos y determinar el alcance


para la realización de las pruebas.
2. Preparar y firmar un Acuerdo de Confidencialidad (No Divulgación) NDA con el
cliente, en caso de que sea expuesta información confidencial durante las
pruebas.
3. Organizar el Equipo de Hacking Ético y preparar un horario para las pruebas.
4. Realizar las Pruebas.
5. Realizar un análisis de los resultados y preparar un reporte.
6. Entregar y/o presentar el reporte con los resultados al cliente.

Además:
- Obtener detalles de la red (Depende del tipo de Prueba)
- Restricciones del contrato, Autorizaciones especiales, etc.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Reglas del Contrato
Las Reglas del Contrato deben ser definidas antes de que se inicie cualquier tipo
de prueba. Ambas partes; el cliente y el equipo de pruebas; deben estar de
acuerdo en ellas. Sin este documento se pueden generar inconvenientes muy
delicados y graves para ambas partes involucradas.

En este documento generalmente no se incluyen el costo del servicio,


Limitaciones de responsabilidad, dueño de la propiedad intelectual y el permiso
para realizar las pruebas.

En las reglas del Contrato se debe incluir la siguiente información:

1. Información o personas de contado de ambas partes.


2. Horarios de reuniones para reportar avances de las pruebas.
3. Fechas y horas del día en las cuales se realizarán las evaluaciones.
4. Las pruebas serán anunciadas o no al personal de la empresa.
5. Mecanismos de seguridad de prevención en el objetivo de evaluación.
6. Tipo de Prueba (Caja Negra, Caja Gris, Caja Blanca).
7. Si se obtiene acceso a información sensible, es posible que esta información
pueda ser analizada por el equipo de pruebas.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Alcance del Proyecto
El Alcance del Proyecto permite determinar que es lo que debe ser evaluado y
que no. Esto no solo implica determinar cuales son los sistemas objetivo o redes,
sino también los tipos de pruebas que se incluirán o no.

Se debe conversar con el cliente sobre sus principales preocupaciones en temas


de seguridad. Y para esto se debe tener en consideración la siguiente
información.

1. ¿Qué es lo que se evaluará y que debe ser obviado?


2. El alcance de las pruebas involucra servicios de “Terceros”.
3. Evaluación a entornos de “Prueba” o entornos en producción.
4. ¿Cómo se realizarán las pruebas?. Inclusión de intentos físicos de penetración,
Ataques del lado del cliente o Ingeniería social.
5. Se dispondrá de un acceso interno o interno con limitaciones.
6. Evaluación de sistemas de los clientes de la organización.
7. Definir si se realizarán Ataques de Ingeniería Social.
8. Definir si se realizarán Ataques de Negación de Servicio
9. Definir si se ejecutarán exploits que se consideren peligrosos.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Temas Legales
Muchos países tienen leyes para tratar con crímenes cometidos utilizando
computadoras, o leyes de “cibercrimen”. Una gran cantidad de atacantes
“mueven” sus operaciones a países que no tienen estas leyes o cuyas leyes no
son las más adecuadas.

Existe una gran diversidad de legislaciones y regulaciones en el mundo. Por


ejemplo en países como Estados Unidos, La Unión Europea, Australia, Alemania,
México, España, USA, etc.

El Perú tiene actualmente la Ley No. 30096 LEY DE DELITOS INFORMÁTICOS.


La cual tiene como objetivo prevenir y sancionar las conductas ilícitas que afectan
los sistemas y datos informáticos y otros bienes jurídicos de relevancia penal,
cometidas mediante la utilización de tecnologías de la información o de la
comunicación, con la finalidad de garantizar la lucha eficaz contra la
ciberdelincuencia.

* DIVINDAT: http://www.policiainformatica.gob.pe

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Reportar
Es necesario organizar la información de las vulnerabilidades en un documento
interesante y estético para el cliente. Existe una diferencia entre un Reporte
Ejecutivo que será presentado a un Jefe de Área u Oficial de Seguridad y un
Reporte Técnico orientado a las personas que se encargarán de aplicar los
medidas correctivas sugeridas en el reporte.

Un Reporte Ejecutivo contiene:

- Resumen de las pruebas realizadas.


- Resumen de las vulnerabilidades encontradas durante las pruebas.
- Lista priorizada de las vulnerabilidades que necesitan ser solucionadas.
- Lista de recomendaciones generales para mejorar la seguridad global.

Un Reporte Técnico contiene además:

- Fechas y horarios en las cuales se realizaron las pruebas.


- Herramientas, parámetros, configuraciones y resultados obtenidos.
- Código fuente, archivos obtenidos, capturas de pantalla, archivos de registro de
las herramientas, demostraciones de la vulnerabilidad, etc.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Herramientas de Reconocimiento
El Reconocimiento es un procedimiento metódico y sistemático contra una
organización, el cual permite a un atacante crear un perfil muy completo sobre la
postura de seguridad de una organización.

Usando una combinación de técnicas y herramientas con una gran dosis de


paciencia y criterio, los atacantes pueden tomar una entidad desconocida y
reducirla a un rango específico de nombres de dominio, bloques de red, subredes,
routers, y direcciones IP individuales de sistemas conectados directamente a
internet, así también otros detalles pertinentes a su postura de seguridad.

El Reconocimiento proporciona un fotografía de lo que puede ver el Hacker. Y si


se conoce lo que el Hacker puede ver, entonces se pueden conocer las posibles
exposiciones de seguridad que se tienen en el entorno. Y cuando se conocen
estas exposiciones, se puede saber como prevenir su explotación.

El Reconocimiento es la tarea más ardua para determinar la postura de seguridad


de una entidad, y es el paso más importante de todo el proceso.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Búsquedas en Sitios Web
1. Inteligencia Competitiva: Principales negocios, Principales productos y
servicios, Personas importantes, Principales competidores, Ubicación física,
Notas de prensa recientes.

2. Utilizar motores de búsqueda: Descubrir nombres de dominio o potenciales


máquinas objetivos. (Google, Bing, Yahoo / Mamma, Dogpile)

3. Revisar versiones antiguas del sitio web: The Wayback Machine es un


archivo de páginas webs que almacena copias de un sitio web.

4. Convocatorias de trabajo: Estas convocatorias incluyen información detallada


sobre el entorno técnico de la empresa. (Bolsas de trabajo).

5. Buscando personas relevantes: La gente expone una gran cantidad de su


información en FaceBook,Twitter, LinkedIn, Google+, Myspace, etc.

6. Buscando mapas: Útil para pruebas de seguridad física o inalámbricas.


* The Wayback Machine: http://archive.org/web/web.php
* Google Maps: https://maps.google.com - Bing: http://www.bing.com/maps - Terra Server: www.terraserver.com

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Búsquedas WHOIS
WHOIS es un protocolo de consulta y respuesta ampliamente utilizado para
consultar bases de datos que almacenan los usuarios registrados o asignados a
un recurso en Internet, tal como un nombre de dominio, un bloque de dirección IP,
o un sistema autónomo. El protocolo almacena y entrega contenido en un formato
que pueda ser leído por los humanos. (RFC 3912)

Cuando se registra un dominio, el registrador obtiene una cantidad significativa


sobre la pasarela de Internet y las personas asociadas con el dominio. La mayoría
de veces esta información es expuesta públicamente.

Para obtener la información se debe


conocer el Registrador de un dominio.
Se puede utilizar InterNIC para
consultar un dominio, en caso no
tenga la información redireccionará al
Registrador apropiado.
* RFC Whois Protocol Specification: http://www.apps.ietf.org/rfc/rfc3912.htm
* InterNIC Whois: http://www.internic.net/whois.html

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Búsquedas DNS
DNS (Domain Name System) es un sistema de nombramiento jerárquico
construido sobre un base de datos distribuida para computadoras, servicios, o
cualquier recurso conectado a Internet o una red privada.

Los servidores de nombres se orientan a resolver nombres de dominio en


direcciones IP, pero no es su única función. También indican cuales son las
máquinas que funcionan como servidores de correo para un dominio en, entre
otra información útil. Los servidores DNS manejan una gran variedad de
diferentes registros: NS, A, MX, TXT. SOA, PTR, SRV, etc.

* RFC Domain Names: https://tools.ietf.org/html/rfc1034


Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Utilizar Motores de Búsqueda
A. Directivas de Búsqueda útiles en Google:

1. Sitios y enlaces: “site:” “link:” “related:”


2. Títulos de páginas y URLs: “intitle:” “inurl:”
3. La directiva All: “allintext” “allintitle” “allinurl:”
4. Búsqueda por tipos de archivo: “filetype:” / pdf, doc, ppt, asp, php, etc.
5. Operadores: “*”, “-” “+”

B. Google/Bing Hacking:

Técnica que utiliza el buscador Google/Bing para encontrar fallas,


vulnerabilidades, errores de seguridad en la configuración y código que utiliza un
sitio web.

C. Herramientas:

SiteDigger v3.0, SEAT(Search Engine Assessment Tool), Wikto, GooScan.

* Google Hacking Database: http://www.exploit-db.com/google-dorks/


* Hacking Dictionaries BHDB: http://www.stachliu.com/resources/tools/google-hacking-diggity-project/attack-tools/
Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Ethical Hacking
Curso de Seguridad Informática

Segundo Módulo
Temario del Segundo Módulo

Tipos de Escaneo

Consejos para el Escaneo

Trazado de la Red

Escaneo de Puertos con nmap

Huella del Sistema Operativo

Escaneo de Versiones con nmap y amap

Escaneo de Vulnerabilidades

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Escaneo
El Escaneo se puede comparar a golpear las paredes de una construcción para
encontrar todas las puertas y ventanas. Durante el Reconocimiento se obtuvieron
listas de bloques de red y direcciones IP a escanear.

El Escaneo ayuda a determinar cuales sistemas atienden peticiones de tráfico


entrante (En funcionamiento), y a cuales se puede llegar desde Internet utilizando
una variedad de técnicas y herramientas tales como barridos ping, escaneadores
de puertos y herramientas automáticas de descubrimiento. También es posible
evadir Firewalls y escanear sistemas supuestamente bloqueados por algunas
reglas de filtrado. Igualmente es factible utilizar mecanismos de anonimato para
realizar estas tareas.

Algunos objetivos particulares de este proceso, incluyen determinar las


direcciones utilizadas por los sistemas en el objetivo (servidores y clientes),
equipo de red (firewalls, routers, switches), y otros dispositivos. Aprender sobre la
topología, crear un diagrama de interconexión. Determinar los S.O's. Los puertos
TCP y UDP en los objetivos. Un listado de potenciales vulnerabilidades, el cual
puede ser determinado por el número de versión.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Consejos Generales para el Escaneo
1. Escanear la dirección IP: No escanear el nombre del host, dado que muchas
redes utilizan DNS para realizar balanceo de carga y otros esquemas de
distribución de tráfico entre varios objetivos.

2. Manejar adecuadamente escaneos grandes: Generalmente se deben


escanear 65535 puertos TCP y UDP. Lo simple termina cuando se tienen que
escanear por ejemplo 1000 objetivos. Esto se maneja escaneando más de un
puerto a la vez, por ejemplo 100 puertos o distribuyendo el trabajo en varias
máquinas.

3. Limitar el alcance de los escaneos grandes: Un método es recortar el


número de puertos a escanear. Por ejemplo crear un muestreo de un subconjunto
de máquinas objetivos y hacer un muestreo de un conjunto de puertos (Puertos
comunes). Otra técnica es revisar las reglas del firewall, para escanear solo los
puertos que pueden atravesar (Administrador).

4. Manejar los escaneos mediante la velocidad: El personal de la organización


puede alterar las reglas del firewall para enviar mensajes para los puertos
cerrados o utilizar métodos para acelerar el escaneo.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Barridos de Red
1. Barridos de Red: Identifica cuales son las direcciones IP utilizadas en el rango
de la red objetivo.

2. Traza de la Red: Intenta discernir la topología de la red objetivo dibujando un


mapa de la red.

3. Escaneo de Puertos: Discierne potenciales entradas en las máquinas objetivo


buscando puertos TCP y UDP atendiendo a peticiones.

4. Huella del Sistema Operativo: Trata de determinar el sistema operativo del


objetivo, usando un reconocimiento pasivo o activo del S.O.

5. Escaneo de Versiones: Interactua con los puertos para conocer el protocolo y


la versión del servicio atendiendo en un puerto específico.

6. Escaneo de Vulnerabilidades: En estos escaneos se trata de descubrir si la


máquina objetivo tiene alguna de las miles de potenciales vulnerabilidades, los
cuales pueden incluir malas configuraciones, fallas o servicios sin parches.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Utilizar un Sniffer para el Escaneo
Un Sniffer debe ser configurado para mostrar los paquetes en tiempo real que
está generando las herramientas de escaneo; ya sea par los barridos de ping,
escaneo de puertos, entre otros, de esta manera; de esta manera se puede
visualizar la actividad desde el sistema y se puede verificar que la herramienta
esté funcionando adecuadamente. Estas herramientas permiten realizar filtrados
el tiempo real sobre los paquetes o guardarlos en un archivo.

Wireshark es un analizador de protocolos de red. El cual permite capturar y


navegar de manera interactiva con el tráfico pasando por la red de la
computadora. Tiene valiosas y poderosas características definidas y es la
herramientas de este tipo más popular del mundo. Se ejecuta en la mayoría de
plataformas incluyendo Windows, OS X, Linux, y UNIX. Lo usan regularmente
profesionales en redes, expertos en seguridad, desarrolladores, y educadores,
alrededor del mundo. Está disponible libremente como open source.

* WireShark: http://www.wireshark.org/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Barrido de Red con hping
El propósito es identificar los hosts en funcionamiento en la red objetivo,
determinar sus direcciones IP, para luego proceder con un análisis más profundo.
Si no se conoce lo que hay en el objetivo no se podrá evaluarlo.

Es una herramienta para ensamblar y analizar paquetes, muy útil para realizar
barridos de red con diferentes protocolos. Su interfaz se inspira en el comando
ping, pero Hping no solo es capaz de enviar ICMP Echo Requests. También
soporta protocolos TCP, UDP, ICMP y RAW-IP, tiene un modo traceroute, la
habilidad de enviar archivos en canales encubiertos, etc.

- Evaluación de Firewalls.
- Escaneo avanzado de puertos.
- Evaluación de red, utilizando diferentes protocolos, TOS, fragmentación.
- Traza de ruta avanzada, bajo todos los protocolos soportados.
- Huella del Sistema Operativo remoto.
- Auditoría de pila TCP/IP, entre otras funcionalidades.
* Hping: http://www.hping.org/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Traza de la Red
Una vez identificado las probables redes y direcciones IP en funcionamiento, se
debe intentar determinar la ruta que siguen los paquetes al atravesar la red, de
esta manera se pude mapear la topología de la red, como también las potenciales
rutas de acceso a la red,

Traceroute es una herramienta de diagnóstico para visualizar la ruta que sigue un


paquete IP desde un host al siguiente. Utiliza el campo TTL (Time-To-Live) de un
paquete IP que provoca un mensaje ICMP TIME_EXCEEDED de cada router.
Cada router que maneja el paquete disminuye el campo TTL. De esta manera el
campo TTL se convierte efectivamente en un contador de saltos. Utilizando esta
funcionalidad, se puede utilizar traceroute para determinar la ruta exacta que
sigue el paquete. Permitiendo descubrir la topología de red empleada por la red
objetivo, además de identificar los dispositivos de control de acceso (tal como un
firewall o routers con filtrado) que podrían filtrar el tráfico.

En Linux (Traceroute) envía por defecto paquetes UDP. En windows (Tracert) sin
embargo utiliza paquetes ICMP echo request.

* ICMP: http://tools.ietf.org/html/rfc777

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Escaneo de Puertos
El Escaneo de Puertos utiliza una variedad de técnicas para encontrar puertos
abiertos en los objetivos de evaluación. Es necesario determinar cuales son los
puertos abiertos y cerrados, y esto se realiza enviando paquetes al objetivo para
luego analizar las respuestas generadas.

Bits de Control

Estos bits en la cabecera TCP identifican el estado de la conexión TCP y con


cuales componentes de la conexión está asociado el paquete.

1. SYN: El sistema debe sincronizar números de secuencia. Se utiliza durante el


establecimiento de la sesión.
2. ACK: Es un campo importante. Los paquetes con este bit a 1 están
reconociendo a los paquetes anteriores.
3. RST: La conexión debe ser reiniciada, debido a un error o interrupción.
4. FIN: No existen más datos de “envío”. La sesión termina gentilmente.
5. PSH: El bit indica que los datos deben ser drenados inmediatamente a través
de la capa TCP, en lugar de esperar más datos.
6. URG: Son datos importantes que deben ser manejados rápidamente.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Tipos de Escaneo de Puertos
1. TCP Connect Scan:

Se conecta al puerto objetivo y completa el saludo de tres vías (SYN, SYN/ACK y


ACK). El atacante envía un SYN al objetivo, si el puerto del objetivo está abierto y
responde con un SYN/ACK,entonces el atacante enviará el último ACK y
abandonará la conexión utilizando el RST. Es detectado fácilmente por el sistema
objetivo, dado que genera una gran cantidad de escaneos al objetivo.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Tipos de Escaneo de Puertos (Cont.)
2. TCP SYN Scan:

Escaneo medio-abierto, porque no se realiza una conexión TCP completa. En


lugar de ello, solo se envía un paquete SYN al puerto objetivo. Si el puerto
objetivo devuelve un SYN/ACK, se deduce que el puerto esta en estado de
ATENCION. Si se recibe un RST/ACK, indica que el puerto no está atendiendo.
Un RST/ACK puede ser enviado por el sistema que está escaneando, así nunca
se establecerá una conexión completa.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Tipos de Escaneo de Puertos (Cont.)
3. TCP FIN Scan:

Envía un paquete FIN al puerto


objetivo. El sistema objetivo
retornará un RST para todos los
puertos cerrados. Esta técnica
usualmente solo funciona en pilas
TCP/IP basadas en UNIX.
Se basa en el RFC 793.

4. TCP Xmas Tree Scan:

Esta técnica envía un paquete FIN,


URG, y PUSH al puerto objetivo.
El sistema objetivo retornará un
RST para todos los puertos
cerrados. (RFC 793).
* RFC 793: http://tools.ietf.org/html/rfc793

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Tipos de Escaneo de Puertos (Cont.)
5. TCP NULL Scan:

Esta técnica desactiva todas las


banderas (Flags). El sistema objetivo
retornará un RST para todos los
puertos cerrados. Y para los puertos
abierto no habrá respuesta. RFC 793.

6. TCP ACK Scan:

Esta técnica se utiliza para mapear reglas


de un firewall. Envía un ACK al puerto
objetivo, si no hay respuesta o este
devuelve un mensaje “ICMP Destination
Unreachable” es puerto se considera
“Filtered”. Si retorna un RST la conexión
se categoriza como “Unfiltered”.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Tipos de Escaneo de Puertos (Cont.)
7. TCP Window Scan:

Esta técnica puede detectar puertos


abiertos, como también puertos filtrados
y no filtrados en algunos sistemas
(AIX, FreeBSD). Si obtendrá un RST de
un puerto cerrado con un tamaño de
Ventana 0. Cuando el puerto está
abierto el responde con un RST y un
tamaño de ventana diferente de 0.

8. TCP RPC Scan:

Esta técnica es específica de sistemas UNIX (Linux) y es utilizada para detectar e


identificar puertos de llamadas a procedimientos remotos (RPC), sus programas
asociados y número de versión.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Tipos de Escaneo de Puertos (Cont.)
9. UDP scan:

Esta técnica envía un paquete UDP al puerto objetivo. Si el puerto objetivo


responde con un mensaje “ICMP Port Unreachable” el puerto esta cerrado. De no
recibirse este mensaje, se puede deducir que el puerto está abierto o filtrado. Si el
objetivo responde con datos UDP indica un puerto abierto. Debido a que UDP se
conoce como un protocolo sin conexión, la precisión de esta técnica depende de
muchos factores relacionados al uso y filtrado de la red objetivo.

El escaneo UDP es un proceso lento si


se escanea un dispositivo que utiliza
algún tipo de filtrado. Un escaneo UDP
en Internet puede exponer resultados
inusuales o raros.

En Linux existe un límite de un puerto por


segundo lo cual hace que un escaneo UDP
a 65535 puerto tome unas 18 horas.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Nmap
Nmap (Network Mapper) es una utilidad open source, escrito originalmente por
Gordon Lyon (Fyodor), para descubrimiento de redes y auditoría de seguridad.
También es útil para tareas como inventario de la red, programación en el manejo
de actualización de servicios, vigilancia de la red, o tiempo de funcionamiento de
un servicio.

Nmap utiliza paquetes IP en bruto para determinar cuales hosts están disponibles
en la red, cuales servicios (nombre y versión de aplicación) que aquellos host
ofrecen, cuales sistemas operativos (y versión del SO) están ejecutando, cuales
tipos de firewalls/filtros de paquetes están utilizando, y muchas otras
características.

Nmap está diseñada para escanear rápidamente redes grandes, de igual manera,
funciona bien contra host únicos. Se ejecuta en los principales Sistemas
Operativos y también incluye un GUI y visor de resultados (Zenmap), una
herramienta de transferencia de datos, redirección y depuración (Ncat), una
utilidad para comparar resultados (Ndiff), y una herramienta de generación de
paquetes y análisis de respuesta (Nping).
* nmap: http://nmap.org/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Huella del Sistema Operativo
Determinando la plataforma del objetivo, el atacante puede investigar el sistema
para determinar cuales son sus vulnerabilidades particulares. Para esto se utilizan
dos tácticas de detección:

1. Detección Activa del Sistema Operativo

Trata de identificar el Sistema Operativo del objetivo, a un nivel tan profundo como
sea posible, interactuando directamente con el.

Estas técnicas permiten acertar rápidamente con un alto grado de probabilidad el


Sistema Operativo del objetivo.

Esto se realiza analizando por ejemplo las respuestas de número de secuencia


TCP, promediando los cambios de los valores ID de IP para respuestas a
paquetes TCP y ICMP. También se analiza las marcas de tiempo en TCP y los
tamaños de ventana en TCP que negocia el sistema objetivo. Así mismo el
comportamiento del sistema al bit de No Fragmentar, en la cabecera IP.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Huella del Sistema Operativo (Cont.)
2. Detección Pasiva del Sistema Operativo

Las técnicas detalladas anteriormente son son de naturaleza activa. Por lo tanto
puede ser fácil para un sistema de red con IDS o IPS, determinar que se ha
lanzado o se está ejecutando un escaneo de identificación del Sistema Operativo.

Esta técnica es un concepto similar a la detección activa del Sistema Operativo.


Pero en lugar de enviar paquetes al Sistema Objetivo, se vigila el tráfico de la red
para determinar si el Sistema Operativo está en funcionamiento. Esta técnica
depende de una ubicación centralizada en la red y del puerto que permita capturar
paquetes (Por ejemplo un puerto reflejado).

Son utilizadas varias características del tráfico para identificar el Sistema


Operativo. Algunos atributos asociados con la sesión TCP/IP son, firma de IPv4 o
IP6, TTL inicial utilizado por el SO, Tamaño de Ventana, Longitud de las
cabeceras de opciones, Tamaño máximo de segmento, etc.

* p0f version 3:http://lcamtuf.coredump.cx/p0f3/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Escaneo de Versión
Una vez que se han determinado los puertos abiertos en el objetivo, se debe
determinar cuales son los servicios que están utilizando estos puertos. El conocer
el número exacto de versión de un servicio, ayuda a determinar si el servidor es
vulnerable a algún exploit.

Algunas veces un parche de seguridad se porta hacía antiguas versiones, por lo


tanto no se debe confiar únicamente en el número de versión para probar que un
servicio es vulnerable. Son raros los falsos positivos, pero puede ocurrir cuando
un administrador “falsifica” el número de versión de un servicio vulnerable para
que parezca estar parcheado.

Otra razón para determinar los tipos de servicio y número de versión es que
muchos servicios comparten el mismo número de puerto, esto hace menos
precisa su detección. Por lo que se pueden encontrar servicios atendiendo en
puertos inusuales, los cuales son un completo misterio sin la detección de
versiones. Algunas veces, los puertos UDP filtrados se ven igual que un puerto
abierto, con un simple escaner de puertos.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Escaneo de Vulnerabilidades
El objetivo de un Escaneo de Vulnerabilidades es encontrar las fallas
potenciales de seguridad en el entorno objetivo. Descubriendo malas
configuraciones, servicios sin parchar, arquitecturas erróneas, entre otras.

Un escaner de vulnerabilidades es un programa diseñado para evaluar las


debilidades en las computadoras, redes y aplicaciones. Su único propósito es
enumerar la vulnerabilidades presentes en uno o más objetivos. Entre los
escaners de vulnerabilidades más reconocidos, se tienen:

1. Nessus: The Network Vulnerability Scanner.

2. OpenVAS: Open Vulnerability Assessment System.

3. Nexpose: Nexpose Community.

4. Otros: GFI Languard, Retina Network Security Scanner, QualysGuard.

* Nessus: http://www.nessus.org/nessus/
* OpenVas: http://www.openvas.org/
* Nexpose: http://www.rapid7.com/products/nexpose/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Nmap Scripting Engine
Los NSE son una de las características más poderosas y flexibles de Nmap. Este
permite a los usuarios escribir (y compartir) scripts sencillos para automatizar una
amplia variedad de tareas de redes. Estos scripts son además ejecutados en
paralelo con la velocidad y eficiencia que se esperar de Nmap. Los usuarios
pueden confiar en el conjunto creciente y diverso de los scripts distribuidos con
Nmap, o escribir los propios para necesidades específicas.

Se ha diseñado NSE para ser versátil, con las siguientes tareas en mente:

1. Descubrimiento de la red.
2. Detección más sofisticada de la versión
3. Detección de vulnerabilidades.
4. Detección de puertas traseras (BackDoors)
5. Explotación de vulnerabilidades.

Los scripts NSE definen una lista de categorías como; auth, broadcast, brute,
default, discovery, dos, exploit, fuzzer, intrusive, malware, etc

* Nmap Scripting Engine: http://nmap.org/book/nse.html

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Enumeración
Se puede obtener una gran cantidad de información mediante la Enumeración,
aunque puede parecer inofensiva en primera instancia.

Sin embargo, esta información que es posible obtener de las fallas puede ser la
ruina completa para el sistema objetivo. Entre la información que el atacante
puede ver por medio de la enumeración se incluye:

1. Nombre de cuentas de usuario: Utilizado en un ataque de contraseñas.


2. Recursos compartidos mal configurados: Archivos compartidos inseguros.
3. Versiones de software antiguas que tienen vulnerabilidades conocidas de
seguridad: Como servidores web con buffer overflows remotos.

Una vez que se enumera un servicio solo es cuestión de tiempo antes de que el
intruso comprometa el sistema o que pueda ser atacado de alguna manera, si es
que no es comprometido completamente.

FTP (TCP/21), SSH (TCP/22), SMTP (TCP/25), DNS (TCP/UDP:53), HTTP


(TCP/80), NetBIOS Sesion Enumeration (TCP/139), entre otros.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
netcat
Netcat es una herramienta de red TCP y UDP para Linux y Windows, que envía
datos a o desde un puerto TCP o UDP, o escucha por datos que vienen desde un
puerto TCP o UDP. Con esta sencilla funcionalidad, se puede utilizar netcat para
todo tipo de tareas que los analistas en pruebas de penetración enfrentan a diario.

Netcat toma lo que viene de la entrada estándar y lo envía a través de la red. La


entrada estándar puede ser el teclado, la redirección desde un archivo, o un
“entubamiento” de otro programa.

Cuando netcat recibe datos desde la red, lo coloca en la salida estándar. La salida
estándar puede ser la pantalla, redirección a un archivo, o enviarlo a otro
programa mediante la entrada estándar. Para enviarlo a otro programa se puede
utilizar la tubería “|” o con el parámetro “-e”.

Una propiedad importante de netcat implica utilizar el Error Estándar. Cualquier


mensaje de netcat propio que está asociado con lo que está sucediendo en la red,
son enviados al Error Estándar.

* netcat: http://nc110.sourceforge.net/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Ethical Hacking
Curso de Seguridad Informática

Tercer Módulo
Temario del Tercer Módulo

Categorías de Exploits

Metasploit Framework

Utilizando Meterpreter

Control Remoto en Línea de Comando & Gráfico

Moviendo archivos con exploits entre plataformas

Kung fu con Línea de comandos en Windows

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Explotación
Un exploit es una pieza de código o técnica que utiliza una amenaza para
aprovecharse de un vulnerabilidad en el Sistema Objetivo. Al explotar el objetivo
se obtiene alguna forma de acceso al sistema, comúnmente la capacidad de
ejecutar comandos.

La explotación puede proporcionar privilegios limitados e el sistema, por ejemplo


como una cuenta de usuario con bajos privilegios. O también puede proporcionar
privilegios de administrador del sistema (Administrador / SYSTEM) en Windows y
(Root) en Linux. Si exploit proporciona privilegios limitados, se puede realizar un
ataque local de escalamiento de privilegios para conseguir permisos de
administrador.

La explotación permite eliminar o reducir los falsos positivos, evaluar la


vulnerabilidad, utilizar una máquina para ir más adentro en la red.

Algunos riesgos a considerar son; los servicios y el sistema pueden “caer”, la


estabilidad e integridad del sistema puede ser comprometida,

* En el contrato se debe autorizar la utilización de exploits peligrosos.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Categorías de Exploits
1. Exploits del Lado del Servidor

En este tipo de ataque, un servicio vulnerable está atendiendo en la máquina


objetivo. En la mayoría de casos, el servicio escucha en un puerto TCP o UDP.

Cuando se tiene un número de puerto, el tipo de versión, y el sistema operativo, el


atacante ejecutará una herramienta que lance un exploit “personalizado” para el
sistema objetivo, el cual pasa a través de la red hasta el servicio vulnerable que
está atendiendo.

Para que un exploit de este tipo funcione, el atacante debe poder obtener
paquetes del servicio objetivo, si existe algún tipo de filtrado (firewall, IDS, IPS,
etc), debe permitir acceso entrante al servicio que está tratando de explotar el
atacante, caso contrario no será capaz de utilizar un exploit del lado del servidor.

Una vez que el atacante gana acceso a una máquina dentro del firewall, puede
utilizar el sistema para explotar otros sistemas.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Categorías de Exploits (Cont.)
2. Exploits del Lado del Cliente

Cuando se realiza una Prueba de Penetración que incluye en su alcance la


explotación del lado del cliente, existen altas probabilidades de comprometer al
menos uno de los objetivos.

En la actualidad, la mayoría de vulnerabilidades se descubren en software del


lado del cliente. En estos ataques, el usuario en una máquina cliente ejecuta un
programa que inicia una conexión saliente a un servidor en algún lugar de la red.
El atacante configura el servidor para responder y entregar un exploit de retorno al
software del cliente.

Un par de beneficios de este tipo de exploits son; el ataque funcionará con


firewalls que permitan acceso saliente, desde la máquina objetivo. El atacante no
solo tendrá como objetivo un único usuario, puede esparcirse sobre la red sobre
varios usuarios que accedan a la máquina del atacante.

Algunas desventajas; se requiere interacción del usuario, el exploit obtendrá


privilegios del programa ejecutado.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Categorías de Exploits (Cont.)
3. Exploits para Escalado local de Privilegios

En este escenario el atacante ya tiene algún tipo acceso a la máquina, con la


habilidad de ejecutar comandos con privilegios limitados. Esto puede haber si
obtenido ejecutando un exploit del lado del cliente o un exploit del lado del
servidor de un programa ejecutándose con privilegios limitados.

En un ataque de este tipo, el atacante ejecuta código que permite que un proceso
con privilegios limitados salte en privilegios para funcionar con permisos más altos
en el sistema. También puede utilizar un proceso con privilegios limitados para
atacar un proceso con privilegios elevados y hacerlo ejecutar algún código.
Ambos escenarios son una forma de escalado local de privilegios. El objetivo es
permitir a un atacante ejecutar código con privilegios elevados, tal como root o
Administrador / SYSTEM.

Cuando el atacante obtiene estos privilegios, puede leer cualquier archivo en la


máquina que no esté cifrado, instalar software, ejecutar un sniffer, vigilar el
sistema, entre otras acciones.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Metasploit Framework
Metasploit Framework es una solución de Pruebas de Penetración libre y abierta
desarrollada por la comunidad Open Source y Rapid7. Es el estándar de facto
para Pruebas de Penetración con más de un millón de descargas únicas por año.
Además es la base de datos pública de exploits más grande con una calidad
asegurada.

Desarrollado en Ruby con algunos componentes en C y assembler, es la


plataforma actual de desarrollo utilizada para crear herramientas de pruebas de
seguridad y módulos de exploits, también es utilizada como un sistema de
Pruebas de Penetración. Tiene una herramienta en línea de comando
extremadamente poderosa que permite lanzar algunos de los exploits más
sofisticados contra vulnerabilidades públicas de seguridad.

Está constituido de herramientas, librerías, módulos, e interfaz de usuario. La


función básica del Framework es ser un lanzador de módulos, permitiendo al
usuario configurar un módulo de exploit y lanzarlo contra un sistema. Si es
satisfactorio, se ejecuta el payload en el sistema y se le proporciona al usuario
una shell para interactuar con el payload.
* Metasploit Framework: http://www.metasploit.com/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Metasploit Framework (Cont.)
1. back: Sale del contexto actual. Ejemplo; salir de un módulo.
2. check: Verifica que el objetivo es vulnerable a un exploit en particular.
3. connect: Un netcat en miniatura, soporta SSL, proxys, envío de archivos.
4. exploit vs. run: Cuando se lanza un exploit se utiliza “exploit”, cuando se usa un
módulo auxiliar se usa “run”, aunque “exploit” también funciona.
5. jobs: Muestra módulos ejecutándose en background. Permite terminarlos.
6. load: Carga un plugin desde el directorio “plugin”. Los parámetros son del tipo
“clave=valor”.
7. resource: Carga un archivo “batch” de recursos mediante msfconsole.
8. route: Permite encaminar sockets a través de una sesión.
9. info: Proporciona información detallada de un módulo en particular.
10. set: Permite configurar las opciones y parámetros del framework.
11. sessions: Permite listar, interactuar y terminar sesiones desplegadas.
12. search: Funcionalidad de búsqueda con expresiones regulares.
13. show: Muestra cada módulo dentro de Metasploit.
14. setg: Define variables globales dentro de msfconsole.
15. use: Selecciona un módulo particular para ser utilizado.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Meterpreter
Meterpreter es la abreviación de Meta-Interpreter (Meta Interprete), es un payload
muy avanzado que está incluido en Metasploit Framework. Su propósito es
proporcionar un entorno de comandos que se ejecute dentro de la memoria de un
proceso que ha sido explotado.

La manera en que esto se hace posible, es permitiendo a los desarrolladores


escribir sus propias extensiones en forma de archivos de objetos compartidos
(DLL) que pueden ser subidos e inyectados en un proceso en ejecución en la
computadora objetivo, después de una explotación satisfactoria.

Como Meterpreter y todas las extensiones que se cargan son ejecutadas


completamente en memoria y nunca tocan el disco, permite que sean ejecutados
bajo el radar de detección de un antivirus estándar.

En resumen, Meterpreter es un (payload) carga avanzado en memoria con


bastantes características para la fase posterior a la explotación.

* Meterpreter Basics: http://www.offensive-security.com/metasploit-unleashed/Meterpreter_Basics

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Meterpreter (Cont.)
Meterpreter puede ser el instrumento para maximizar la efectividad de las
pruebas, así es que se deben entender bien sus principales comandos.

1. > help: Muestra una breve ayuda.


2. > background: Envía la sesión actual a “background” (Segundo Plano).
3. > sessions: Lista todas las sesiones.
4. > ps: Muestra una lista de procesos en ejecución.
5. > migrate: Migra hacia otro proceso de la víctima.
6. > ls: Lista los archivos contenidos en el directorio actual.
7. > download: Descarga un archivo desde la máquina remota.
8. > upload: Sube un archivo a la máquina remota.
9. > ipconfig: Muestra las interfaces y direcciones de la máquina remota.
10. > getuid: Muestra el usuario con el cual se está ejecutando el servidor
Meterpreter.
11. > execute: Ejecuta un comando en el objetivo.
12. > shell: Presenta el shell estándar del sistema.
13. > idletime: Muestra los segundos en que el usuario ha estado ocioso.
14. > hashdump: Hace un volcado del contenido de la Base de datos SAM

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Herramientas de Control en Línea de Comando
1. Netcat

Permite leer y escribir en conexiones utilizando TCP y UDP. Puede ser


configurado para escuchar en un puerto y lanzar un ejecutable cuando un sistema
se conecta, entregando una shell windows a este sistema.

2. Psexec

Es un reemplazo liviano de telnet que permite ejecutar procesos en otros


sistemas, con una completa interactividad para las aplicaciones de consola, sin
tener que instalar manualmente software en el cliente.

3. Metasploit Framework

Proporciona una buena cantidad de “Payloads” que pueden desplegar una


shell en puertos, ejecutar comandos, desplegar shells en conexiones, y
conectarse a una shell de comandos a la maquina atacante.
* netcat: http://netcat.sourceforge.net/
* PsExec: http://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
* Metasploit Framework: http://www.metasploit.com/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Herramientas de Control Gráficas
Una shell de comandos remoto puede ser extraordinario, pero Windows es un
entorno tan orientado a la parte gráfica, que un GUI remoto (Interfaz Gráfica de
Usuario) puede ser un movimiento maestro.

Si se tiene acceso a un servicio terminal, se puede tener acceso al mejor tipo de


control remoto que Windows puede ofrecer. Pero antes se debe verificar si el
Puerto TCP 3389 está atendiendo y se puede utilizar cualquier credencial válida;
previamente obtenida mediante algún tipo de ataque; para autenticarse.

Adicionalmente, una buena herramienta de Virtual Network Computing (VNC) es


RealVNC, además de tener una versión gratuita. Para instalarlo remotamente solo
se necesita una shell de comandos y editar el registro remoto para asegurarse de
ocultar el inicio del servicio.

Metaploit Framework también tiene algunos “Payloads” que permiten utilizar las
características de VNC.

* RealVNC: http://www.realvnc.com/
* TightVNC: http://www.tightvnc.com/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Transferir Archivos de Exploits
Durante las Pruebas es necesario transferir archivos conteniendo exploits a través
de diferentes plataformas. Algunos mecanismos utilizados son:

1. TFTP: (Trivial File Transfer Protocol) Mueve archivos sin autenticación entre un
cliente tftp y un servidor tftpd utilizando el puerto UDP/69.

2. FTP: Mueve archivos utilizando dos conexiones, una conexión de datos (Puerto
TCP/20) y un conexión de control (Puerto TCP/21).

3. SCP: (Secure Copy) es parte de Secure Shell (SSH), utiliza el puerto TCP/22.
Encripta la información de autenticación y datos. Muchas redes permiten
conexiones salientes SSH y muchos Linux lo incluyen.

4. HTTP/S: Generalmente se permiten conexiones salientes utilizando los puertos


TCP 80 y 443. Se puede utilizar una herramienta en linea de comando en la
máquina comprometida, para transferir archivos desde la sistema atacante a la
máquina objetivo. (wget, lnyx.)
* TFTP Protocol: http://tools.ietf.org/html/rfc1350
* FTP Protocol: http://tools.ietf.org/html/rfc959
* SSH Protocol: https://tools.ietf.org/html/rfc4253

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Recabar Información del Sistema
Cuando se compromete una máquina objetivo, se debe analizar cuidadosamente
la máquina para determinar si almacena información que puede ser utilizada para
lograr comprometer más objetivos en la Prueba de Penetración. La información de
una máquina comprometida puede dar al “Hacker” ventajas para demostrar a la
empresa el riesgo. La información capturada del sistema comprometido puede ser
extremadamente útil para identificar y explotar otros sistemas en la organización
objetivo.

Información a capturar:

1. Representación de contraseñas: Archivos /etc/passwd y /etc/shadow (Linux),


Base de Datos SAM (Windows).
2. Claves criptográficas: Claves públicas y privadas (SSH, PGP.)
3. Código fuente: Analizar localmente vulnerabilidades.
4. Claves pre compartidas y perfiles de clientes Wireless:
5. Máquinas con las cuales el sistema se ha comunicado: Conexiones (netstat),
configuración de red (ipconfig), ARP (arp), etc.
6. Información específica del sistema: Servidores DNS, Web, Mail, Inventario del
software instalado, etc..

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Kung fu para Windows en Línea de Comando
Con un acceso shell, un atacante requiere tener sólidos conocimientos de la línea
de comando en Windows para maximizar la utilidad del sistema comprometido.
Conocer la línea de comandos en Windows es muy útil para las Pruebas de
Penetración, por las siguientes razones:

1. Golpear el sistema objetivo, obtener acceso shell, y luego utilizarlo para


acceder a otros objetivos y expandir las pruebas.

2. Con sólo tener acceso shell, el atacante necesita conocimientos muy sólidos
para ejecutar acciones mediante la línea de comandos.

3. Algunas veces no es factible instalar herramientas en las máquinas


comprometidas.

4. Es necesario concentrarse en maximizar el uso de las herramientas integradas


en línea de comandos que tiene el Sistema.

5. Dado el dominio de objetivos con el S.O. Windows,se debe pasar un buen


tiempo desarrollando habilidades con su línea de comandos.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Ethical Hacking
Curso de Seguridad Informática

Cuarto Módulo
Temario del Cuarto Módulo

Las Contraseñas

Consejos para Atacar Contraseñas

Evitando el Bloqueo de Cuentas

Adivinando contraseñas con THC-Hydra

Formatos para Representar Contraseñas

John The Ripper

Cain

Ataques con Rainbow Table

Ataques Pass-the-hash contra Windows

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Ataques a las Contraseñas
Los ataques contra las contraseñas son un componente fundamental para el
Hacker Ético. En la actualidad las contraseñas son la forma más dominante para
la autenticación de los usuarios. Muchas organizaciones permiten acceso con un
ID de usuario y contraseña a Redes privadas virtuales, shell seguro, aplicaciones
web, y correo electrónico.

Mientras que un exploit remoto es un “sueño ideal”, una vez que una máquina ha
sido comprometida, el atacante puede realizar un ataque contra las contraseñas
para obtener acceso a otros sistemas. Se necesita tanto los exploits como
ataques contra las contraseñas para realizar una buena prueba de penetración.

Debido al factor humano, la acción de adivinar contraseñas resulta útil si se


conoce algo de información sobre el objetivo. La fase de reconocimiento y captura
de información puede proporcionar información de utilidad al Hacker Ético para
intentar adivinar las contraseñas.

* Tipos de Contraseñas: Solo letras, Sólo números, Solo caracteres especiales,


Combinaciones de todo lo anterior.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Adivinar vs. Romper Contraseñas
1. Adivinar Contraseñas

Implica analizar y formular como adivinar una contraseña e intentar utilizarla para
un usuario del sistema objetivo, ya sea en la red o de manera local. Este método
genera muchas entradas en los registros, lo cual puede “alertar” a los IDS, IPS,
Sistemas, y también puede bloquear las cuentas atacadas. Suele ser un proceso
más lento, aunque esto depende de la velocidad del sistema y desempeño de la
red.

2. Romper Contraseñas (Cracking)

Con esta técnica el atacante intenta obtener una copia del archivo con la
representación de contraseñas de la máquina objetivo, o también “husmeando” la
red. Luego el atacante “rompe” (Crack) las contraseñas, cifrando cada una de las
contraseñas y comparándolas con las contraseñas capturas. Si estas son iguales,
se ha obtenido la contraseña y el atacante puede utilizarla. Este método no
bloquea cuentas, se puede adivinar contraseñas más rápido y el atacante puede
probar cientos o miles de contraseñas por minuto.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Consejos para Atacar Contraseñas
1. Contraseñas sincronizadas: Usuarios reutilizan sus contraseñas entre
sistemas. Siempre “romper” contraseñas de sistemas comprometidos.

2. Utilizar diccionarios: Listas de palabras extensas y personalizadas.

3. Diccionarios a medida: Con palabras obtenidas desde el objetivo.

4. Mejorar la velocidad: Dividir el trabajo en varias máquinas o utilizar una


específica a esta labor. No utilizar en lo posible máquinas virtuales.

5. Contraseñas sin romper: Se pueden obtener contraseñas en texto plano,


(telnet, ftp, http), o utilizando un “keylogger”. También se debe considerar utilizar la
técnica Pass-The-Hash.

6. Cuidar la información expuesta: Tener conciencia de la información que se


expone en Internet. Se pueden obtener contraseñas con Google.

7. Afinar: No se debe hacer este ataque en el sistema objetivo. Se debe capturar


una copia del archivo de contraseñas y llevarlo a otro lugar.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Bloqueo de Cuentas
Si la pruebas involucran el proceso de intentar adivinar contraseñas, existe la
probabilidad de bloquear las cuentas de los usuarios validos del sistema, lo cual
causaría una Negación de Servicio (DoS).

El bloqueo de cuentas es un tema del ataque donde se trata de adivinar las


contraseñas, no del proceso de “romper” (Crack) las contraseñas.

Mientras se realiza este tipo de pruebas, se debe tener contacto con el personal
que administra los sistemas para vigilarlos y determinar si algunas de las cuentas
han sido bloqueadas por las pruebas.

Las tres configuraciones más importantes para el bloqueo de cuentas en Windows


son: Umbral de bloqueo, Duración del bloqueo y Ventana de observación del
bloqueo.

En Linux, el bloqueo de cuentas es menos probable que en Windows. La


funcionalidad del bloqueo de cuentas se implementa usualmente mediante (PAM),
Pluggable Authentication Modules, o instalando algún paquete especifico en
Linux.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Evitar el Bloqueo de Cuentas
Dado el peligro de bloqueo de cuentas para los Hackers Ético, la pregunta es
¿Cuales son las opciones que se tienen?.

1. Evitar ataques para intentar adivinar contraseñas. Esto le quita valor a la


Prueba de Penetración, debido a que la empresa objetivo no podrá conocer si es
o no vulnerable a este tipo de ataques.

2. Una segunda aproximación es coordinar directamente con los administradores


del objetivo, las configuraciones del bloqueo de las cuentas. De esta manera se
tiene conocimiento sobre esto, antes de lanzar las pruebas, minimizando las
probabilidades de causar inconvenientes.

3. Más seguro y trabajoso. El personal del objetivo debe crear una o más cuentas
de prueba en las máquinas objetivo. Luego el equipo que realiza la prueba de
penetración, intentará bloquear estas cuentas y lo verificará intentando hacer login
en alguna de ellas. Si la cuenta funciona, entonces existe mucha probabilidad, de
que el objetivo no tiene la funcionalidad de bloqueo de cuentas.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Adivinar Contraseñas con Hydra
THC-Hydra es una herramienta que permite realizar ataques
para intentar adivinar contraseñas contra servicios de red.
Es una herramienta en línea de comando, pero también
existe una interfaz gráfica, la cual permite al usuario
configurar varias opciones y generar una línea de comando
que se ejecutará con Hydra.

Hydra puede ser configurada para ejecutarse contra un solo objetivo, o leer
objetivos de un archivo. Puede intentar adivinar la contraseña de un solo usuario
o de un conjunto de usuarios desde un archivo, como también un conjunto de
contraseñas desde un archivo con diccionarios. Hydra puede evaluar un solo
usuario con combinaciones de contraseñas, contra varios objetivos, o intentar
varios usuarios con una única contraseña contra un solo objetivo, o cualquiera de
estas combinaciones.

Se pueden añadir fácilmente módulos, siendo flexible y rápido. Actualmente la


herramienta soporta; telnet, ftp, http, https, http-proxy, smb, y un largo etc.
* THC-Hydra: http://www.thc.org/thc-hydra/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Formatos para Representar Contraseñas
1. LAN Manager Hash (LM hash, LanMan, o LAN Manager hash)

LANMAN es un algoritmo débil diseñado. No es hash del todo, es una función


criptográfica de una vía, que utiliza el algoritmo DES. En la SAM de Windows (NT,
2000, XP y 2003) se almacenan en LANMAN y NT hash. En Vistas y 2008 no se
almacenan en LANMAN.

A. Para cifrar la siguiente contraseña: 123456abcdef

B. Se convierte a mayúsculas: 123456ABCDEF

C. Se rellena o completa con caracteres “nulos” hasta completar una cadena de


14 caracteres de largo: 123456ABCDEF__

D. Antes de encriptarse, la cadena se divide en dos partes de 7 caracteres:

123456A = 6BF11E04AFAB197F :: BCDEF__ = F1E9FFDCC75575B15

E. El hash resultante es: 6BF11E04AFAB197FF1E9FFDCC75575B15

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Formatos para Representar Contraseñas (Cont.)
2. Hash NT

El Hash NT es al mismo tiempo más simple y más fuerte que LANMAN. A la


contraseña del usuario se le hace un hash utilizando el algoritmo hash MD4. Los
sistemas Windows actuales soportan contraseñas de hasta 256 caracteres. En los
Hash NT se mantiene la sensibilidad a mayúsculas y minúsculas en una
contraseña y no divide nada, a comparación de LANMAN.

A. Cifrar la Contraseña: 123456 (hasta 256 Caracteres)

B, Contraseña Cifrada: (MD4)

585028AA0F794AF812EE3BE8804EB14A

Es bueno anotar que en ningún proceso de creación de un Hash LANMAN ni NT


se utilizan “salt”. Un “Salt” es un bit de aleatoriedad plegado dentro del algoritmo
criptográfico que hace un ataque contra estos cifrados más difícil.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Formatos para Representar Contraseñas (Cont.)
3. Reto/Respuesta de Windows sobre la Red

Windows utiliza una variedad de protocolos de autenticación de “Reto/Respuesta”


para la autenticación a través de la red, derivado de estos hashs, lo cual incluye
Reto/Respuesta LANMAN, NTLMv1, NTLMv2 y Microsoft Kerberos.

LANMAN es el método utilizado para almacenar contraseñas en el sistema final,


en la base de datos SAM. LANMAN Reto/Respuesta es el protocolo de
autenticación de red que los clientes utilizan para autenticarse a un dominio o un
único servidor.

NT no es lo mismo que NTLMv1 y NTLMv2, el sufijo indican un protocolo diferente


utilizado para la autenticación de red. El algoritmo Hash NT es utilizado para crear
el hash para la SAM, mientras NTLMvX son protocolos de autenticación a través
de la red.

Microsoft también es compatible con su propia interpretación del esquema de


autenticación Kerberos.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Formatos para Representar Contraseñas (Cont.)
4. Representación en Sistemas Linux

La mayoría de sistemas crean sus representaciones de contraseñas con la rutina


crypt(3). La librería crypt(3), es utilizada en la mayoría de Linux para crear
representaciones de contraseñas que se almacenan en /etc/passwd o
/etc/shadow. Esta función toma como entrada una contraseña de usuario y un
“salt” aleatorio. La función crypt genera una cadena de texto en ASCII.

Muchos Linux utilizan el esquema de contraseñas basadas en DES. Una


alternativa bastante común en la actualidad es el algoritmo MD5. En el passwd y
shadow, la representación de contraseñas utilizando MD5 son precedidas por un
$1$ seguido por un “salt”, seguido de una combinación de hash “salt”/contraseña.

Ejemplo la contraseña: password12

Hash cifrado: (MD5)


$1$nYPUOGJh$X06b4MOHowRUdG.wH5X.i1

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Capturar Contraseñas
Existen varios métodos para obtener la contraseña encriptada o cifrada, de tal
manera que se pueda utilizar en el ataque.

1. En GNU/Linux

- Capturar el archivo /etc/passwd (Usuarios, UIDs, Leído por cualquiera).

- Capturar el archivo /etc/shadow (Contraseñas, Lectura por solo por “0”)

2. En Windows

- Utilizar las herramientas de la familia pwdump con privilegios de administrador


para extraer los hashs a través de la red utilizando protocolos Windows para
compartir archivos e impresoras.

- Utilizar la funcionalidad hashdump incluida en meterpreter.

- Husmear (Interceptar) el Reto/Respuesta de la red.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
John The Ripper
Es un software que permite romper (Crack) contraseñas, está disponible para
distribuciones GNU/Linux, Windows, etc. Su propósito principal es la detección de
contraseñas débiles en GNU/Linux, pero también soporta Windows LM hashes,
además de una amplia diversidad mediante la utilización de parches.

Está diseñado para tener características valiosas, buenas y rápidas. Combina


diversos modos de “cracking” y es personalizable. John The Ripper soporta (y
autodetecta) tipos de hashs Unix; DES, MD5, Blowfish. También hashs Windows
LM y NTLM. Y con parches se añade soporte para SHA1, hash para Aplicaciones
Web, hashs utilizados en BDs, etc.

Tiene cuatro modos para romper contraseñas:

1. Single Crack: Utiliza información de los archivos


2. Wordlist: Utiliza un Diccionario.
3. Incremental: Realiza un ataque de fuerza bruta.
4. External: Se Utiliza para escribir código propio para adivinar.

* John The Ripper: http://www.openwall.com/john/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Cain & Abel
Cain & Abel es una herramienta de recuperación de contraseñas para Sistemas
Operativos Microsoft. Permite la fácil recuperación de varios tipos de contraseñas,
husmeando la red, crackeando contraseñas cifradas utilizando diccionario,
ataques por fuerza bruta y criptoanálisis, grabar conversaciones VoIP, decodificar
contraseñas revueltas, recuperar claves de redes inalámbricas, revelar cajas de
contraseñas, descubrir contraseñas almacenadas en caché y analizar protocolos
de encaminamiento.

El programa no explota ninguna vulnerabilidad de software o fallas que no puedan


ser solucionadas con un poco de esfuerzo. Cubre algunos aspectos/debilidades
de la seguridad presente en los protocolos estándar, métodos de autenticación y
mecanismos de cacheo; su propósito principal es simplificar la recuperación de
contraseñas y credenciales de varias fuentes, sin embargo también entrega
algunas utilidades “no estándar” para usuarios Microsoft Windows.

* Cain & Abel: http://www.oxid.it/cain.html

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Ataques Rainbow Tables
El cracking ha evolucionado hacia la utilización de tablas de hashs previamente
calculadas, para reducir significativamente el tiempo necesario para generar
hashs y realizar la comparación.

En 1982 se describió una técnica de compensación (trade-off) de tiempo de


memoria criptoanalítica que permitía romper el 99.9% de los hashs de todas las
contraseñas alfanuméricas LanManager (2^37) en 13.6 segundos. En esencia la
compensación sirve para enfrentar la carga de todo el esfuerzo computacional de
romper las contraseñas, en las así denominadas tablas Arco Iris (Rainbow Tables)
de hashs utilizando entradas por fuerza bruta o diccionario. Entonces el cracking
se convirtió en el ejercicio de obtener los hashs de las tablas previamente
calculadas.

La verdadera ventaja de los ataques Rainbow Tables recae en la habilidad de


reutilizar las tablas entre los ataques. Una vez que todas las operaciones de
cifrado han sido realizadas y los resultados han sido almacenados e indexados,
se puede utilizarlos para las siguientes pruebas.

* ophcrack: http://ophcrack.sourceforge.net/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Ataques Pass-The-Hash
Con este ataque si se obtiene un hash, este puede ser utilizado para ganar
acceso al sistema sin necesidad de conocer previamente la contraseña utilizada
para crear el Hash.

Estos ataques son dirigidos contra Sistemas Windows. Los usuarios ingresan sus
contraseñas una sola vez y utilizar recursos sin que se les solicite nuevamente la
contraseña. Esto requiere que el sistema tenga un caché de credenciales del
usuario en el sistema. Reemplazando esta credencial con un hash de la
contraseña, se puede hacer una autenticación posterior utilizando el hash en lugar
de la credencial original.

1. El atacante obtiene los hashs, volcando las contraseñas de la víctima.

2. El atacante utiliza una herramienta de Pass-The-Hash, para colocar los hash


que ha obtenido. (De preferencia con privilegios de administrador).

3. Luego de esto Windows automáticamente proporcionará nuevas credenciales


al atacante cada vez que este intente acceder a la víctima, sin necesidad de
proporcionar una contraseña.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Ethical Hacking
Curso de Seguridad Informática

Quinto Módulo
Temario del Quinto Módulo

Aplicaciones Web

Escaneando aplicaciones web y herramientas para explotarlas

Herramientas de manipulación de aplicaciones web

La diversidad de ataques a aplicaciones web

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Aplicación Web
Existen dos propiedades fundamentales para definir una aplicación web. En
primera instancia, la aplicación web se accede mediante HTTP o HTTPS a través
de la red. En segundo lugar, las aplicaciones web involucran la utilización de un
servidor web. Estas propiedades hacen una aplicación web.

La mayoría de aplicaciones web involucran utilizar un navegador o cliente para


enviar, recibir y mostrar HTML mediante HTTP/S. No todas las aplicaciones
involucran una BD backend para almacenar información de la aplicación web. Las
más populares son SQL Server, Orable, o MySQL.

La mayoría de ataques tratan de encontrar fallas en estos tres componentes y la


forma en la que interactúan, la lógica de la aplicación web sobre el servidor web,
el servidor web y la interacción con el navegador web, y el servidor web en su
interacción con la base de datos.

Servidor
Navegador BD
Web

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Escanear Vulnerabilidades al Servidor Web
Nikto2

Nikto es un escaner Open Source para el servidor web el cual realiza más de
6,500 pruebas potencialmente peligrosas, como archivos/CGIs, verificación de
versiones desactualizadas de 1,250 servidores, y problemas específicos en
alrededor de 270 servidores. También verifica los programas utilizados
comúnmente que son parte de una aplicación web, código de ejemplo incluido en
algunas instalaciones de servidores web, u otros scripts con fallas. Busca scripts
con tecnologías vulnerables CGI, PHP, ASP y similares. Los plugins pueden ser
actualizados.

Nikto no está diseñado para ser una herramienta sutil. Realizará las pruebas
contra un servidor web de la manera más rápida posible, dejando rastros en los
archivos de registro. Sin embargo soporta métodos anti IDS.

Nikto no busca por fallas en aplicaciones web “personalizadas”,


como fallas XSS o Sql Injection en una aplicación especializada.
Para este propósito se pueden utilizar otras herramientas.
* Nikto2: http://www.cirt.net/nikto2

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Escanear Vulnerabilidades al Servidor Web (Cont.)
OWASP Webscarab

WebScarab es un Framework para analizar aplicaciones que se comunican


utilizando los protocolos HTTP y HTTPS. Ha sido escrito en Java y puede ser
portado a varias plataformas. Tiene varios modos de operación, implementado por
varios plugins.

En su forma de uso común opera como un Proxy de interceptación; en el puerto


8008; el cual permite revisar y modificar peticiones creadas por el navegador
antes de enviarlos al servidor, revisar y modificar las respuestas devueltas por el
servidor antes de recibirlas en el navegador.

WebScarab es capaz de interceptar comunicaciones en HTTP y HTTPS. El


operador también puede revisar las conversaciones (peticiones y respuestas) que
han pasado a través de WebScarab.

También puede permitir a un desarrollador depurar problemas


difíciles y a un especialista en seguridad identificar vulnerabilidades.
* WebScarab: http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Vulnerabilidades en Aplicaciones Web
Una vulnerabilidad es un agujero o debilidad en la aplicación, el cual puede ser
por una falla en el diseño o error de implementación, la cual permite al atacante
causar daño a la aplicación. Incluyendo los propietarios, usuarios y otras
entidades que utilizan la aplicación. Se debe distinguir entre amenaza, ataque y
medidas correctivas. Algunas de estas son:

1. Cross-Site Scripting (XSS)


2. SQL Injetcion
3. Path Traversal
4. Arbitrary Redirection
5. OS Command Injection
6. Contraseñas débiles.
7. Errores Nativos del Software
8. Comentarios en el Código fuente

Un excelente documento de “Riesgos de Seguridad de la Aplicaciones Web”, es el


OWASP Top Ten 2013.
* Vulnerabilities: https://www.owasp.org/index.php/Category:Vulnerability
* OWASP Top Ten Project: https://www.owasp.org/index.php/OWASP_Top_Ten_Project

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
CSRF
CSRF (Cross Site Request Forgery) es un ataque que obliga al usuario final a
ejecutar acciones no deseadas en la aplicación web, en la cual se encuentra
autenticado.

Un atacante puede obligar a los usuarios de una aplicación web a ejecutar


acciones que este ha definido. Una explotación exitosa de un CSRF puede
comprometer los datos del usuario final y las operaciones de un usuario normal.
Si el usuario final tiene la cuenta de administrador, este tipo de vulnerabilidad
puede comprometer la aplicación web completa.

EL CSRF es un ataque que engaña a la víctima para cargar una página que
contiene una petición maliciosa. En el sentido que hereda la identidad y privilegios
de la víctima para realizar funciones no deseadas en nombre de esta, como
cambiar su dirección de correo, dirección de casa, contraseña, o comprar algo.
Los ataques CSRF tienen como objetivo generalmente funciones que causan un
cambio de estado en el servidor, pero también pueden ser utilizados para acceder
a datos sensibles.

* CSRF: https://www.owasp.org/index.php/CSRF

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
CSRF (Cont.)
CSRF mediante una petición GET.

* Fuente: http://www.linuxforu.com/2010/11/securing-apache-part-3-xsrf-csrf/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
XSS
(XSS) Cross Site Scripting son un tipo de problema de inyección, en el cual un
script malicioso se inyecta en sitios webs confiables y benignos. Los ataques XSS
ocurren cuando un atacante utiliza una aplicación web para enviar código
malicioso, generalmente en la forma de un script en el lado del navegador a un
usuario final diferente. La fallas que permiten a estos ataques ser satisfactorios
son ampliamente conocidos, y ocurren en cualquier aplicación web que utilice una
entrada de usuario y una salida que se genera sin validación o codificación.

Un atacante puede utilizar un XSS para enviar scripts maliciosos a un usuario sin
generar ningún tipo de sospechas. El navegador del usuario final no tiene manera
de saber que el script no es confiable, y por lo tanto ejecutará este script
malicioso. Debido a que cree que el script viene de una fuente confiable, el script
malicioso puede acceder a cualquier cookie, tokens de sesión, y otra información
sensible mantenida en el navegador y utilizado con este sitio. Estos scripts
también pueden reescribir el contenido de una página HTML.

* XSS: https://www.owasp.org/index.php/Cross_site_scripting

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
XSS (Cont.)
XSS Reflejado

* Fuente: http://www.linuxforu.com/2010/09/securing-apache-part-2-xss-injections/

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
SQLi
Una Inyección SQL consiste en la inserción o inyección de una consulta “SQL” por
medio de la entrada de datos desde un cliente a una aplicación.

Una explotación satisfactoria de inyección SQL puede leer datos sensibles de una
base de datos, modificar la base de datos (Insertar, Actualizar, Borrar), ejecutar
operaciones de administración en la Base de Datos (Como apagar el DBMS),
recuperar el contenido de un archivo existente en el sistema de archivos de la
DBMS, y en algunos casos entregar comandos al sistema operativo. Los ataques
de inyección SQL son un tipo de ataques de inyección, en los cuales comandos
SQL son inyectados en la entrada de datos para poder realizar la ejecución de
comandos SQL

Los errores de Inyección SQL ocurren cuando:

1. Se ingresan datos a un programa desde una fuente no confiable.


2. Los datos son utilizados para construir dinamicamente una consulta SQL.

* SQLi: https://www.owasp.org/index.php/SQL_Injection

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
SQLi (Cont.)
Inyección SQL.

Seguridad Informática - Módulo 1: Ethical Hacking :: Centro de Informática y Sistemas - UCV :: Alonso Eduardo Caballero Quezada
Ethical Hacking
Curso de Seguridad Informática
¡Muchas Gracias!

Alonso Eduardo Caballero Quezada


Consultor en Hacking Ético, Informática Forense &
GNU/Linux

Sitio Web: http://www.ReYDeS.com

e-mail: ReYDeS@gmail.com

También podría gustarte