Análisis de PDF malicioso

15

He estado analizando un PDF que sospecho que contiene contenido malicioso. En su mayor parte, siempre he confiado en las herramientas automatizadas para determinar si era seguro abrir un PDF. Sin embargo, mis ojos se han abierto a todas las técnicas de encriptación y ofuscación en Lo salvaje hoy. Así que comencé a revisar mis archivos PDF manualmente usando herramientas como estos y PDFStreamDumper . He consultado las especificaciones de PDF que se encuentran en aquí .

Por todas partes que veo, nadie parece explicar el propósito de las directivas /<Abbreviation> . Por ejemplo, el extracto encontrado en el encabezado.

No puedo encontrar lo que /JT hace referencia. O por qué el /GoTo no especifica una ubicación.

El segundo objeto especifica /Cn y /V pero tampoco puedo encontrarlos.

El tercer objeto /Dt y /JTM , no tienen ninguna referencia en la especificación de PDF. ¿Puede alguien darme alguna dirección? Estoy dispuesto a hacer la investigación, pero no estoy seguro de lo que estoy viendo, además de los comandos abreviados contenidos en un objeto. ¿Hay una hoja de trucos con estas directivas enumeradas y su propósito?

Header

<<

    /JT 2 0 R
    /OpenAction 
    <<

        /D [ 9 0 R /Fit ]
        /S /GoTo

    >>

    /Outlines 8683 0 R
    /PageLabels 8875 0 R
    /PageLayout /SinglePage
    /PageMode /UseOutlines
    /Pages 5437 0 R
    /Type /Catalog
>>

Segundo objeto

<<

    /A [ 3 0 R ]
    /Cn [ 4 0 R ]
    /V 1.1
>>

Tercer objeto

<<

    /Dt (D:20101223094432)
    /JTM (Distiller)
>>

Nota: ejecuté el archivo a través de Total de virus con solo unas pocas banderas rojas. se ajusta a las especificaciones 1.7.

    
pregunta Ccorock 10.11.2014 - 20:20
fuente

1 respuesta

2

Este enlace es para herramientas de desarrollo compatibles con PDF: enlace Específicamente, la referencia 1.7 que menciona DarkLighting es: enlace

La sección 3.2.4 del documento parece abordar su pregunta:

   3.2.4Name Objects
   A name object is an atomic symbol uniquely defined by a sequence of characters.
Uniquely defined means that any two name objects made up of the same sequence of characters 
are identically the same object. Atomic means that a name has no internal structure;
although it is defined by a sequence of characters, those characters are not considered 
elements of the name.

        A slash character (/) introduces a name. The slash is not part of the name but is 
a prefix indicating that the following sequence of characters constitutes a name. 
There can be no white-space characters between the slash and the first character in 
the name. The name may include any regular characters, but not delimiter or white-space 
characters (see Section 3.1, “Lexical Conventions”). Uppercase and lowercase letters are 
considered distinct: /A and /a are different names. The following examples are valid 
literal names:
    /Name1
    /ASomewhatLongerName
    /A;Name_With−Various***Characters?
    /1 . 2
    /$$
    /@pattern
    /. notdef

Por lo tanto, parece que / JT / Cn / V y así sucesivamente se denominan objetos dentro de un objeto de diccionario PDF (identificado por corchetes de doble ángulo < < ... > >). En sus ejemplos, todos estos elementos "no identificados" están contenidos dentro de los objetos del diccionario. Consulte la sección 3.2.6 para obtener una descripción más detallada de este elemento.

También es posible que formen parte de las opciones de extensibilidad de PDF descritas en 2.2.8:

Additionally, PDF provides means for applications to store their own private 
information in a PDF file. This information can be recovered when the file is 
imported by the same application, but it is ignored by other applications. 
Therefore, PDF can serve as an application’s native file format while its 
documents can be viewed and printed by other applications. Application-specific 
data can be stored either as marked content annotating the graphics objects in 
a PDF content stream or as entirely separate objects unconnected with the PDF content.

Básicamente, es difícil decir cómo se definen todos los diversos objetos no estándar sin pasar por cada uno y descodificarlos (ya sea a través de una herramienta de automatización de desarrollo propio o manualmente).

No estoy de acuerdo con DarkLighting con respecto al comentario / GoTo. Los procesadores de PDF deberían leer todo el contenido del diccionario antes de realizar cualquier acción. La especificación de PDF no indica que el orden sea importante, solo que tanto " / S / GoTo " como " / D < [algún tipo de destino] > " se declaran En su ejemplo dice ir a la página 9, ubicación 0.

    
respondido por el Nick 03.12.2014 - 00:18
fuente

Lea otras preguntas en las etiquetas