Nous avons couvert une introduction aux applications Web et à la manière dont elles sont accessibles. Nous avons également couvert les types de vulnérabilités de sécurité des applications Web, notamment le top 10 de l'OWASP. Le top 10 de l'OWASP représente les vulnérabilités des applications Web les plus courantes pouvant être trouvées et détectées dans les applications Web. Enfin, nous avons démontré un scénario pratique de vulnérabilité IDOR ou de référence d'objet direct non sécurisée classée comme une vulnérabilité de contrôle d'accès rompue selon le top 10 de l'OWASP. TryHackMe Introduction à la sécurité des applications Web chambre.

Obtenez les notes de l'équipe bleue

SMTP signifie « Simple Mail Transfer Protocol ». Il est utilisé pour gérer l’envoi d’e-mails. Afin de prendre en charge les services de messagerie, une paire de protocoles est requise, comprenant SMTP et POP/IMAP. Ensemble, ils permettent à l'utilisateur d'envoyer du courrier sortant et de récupérer le courrier entrant, respectivement.

Le SMTP Le serveur remplit trois fonctions de base :

  •  Il vérifie qui envoie des e-mails via le SMTP serveur.
  •  Il envoie le courrier sortant
  •  Si le courrier sortant ne peut pas être livré, il renvoie le message à l'expéditeur

La plupart des gens auront rencontré SMTP lors de la configuration d'une nouvelle adresse e-mail sur certains clients de messagerie tiers, tels que Thunderbird ; comme lorsque vous configurez un nouveau client de messagerie, vous devrez configurer la configuration du serveur SMTP afin d'envoyer des emails sortants.

POP et IMAP

POP, ou « Post Office Protocol » et IMAP, « Internet Message Access Protocol » sont deux protocoles de messagerie responsables du transfert de courrier électronique entre un client et un serveur de messagerie. Les principales différences résident dans l'approche plus simpliste de POP consistant à télécharger la boîte de réception du serveur de messagerie vers le client. Où IMAP synchronisera la boîte de réception actuelle avec le nouveau courrier sur le serveur, téléchargeant tout ce qui est nouveau. Cela signifie que les modifications apportées à la boîte de réception sur un ordinateur, via IMAP, persisteront si vous synchronisez ensuite la boîte de réception à partir d'un autre ordinateur. Le serveur POP/IMAP est responsable de l'exécution de ce processus.

Comment SMTP travail?

La livraison des e-mails fonctionne à peu près de la même manière que le système de livraison physique du courrier. L'utilisateur fournira l'e-mail (une lettre) et un service (le service de livraison postale), et, à travers une série d'étapes, le livrera dans la boîte de réception du destinataire (boîte aux lettres). Le rôle du SMTP serveur de ce service, fait office de bureau de tri, l'email (lettre) est récupéré et envoyé à ce serveur qui le dirige ensuite vers le destinataire.

Énumération SMTP

Énumération des détails du serveur

Des serveurs de messagerie mal configurés ou vulnérables peuvent souvent fournir un premier point d'entrée dans un réseau, mais avant de lancer une attaque, nous souhaitons prendre l'empreinte du serveur pour rendre notre ciblage aussi précis que possible. Nous allons utiliser le "version_smtp" module dans MetaSploit pour ce faire. Comme son nom l'indique, il analysera une plage d'adresses IP et déterminera la version de tous les serveurs de messagerie rencontrés.

Énumération des utilisateurs de SMTP

Le SMTP Le service dispose de deux commandes internes qui permettent l'énumération des utilisateurs : VRFY (confirmant les noms des utilisateurs valides) et EXPN (qui révèle l'adresse réelle des alias des utilisateurs et des listes de courrier électronique (listes de diffusion). SMTP commandes, nous pouvons révéler une liste d'utilisateurs valides

Nous pouvons le faire manuellement, via une connexion telnet, mais Métasploit vient à nouveau à la rescousse, en fournissant un module pratique appelé à juste titre «smtp_enum» Cela fera les démarches pour nous ! Pour utiliser le module, il suffit de lui fournir un hôte ou une plage d'hôtes à analyser et une liste de mots contenant des noms d'utilisateur à énumérer.

Exigences

Comme nous allons utiliser Métasploit pour cela, il est important que Metasploit soit installé. C'est le cas par défaut sur Kali Linux et Parrot OS ; cependant, cela vaut toujours la peine de faire une mise à jour rapide pour vous assurer que vous utilisez la dernière version avant de lancer une attaque. Vous pouvez le faire avec une simple « mise à jour sudo apt » et la mise à niveau qui l'accompagne, le cas échéant.

Alternatives

Il convient de noter que cette technique de dénombrement fonctionnera pour la majorité des SMTP configurations ; cependant, il existe d'autres outils non métasploit tels que smtp-user-enum qui fonctionnent encore mieux pour énumérer les comptes d'utilisateurs au niveau du système d'exploitation sur Solaris via le SMTP service. L'énumération est effectuée en inspectant les réponses aux commandes VRFY, EXPN et RCPT TO.

