Les aventures des Malvari insaisissables, partie I



Avec cet article, nous commençons une série de publications sur l'insaisissable malvari. Les programmes de piratage qui ne laissent aucune trace d'attaque, également appelés sans fichier, utilisent généralement PowerShell sur les systèmes Windows pour exécuter secrètement des commandes afin 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 d'une analyse de signature. Mais la bonne nouvelle est qu'un tel logiciel existe. Par exemple, les systèmes UBA qui peuvent détecter une activité malveillante dans les systèmes de fichiers.

Lorsque j'ai commencé à étudier le sujet des pirates informatiques cool qui n'utilisaient pas les méthodes traditionnelles d'infection , mais uniquement des outils et des logiciels disponibles sur l'ordinateur de la victime, je ne pensais pas que cela deviendrait bientôt une méthode d'attaque populaire. Les professionnels de la sécurité disent que cela devient une tendance, et les titres d'articles effrayants en sont la preuve. J'ai donc décidé de faire une série de publications sur ce sujet.

Grande et terrible PowerShell


J'ai écrit sur certaines de ces idées plus tôt dans la série d'obscurcissement PowerShell , mais plus en théorie. Plus tard, je suis tombé sur un site d'analyse hybride , où vous pouvez trouver des échantillons de malvari, "capturés" dans la nature. J'ai décidé d'essayer d'utiliser ce site pour rechercher des échantillons de logiciels malveillants sans fichier. Et je l'ai fait. Soit dit en passant, si vous souhaitez vous lancer dans votre propre expédition pour rechercher des logiciels malveillants, vous devrez passer une vérification sur ce site afin qu'ils sachent que vous faites le travail en tant que spécialiste du chapeau blanc. En tant que blogueuse qui écrit sur la sécurité, je l'ai parcourue sans poser de questions. 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 lance des logiciels malveillants dans son propre bac à sable et suit les appels système, exécute les processus et les actions sur le réseau, et extrait également les chaînes de texte suspectes. Pour les fichiers binaires et autres exécutables, c'est-à-dire Lorsque vous ne pouvez même pas regarder le code de haut niveau réel, l'analyse hybride décide si le logiciel est malveillant ou simplement suspect en fonction de son activité au moment de l'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 une telle instance PowerShell:



Vous pouvez également exécuter PowerShell encodé en base64 pour éviter la détection. Faites attention à l'utilisation des paramètres non interactifs et masqués.


Si vous lisez mes entrées d'obscurcissement, vous savez que l'option -e indique que le contenu est codé en base64. Soit dit en passant, l'analyse hybride y contribue également, tout décodant en retour. Si vous voulez essayer de décoder vous-même PowerShell base64 (ci-après - PS), vous devez exécuter cette commande:

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

Allez plus loin


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


Notez que le craquement était lié à la date du 4 septembre 2017 et a réussi les cookies de session.


J'ai écrit sur ce style d'attaque dans la série d'obfuscation PS , dans laquelle le script encodé en base64 télécharge lui-même le malware manquant à partir d'un autre site, en utilisant l'objet WebClient de la bibliothèque .Net Framework pour faire tout le travail.

À quoi ça sert?

Pour les logiciels de sécurité qui analysent les journaux d'événements ou les pare-feu Windows, le codage base64 empêche la détection de la chaîne WebClient par un simple modèle de texte pour se protéger contre une telle demande Web. Et puisque tous les malwares "maléfiques" sont ensuite téléchargés et transférés sur notre PowerShell, cette approche vous permet ainsi d'éviter complètement la détection. Je le pensais plutôt au début.

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

Ajouter des scripts supplémentaires


Les pirates cachent habilement une attaque PowerShell dans les macros Microsoft Office écrites en Visual Basic et dans d'autres langages de script. L'idée est que la victime reçoit un message, par exemple, d'un service de livraison, avec un rapport joint au format .doc. Vous ouvrez ce document, qui contient une macro, et finalement il lance le PowerShell malveillant lui-même.

Souvent, le script Visual Basic lui-même est obscurci de manière à échapper librement aux antivirus et autres analyseurs de logiciels malveillants. Dans l'esprit de ce qui précède, j'ai décidé comme exercice de coder le PowerShell ci-dessus en JavaScript. Voici les résultats de mon travail:


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


C'est une autre des techniques que j'ai rencontrées sur le net: utiliser Wscript.Shell pour exécuter PowerShell encodé. Soit dit en passant, JavaScript lui-même est un moyen de diffuser des logiciels malveillants. De nombreuses versions de Windows ont un hôte de script Windows intégré, qui peut lui-même exécuter JS.
Dans notre cas, le script JS malveillant est joint en tant que fichier avec l'extension .doc.js. Windows n'affiche généralement que le premier suffixe, il apparaîtra donc à la victime comme un document Word.


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


Dans mon exemple, j'ai modifié 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 voir, il n'est pas du tout mauvais. Bien sûr, les vrais pirates informatiques sont intéressés à accéder à un ordinateur portable ou à un serveur, par exemple, via un shell de commande. Dans le prochain article, je montrerai comment procéder à l'aide de PowerShell Empire.

J'espère que pour le premier article d'introduction, nous n'avons pas plongé trop profondément dans le sujet. Je vais maintenant vous laisser respirer, et la prochaine fois nous commencerons à analyser des exemples concrets d'attaques utilisant sans fil-malvari sans mots introductifs et préparation supplémentaires.

Source: https://habr.com/ru/post/fr456440/


All Articles