
Herramienta y biblioteca de Python para ayudar a analizar archivos durante el triaje y análisis de malware.
pftriage es una herramienta para ayudar a analizar archivos durante el triaje de malware. Permite a un analista ver y extraer rápidamente propiedades de un archivo para ayudar durante el proceso de triaje. La herramienta también tiene una función de análisis que puede detectar indicadores maliciosos comunes utilizados por el malware.
Nota: En Mac - Apple ha implementado su propia versión del comando file. Sin embargo, libmagic se puede instalar usando homebrew
$ brew install libmagic
usage: pftriage [options]
Show information about a file for triage.
positional arguments:
file The file to triage.
optional arguments:
-h, --help show this help message and exit
-i, --imports Display import tree
-s, --sections Display overview of sections. For more detailed info
pass the -v switch
--removeoverlay Remove overlay data.
--extractoverlay Extract overlay data.
-r, --resources Display resource information
-R, --rich Display Rich Header information
-D DUMP_OFFSET, --dump DUMP_OFFSET
Dump data using the passed offset or 'ALL'. Currently
only works with resources.
-e, --exports Display exports
-a, --analyze Analyze the file.
-v, --verbose Display version.
-V, --version Print version and exit.
--nobanner Don't display the banner.
Muestra información de las secciones usando el modificador -s o --sections. Además, puedes pasar (-v) para una vista más detallada de los detalles de la sección.
Para exportar una sección, pasa --dump y la dirección virtual de la sección deseada. (ej: --dump 0x00001000)
---- Resumen de Secciones (use -v para información detallada) ----
Nombre Tamaño Bruto Puntero de Datos Brutos Dirección Virtual Tamaño Virtual Entropía Hash
.text 0x00012200 0x00000400 0x00001000 0x000121d8 6.71168555177 ff38fce4f48772f82fc77b4ef223fd74
.rdata 0x00005a00 0x00012600 0x00014000 0x0000591a 4.81719489022 b0c15ee9bf8480a07012c2cf277c3083
.data 0x00001a00 0x00018000 0x0001a000 0x0000ab80 5.28838495072 5d969a878a5106ba526aa29967ef877f
.rsrc 0x00002200 0x00019a00 0x00025000 0x00002144 7.91994689603 d361caffeadb934c9f6b13b2474c6f0f
.overlay 0x00009b30 0x0001bc00 0x00000000 0x00000000 0 N/A
Muestra datos de recursos usando -r o --resources.
---- Resumen de Recursos ----
Tipo: CODATA
Nombre Idioma SubIdioma Desplazamiento Tamaño Página de Código Tipo
0x68 LANG_RUSSIAN RUSSIAN 0x000250e0 0x00000cee 0x000004e4
0x69 LANG_RUSSIAN RUSSIAN 0x00025dd0 0x000011e6 0x000004e4
Tipo: RT_MANIFEST
Nombre Idioma SubIdioma Desplazamiento Tamaño Página de Código Tipo
0x1 LANG_ENGLISH ENGLISH_US 0x00026fb8 0x0000018b 0x000004e4
Para extraer un recurso específico, usa -D con el desplazamiento deseado. Si quieres extraer todos los recursos, pasa ALL en lugar de un desplazamiento específico.
Muestra datos y módulos de importación usando -i o --imports. Las importaciones que se identifiquen como ordinales serán identificadas e incluirán el ordinal utilizado.
[*] Loading File...
---- Importaciones ----
Número de módulos importados: 4
KERNEL32.dll
|-- GetProcessHeap
|-- HeapFree
|-- HeapAlloc
|-- SetLastError
|-- GetLastError
WS2_32.dll
|-- getaddrinfo
|-- freeaddrinfo
|-- closesocket Ordinal[3] (Importado por ordinal)
|-- WSAStartup Ordinal[115] (Importado por ordinal)
|-- socket Ordinal[23] (Importado por ordinal)
|-- send Ordinal[19] (Importado por ordinal)
|-- recv Ordinal[16] (Importado por ordinal)
|-- connect Ordinal[4] (Importado por ordinal)
ole32.dll
|-- CoCreateInstance
|-- ...
Muestra exportaciones usando -e o --exports.
[*] Loading File...
---- Exportaciones ----
Total de Exportaciones: 5
Dirección Ordinal Nombre
0x00001151 1 FindResources
0x00001103 2 LoadBITMAP
0x00001137 3 LoadICON
0x000010e9 4 LoadIMAGE
0x0000111d 5 LoadSTRINGW
Muestra encabezados Rich usando las banderas -R o --rich.
[*] Loading File...
-- Detalles del Encabezado Rich --
Checksum: 0x2b41e6a9
Id Producto Conteo Id de Compilación Compilación
-- ------- ----- -------- -----
150 AliasObj900 1 20413 <Desconocido>
132 Utc1500_CPP 36 21022 9.0 2008
149 Masm900 17 21022 9.0 2008
123 Implib800 3 50727 11.0 2012
1 Import0 102 0 <Desconocido>
131 Utc1500_C 123 21022 9.0 2008
145 Linker900 1 21022 9.0 2008
Los metadatos del archivo y la versión se muestran si no se pasan opciones en la línea de comandos.
[*] Loading File...
[*] Processing File details...
---- Resumen del Archivo ----
General
Nombre de archivo samaple.exe
Tipo Mágico PE32 executable (GUI) Intel 80386, for MS Windows
Tamaño 135168
Primeros Bytes 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00
Hashes
MD5 8e8a8fe8361c7238f60d6bbfdbd304a8
SHA1 557832efe10daff3f528a3c3589eb5a6dfd12447
SHA256 118983ba4e1c12a366d7d6e9461c68bf222e2b03f3c1296091dee92ac0cc9dd8
Hash de Importación 0239fd611af3d0e9b0c46c5837c80e09
ssdeep
Encabezados
Subsistema IMAGE_SUBSYSTEM_WINDOWS_GUI
Versión del Enlazador 12.0 - (Visual Studio 2013)
Base de Imagen 0x400000
Hora de Compilación Thu Jun 23 16:04:21 2016 UTC
Checksum 0
Nombre de archivo sample.exe
Bytes de EP 55 8b ec 51 83 65 fc 00 8d 45 fc 56 57 50 e8 64
Firma 0x4550
Primeros Bytes 4d 5a 90 00 03 00 00 00 04 00 00 00 ff ff 00 00
Secciones 4
Punto de Entrada 0x139de
Empaquetado False
Tamaño 135168
Características
IMAGE_FILE_32BIT_MACHINE
IMAGE_FILE_EXECUTABLE_IMAGE
IMAGE_FILE_RELOCS_STRIPPED
PFTriage puede realizar un análisis simple de un archivo para ayudar a identificar características maliciosas.
[*] Loading File...
[*] Analyzing File...
[*] Analysis Complete...
[!] Checksum Checksum no válido
[!] AntiDebug Importación de función AntiDebug [GetTickCount]
[!] AntiDebug Importación de función AntiDebug [QueryPerformanceCounter]
[!] Importaciones Llamada de API sospechosa [TerminateProcess]
[!] AntiDebug Importación de función AntiDebug [SetUnhandledExceptionFilter]
[!] AntiDebug Importación de función AntiDebug [IsDebuggerPresent]
Los datos de superposición se identifican analizando o mostrando la información de las secciones del archivo. Si existen datos de superposición, PFTriage puede eliminar los datos usando el modificador --removeoverlay o exportar los datos de superposición usando el modificador --extractoverlay.