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,
Quand j'ai commencé à faire des recherches sur le sujet des hackers badass,
Le grand et puissant PowerShell
J'ai déjà écrit sur certaines de ces idées dans
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 :
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 :
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
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
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 :
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
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.
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