hacktricks/forensics/basic-forensic-methodology/malware-analysis.md
2023-06-03 13:10:46 +00:00

9.8 KiB
Raw Blame History

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

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 malware 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 malwares.

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

Analyse

La première étape de l'analyse de logiciels malveillants consiste à scanner le fichier suspect à l'aide d'un logiciel antivirus ou d'un outil d'analyse de logiciels malveillants. Cela permet de détecter rapidement les menaces connues et de déterminer si le fichier est infecté ou non. Il est important d'utiliser plusieurs outils de numérisation pour augmenter les chances de détecter les menaces.

Si le fichier est détecté comme malveillant, il est important de prendre des mesures immédiates pour isoler le fichier et empêcher la propagation de la menace. Si le fichier n'est pas détecté comme malveillant, cela ne signifie pas nécessairement qu'il est sûr. Il est important de poursuivre l'analyse pour déterminer si le fichier est malveillant ou non.

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

YaraGen: Vérification de logiciels malveillants et création de 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

La première étape de l'analyse de logiciels malveillants consiste à scanner le fichier suspect à l'aide d'un logiciel antivirus ou d'un outil d'analyse de logiciels malveillants. Cela permet de détecter rapidement les menaces connues et de déterminer si le fichier est infecté ou non. Il est important d'utiliser plusieurs outils de numérisation pour augmenter les chances de détecter les menaces.

Une fois que le fichier a été scanné, il est important de vérifier les résultats de l'analyse. Si le fichier est détecté comme malveillant, il est important de déterminer le type de menace et les actions qu'elle peut effectuer sur le système. Si le fichier n'est pas détecté comme malveillant, cela ne signifie pas nécessairement qu'il est sûr. Il est important de poursuivre l'analyse pour déterminer si le fichier est malveillant ou non.

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

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 de sécurité (Blue Teams) 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 de sécurité 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 de Compromission Simples.
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 les données de menace des systèmes de détection d'intrusion en bordure de réseau pour extraire les logiciels malveillants qui sont activement utilisés 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 d'utilisateurs avec la fonction de vérification LMD et des ressources de la communauté de logiciels malveillants.

rkhunter

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

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

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).

NeoPI

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

php-malware-finder

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

Signatures binaires Apple

Lors de la vérification d'un échantillon de malware, vous devriez toujours vérifier la signature du binaire car le développeur qui l'a signé peut déjà être lié à un malware.

#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é dernièrement mis à jour à une certaine date. Vérifiez la date à laquelle tous les fichiers du serveur web ont été créés et modifiés 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 comme 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.