Pruebas de Intrusión utilizando Open Source

65
Pruebas de Intrusión Utilizando Herramientas Open Source Juan Pablo Quiñe Paz CISSP, GISP, ISO27001 LA http://hackspy.blogspot.com Chiclayo IT Security Day 2011

description

Al fin me pude sentar a publicar esta charla prometida, preparada originalmente para el flisol de Puno, lastimosamente por problemas de coordinación no se pudo dar, pero luego de unas mejoras, pudimos tenerla lista para el "Chiclayo IT Security Day 2011", en el cual estuvimos este fin de semana. Toca muchos temas, desde las metodologìas para hacer pentesting, las herramientas, las metodologías, y bueno, la charla presencial tuvo una pequeña demo. Encontrarán varios links que espero les sean de utilidad. Espero la disfruten.

Transcript of Pruebas de Intrusión utilizando Open Source

Page 1: Pruebas de Intrusión utilizando Open Source

Pruebas de IntrusiónUtilizando Herramientas Open Source

Juan Pablo Quiñe PazCISSP, GISP, ISO27001 LA

http://hackspy.blogspot.com

ChiclayoIT SecurityDay 2011

Page 2: Pruebas de Intrusión utilizando Open Source

Agenda

http://hackspy.blogspot.com

Page 3: Pruebas de Intrusión utilizando Open Source

¿Quién soy yo?