Cette technique pourrait être adaptée à l'avenir pour fonctionner contre d'autres démons SMTP vulnérables, mais cela n'a pas été fait au moment de la rédaction de cet article. C'est une alternative qu'il vaut la peine de garder à l'esprit si vous essayez de vous éloigner de l'utilisation Métasploit par exemple en préparation à l'OSCP.

Réponses de la salle

Que signifie NFS ?

Quel processus permet à un client NFS d'interagir avec un répertoire distant comme s'il s'agissait d'un périphérique physique ?
Qu'utilise NFS pour représenter les fichiers et répertoires sur le serveur ?

Quel protocole NFS utilise-t-il pour communiquer entre le serveur et le client ?

Quelles sont les deux données utilisateur que le serveur NFS prend comme paramètres pour contrôler les autorisations des utilisateurs ? Format : paramètre 1 / paramètre 2

Un serveur Windows NFS peut-il partager des fichiers avec un Linux client? (O/N)

Un Linux Le serveur NFS partage des fichiers avec un client MacOS ? (O/N)

Quelle est la dernière version de NFS ? [publié en 2016, mais est toujours à jour en 2020] Cela nécessitera des recherches externes.

Effectuez une analyse approfondie des ports de votre choix, combien de ports sont ouverts ?

Quel port contient le service que nous cherchons à énumérer ?

Maintenant, utilisez /usr/sbin/showmount -e [IP] pour lister les partages NFS, quel est le nom du partage visible ?

Il est temps de monter le partage sur notre machine locale !

Première utilisation "mkdir /tmp/mount» pour créer un répertoire sur votre ordinateur sur lequel monter le partage. Ceci se trouve dans le répertoire /tmp, alors sachez qu'il sera supprimé au redémarrage.

Ensuite, utilisez la commande mount que nous avons décrite précédemment pour monter le partage NFS sur votre ordinateur local. Changez le répertoire dans lequel vous avez monté le partage. Quel est le nom du dossier à l'intérieur ?

Jetez un œil à l’intérieur de ce répertoire, regardez les fichiers. On dirait que nous sommes dans le répertoire personnel d'un utilisateur…

Intéressant! Faisons un peu de recherche maintenant, parcourons les dossiers. Lequel de ces plisrs je pourrais continuerundans des clés qui nous donneraient un accès à distance au serveur ?

Laquelle de ces clés nous est la plus utile ?

Copiez ce fichier vers un emplacement différent de votre ordinateur local et modifiez les autorisations en « 600 » en utilisant « chmod 600 [fichier] ».

En supposant que nous avions raison sur le type de répertoire dont il s'agit, nous pouvons assez facilement déterminer le nom de l'utilisateur auquel cette clé correspond.

Pouvons-nous nous connecter à la machine en utilisant chut -je @ ? (O/N)

Tout d'abord, modifiez le répertoire vers le point de montage sur votre ordinateur, où le partage NFS doit toujours être monté, puis dans le répertoire personnel de l'utilisateur.

Téléchargez l'exécutable bash dans votre répertoire de téléchargements. Utilisez ensuite « cp ~/Downloads/bash ». pour copier l'exécutable bash sur le partage NFS. Le shell bash copié doit appartenir à un utilisateur root, vous pouvez le définir en utilisant « sudo chown root bash »

Maintenant, nous allons ajouter l'autorisation de bit SUID à l'exécutable bash que nous venons de copier sur le partage en utilisant « sudo chmod +[permission] bash ». Quelle lettre utilisons-nous pour définir le jeu de bits SUID à l'aide de chmod ?

Faisons une vérification d'intégrité, vérifions les autorisations de l'exécutable « bash » en utilisant « ls -la bash ». À quoi ressemble l’ensemble d’autorisations ? Assurez-vous qu'il se termine par -sr-x.

Maintenant, SSH dans la machine en tant qu'utilisateur. Répertoriez le répertoire pour vous assurer que l'exécutable bash est là. Maintenant, le moment de vérité. Exécutons-le avec "./bash -p« . Le -p conserve les autorisations, afin qu'il puisse s'exécuter en tant que root avec SUID, sinon bash supprimera parfois les autorisations.

Super! Si tout s'est bien passé, vous devriez avoir un shell en tant que root ! Quel est le drapeau racine ?

Qu'est-ce que SMTP représenter?

Qu'est-ce que SMTP gérer l'envoi de ? (réponse au pluriel)

Quelle est la première étape du SMTP processus?

Quel est le port SMTP par défaut ?

Où le SMTP le serveur envoie-t-il l'e-mail si le serveur du destinataire n'est pas disponible ?

Sur quel serveur l’e-mail arrive-t-il finalement ?

Un Linux la machine exécute-t-elle un serveur SMTP ? (O/N)

Une machine Windows peut-elle exécuter un SMTP serveur? (O/N)

Tout d’abord, exécutons une analyse de port sur la machine cible, comme la dernière fois. Quel est le port SMTP continuer à fonctionner ?

Bon, maintenant nous savons quel port nous devrions cibler, commençons Métasploit. Quelle commande utilisons-nous pour faire cela ?

Si vous souhaitez plus d'aide ou vous entraîner à utiliser Métasploit, TryHackMe dispose d'un module sur Metasploit que vous pouvez consulter ici :

