
Cet article fait partie de la série Fileless Malware. Toutes les autres parties de la série:
Je suis fan du site d'
analyse hybride (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 lance des logiciels malveillants dans des environnements sûrs, enregistre les appels système, les fichiers générés et le trafic Internet et affiche tous ces résultats pour chaque échantillon que vous analysez. Ainsi, vous ne pouvez pas perdre votre temps et votre énergie à résoudre vous-même le code déroutant, mais comprendre immédiatement toutes les intentions des pirates.
Les exemples HA qui ont retenu mon attention utilisent des scripts encodés en JavaScript ou Visual Basic pour Applications (VBA) qui sont incorporés en tant que macros dans des documents Word ou Excel et sont 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 des flux de commandes encodés en Base64 à PowerShell. Tout cela est fait pour rendre l'attaque difficile à détecter avec des filtres Web et des logiciels antivirus qui répondent à des mots clés spécifiques.
Heureusement, HA décode automatiquement Base64 et affiche immédiatement tout sous une forme lisible. Essentiellement, vous n'avez pas besoin de vous concentrer sur le fonctionnement de ces scripts, car vous pouvez voir la sortie complète des commandes pour exécuter les processus dans la section HA correspondante. Voir un exemple ci-dessous:

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

... puis les décode pour vous. # comme par magie
Dans un article
précédent, j'ai créé mon propre conteneur JavaScript légèrement obscurci pour démarrer une session PowerShell. Ensuite, mon script, comme de nombreux 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 imprimant 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 objectifs de cet exercice est de montrer comment (relativement) facilement un pirate peut contourner les défenses périmétriques classiques et les antivirus. Si un blogueur informatique sans compétences en programmation comme moi peut
créer un malware totalement non détecté (FUD) en quelques soirées, imaginez les possibilités d'un jeune pirate intéressé par cela!
Et si vous êtes une personne assurant la sécurité informatique, mais que votre responsable n'est pas au courant des conséquences possibles de ces menaces, montrez-lui simplement cet article.
Les pirates informatiques rêvent d'avoir un accès direct à un ordinateur portable ou au serveur de la victime. C'est très simple à faire: tout ce dont le pirate a besoin est d'obtenir des fichiers confidentiels sur l'ordinateur portable du PDG.
D'une certaine manière, j'ai déjà
écrit sur le runtime PowerShell Empire post-opérationnel. Souvenons-nous de ce que c'est.
En substance, il s'agit d'un outil de test de pénétration basé sur PowerShell qui, parmi de nombreuses autres fonctionnalités, facilite l'exécution d'un shell inversé. Vous pouvez en savoir plus à ce sujet sur
la page d'accueil PSE .
Faisons une petite expérience. J'ai mis en place un environnement de test de malware sécurisé dans le cloud Amazon Web Services. Vous pouvez suivre mon exemple pour montrer rapidement et en toute sécurité un exemple de travail de cette vulnérabilité (et ne pas être renvoyé pour lancer des virus à l'intérieur du périmètre de l'entreprise).
Si vous démarrez la console PowerShell Empire, vous verrez quelque chose comme ceci:

Tout d'abord, vous démarrez le processus d'écoute sur votre ordinateur pirate. Entrez la commande «listener» et spécifiez l'adresse IP de votre système à l'aide de «set Host». Ensuite, démarrez le processus d'écoute avec la commande d'exécution (ci-dessous). Ainsi, pour votre part, commencez à attendre une connexion réseau depuis le shell distant:

Pour l'autre côté, vous devrez générer le code d'agent en entrant la commande du lanceur (voir ci-dessous). Cela générera du code PowerShell pour l'agent distant. Notez qu'il est codé en Base64 et représente la deuxième phase de la charge utile. En d'autres termes, mon code JavaScript va maintenant extraire cet agent pour exécuter PowerShell au lieu d'une sortie de texte inoffensive à l'écran et se connecter à notre serveur PSE distant pour exécuter le shell inversé.
La magie de la coque inversée. Cette commande PowerShell encodée se connecte à mon écouteur et démarre le shell distant.Pour vous montrer cette expérience, j'ai pris le rôle d'une victime innocente et ouvert Evil.doc, lançant ainsi notre JavaScript. Rappelez-vous la première partie? PowerShell a été configuré pour que sa fenêtre ne s'ouvre pas, de sorte que la victime ne remarquera rien d'inhabituel. Cependant, si vous ouvrez le Gestionnaire des tâches de Windows, vous verrez le processus d'arrière-plan PowerShell, qui ne déclenchera toujours pas d'alarme pour la plupart. Parce que c'est PowerShell normal, non?

Désormais, lorsque vous exécutez Evil.doc, un processus d'arrière-plan masqué se connecte au serveur avec PowerShell Empire. Après avoir mis le chapeau blanc du hacker-pentester, je suis retourné à la console PowerShell Empire et maintenant je vois un message indiquant que mon agent distant est actif.

J'ai ensuite entré la commande «interact» pour ouvrir le shell dans PSE - et me voici! En bref, j'ai piraté un serveur Taco, que j'ai moi-même installé une fois.

Ce que je viens de démontrer ne nécessite pas autant de travail de votre part. Vous pouvez faire tout cela en toute sécurité pendant une pause déjeuner d'une à deux heures pour améliorer vos connaissances en matière de sécurité de l'information. C'est également un excellent moyen de comprendre comment les pirates contournent la protection du périmètre de sécurité externe et se déploient secrètement sur vos systèmes.
Les responsables informatiques qui croient avoir construit une protection indestructible contre toute pénétration le trouveront probablement également informatif - eh bien, si, bien sûr, vous pouvez les convaincre de rester assis à côté de vous pendant longtemps.
Retour à la réalité
Comme je m'y attendais, un vrai hack qui n'est pas visible pour l'utilisateur moyen n'est qu'une variation de ce que je viens de décrire. Pour 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 depuis longtemps - le site a de nombreuses options pour une telle technique d'attaque.
Le malware que j'ai fini par trouver sur HA est le script \ VBA qui a été intégré dans le 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 courant. Si vous êtes intéressé, j'ai choisi cet exemple, appelé
rfq.doc .
J'ai rapidement découvert que, souvent, vous ne pourrez pas extraire directement des scripts VBA malveillants d'un document. Les pirates les compressent et les cachent, 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
OfficeMalScanner de Frank Baldwin. Merci, Frank.
En utilisant cet outil, j'ai pu extraire un code VBA très déroutant. Cela ressemblait à ceci:
L'obfuscation a été effectuée par des professionnels. J'ai été impressionné!Les attaquants sont vraiment bons pour gâcher le code, pas comme mes efforts pour créer Evil.doc. Eh bien, ok, dans la prochaine partie, nous allons obtenir nos débogueurs VBA, approfondir ce code et comparer notre analyse avec les résultats HA.