Está en la página 1de 71

SSL no est roto... o si ??

Mauricio Velazco Security Consultant

mvelazco@open-sec.com
Dont learn to hack, hack to learn!!

www.Open-Sec.com

Por qu Open-Sec ?

Unica empresa Peruana que cuenta con consultores certificados como Certified Ethical Hacker por EC Council y GIAC/SANS Certified Penetration Tester, las certificacin de ms prestigio a nivel internacional en ethical hacking. Nuestros consultores saben como atacar y defender. En el 2008, Open-Sec realiz el 85% de los procesos de Ethical Hacking en Per y consolido su posicin en Ecuador y Panam.

Unica empresa peruana afiliada a ISECOM, orgaizacin lder en Seguridad de la Informacin y Seguridad Informtica a nivel mundial. Unica empresa peruana que aplica la metodologa OSSTMM (Open Source SecureTesting Methodology). Los resultados de las evaluaciones que realizamos pueden ser validados ante ISECOM. Pioneros en consultoras respecto a la NTP 17799(ISO 27002)

www.Open-Sec.com

Quines somos ?
Un Equipo de Consultores con experiencia en organizaciones corporativas, estatales y privadas en Ethical Hacking Computacin Forense Aseguramiento Seguridad de la Informacin

www.Open-Sec.com

Principales Clientes de Open-Sec


Ethical Hacking y Seguridad de la Seguridad de la Informacin Informacin

Ethical Hacking/Forensia

CYEMEDICA CYEMEDICA

Linux/VoIP
www.Open-Sec.com

Moxie Marlinspike 2002 : sslsniff

New Techniques for Defeating SSL BlackHat Briefings February 2009

www.Open-Sec.com

Ataques Pre-SSLStrip

www.Open-Sec.com

www.Open-Sec.com

Conceptos Importantes:

HTTP SSL / HTTPS Envenamiento ARP

www.Open-Sec.com

HTTP
HTTP:HypertextTransportProtocol

www.Open-Sec.com

Trfico HTTP: Credenciales en limpio

www.Open-Sec.com

HTTPS = HTTP + SSL


SSL: Secure Sockets Layer. (protocolo criptogrfico) HTTPS: Hypertext Transport Protocol Secure

Protocolo de red basado en HTTP, destinado a la transferencia segura de datos: la versin segura de HTTP.
www.Open-Sec.com

Trfico HTTPS

www.Open-Sec.com

Aplicaciones ??

www.Open-Sec.com

Pregunta

Cuntos escriben https:// en el navegador ? Cuntos escriben http:// en el navegador ?

www.Open-Sec.com

Cmo nos encontramos con HTTPS ?

-A travs de links -Redirecciones (HTTP 302,301)

www.Open-Sec.com

-Nos encontramos con HTTPS a travs de HTTP

www.Open-Sec.com

-Llegamos a un protocolo seguro a travs de uno inseguro.

www.Open-Sec.com

Protocolo ARP
ARP= Address Resolution Protocol Protocolo utilizado para resolver la direccin MAC de un equipo utilizando su IP. Se envia un paquete (ARP REQUEST) al broadcast y se espera que el equipo responda (ARP REPLY) con la direccin MAC.

www.Open-Sec.com

Tablas ARP
Necesitamos localizar al seor X entre 100 personas Una vez encontrado, nos acordamos de l para no preguntar de nuevo

www.Open-Sec.com

Tablas ARP

Direccin MAC Direccin IP


www.Open-Sec.com

Envenamiento ARP
Tablas se actualizan en el tiempo

www.Open-Sec.com

Envenamiento ARP
Cabe la posibilidad de enviar mensajes ARP falsos , falsificados. Finalidad: asociar la direccin MAC del atacante con la direccin IP de otro nodo, por ejemplo, la puerta de enlace. Cualquier trfico dirigido a la direccin IP de ese nodo, ser errneamente enviado al atacante, en lugar de a su destino real.
www.Open-Sec.com

Envenamiento ARP

MITM = Man In The Middle

www.Open-Sec.com

SSLSTRIP
CualquiertrficodirigidoaladireccinIPdeesenodo,sererrneamenteenviadoalatacante,enlugardeasudestinoreal

Moxie Marlinspike

www.Open-Sec.com

Cmo funciona?