https://tryhackme.com/module/metasploit

Cherchons le module « smtp_version », quel est son nom complet ?

Super, maintenant, sélectionnez le module et listez les options. Comment faisons-nous cela?

Jetez un œil aux options, tout semble-t-il correct ? Quelle option devons-nous définir ?

Définissez-le sur la valeur correcte pour votre machine cible. Ensuite, exécutez l'exploit. Quel est le nom de messagerie du système ?

Quel agent de transfert de courrier (MTA) exécute le serveur SMTP ? Cela nécessitera des recherches externes.

Bien! Nous disposons désormais d'une bonne quantité d'informations sur le système cible pour passer à l'étape suivante. Cherchons le module "smtp_enum", quel est le nom complet du module ?

Nous allons utiliser le "top-usernames-shortlist.txt" liste de mots de la sous-section Noms d'utilisateur des seclists (/usr/share/wordlists/SecLists/Usernames si vous l'avez installé).

Seclists est une étonnante collection de listes de mots. Si vous utilisez Kali ou Parrot, vous pouvez installer des seclists avec : « sudo apt install seclists ». Vous pouvez également télécharger le référentiel depuis ici.

Quelle option devons-nous définir sur le chemin de la liste de mots ?

 

Une fois que nous avons défini cette option, quel est l'autre paramètre essentiel que nous devons définir ?

Maintenant, lancez l'exploit, cela peut prendre quelques minutes, alors prenez une tasse de thé, de café et d'eau. Restez hydraté !

D'accord! Maintenant que c'est terminé, quel nom d'utilisateur est renvoyé ?

Quel est le mot de passe de l'utilisateur que nous avons trouvé lors de notre étape d'énumération ?

Super! Maintenant, allons SSH sur le serveur en tant qu'utilisateur, quel est le contenu de smtp.txt

Quel type de logiciel est MySQL ?

Sur quel langage MySQL est-il basé ?

Quel modèle de communication MySQL utilise-t-il ?

Qu'est-ce qu'une application courante de MySQL ?

Quel réseau social majeur utilise MySQL comme base de données principale ? Cela nécessitera des recherches plus approfondies.

Comme toujours, commençons par une analyse des ports, afin de savoir sur quel port s'exécute le service que nous essayons d'attaquer. Quel port MySQL utilise-t-il ?

Bien, maintenant, nous pensons avoir un ensemble de références. Vérifions cela en nous connectant manuellement au serveur MySQL. Nous pouvons le faire en utilisant la commande "mysql -h [IP] -u [nom d'utilisateur] -p

D'accord, nous savons que nos informations de connexion fonctionnent. Quittons cette session avec « exit » et lançons Métasploit.

Nous allons utiliser le module « mysql_sql ».

Recherchez, sélectionnez et répertoriez les options dont il a besoin. Quelles sont les trois options que nous devons définir ? (par ordre décroissant).

Exécutez l'exploit. Par défaut, il testera avec la commande « select version() », quel résultat cela vous donne-t-il ?

Super! Nous savons que notre exploit atterrit comme prévu. Essayons d'obtenir des informations plus ambitieuses. Remplacez l'option « sql » par « afficher les bases de données ». combien de bases de données sont renvoyées ?

Tout d'abord, recherchons et sélectionnons le module « mysql_schemadump ». Quel est le nom complet du module ?

Super! Maintenant, vous l'avez déjà fait plusieurs fois, alors je vous laisse continuer à partir de là. Définissez les options appropriées, exécutez l'exploit. Quel est le nom de la dernière table qui est vidée ?
Génial, vous avez maintenant vidé les tables et les noms de colonnes de toute la base de données. Mais nous pouvons faire mieux… recherchez et sélectionnez le module « mysql_hashdump ». Quel est le nom complet du module ?

Encore une fois, je vous laisse prendre le relais à partir de maintenant. Définissez les options appropriées, exécutez l'exploit. Quel utilisateur autre que celui par défaut vous démarque ?

Un autre utilisateur ! Et nous avons le hachage de leur mot de passe. Ça peut être très intéressant. Copiez la chaîne de hachage dans son intégralité, comme : bob:*HASH, dans un fichier texte sur votre ordinateur local appelé « hash.txt ».

Quelle est la chaîne de combinaison utilisateur/hachage ?

Maintenant, nous devons déchiffrer le mot de passe ! Essayons Jean l'éventreur contre cela en utilisant : «John hash.txt« quel est le mot de passe de l'utilisateur que nous avons trouvé ?

Génial. La réutilisation des mots de passe est non seulement extrêmement dangereuse, mais extrêmement courante. Quelles sont les chances que cet utilisateur ait réutilisé son mot de passe pour un autre service ?

Quel est le contenu de MySQL.txt

Vidéo pas à pas

A propos de l'Auteur

Je crée des notes de cybersécurité, des notes de marketing numérique et des cours en ligne. Je fournis également des conseils en marketing numérique, y compris, mais sans s'y limiter, le référencement, les publicités Google et Meta et l'administration CRM.

Voir les Articles