This service extracts embedded files from file containers (like ZIP, RAR, 7z, ...).
The service uses the 7zip library to extract files out of containers then resubmits them for analysis.
It will also:
- Use the python tnefparse library to parse tnef files;
- Use the xxxswf library to extract compressed swf files;
- Use unace to extract winace compressed files;
- Use mstools and msoffcrypto to attempt to decode MSOffice files;
- Extract attachments from .eml files;
- Attempt automatic decoding using:
- A default list of passwords (see section below)
- An optional user-supplied password (see section below)
- The body of an .eml file
- Use pdfdetach in poppler-utils to extract attachments from pdf samples;
- Use the NSIS Reversing Suite to recover a preview of the the original Setup.nsi;
- Debloat bloated files:
- Windows executables: debloat and custom scripts
- Windows installers (.msi)
- Every other files by using a generic entropy-based calculator
- Integrates the capabilities of the now-archived AutoItRipper service;
Once this service has completed its processing, it will block samples from continuing to other services unless they are identified as the following file types:
- Executables
- Java files
- Android/APK packages
- Document files (i.e. Microsoft Office and PDF)
- Apple/IPA packages
password
: An additional password can be provided to the service on submission to decode a container.extract_executable_sections
: Using the 7zip library, the service will extract sections from an executable file.continue_after_extract
: When true, Assemblyline will continue processing all samples with other services no matter the file type.
default_pw_list
: List of passwords used when attempting to extract from protected archives.
Assemblyline services are built from the Assemblyline service base image, which is based on Debian 11 with Python 3.11.
Assemblyline services use the following tag definitions:
Tag Type | Description | Example Tag |
---|---|---|
latest | The most recent build (can be unstable). | latest |
build_type | The type of build used. dev is the latest unstable build. stable is the latest stable build. |
stable or dev |
series | Complete build details, including version and build type: version.buildType . |
4.5.stable , 4.5.1.dev3 |
This is an Assemblyline service. It is designed to run as part of the Assemblyline framework.
If you would like to test this service locally, you can run the Docker image directly from the a shell:
docker run \
--name Extract \
--env SERVICE_API_HOST=http://`ip addr show docker0 | grep "inet " | awk '{print $2}' | cut -f1 -d"/"`:5003 \
--network=host \
cccs/assemblyline-service-extract
To add this service to your Assemblyline deployment, follow this guide.
General Assemblyline documentation can be found at: https://cybercentrecanada.github.io/assemblyline4_docs/
Ce service extrait les fichiers contenus dans d'autres archives (tel que ZIP, RAR, 7z, ...).
Ce service utilise 7zip pour extraire les fichiers des archives afin de les resoumettre pour les analyser.
Le service tente aussi les approches suivantes:
- Utiliser la librarie python tnefparse afin de lire les fichier tnef;
- Utiliser la librarie xxxswf pour extraire les fichiers compressés des archives swf;
- Utiliser unace pour extraire les fichiers compressés d'une archive winace;
- Utiliser mstools et msoffcrypto pour tenter de lire et décoder les fichiers Microsoft Office;
- Extraire les attachments des fichiers .eml;
- Décoder les fichiers à l'aide des éléments suivants:
- Des mots de passes par défaut (voir ci-bas)
- Un mot de passe soumis par l'utilisateur (voir ci-bas)
- Le contenu d'un fichier .eml
- Utiliser la librarie pdfdetach de poppler-utils afin d'extraire les attachments d'un fichier pdf;
- Utiliser la NSIS Reversing Suite afin de reconstruire le fichier Setup.nsi original;
- Réduire les fichier artificellement gonflés:
- Executables Windows: debloat and custom scripts
- Fichiers d'installation Windows (.msi)
- Tout type de fichier pouvant être détectés à l'aide d'un calculateur générique d'entropie
- Intègres les capabilités de l'ancien service AutoItRipper
Une fois l'analyse terminée, Extract va empêcher les autres services d'analyser le fichier, à moins qu'il fasse partie d'un de ces types de fichiers:
- Exécutables
- Fichiers Java
- Applications Android/APK
- Fichier de bureautique (i.e. Microsoft Office and PDF)
- Applications Apple/IPA
password
: Un mot de passe peut être spécifié par l'utilisateur de sa soumission pour extraire les archives protégées.extract_executable_sections
: En utilisant 7zip, le service extraira les différentes sections des exécutables.continue_after_extract
: Lorsquetrue
, Assemblyline va continuer à analyser les fichiers avec les autres services, peu importe le type de fichier.
default_pw_list
: Liste de mots de passe utilisé par défaut lors de l'extraction de fichiers d'un fichier protégé.
Les services d'Assemblyline sont construits à partir de l'image de base Assemblyline service, qui est basée sur Debian 11 avec Python 3.11.
Les services d'Assemblyline utilisent les définitions d'étiquettes suivantes:
Type d'étiquette | Description | Exemple d'étiquette |
---|---|---|
dernière version | La version la plus récente (peut être instable). | latest |
build_type | Type de construction utilisé. dev est la dernière version instable. stable est la dernière version stable. |
stable ou dev |
série | Détails de construction complets, comprenant la version et le type de build: version.buildType . |
4.5.stable , 4.5.1.dev3 |
Ce service est spécialement optimisé pour fonctionner dans le cadre d'un déploiement d'Assemblyline.
Si vous souhaitez tester ce service localement, vous pouvez exécuter l'image Docker directement à partir d'un terminal:
docker run \
--name Extract \
--env SERVICE_API_HOST=http://`ip addr show docker0 | grep "inet " | awk '{print $2}' | cut -f1 -d"/"`:5003 \
--network=host \
cccs/assemblyline-service-extract
Pour ajouter ce service à votre déploiement d'Assemblyline, suivez ceci guide.
La documentation générale sur Assemblyline peut être consultée à l'adresse suivante: https://cybercentrecanada.github.io/assemblyline4_docs/