Seguridad en PDF: Adobe ¬¬

4,704 views

Published on

Uso de Metasploit para generar un PDF que explota CoolType SING en Adobe Reader 9

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
4,704
On SlideShare
0
From Embeds
0
Number of Embeds
1,906
Actions
Shares
0
Downloads
109
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Seguridad en PDF: Adobe ¬¬

  1. 1. GSIC 2011 Alejandro Ramoswww.securitybydefault.com
  2. 2.  Manager del TigerTeam de SIA Profesor en el MOSTIC de la Universidad Europea de Madrid Editor de SecurityByDefault.com Twitter: @aramosf Blah Blah…
  3. 3.  Introducción Estructura del PDT Aspectos de seguridad Análisis y creación de un PDF (¡sin word!) Recomendaciones
  4. 4.  Portable Document Format Creado por Adobe Systems Estándar ISO/IEC 32000-1:2008 Documentos susceptibles de ser impresos Multiplataforma Especificación abierta (Julio 2008)
  5. 5. 1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 9.1 10
  6. 6. CVE Bug VersiónCVE-2007-5659 Collab.collectEmailInfo <8.1.1CVE-2008-2992 Util.printf <8.1.2CVE-2009-0927 Collab.getIcon <9.0CVE-2009-4324 Doc.media.newPlayer <9.2CVE-2009-0658 JBIG2 Decode <9.0CVE-2010-0188 LibTIFF <9.3.0CVE-2010-1240 Embedded EXE Ing. SocialCVE-2010-1297 Flash Player authplay 9.3.3 8..2.3CVE-2010-2883 CoolType SING 9.4 8.2
  7. 7. Fuente AvertLabs:http://bit.ly/aOhWu5
  8. 8.  Problematic Document Format Penetration Document Format Portable Document Format Polanski
  9. 9.  Compuesto mediante colección de objetos Interacción entre objetos Interacción con el cliente (render): protección de contraseña, impresión. Objetos de múltiples tipos: imágenes, texto, formas geométricas, fuentes… Soporte de compresión: JPEG2000, JPEG, CCITT, Flate(Zip)
  10. 10. CabeceraObjeto 1 2 3Objeto 2 4Objeto NTabla XREF 5 6 7 Trailer
  11. 11. Cabecera Comienzo de trailer sección << Objeto /Size 3 Num. De objetos /Root 1 0 R Objeto raiz >> (catalogo) Objeto startxref … 8482 %%EOF Localización de Tabla XREFTabla XREF  Ha de contener Catalogo: /Root Trailer  Número de entradas XREF /Size  Puede incluir información adicional: /Encrypt /Info /ID
  12. 12. Comienzo de sección Primer obj. Num. Objetos Objeto libreCabecera xref 0 6 Objeto 0000000000 65535 f 0000000008 00000 n Objeto 0000000123 00000 n Objetos … 0000000429 00000 n en usoTabla XREF Offsets de Num. Del objetos siguiente Trailer objeto libre
  13. 13. ID de objeto Revisión Tipo deCabecera objeto 1 0 obj << Objeto /Type /Catalog /Pages 2 0 R Objeto >> Referencia a … endobj otro objetoTabla XREF Trailer
  14. 14. Cabecera %PDF-1.4 Objeto Objeto Versión del formato 1.0-1.7 …Tabla XREF Trailer
  15. 15. El fichero original Fichero Original CabeceraObjeto 1 permanece intactoObjeto 2  Nueva tabla XREF con losTabla XREF nuevos objetos y un enlace Trailer a la antigua tabla xref Característica!: Soporte Actualización 1 Objeto 3 para regresión de versiones.Tabla XREF Trailer
  16. 16. Ejemplo
  17. 17. $ python pdf-parser.py hola.pdf xref [(3, xref), (3, 0), (3, 15), (3,PDF Comment %PDF-1.4n 0000000000), (3, 65535), (3, fPDF Comment %xc7xecx8fxa2n ), (3, 0000000557), (3, 00000), (3, n), (3, 0000003638), (3, 00000), ( 3, n), (3, 0000000489), (3, 00000),obj 5 0 (3, n), (3, 0000000329), (3, 0000 Type: 0), (3, n) Referencing: 6 0 R trailer<< << /Length 6 0 R /Size 15 /Root 10R /Filter /FlateDecode /Info 20R >> /ID [(44444)] >>obj 6 0 Type: startxref 3828 Referencing: PDF Comment %%EOFn [(1, n), (3, 225), (1, n)]
  18. 18. Selección de método de seguridad Elegir si crear una política Seleccionar los componentes a cifrar Revisar la configuración Almacenar el documento
  19. 19.  NO SE CIFRA EL DOCUMENTO COMPLETO. Objetos Stream y cadenas de texto. Modificaciones en versiones
  20. 20. Posición Uso $ python pdf-parser.py test.pdf … 3 Impresión obj 98 0 4 Modificación << 5 Extracción (copiar y /Filter /Standard pegar) /V 1 6 Anotaciones /R 2 /O (±†KŸ|ÿG+¡ÌËpTÔ“Û•ÚÃÐßÏ„´_{«B) 9 Formularios /U (¨KM¾åòøƒ½ø-CïP8¨Ëî}¼,ÊpOCt%r) 10 Extracción /P -44 >> texto/gráficos … 11 Eliminar/Insertar, rotar 12 Impresión (mala calidad) http://www.unlock-pdf.com/ http://www.ensode.net/pdf-crack.jsf http://www.pdfunlock.com/ http://pdfpirate.net http://freemypdf.com
  21. 21.  El PDF se puede firmar digitalmente La firma comprende el documento completo El certificado x509 o PKCS7 se incluye en el documento El documento es validado al abrirse Un documento firmado puede incluir resumen y convertirse en certificado. Documentos certificados pueden tener privilegios especiales: contenido dinámico, ejecución de JavaScript, etc.
  22. 22.  Mediante los objetos /Metadata e /Info Fecha de creación, modificación, autor, software, correo electrónico… Se almacenan revisiones
  23. 23. 1650 0 obj<< /Length 1152>>stream....ETEMC154.67999 223.25999 76.32001 13.8 ref/P <</MCID 35 >>BDCBT/TT0 1 Tf12 0 0 12 90 225.9001 Tm( 1. (U) Third Infantry Division . . . ............ . . . . . . . . . . . . . . . . . . . . . . . . 8 )Tj
  24. 24.  Uso de interprete con funciones propias Modificación de SpiderMonkey Ejecución por defecto en un contexto sin privilegios Dos posibilidades de llamar al código: ◦ Incluyendo el JS en el PDF ◦ Script dentro del directorio de instalación: <install>/JavaScripts/*.js  Estos scripts se ejecutan con mayores privilegios.
  25. 25. Triggers Uso/OpenAction Acción al abrir el documento Acción cuando una página/OpenAction con /AA determinada es mostrada Añadir anotación a la primera/Annots con /AA página y ejecutar acción cuando es mostrada/Names objetos ejecutables del catálogo Ejecuta una comando de sistema/Launch cuando se abre el documento
  26. 26. 1 0 obj 7 0 obj<< << /Type /Catalog /Length 0000 /Outlines 2 0 R >> /Pages 3 0 R stream /OpenAction << var i=0,m=,t=[1100,0101];var /JS 7 0 R ZJi=s3nT(app.viewerVersion.toString()); /S /JavaScript var >> buD=aug(ZJi[1],ZJi[0]);app.eval(dqo());>> m0ii=0,rm=;while(m0ii<mOii.length){endobj rm+=String.fromCharCode(klX(mOii.su … endstream endobj
  27. 27. Localización del código malicioso Extracción de los segmentos del fichero Si es necesario, desensamblado de la shellcode Si es necesario, deofuscación y compresión del código script Compresión de la cadena de infección
  28. 28. Herramienta URLOrigami http://seclabs.org/origami/PDFTools http://blog.didierstevens.com/programs/pdf-tools/Pdfresurrect http://757labs.org/wiki/Projects/pdfresurrectPdftk http://www.accesspdf.com/pdftk/QPDF http://sourceforge.net/projects/qpdf/PDFMiner http://www.unixuser.org/~euske/python/pdfminer/index.ht mlPDF Dissector http://www.zynamics.com/dissector.htmlPDF Stream Dumper http://sandsprite.com/blogs/index.php?uid=7&pid=57Opaf! http://feliam.wordpress.com/2010/08/23/opaf/
  29. 29. Herramienta URLMalzilla http://malzilla.sourceforge.net/SpiderMonkey https://www.mozilla.org/js/spidermonkey/jsunpack https://code.google.com/p/jsunpack-n/
  30. 30. Herramienta URLVirusTotal http://www.virustotal.comWepawet http://wepawet.cs.ucsb.edu/ThreatExpert http://www.threatexpert.com/CWSandbox http://www.sunbeltsecurity.com/sandbox/Jsunpack http://jsunpack.jeek.org/dec/go
  31. 31. Herramienta URLOrigami http://seclabs.org/origami/Metasploit http://www.metasploit.com/PDFInjector https://milo2012.wordpress.com/2009/09/21/hel lo-worldMake-pdf http://blog.didierstevens.com/programs/pdf- tools/
  32. 32.  Mantener actualizada la aplicación Desactivar el plug-in del navegador Desactivar soporte JavaScript Usar el lector con usuarios sin privilegios Confiar únicamente en archivos que vengan de fuentes conocidas Usar productos alternativos: Foxit/Sumatra
  33. 33.  La dificultad de explotar vulnerabilidades en el SO esta obligando a que se encuentren nuevas vías en software de terceros Existen productos usados masivamente casi sin explorar El malware encontrará el camino
  34. 34. Podéis descargar esta presentación en PDF ;-)Referenciashttp://www.blackhat.com/presentations/bh-europe-08/Filiol/Presentation/bh-eu-08-filiol.pdfhttp://esec.fr.sogeti.com/blog/index.php?2009/06/26/68-at-least-4-ways-to-die-opening-a-pdfhttp://conference.hackinthebox.org/hitbsecconf2009kl/materials/D2T1%20-%20Frederic%20Raynal%20-%20PDF%20Origami%20Strikes%20Back.pdfhttp://zeltser.com/reverse-malware/analyzing-malicious-documents.htmlhttp://www.forensicswiki.org/wiki/PDFhttp://blog.didierstevens.com/programs/pdf-tools/http://blogs.adobe.com/pdfdevjunkie/PDF_Inside_and_Out.pdf
  35. 35. Gracias.http://www.securitybydefault.com

×