Lab 3.3.
11: Using Windows PowerShell
Anis Selmani
Quels sont les résultats?
certain commandes ping, cd et ipconfig fonctionnent de la même façon dans PowerShell
et CMD,
car PowerShell est compatible avec les commandes classiques Windows.
Quelle est la commande PowerShell pour dir ?
La commande dir dans l’invite de commande Windows (CMD) sert à lister le contenu d’un
répertoire.
Dans PowerShell, comme indiqué dans l’imprime écran :
1. Get-ChildItem → commande native PowerShell pour lister les fichiers et dossiers.
Qu'est-ce que la passerelle IPv4 ?
Dans la capture PowerShell, la passerelle IPv4 (colonne « Adr. passerelle ») correspond à
l’adresse IP du routeur ou du dispositif qui fait le lien entre votre réseau local et
d’autres réseaux, comme Internet.
Quelles informations pouvez-vous obtenir à partir de l'onglet Détails et de la boîte de
dialogue Propriétés pour le PID que vous avez sélectionné ?
voici les informations disponibles dans l'onglet Détails :
Informations principales visibles :
Identification du fichier
• Description : Processus hôte pour les services Windows
• Type : Application
• Fichier d'origine : [Link]
Informations de version
• Version du fichier : 10.0.14393.0
• Version du produit : 10.0.14393.0
• Nom du produit : Système d'exploitation Microsoft® Windows®
Métadonnées
• Copyright : © Microsoft Corporation. Tous droits réservés
• Taille : 43.4 Ko
• Date de modification : 7/16/2016 12:42 PM
• Langue : Français (France)
Utilité de ces informations
Ces détails permettent de :
1. Vérifier la légitimité du processus (copyright Microsoft, version correspondant au
système)
2. Identifier la fonction exacte du processus (hébergement de services Windows)
3. Contrôler la version pour détecter d'éventuelles anomalies
4. Valider la taille du fichier (43.4 Ko est normal pour [Link])
5. Confirmer l'authenticité via la date et les informations du produit
Cette boîte de dialogue offre également accès à d'autres onglets (Général, Signatures
numériques, Sécurité, Versions précédentes) qui peuvent fournir des informations
supplémentaires sur les permissions, l'intégrité et l'historique du fichier.
Qu'est-il arrivé aux fichiers dans la corbeille ?
Ce qui s'est passé :
On exécutant la commande PowerShell Clear-RecycleBin et confirmé avec "Y" (Yes/Oui),
ce qui a :
1. Supprimé définitivement tous les fichiers et dossiers présents dans la Corbeille
2. Libéré l'espace disque occupé par ces éléments
3. Vidé complètement la Corbeille de tous ses contenus
Commandes PowerShell Essentielles pour l'Analyste en Sécurité
Basé sur mes recherches, voici un guide complet des commandes PowerShell les plus
utiles pour simplifier vos tâches en tant qu'analyste en sécurité :
1. Analyse des Processus et Détection de Menaces
Surveillance des processus actifs
powershell
# Lister tous les processus en cours
Get-Process
# Identifier les processus suspects dans AppData (emplacement commun des malwares)
Get-Process | Where-Object {$_.Path -like '*appdata*'}
# Obtenir des informations détaillées sur un processus
Get-Process -Id [PID] | Format-List *
# Terminer un processus malveillant
Stop-Process -Id [PID] -Force
Analyse WMI
powershell
# Obtenir les logiciels installés
Get-WmiObject -Class Win32_Product
# Vérifier les services en cours
Get-Service | Where-Object {$_.Status -eq "Running"}
2. Analyse Réseau et Connexions
Surveillance des connexions réseau
powershell
# Voir toutes les connexions TCP actives
Get-NetTCPConnection
# Identifier les connexions suspectes sur des ports spécifiques
Get-NetTCPConnection | Where-Object {$_.LocalPort -eq 445}
# Test de connectivité réseau
Test-NetConnection -ComputerName "hostname" -Port 443
# Configuration réseau complète
Get-NetIPConfiguration
3. Analyse des Journaux d'Événements
Extraction et analyse des logs
powershell
# Obtenir les événements de sécurité récents
Get-EventLog -LogName Security -Newest 100
# Rechercher des événements spécifiques (ex: échecs de connexion)
Get-EventLog -LogName Security | Where-Object {$_.EventID -eq 4625}
# Exporter les logs vers CSV pour analyse
Get-EventLog -LogName System -After (Get-Date).AddDays(-7) | Export-Csv
"system_logs.csv"
4. Gestion des Utilisateurs et Permissions
Audit des comptes et privilèges
powershell
# Lister les utilisateurs locaux
Get-LocalUser
# Vérifier les membres du groupe Administrateurs
Get-LocalGroupMember -Group "Administrators"
# Pour Active Directory
Get-ADUser -Filter * -Properties *
Get-ADGroupMember -Identity "Domain Admins"
# Vérifier les permissions sur un fichier/dossier
Get-Acl "C:\SensitiveFolder"
5. Réponse aux Incidents et Investigation
Collecte d'artefacts forensiques
powershell
# Hash d'un fichier suspect pour vérification VirusTotal
Get-FileHash -Algorithm SHA256 "C:\suspicious_file.exe"
# Rechercher des fichiers modifiés récemment
Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue |
Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-1)}
# Capturer l'historique des commandes PowerShell
Get-History | Export-Csv "ps_history.csv"
Détection de persistence
powershell
# Vérifier les clés de registre de démarrage automatique
Get-ItemProperty "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run"
Get-ItemProperty "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
# Tâches planifiées suspectes
Get-ScheduledTask | Where-Object {$_.State -eq "Ready"}
6. Sécurisation et Hardening
Configuration de sécurité
powershell
# Vérifier la politique d'exécution PowerShell
Get-ExecutionPolicy
# Modifier la politique d'exécution (avec prudence)
Set-ExecutionPolicy -ExecutionPolicy Restricted
# Activer la journalisation PowerShell
Set-ItemProperty -Path
"HKLM:\Software\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging" -Name
"EnableScriptBlockLogging" -Value 1