Aventures insaisissables contre les logiciels malveillants, partie II : scripts VBA cachés

Aventures insaisissables contre les logiciels malveillants, partie II : scripts VBA cachés

Cet article fait partie de la série Fileless Malware. Toutes les autres parties de la série :

je suis fan du site analyse hybride (analyse hybride, ci-après HA). Il s'agit d'une sorte de zoo de logiciels malveillants où vous pouvez observer en toute sécurité des "prédateurs" sauvages à une distance sûre sans être attaqué. HA exécute des logiciels malveillants dans des environnements sécurisés, enregistre les appels système, les fichiers générés et le trafic Internet, et vous apporte tous ces résultats pour chaque échantillon analysé. Ainsi, vous ne pouvez pas perdre votre temps et vos efforts à résoudre vous-même le code obscurci, mais comprendre immédiatement toutes les intentions des pirates.

Les exemples HA qui ont attiré mon attention utilisent des scripts codés JavaScript ou Visual Basic pour Applications (VBA) intégrés sous forme de macros dans des documents Word ou Excel et joints à des e-mails de phishing. Lorsqu'elles sont ouvertes, ces macros démarrent une session PowerShell sur l'ordinateur de la victime. Les pirates envoient généralement un flux de commandes codé en Base64 à PowerShell. Tout cela est fait pour rendre l'attaque difficile à détecter par les filtres Web et les logiciels antivirus qui répondent à certains mots clés.
Heureusement, HA décode automatiquement Base64 et affiche immédiatement tout sous une forme lisible. Essentiellement, vous n'avez pas à vous concentrer sur le fonctionnement de ces scripts, car vous pourrez voir la sortie complète des commandes pour l'exécution des processus dans la section HA correspondante. Voir exemple ci-dessous :

Aventures insaisissables contre les logiciels malveillants, partie II : scripts VBA cachés

L'analyse hybride intercepte les commandes encodées en Base64 envoyées à PowerShell :

Aventures insaisissables contre les logiciels malveillants, partie II : scripts VBA cachés

... puis les décode pour vous. #magiquement

В post précédent J'ai créé mon propre conteneur JavaScript légèrement obscurci pour exécuter une session PowerShell. Mon script ensuite, comme beaucoup de logiciels malveillants basés sur PowerShell, télécharge le script PowerShell suivant à partir d'un site Web distant. Ensuite, à titre d'exemple, j'ai téléchargé un PS inoffensif qui imprimait un message à l'écran. Mais les temps changent, et maintenant je propose de compliquer le scénario.

PowerShell Empire et Reverse Shell

L'un des buts de cet exercice est de montrer à quel point il est (relativement) facile pour un pirate de contourner les défenses périmétriques classiques et les antivirus. Si un blogueur informatique sans compétences en programmation, comme moi, en quelques soirées peut créer des logiciels malveillants indétectables (entièrement non détecté, FUD), imaginez les possibilités d'un jeune hacker intéressé !

Et si vous êtes un spécialiste de la sécurité informatique, mais que votre responsable ne comprend pas les implications potentielles de ces menaces, montrez-lui simplement cet article.

Les pirates informatiques rêvent d'accéder directement à l'ordinateur portable ou au serveur d'une victime. C'est très simple à faire : il suffit à un hacker de mettre la main sur quelques fichiers confidentiels sur l'ordinateur portable du PDG.

D'une certaine manière, j'ai déjà écrit sur le runtime de post-production PowerShell Empire. Rappelons-nous ce que c'est.

Il s'agit essentiellement d'un outil de test d'intrusion basé sur PowerShell qui, parmi de nombreuses autres fonctionnalités, facilite l'exécution d'un shell inversé. Vous pouvez le découvrir plus en détail sur Site d'accueil de PSE.

Faisons une petite expérience. J'ai mis en place un environnement sécurisé pour les tests de logiciels malveillants dans le cloud d'Amazon Web Services. Vous pouvez suivre mon exemple pour montrer rapidement et en toute sécurité un exemple fonctionnel de cette vulnérabilité (et ne pas vous faire virer pour avoir exécuté des virus à l'intérieur du périmètre de l'entreprise).

Si vous exécutez la console PowerShell Empire, vous verrez quelque chose comme ceci :

Aventures insaisissables contre les logiciels malveillants, partie II : scripts VBA cachés

Tout d'abord, vous démarrez le processus d'écoute sur votre machine pirate. Entrez la commande "listener" et spécifiez l'adresse IP de votre système à l'aide de "set Host". Démarrez ensuite le processus d'écoute avec la commande "execute" (ci-dessous). Ainsi, de votre côté, vous commencerez à attendre une connexion réseau depuis un shell distant :

