PowerShell : usages offensifs et opportunités défensives [1/3]

tl;dr — Dans le cadre de son activité de suivi et d’analyse des différents modes opératoires adverses, SEKOIA observe des tendances claires quant aux outils et langages utilisés. PowerShell s’est — et ce depuis quelques années déjà — affirmé comme étant un des langages privilégiés par les attaquants. Ces derniers l’utilisent tôt ou tard dans leur chaîne d’exécution d’attaque, comme outil principal ou langage “ support “. Cette persévérance de l’utilisation du langage de scripting dans les différents schémas d’attaques crée de nombreuses opportunités pour les défenseurs.

SEKOIA Team
Sep 25 · 3 min read

PowerShell est un langage et un interpréteur de scripting extrêmement puissant au sein du système d’exploitation Windows. Il se compose d’une interface en ligne de commande, d’un langage de script basé sur la programmation orientée objet et d’un kit de développement. Il est aujourd’hui installé sur TOUS les postes Windows. Surtout, par défaut, il laisse très peu de traces sur le poste qui l’héberge.

Se fondre dans la masse

La tendance a été identifiée depuis 2014 par FireEye. Par exemple, le cluster d’activité désigné APT28 s’appuie depuis quelques temps déjà sur des snippets de code public (modules Metasploit, PowerShell Empire, extraits et POC glanés sur GitHub…). APT28 a pu ainsi assurer plus de longévité à ses actions, s’assurant un délai plus confortable avant la détection, puis l’attribution technique. En effet, les commandes sont génériques et ne permettent pas, à elles seules, de différencier des groupes ou d’isoler des modes opératoires.

EmpireMonkey/CobaltGoblin a également choisi d’initier ses attaques avec les techniques triviales les plus répandues, assorties de l’utilisation du framework PowerShell Empire et de CobaltStrike dans leur configuration par défaut. Objectifs devinés : éviter de se faire remarquer par l’utilisation de code écrit sur-mesure, trop caractéristique et susceptible de laisser une empreinte distinctive ; “ se fondre dans la masse “ en utilisant des outils qui ne détonnent pas avec l’environnement ciblé.

A ce titre, PowerShell est le langage parfait. Outil légitime d’administration système par excellence, souvent sur liste blanche et rarement ciblé par du “ hardening “, régulièrement échangé par mail dans le cadre professionnel, il est présent par défaut sur toutes les machines Windows. Que ça soit par soucis de discrétion, recherche d’intégration et de compatibilité ou fainéantise, l’usage de PowerShell fait presque l’unanimité chez différents attaquants, qu’ils soient peu ou très sophistiqués.

Fileless execution et living off the land

PowerShell est utilisé au quotidien pour une pléthore de tâches légitimes d’administration système : automatisation de tâches, manipulation de fichiers, répertoires et registres, administration d’Active Directory, administration de machines à distance, téléchargement et exécution de données.

PowerShell offre une intégration parfaite au cœur du système d’exploitation Windows, et un accès aux assets clés permettant à un attaquant de se rendre persistant (API Win32, registres, tâches programmées, processus, services, etc.), sans requérir à un binaire supplémentaire. Les fonctions de Win32 permettent notamment de manipuler des processus, communiquer entre programmes, d’exploiter les réseaux informatiques, de manipuler des fichiers, des imprimantes, des serveurs et des ports de communication.

Tout ceci est accessible grâce à PowerShell, sans nécessité d’installer de binaire supplémentaire sur le disque. Les scripts sont chargés directement dans un buffer en mémoire et les binaires téléchargés via PowerShell sont assemblés et exécutés directement en mémoire, sans toucher le disque dur.

Surtout, sans configuration spécifique du poste, les fichiers téléchargés ainsi que l’historique des commandes ne sont pas écrits sur le disque.

Pour toutes ces raisons, PowerShell est un outil de choix pour l’exécution de multiples techniques, tout au long du cycle de vie d’une attaque informatique.

Dans une seconde puis une troisième partie, nous verrons comment PowerShell est utilisé à chaque étape d’une attaque, et quelles sont les opportunités défensives qui en découlent.


Originally published at https://medium.com on September 25, 2019 by Barbara Louis-Sidney.

SEKOIA Team

Written by

Pure player français de la cybersécurité depuis 2008 #ThreatIntelligence #CERT (réponse sur incident) #Pentest #RedTeam #Conseil #Formation #MSSP

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade