hacktricks/forensics/basic-forensic-methodology/malware-analysis.md

8.9 KiB
Raw Blame History

Analyse des logiciels malveillants

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

Feuilles de triche en informatique légale

https://www.jaiminton.com/cheatsheet/DFIR/#

Services en ligne

Outils antivirus et de détection hors ligne

Yara

Installer

sudo apt-get install -y yara

Préparer les règles

Utilisez ce script pour télécharger et fusionner toutes les règles de logiciels malveillants yara depuis github: https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9
Créez le répertoire rules et exécutez-le. Cela créera un fichier appelé malware_rules.yar qui contient toutes les règles yara pour les logiciels malveillants.

wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py

Analyse

yara -w malware_rules.yar image  #Scan 1 file
yara -w malware_rules.yar folder #Scan the whole folder

YaraGen: Vérifier les logiciels malveillants et Créer des règles

Vous pouvez utiliser l'outil YaraGen pour générer des règles yara à partir d'un binaire. Consultez ces tutoriels : Partie 1, Partie 2, Partie 3

python3 yarGen.py --update
python3.exe yarGen.py --excludegood -m  ../../mals/

ClamAV

Installation

sudo apt-get install -y clamav

Analyse

sudo freshclam      #Update rules
clamscan filepath   #Scan 1 file
clamscan folderpath #Scan the whole folder

Capa

Capa détecte les capacités potentiellement malveillantes dans les exécutables : PE, ELF, .NET. Ainsi, il trouvera des choses telles que les tactiques Att&ck, ou des capacités suspectes telles que :

  • vérification des erreurs OutputDebugString
  • exécution en tant que service
  • création de processus

Obtenez-le dans le dépôt Github.

IOCs

IOC signifie Indicateur de Compromission. Un IOC est un ensemble de conditions qui identifient un logiciel potentiellement indésirable ou un logiciel malveillant confirmé. Les équipes Blue utilisent ce type de définition pour rechercher ce type de fichiers malveillants dans leurs systèmes et réseaux.
Le partage de ces définitions est très utile car lorsque des logiciels malveillants sont identifiés sur un ordinateur et qu'un IOC pour ce logiciel malveillant est créé, d'autres équipes Blue peuvent l'utiliser pour identifier plus rapidement le logiciel malveillant.

Un outil pour créer ou modifier des IOCs est IOC Editor.
Vous pouvez utiliser des outils tels que Redline pour rechercher des IOCs définis sur un appareil.

Loki

Loki est un scanner pour les Indicateurs Simples de Compromission.
La détection est basée sur quatre méthodes de détection :

1. File Name IOC
Regex match on full file path/name

2. Yara Rule Check
Yara signature matches on file data and process memory

3. Hash Check
Compares known malicious hashes (MD5, SHA1, SHA256) with scanned files

4. C2 Back Connect Check
Compares process connection endpoints with C2 IOCs (new since version v.10)

Linux Malware Detect

Linux Malware Detect (LMD) est un scanner de logiciels malveillants pour Linux publié sous la licence GNU GPLv2, conçu pour faire face aux menaces rencontrées dans les environnements d'hébergement partagé. Il utilise des données de menaces provenant des systèmes de détection d'intrusion en bordure de réseau pour extraire les logiciels malveillants utilisés activement dans les attaques et génère des signatures pour la détection. De plus, les données de menace sont également dérivées des soumissions des utilisateurs avec la fonction de vérification de LMD et des ressources de la communauté des logiciels malveillants.

rkhunter

Des outils comme rkhunter peuvent être utilisés pour vérifier le système de fichiers à la recherche de possibles rootkits et logiciels malveillants.

sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]

FLOSS

FLOSS est un outil qui essaiera de trouver des chaînes obfusquées à l'intérieur des exécutables en utilisant différentes techniques.

PEpper

PEpper vérifie quelques éléments de base à l'intérieur de l'exécutable (données binaires, entropie, URLs et IPs, quelques règles yara).

PEstudio

PEstudio est un outil qui permet d'obtenir des informations sur les exécutables Windows telles que les imports, les exports, les en-têtes, mais vérifiera également VirusTotal et trouvera des techniques potentielles Att&ck.

Detect It Easy(DiE)

DiE est un outil pour détecter si un fichier est crypté et trouver également des packers.

NeoPI

NeoPI est un script Python qui utilise une variété de méthodes statistiques pour détecter du contenu obfusqué et crypté dans des fichiers texte/script. Le but de NeoPI est de faciliter la détection de code de coquille web caché.

php-malware-finder

PHP-malware-finder fait de son mieux pour détecter du code obfusqué/douteux ainsi que des fichiers utilisant des fonctions PHP souvent utilisées dans les malwares/coquilles web.

Signatures binaires Apple

Lors de la vérification de certains échantillons de logiciels malveillants, vous devriez toujours vérifier la signature du binaire car le développeur qui l'a signé pourrait déjà être lié à des logiciels malveillants.

#Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"

#Check if the apps contents have been modified
codesign --verify --verbose /Applications/Safari.app

#Check if the signature is valid
spctl --assess --verbose /Applications/Safari.app

Techniques de détection

Empilement de fichiers

Si vous savez qu'un dossier contenant les fichiers d'un serveur web a été mis à jour pour la dernière fois à une certaine date. Vérifiez la date de création et de modification de tous les fichiers du serveur web et si une date est suspecte, vérifiez ce fichier.

Baselines

Si les fichiers d'un dossier ne devraient pas avoir été modifiés, vous pouvez calculer le hash des fichiers originaux du dossier et les comparer avec les fichiers actuels. Tout ce qui a été modifié sera suspect.

Analyse statistique

Lorsque les informations sont enregistrées dans des journaux, vous pouvez vérifier des statistiques telles que le nombre de fois où chaque fichier d'un serveur web a été accédé, car un shell web pourrait être l'un des plus.