Fichiers ZIP ou comment passer au travers des filets de détection des EDR ?
Dans l’exemple que nous allons prendre, le fichier zip fait 2,5Mo et le malware une fois dézipper fait 2,1 Go. Après quelques recherches sur VT (virus total) et d’autres outils nous avons décidé d’approfondir nos recherches.
Cet article rend compte des différents éléments que nous avons pu constater
Le ZIP et son utilité
Avant toutes analyses avancées sur ce fichier et ce qu’il contient, il convient de se renseigner sur les taux de compressions associés. Pour un fichier PE, le taux de compression maximal est d’environ 50%. En d’autres termes, lorsque nous possédons un fichier exécutable d’1 Go et que nous le compressons nous devrions atteindre un fichier zip d’environ 500Mo.
Suivant cette règle de proportionnalité, notre fichier devrait faire environ 1Go, ce qui n’est absolument pas le cas. Partant d’un fichier de 2.1Go et arrivant à une archive zip de 2.5 Mo, nous obtenons un taux de compression de 99%.
Il apparaît qu’à partir de cette adresse, un padding de 0 s’applique jusqu’à la fin du fichier. Une fois ce padding identifié, il peut être retiré nous permettant ainsi d’obtenir un fichier PE fonctionnel d’environ 1 Mo. Ce dernier, après compression en fichier Zip fait environ 500Ko, vérifiant ainsi pour ce fichier, la proportionnalité évoquée plus tôt.
Nous avons donc identifié pourquoi le taux de compression était aussi important mais dans quel cadre aurait-on besoin d’obtenir artificiellement un tel taux de compression ?
La réponse à cette question réside dans les systèmes de détection et leur paramétrage.
Le fichier PE dans le zip étant très probablement malveillant, cette technique permettrait de passer au travers des filets de la plupart des EDR. En effet, ces derniers possédant une « limite » par défaut, les fichiers de plus de 1Go, voire 2Go dans certains cas, ne sont pas analysés. Cette technique n’est pas récente mais elle refait surface avec l’avènement des EDR qui ne sont, rappelons-nous, qu’un des nombreux maillons du système de détection d’attaques et de réponse aux incidents dans une entreprise.
Identité et caractéristiques principales du fichier
Une fois le fichier extrait et envoyé dans différentes sandbox nous avons pu nous faire une idée un peu plus précise sur le fichier PE et de ce qu’il faisait.
Grâce à nos recherches, nous pouvons statuer sur le fait que nous sommes face à un agent Asyncrat, un RAT (Remote Access Trojan) qui permet de prendre le contrôle d’un poste à distance via une connexion chiffrée et d’y performer tous types d’actions malveillantes.
Suite à nos recherches et aux différents rapports que nous avons pu trouver sur le sujet, nous avons identifié le serveur de commande de l’attaquant.
Afin de se renseigner sur l’infrastructure, nous avons cherché à en savoir un peu plus sur le serveur en question. Lorsque nous cherchons des informations sur 45.81.243.217, nous trouvons un certain nombre de ports ouverts et des certificats. Nous allons nous intéresser au certificat ayant pour CN (Common Name) Asyncrat. Cette information nous permet de conclure qu’Asyncrat embarque des certificats par défaut.
Il existe plus de 47 300 serveurs possédant le même certificat dans le monde. Ces serveurs utilisant un certificat Asyncrat par défaut, il est plus que probable qu’ils soient déployés par des attaquants peu expérimentés, ou des équipes de pentests, avec une configuration par défaut. Cette dernière les rends particulièrement identifiable.
ZIP et padding, ou comment éviter les techniques de détection ?
Lors de nos investigations, nous avons pu rendre compte de l’utilisation d’une technique d’évasion de détection, le padding afin de grossir artificiellement la taille du malware lors de sa décompression.
Au cours de nos recherches sur ce malware nous avons identifié qu’il s’agissait d’un trojan de la famille Asyncrat. Nous avons également trouvé le serveur de commande de l’attaquant lui permettant de dialoguer avec l’implant. En suivant le certificat nous avons découvert un certain nombre de serveurs administrés par des attaquants avec une configuration utilisant un certificat Asyncrat.
Auteurs : Purple Team Gatewatcher et 0xSeeker
Ressources
GitHub – njcve/inflate.py: Artificially inflate a given binary to exceed common EDR file size limits. Can be used to bypass common EDR.
EDR: Is there a maximum binary download size? – Carbon Black Community
Old Malware Tricks To Bypass Detection in the Age of Big Data | Securelist
Windows : compresser un fichier ou un dossier avec 7-Zip – Le Crabe Info