Aventures de l'insaisissable Malvari, partie I

Aventures de l'insaisissable Malvari, partie I

Avec cet article, nous commençons une série de publications sur les logiciels malveillants insaisissables. Les programmes de piratage sans fichier, également appelés programmes de piratage sans fichier, utilisent généralement PowerShell sur les systèmes Windows pour exécuter silencieusement des commandes permettant de rechercher et d'extraire du contenu précieux. Détecter l'activité des pirates sans fichiers malveillants est une tâche difficile, car... les antivirus et de nombreux autres systèmes de détection fonctionnent sur la base de l’analyse des signatures. Mais la bonne nouvelle est que de tels logiciels existent. Par exemple, Systèmes UBA, capable de détecter les activités malveillantes dans les systèmes de fichiers.

Quand j'ai commencé à faire des recherches sur le sujet des hackers badass, ne pas utiliser de méthodes traditionnelles d’infection, mais uniquement les outils et logiciels disponibles sur l’ordinateur de la victime, je ne pensais pas que cela deviendrait bientôt une méthode d’attaque populaire. Professionnels de la sécurité говорятque cela devient une tendance, et titres d'articles effrayants - confirmation de cela. J'ai donc décidé de faire une série de publications sur ce sujet.

Le grand et puissant PowerShell

J'ai déjà écrit sur certaines de ces idées dans Série d'obscurcissements PowerShell, mais davantage basé sur un concept théorique. Plus tard, je suis tombé sur site Web pour l'analyse hybride, où vous pouvez trouver des échantillons de logiciels malveillants « capturés » dans la nature. J'ai décidé d'essayer d'utiliser ce site pour trouver des échantillons de logiciels malveillants sans fichier. Et j'ai réussi. Soit dit en passant, si vous souhaitez vous lancer dans votre propre expédition de chasse aux logiciels malveillants, vous devrez vous faire vérifier par ce site afin qu'ils sachent que vous faites le travail en tant que spécialiste du chapeau blanc. En tant que blogueur sur la sécurité, je l'ai réussi sans aucun doute. Je suis sûr que vous le pouvez aussi.

En plus des échantillons eux-mêmes, vous pouvez voir sur le site ce que font ces programmes. L'analyse hybride exécute les logiciels malveillants dans son propre bac à sable, surveille les appels système, les processus en cours d'exécution et l'activité réseau, et extrait les chaînes de texte suspectes. Pour les binaires et autres fichiers exécutables, c'est-à-dire là où vous ne pouvez même pas regarder le code de haut niveau, l'analyse hybride décide si le logiciel est malveillant ou simplement suspect en fonction de son activité d'exécution. Et après cela, l'échantillon est déjà évalué.

Dans le cas de PowerShell et d'autres exemples de scripts (Visual Basic, JavaScript, etc.), j'ai pu voir le code lui-même. Par exemple, je suis tombé sur cette instance PowerShell :

Aventures de l'insaisissable Malvari, partie I

Vous pouvez également exécuter PowerShell en codage base64 pour éviter la détection. Notez l'utilisation des paramètres Noninteractive et Hidden.

Si vous avez lu mes articles sur l'obscurcissement, vous savez que l'option -e spécifie que le contenu est codé en base64. À propos, l’analyse hybride y contribue également en décodant tout. Si vous souhaitez essayer de décoder vous-même PowerShell base64 (ci-après dénommé PS), vous devez exécuter cette commande :

 [System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))

Aller plus loin

J'ai décodé notre script PS en utilisant cette méthode, ci-dessous le texte du programme, bien que légèrement modifié par mes soins :

Aventures de l'insaisissable Malvari, partie I

A noter que le script était lié à la date du 4 septembre 2017 et transmettait des cookies de session.

J'ai écrit sur ce style d'attaque dans Série d'obscurcissement PS, dans lequel le script encodé en base64 lui-même se charge manquant malware provenant d'un autre site, en utilisant l'objet WebClient de la bibliothèque .Net Framework pour faire le gros du travail.

Quel est-il?

Pour les logiciels de sécurité analysant les journaux d'événements Windows ou les pare-feu, le codage base64 empêche la chaîne « WebClient » d'être détectée par un modèle de texte brut afin de se protéger contre une telle requête Web. Et comme tout le « mal » du malware est ensuite téléchargé et transmis dans notre PowerShell, cette approche nous permet ainsi d’échapper complètement à la détection. Ou plutôt, c'est ce que je pensais au début.

Il s'avère qu'avec la journalisation avancée de Windows PowerShell activée (voir mon article), vous pourrez voir la ligne chargée dans le journal des événements. Je suis comme et d'autres ) Je pense que Microsoft devrait activer ce niveau de journalisation par défaut. Par conséquent, avec la journalisation étendue activée, nous verrons dans le journal des événements Windows une demande de téléchargement terminée à partir d'un script PS selon l'exemple discuté ci-dessus. Il est donc logique de l’activer, n’est-ce pas ?

Ajoutons des scénarios supplémentaires

Les pirates cachent intelligemment les attaques PowerShell dans les macros Microsoft Office écrites en Visual Basic et d'autres langages de script. L'idée est que la victime reçoive un message, par exemple d'un service de livraison, avec en pièce jointe un rapport au format .doc. Vous ouvrez ce document qui contient la macro, et il finit par lancer lui-même le PowerShell malveillant.

Souvent, le script Visual Basic lui-même est obscurci afin qu'il échappe librement aux antivirus et autres scanners de logiciels malveillants. Dans l'esprit de ce qui précède, j'ai décidé de coder le PowerShell ci-dessus en JavaScript à titre d'exercice. Ci-dessous les résultats de mon travail :

Aventures de l'insaisissable Malvari, partie I

JavaScript obscurci cachant notre PowerShell. Les vrais hackers le font une ou deux fois.

Il s'agit d'une autre technique que j'ai vue circuler sur le Web : utiliser Wscript.Shell pour exécuter PowerShell codé. À propos, JavaScript lui-même est signifie livraison de logiciels malveillants. De nombreuses versions de Windows intègrent Windows Script Host, qui lui-même peut exécuter JS.
Dans notre cas, le script JS malveillant est intégré sous forme de fichier avec l'extension .doc.js. Windows n'affichera généralement que le premier suffixe, il apparaîtra donc à la victime comme un document Word.

Aventures de l'insaisissable Malvari, partie I

L'icône JS apparaît uniquement dans l'icône de défilement. Il n'est pas surprenant que de nombreuses personnes ouvrent cette pièce jointe en pensant qu'il s'agit d'un document Word.

Dans mon exemple, j'ai modifié le PowerShell ci-dessus pour télécharger le script depuis mon site Web. Le script PS distant imprime simplement "Evil Malware". Comme vous pouvez le constater, il n’est pas méchant du tout. Bien entendu, les vrais pirates informatiques souhaitent accéder à un ordinateur portable ou à un serveur, par exemple via un shell de commande. Dans le prochain article, je vais vous montrer comment procéder à l'aide de PowerShell Empire.

J'espère que pour le premier article d'introduction, nous n'avons pas approfondi le sujet. Maintenant, je vais vous laisser respirer, et la prochaine fois, nous commencerons à examiner des exemples réels d'attaques utilisant des logiciels malveillants sans fichier, sans mots d'introduction ni préparation inutiles.

Source: habr.com

Ajouter un commentaire