Aventures insaisissables contre les logiciels malveillants, partie II : scripts VBA cachés

Pour l'autre côté, vous devrez générer un code agent en entrant la commande "lanceur" (voir ci-dessous). Cela générera le code PowerShell pour l'agent distant. Notez qu'il est encodé en Base64 et représente la deuxième phase de la charge utile. En d'autres termes, mon code JavaScript va maintenant tirer cet agent pour exécuter PowerShell au lieu d'afficher du texte à l'écran de manière inoffensive et se connecter à notre serveur PSE distant pour exécuter le shell inversé.

Aventures insaisissables contre les logiciels malveillants, partie II : scripts VBA cachés
Magie de coquille inversée. Cette commande PowerShell codée se connectera à mon écouteur et démarrera un shell distant.

Pour vous montrer cette expérience, j'ai endossé le rôle d'une victime innocente et ouvert Evil.doc, exécutant ainsi notre JavaScript. Vous vous souvenez de la première partie ? PowerShell a été configuré pour ne pas apparaître, de sorte que la victime ne remarquera rien d'inhabituel. Cependant, si vous ouvrez le Gestionnaire des tâches de Windows, vous verrez un processus PowerShell en arrière-plan, qui ne déclenchera toujours aucune alarme pour la plupart. Parce que c'est du PowerShell normal, n'est-ce pas ?

Aventures insaisissables contre les logiciels malveillants, partie II : scripts VBA cachés

Désormais, lorsque vous exécutez Evil.doc, un processus d'arrière-plan caché se connectera au serveur exécutant PowerShell Empire. Enfilant le chapeau blanc d'un hacker-pentester, je suis retourné à la console PowerShell Empire, et maintenant je vois un message indiquant que mon agent distant est actif.

Aventures insaisissables contre les logiciels malveillants, partie II : scripts VBA cachés

Ensuite, j'ai tapé la commande "interact" pour ouvrir un shell dans PSE - et me voilà ! Bref, j'ai piraté le serveur Taco que j'ai moi-même mis en place il y a quelque temps.

Aventures insaisissables contre les logiciels malveillants, partie II : scripts VBA cachés

Ce que je viens de démontrer ne vous demande pas tant de travail. Vous pouvez facilement faire tout cela pendant une pause déjeuner d'une à deux heures pour améliorer vos connaissances en sécurité de l'information. C'est également un excellent moyen de comprendre comment les pirates contournent les défenses du périmètre de sécurité externe et se faufilent dans vos systèmes.

Les responsables informatiques qui pensent avoir construit une défense impénétrable contre tout type d'intrusion trouveront probablement cela aussi éducatif - enfin, si vous pouvez les convaincre de s'asseoir à côté de vous assez longtemps, bien sûr.

Retour à la réalité

Comme je m'y attendais, le vrai hack, invisible pour l'utilisateur moyen, n'est qu'une variante de ce que je viens de décrire. Afin de collecter du matériel pour la prochaine publication, j'ai commencé à chercher un échantillon sur HA, qui fonctionne de la même manière que mon exemple inventé. Et je n'ai pas eu à le chercher pendant longtemps - il existe de nombreuses options pour une telle technique d'attaque sur le site.

Le malware que j'ai fini par trouver sur HA est un script VBA intégré dans un document Word. Autrement dit, je n'ai même pas besoin de simuler l'extension doc, ce malware est vraiment le document Microsoft Word le plus ordinaire. Au cas où vous vous poseriez la question, j'ai choisi ce modèle appelé rfq.doc.

J'ai rapidement appris qu'il était souvent impossible d'extraire des scripts VBA malveillants directement d'un document. Les pirates les compressent et les masquent, et ils ne sont pas visibles dans les outils de macro intégrés de Word. Vous aurez besoin d'un outil spécial pour l'extraire. Heureusement, je suis tombé sur un scanner BureauMalScanner Franck Baldwin. Merci Franck.

En utilisant cet outil, j'ai pu extraire un code VBA très obscurci. Cela ressemblait à ceci :

Aventures insaisissables contre les logiciels malveillants, partie II : scripts VBA cachés
L'obscurcissement a été fait par des professionnels dans leur domaine. Je ai été impressionné!

Les attaquants sont vraiment doués pour obscurcir le code, contrairement à mes efforts pour créer Evil.doc. D'accord, dans la partie suivante, nous allons récupérer nos débogueurs VBA, approfondir un peu ce code et comparer notre analyse avec les résultats HA.

Source: habr.com

Ajouter un commentaire