Ataque MITM

www.Open-Sec.com

Cmo funciona?

www.Open-Sec.com

Cmo funciona?

www.Open-Sec.com

El Resultado

El cliente no nota la diferencia, no se muestran advertencias de certificados invlidos.


Para el servidor, es comunicacin normal (segura). El atacante ve todo el trfico (credenciales)


www.Open-Sec.com

Qu ms se puede hacer?
Hacer sentir al cliente seguro, que no sospeche. Favicon:

www.Open-Sec.com

Cmo se ve?

www.Open-Sec.com

Sitio real

www.Open-Sec.com

Sitio real

www.Open-Sec.com

Sitio real

www.Open-Sec.com

Sitio real

www.Open-Sec.com

Sitio real

www.Open-Sec.com

Sitio real

www.Open-Sec.com

Sitio real

www.Open-Sec.com

www.Open-Sec.com

www.Open-Sec.com

www.Open-Sec.com

www.Open-Sec.com

www.Open-Sec.com

Log

www.Open-Sec.com

Log

www.Open-Sec.com

Segunda Ataque: Null prefix attack

SFTP, SMTP, IMAPS, LDAPS

www.Open-Sec.com

PKI = Public Key Infrastructure


La tecnologa PKI permite a los usuarios autenticarse frente a otros usuarios y usar la informacin de los certificados de identidad para cifrar y descifrar mensajes, firmar digitalmente informacin, garantizar el no repudio de un envo, y otros usos.

www.Open-Sec.com

Qu es un certificado ? Para qu sirve?

www.Open-Sec.com

www.Open-Sec.com

www.Open-Sec.com

SSL/TLS Handshake

www.Open-Sec.com

www.Open-Sec.com

La idea era tener un arbol jerarquizado Global Directory Information Tree . En la prctica esto no se da, todos lo llenan distinto y la mayoria de implementaciones SSL slo parsean el Common Name X509, 3 revisiones, 20 aos

www.Open-Sec.com

Atacantes: tenemos un problema

www.Open-Sec.com

PKCS #10

limahack2009.dominio.co www.dominio.com loquesea.dominio.com m WHOIS

admin@dominio.co m

www.Open-Sec.com

Queremos interceptar las comunicaciones de google

Necesitamos registrar un certificado con el CN google.com.

No somos dueos google.com

www.Open-Sec.com

C Strings
En C una cadena se define como un array de caracteres que termina con un carcter nulo '\0' No es necesario aadir explcitamente el carcter nulo al final de las constantes de cadena, el compilador lo hace automticamente. char hola[4] = "hola" == hola[4] = { 'h', 'o', 'l', 'a', '\ 0' }

www.Open-Sec.com

C Strings

www.Open-Sec.com

C Strings
char hello[]={'H','e','l','l','o'}; cout << hello; Hello

www.Open-Sec.com

PCKS #10
Somos dueos del dominio open-sec.com Bueno, Walter es el dueo. Podemos solicitar un certificado con cualquier subdominio de open-sec.com

www.Open-Sec.com

PCKS #10

loquesea.opensec.com limahackRules.open-

sec.com www.google.com\0.opensec.com

www.Open-Sec.com

El Ataque

www.Open-Sec.com

El Ataque
char * destino=GetDomain(); char* CommonName= getCNFromCertificado(); If (strcmp (destino,CommonName)==0) { } else CertificadoInvalido();

www.Open-Sec.com

La comparacin...
char * destino

char* CommonName

www.Open-Sec.com

Resultado:

HACKED!!
www.Open-Sec.com

Resultado:
El certificado es completamente vlido para el navegador y el SSL Handshake se completa exitosamente. Vulnerables: Firefox, IE, Chrome, Lynx, Curl Thunderbird, Outlook, Evolution Pidgin, AIM, centericq
www.Open-Sec.com

Problema:

Crear un certificado por cada dominio que queremos atacar ??

www.Open-Sec.com

Solucin:

*\0.open-sec.com

www.Open-Sec.com

SLIDES DE ATAQUE

www.Open-Sec.com

www.Open-Sec.com

www.Open-Sec.com

Gracias!!

Preguntas?
Mauricio Velazco Security Consultant

mvelazco@open-sec.com
Dont learn to hack, hack to learn

www.Open-Sec.com