The Son of Man (French: Le fils de l'hommeRené Magritte (Bélgica, 1964)

Ing. de Sistemas

10 años dedicado a la Seguridad Informática y de TI

Certificaciones: CISSP, GISP, ISO 27001 LA, OSCP

Page 4: Pruebas de Intrusión utilizando Open Source

¿A qué me dedico?

Evaluación de Seguridad, Ethical Hacking, ISO 27000, Seguridad de la Información, Seguridad Informática, Redes, Protocolos, Estándares de Seguridad, Auditoría de TI, Gobernance and Compliance y lo que pueda surgir… Certificaciones: CISSP, GISP, ISO 27001 LA, COBIT.

Page 5: Pruebas de Intrusión utilizando Open Source

¿A qué me dedico? (Cont.)

Investigación y hobbies relacionados con:

Hacking, Wifi, Bluetooth, IrDA, RFiD, Networking, Lockpicking, Ing. Social, Computer Games, PS3, PSP, Car audio, IT Security, Mobile Hacking, Linux, fanático de Mac, paintball, placas arduino, análisis de aparatejos tecnológicos en general, entre otros…

Page 6: Pruebas de Intrusión utilizando Open Source

DisclaimerTodo el contenido de esta charla es resultado de investigación con fines didácticos y educativos.

El autor no se hace responsable por el uso del conocimiento contenido en la siguiente presentación.

La información contenida debe ser utilizada únicamente para fines éticos y con la debida autorización.

Page 7: Pruebas de Intrusión utilizando Open Source

Definiciones

Page 8: Pruebas de Intrusión utilizando Open Source

Principios de la Seguridad

Confidencialidad: La capacidad prevenir la divulgación de información a personas o sistemas no autorizados.

Integridad: La propiedad de mantener los datos libres de modificaciones no autorizadas.

Disponibilidad: La característica, cualidad o condición de la información de encontrarse a disposiciónde quienes deben acceder a ella, ya sean personas, procesos, o aplicaciones.

Page 9: Pruebas de Intrusión utilizando Open Source

¿Qué es una Prueba de Intrusión?

Wiki + apreciación personal: Una Prueba de Intrusión es un método, actividad, o buena práctica realizado para evaluar la seguridad de un equipo o red simulando un ataque proveniente de una fuente maliciosa.

Page 10: Pruebas de Intrusión utilizando Open Source

Que tipos de Evaluaciones existenwhite box: Cuando se realiza una evaluación con conocimiento detallado de la red.

black box: Cuando no se tiene mayor conocimiento del objetivo a evaluar.

gray box: Cuando se tienen ciertos datos sobre el objetivo a evaluar.

Page 11: Pruebas de Intrusión utilizando Open Source

Otras definiciones

Riesgo: la explotación de una vulnerabilidad por parte de una amenaza

Exposiciones: Áreas que son vulnerables a un impacto por parte de una amenaza

Vulnerabilidades: deficiencias que pueden ser explotadas por amenazas

Amenazas: Cualquier acción o evento que puede ocasionar consecuencias adversas

Impacto: los resultados y consecuencias de que se materialice un riesgo

Page 12: Pruebas de Intrusión utilizando Open Source

Un pequeño juego

Page 13: Pruebas de Intrusión utilizando Open Source

Hagamos el siguiente ejercicio

Pasar por los 9 puntos utilizando únicamente 4 líneas rectas sin levantar el trazo

Page 14: Pruebas de Intrusión utilizando Open Source

Algunas confusiones comunes:Análisis de Vulnerabilidades vs

Ethical Hacking

Page 15: Pruebas de Intrusión utilizando Open Source

Comparación entre:

Identificación de fallas de seguridad

Análisis de vulnerabilidades en los equipos a evaluar

Enumeración de las vulnerabilidades, riesgo y posibles alternativas de solución

Por lo general la verificación de las vulnerabilidades escapa al análisis

Ejecutado al inicio de un plan de seguridad para adoptar medidas correctivas

Identificación de fallas de seguridad

Búsqueda de Vulnerabilidades a explotar

Explotación de vulnerabilidades a fin de comprobar las falencias de seguridad

Se muestra evidencia del acceso “autorizado” a los sistemas y los métodos para ello

Ejecutado al final de un plan de seguridad para verificar que el sistema se encuentra seguro

Ethical Hacking Análisis deVulnerabilidades

Page 16: Pruebas de Intrusión utilizando Open Source

Problemática

Page 17: Pruebas de Intrusión utilizando Open Source

Dudas que surgen con las Pruebas de Intrusión

Cómo prácticar sin cometer delitos, o afectar a nuestros sistemas.

Como definir el alcance de las pruebas.

Como lograr el objetivo esperado.

Como preparar un buen informe.

Como asegurar las brechas encontradas.

Page 18: Pruebas de Intrusión utilizando Open Source

Metodos

Page 19: Pruebas de Intrusión utilizando Open Source

Algunas metodologías conocidas

OSTMM - Open Source Security Testing Methodology Manual

ISSAF - Open Information System Security Asessment Framework

OWASP - Open Web Application Security Project

PTES - Penetration Testing Execution Standard

Page 20: Pruebas de Intrusión utilizando Open Source

¿Cual es nuestro punto de partida?

Page 21: Pruebas de Intrusión utilizando Open Source

A que amenazas estáexpuesta una Organización

Page 22: Pruebas de Intrusión utilizando Open Source

Perspectivas para una evaluación de Seguridad

FASE 3 Evaluaci ó n de la

vulnerabilidad del host

FASE 1 Descubrimiento /

Exploraci ó n

Evaluaci ó FASE 3

n de la vulnerabilidad del host

FASE 2 Explotaci ó n

FASE 2 Explotaci ó n

FASE 1 Descubrimiento /

Exploraci ó n

AMENAZAS & VULNERABILIDADES

PENETRACIÓN

ATAQUE

Ingeniería Social

Evaluaci ó n de Seguridad

Internet

ó n Evaluaci de Seguridad

Internet

Evaluaci ó n de Seguridad

Intranet

ó n ó Evaluación de Seguridad Intranet/red

interna

Evaluaci ó n de Seguridad

Extranet

n Evaluaci de Seguridad

Extranet

Evaluaci ó n de Accesos Remotos

ó n Evaluaci de Accesos Remotos

Page 23: Pruebas de Intrusión utilizando Open Source

Fuente: Hacking Exposed 4th Edition

Eliminación de huellas

Extraer información

(Pilfering)

Escalamiento de Privilegios

Obtención de Acceso

Enumeración

Escaneo

Toma de Huellas

Creación de Puertas traseras

Denegaciones de servicio (DoS)

Anatomía de un Ataque

Page 24: Pruebas de Intrusión utilizando Open Source

Prueba de Intrusión

Page 25: Pruebas de Intrusión utilizando Open Source

Toma de Huellas

Esta etapa abarca actividades tales como:

Google Hacking

Identificación de Dominios y redes asociadas.

Reconocimiento de la red.

Page 26: Pruebas de Intrusión utilizando Open Source

Escaneo (de equipos y servicios)

Identifica:

Equipos activos

Servicios Activos y sus versiones

Sistema Operativo

Otros datos relevantes

Page 27: Pruebas de Intrusión utilizando Open Source

Explotación(De Datos y Vulnerabilidades)

Explotación de vulnerabilidades para cada servicio.

Identificación de información relevante para la explotación.

Retroalimentación que facilite la explotación.

Clasificación de las brechas encontradas.

Page 28: Pruebas de Intrusión utilizando Open Source

Reporte de HallazgosInforme Ejecutivo

Informe Detallado:

Hallazgos

Riesgos y,

Recomendaciones de control

Anexos:

Reportes de hallazgos

Estadísticas

Page 29: Pruebas de Intrusión utilizando Open Source

Consideración almomento de recomendar mejoras

Es necesario identificar cuales son las necesidades y las implicancias de las brechas encontradas

Evaluar y probar cada corrección previamente que podría afectar a uno o mas sistemas existentes.

IMPORTANTE

Page 30: Pruebas de Intrusión utilizando Open Source

Herramientas

Page 31: Pruebas de Intrusión utilizando Open Source

Algunas Herramientas recomendadas

NMAP

Netcat

Nessus

OpenVAS

Metasploit

SET

John The Ripper

Rainbow Tables

Nikto

Burp

Paros

Kismet

AirCrack

Maltego

Page 32: Pruebas de Intrusión utilizando Open Source

Algunos sitios recomendados

http://sectools.org (Top 100 SecTools)

http://securitytube.net (Security Videos)

http://www.exploit-db.com (Exploits DB)

http://packetstormsecurity.org (de todo un poco)

http://www.cisecurity.org (checklists de seguridad)

Page 33: Pruebas de Intrusión utilizando Open Source

ISOs/LiveCD’s para prácticar

http://herot.net/livecds

http://www.bad-store.net/

http://www.bonsai-sec.com/es/research/moth.php

http://blog.metasploit.com/2010/05/introducing-metasploitable.html

http://www.mavensecurity.com/web_security_dojo/

http://informatica.uv.es/~carlos/docencia/netinvm/

Page 34: Pruebas de Intrusión utilizando Open Source

Existe algo como “esto” en Pruebas de Intrusión

Page 35: Pruebas de Intrusión utilizando Open Source

Algunas LiveDistros para Pruebas de Intrusión

BackTrack (http://www.backtrack-linux.org/)

Samurai (http://samurai.inguardians.com/)

OWASP LiveCD Project (http://www.owasp.org/)

BackBox (http://www.backbox.org)

Katana (http://www.hackfromacave.com/katana.html)

Page 36: Pruebas de Intrusión utilizando Open Source

Ataque Man In The Middle

Page 37: Pruebas de Intrusión utilizando Open Source

Comunicación en una red con switches

¿Quien tiene 1.1.1.2? 1.1.1.1

1.1.1.2

Page 38: Pruebas de Intrusión utilizando Open Source

1.1.1.2 esta en 00:11:22:33:44:55:66

1.1.1.1

1.1.1.2

Comunicación en una red con switches

Page 39: Pruebas de Intrusión utilizando Open Source

Comunicación en una red con switches

1.1.1.1

1.1.1.2 Intercambio de Datos

Page 40: Pruebas de Intrusión utilizando Open Source

Ataque ARP Man In The Middle

¿Quien tiene 1.1.1.2? 1.1.1.1

1.1.1.2

Page 41: Pruebas de Intrusión utilizando Open Source

Ataque ARP Man In The Middle

1.1

.1.2

esta

en

99:8

8:7

7:6

6:5

5:4

4

1.1.1.1

1.1.1.2

1.1

.1.1

esta

en

99:8

8:7

7:6

6:5

5:4

4

Page 42: Pruebas de Intrusión utilizando Open Source

Ataque ARP Man In The Middle

Intercambio

de Datos

1.1.1.1

1.1.1.2

Page 43: Pruebas de Intrusión utilizando Open Source

Aplicándolo a una evaluación Web

Page 44: Pruebas de Intrusión utilizando Open Source

Firewall

Firewall

Database

Web App Scripts

Web Server

User

Arquitectura de una Aplicación Web

Page 45: Pruebas de Intrusión utilizando Open Source

Métodos HTTP

Page 46: Pruebas de Intrusión utilizando Open Source

Como se desarrollaun Acceso a un WebEl browser parte el URL en 3 partes:

El protocolo ("HTTP")

El nombre del servidor ("www.website.com")

El Archivo ("webpage.html")

El navegador se comunica con un servidor de dominio, donde traduce el nombre del servidor por la dirección IP

El navegador luego realiza una conexión al Servidor Web a la dirección IP al puerto 80.

Page 47: Pruebas de Intrusión utilizando Open Source

Como se desarrollaun Acceso a un Web (cont.)

Siguiendo el protocolo HTTP, el navegador envía una solicitud GET al servidor, solicitando por el archivo http://webpage.html.

El servidor envía el texto HTML text por la página web al navegador.

El navegador lee el texto HTML y formatea la página en la pantalla.

Page 48: Pruebas de Intrusión utilizando Open Source

Algunos supuestos en http

Siempre se hace una conexión utilizando un browser

Es posible enviar datos ocultos dentro del código fuente

Los parámetros o variables no pueden ser manipulados por el cliente

No es posible insertar otra cosa que no sea HTTP

Page 49: Pruebas de Intrusión utilizando Open Source

¿Que trae como consecuencia?

Confianza en los datos del lado cliente

No se bloquean caracteres especiales

Filtrado en la salida de caracteres HTML

Acceso a Admin por las aplicaciones Web

Autenticación vía ActiveX/JavaScript

Falta de autenticación de usuario a realizar tareas críticas

Debilidades en el manejo de sesiones

Page 50: Pruebas de Intrusión utilizando Open Source

Demo

Page 51: Pruebas de Intrusión utilizando Open Source

Nuestro escenario Ideal

Page 52: Pruebas de Intrusión utilizando Open Source

LABORATORIO VIRTUAL

BackTrack 4172.16.146.130

Web Store172.16.146.131

DE-ICE Inc.172.16.146.132

MacBook 13" Core2Duo 2.2GHz 3GB Ram 250 GB HDD Mac OSX (Darwin) Running VMWare Fusion KeyNote

La realidad de nuestro laboratorio

Page 53: Pruebas de Intrusión utilizando Open Source

Utilizando MitM para evaluar HTTP

Page 54: Pruebas de Intrusión utilizando Open Source

Arquitectura Funcional de una aplicación HTTP

Sistema Operativo

Servidor Web

Aplicación Web Aplicación Web

Base de Datos (Información)

Page 55: Pruebas de Intrusión utilizando Open Source

Fallos Comunes de Seguridad Web

Cross-site Scripting SQL Injection

Debilidades en Login/PasswordRobo de Sesiones

Mensajes de error de sistema en crudoValidación de Parámetros

Buffer OverflowsRobo de Cookies

Page 56: Pruebas de Intrusión utilizando Open Source

Partamos del supuesto

Page 57: Pruebas de Intrusión utilizando Open Source

Alteremos nuestro supuesto

Reemplazamos el Cliente por una ventana en línea de comandosUtilizamos browsers no convencionales o antiguos (Lynx, Opera, Iexplorer 3.0)Implementamos capas adicionales en la conexión (proxys en la navegación)

Page 58: Pruebas de Intrusión utilizando Open Source

Que nos permitenestos cambios

Somos capaces de ver, capturar, modificar la información que ha sido procesada en los browsers

Somos capaces de entender la lógica de la programación

Somos capaces de manipular la información a fin de probar la seguridad de nuestros sistemas

Page 59: Pruebas de Intrusión utilizando Open Source

Estamos seguros

¿Con un Firewall?

Page 60: Pruebas de Intrusión utilizando Open Source

Estamos seguros

¿Con un Firewall?

iptables-AINPUT-ieth0-ptcp--sport1024-65535-d$IPADDR--dport80-jACCEPT

iptables-AOUTPUT-oeth0-ptcp!--syn-s$IPADDR--sport80--dport1024-65535-jACCEPT

Page 61: Pruebas de Intrusión utilizando Open Source

Estamos seguros

¿Con un Firewall?

Page 62: Pruebas de Intrusión utilizando Open Source

Como se vulnera un Firewall

Page 63: Pruebas de Intrusión utilizando Open Source

Pensamientos Finales

Page 64: Pruebas de Intrusión utilizando Open Source

Recordemos...

Todo conocimiento debe ser utilizado con fines éticos.

El hecho de saber como vulnerar la seguridad, no nos da el derecho de hacerlo indiscriminadamente.

Toda evaluación de seguridad debe ser aprobada previamente a su ejecución por personal responsable de los equipos.

La línea entre lo legal y lo ilegal es muy frágil y podemos cruzarla sin darnos cuenta.

Page 65: Pruebas de Intrusión utilizando Open Source

Juan Pablo Quiñe Paz, CISSP, GISP, ISO 27001 LAhttp://hackspy.blogspot.com

Gracias...