✍🏼Writeup – Anthem room TryHackMe

Cette room se décompose en 3 parties :

  • Website analysis
  • Spot the flags
  • Final stage

On va commencer par le commencement avec l’analyse du site web

Task 1 – Website analysis (10 minutes)

Le briefing de cette première tâche:

This task involves you, paying attention to details and finding the ‘keys to the castle’.

This room is designed for beginners, however, everyone is welcomed to try it out!

Enjoy the Anthem.

In this room, you don’t need to brute force any login page. Just your preferred browser and Remote Desktop.

Please give the box up to 5 minutes to boot and configure.

On dĂ©marre la machine, et on attends de (très) longues minutes qu’elle boot totalement (ils ont prĂ©venus, ça peut prendre jusqu’Ă  5 minutes, chez moi ça s’est transformĂ© en 8 minutes plutĂ´t).
Alors on se fait couler un cafĂ© (ou un thĂ©, chocolat, diabolo, … , restons inclusif !).

Q1 – Let’s run nmap and check what ports are open.

La machine a (enfin) démarré, on exécute alors gentiment un scan nmap comme demandé explicitement par la question.

Q2 – What port is for the web server?

Sans grande surprise …

le port 80 !

Et pour confirmer tout ça, direction le navigateur web.

Q3 – What port is for remote desktop service?

Même sensation de surprise pour celui-ci, Jai nommé …

le port 3389 !

En mĂŞme temps, nmap ne m’a trouvĂ© que 2 ports ouverts, le 80 et le 3389, donc mĂŞme sans savoir, il ne restait plus que lui.

Q4 – What is a possible password in one of the pages web crawlers check for?

Cette question nous donne l’ordre immĂ©diat de vĂ©rifier le fichier robots.txt (puisqu’il s’agit du fichier lu par les robots d’indexation).

Contenu du fichier robots.txt
Le mot de passe probable est certainement :

UmbracoIsTheBest!

Q5 – What CMS is the website using ?

Au vue de l’arborescence et après une rapide recherche avec le terme umbraco qui revient rĂ©gulièrement dans les pages Ă  ne pas scanner par les robots, j’en dĂ©duis que le CMS en question est …

Umbraco !

Q6 – What is the domain of the website?

Difficile de le rater, le domaine est affiché de partout :

anthem.com

Q7 – What’s the name of the Administrator

Le nom de l’administrateur, je l’ai cherchĂ© bĂŞtement de partout, avant de me rendre compte qu’il n’Ă©tait pas nommĂ© directement mais au travers du poème citĂ© dans l’article « A cheers to our IT department » :

During our hard times our beloved admin managed to save our business by redesigning the entire website.

As we all around here knows how much I love writing poems I decided to write one about him:

Born on a Monday,
Christened on Tuesday,
Married on Wednesday,
Took ill on Thursday,
Grew worse on Friday,
Died on Saturday,
Buried on Sunday.
That was the end… 

Une rapide recherche avec le texte de ce poème nous donne le nom de la personne ciblée par ce dernier :

Solomon Grundy

Q8 – Can we find the email address of the administrator?

Nous avons prĂ©cĂ©demment obtenu le nom/prĂ©nom de l’administrateur, ainsi que le nom de domaine du site.
Reste à trouver le format « standard » utilisé pour la création des adresses mail.

Pour cela, en se rendant dans le second article présent sur le blog (« We are hiring« ), on remarque que son autrice (Jane Doe) a laissé son adresse mail afin de pouvoir lui envoyer son CV : JD@anthem.com.

On en dĂ©duit que l’adresse mail de notre administrateur ne peut ĂŞtre que :

SG@anthem.com

Pour confirmer cette information, on se dirige vers la page permettant de s’identifier afin de configurer le CMS : /umbraco/

Bingo ! La connexion au panel d’administration se fait bien, ce qui confirme dĂ©finitivement les identifiants rĂ©coltĂ©s.

On peut d’ores et dĂ©jĂ  partir Ă  la chasse aux flags !


Task 2 – Spot the flags (5 minutes)

Topo de la tâche :

Our beloved admin left some flags behind that we require to gather before we proceed to the next task..

On confirme alors qu’on est en chasse !

On nous a laissé un petit indice en en-tête des questions :

Anthem are hiring!

Cette indice me rappelle un article, pas vous ?

Q1 – What is flag 1?

On va commencer par aller voir l’article concernĂ© par l’indice citĂ©.

Pas de flag visible au premier coup d’Ĺ“il, on se dirige vers les sources et lĂ  … pas 1 mais 2 flags !

Le premier se situe dans les métadonnées de la page :

THM{L0L_WH0_US3S_M3T4}

Premier flag trouvé

Q2 – What is flag 2?

Le second flag, trouvĂ© en mĂŞme temps que le premier, est cachĂ© dans le texte qui s’affiche dans la zone de recherche, mais invisible Ă  cause des nombreux espaces prĂ©sents entre le texte « lĂ©gitime » Search…, et le flag lui-mĂŞme :

THM{G!T_G00D}

Second flag

Q3 – What is flag 3?

En allant ensuite voir la page de l’auteur, on trouve le 3ème flag, en lieu et place ce qui aurait du ĂŞtre un lien vers son site web :

THM{L0L_WH0_D15}

Q4 – What is flag 4?

Enfin, en allant jeter un coup d’oeil au second article, lĂ  encore rien de visible donc direction les sources et … le 4ème flag lui aussi cachĂ© dans les mĂ©tadonnĂ©es (pas très original) :

THM{AN0TH3R_M3TA}

Dernier flag ajouté à notre collection

On a terminé notre récolte, on peut passer « final stage » !


Task 3 – Final stage (10 minutes)

Let’s get into the box using the intel we gathered.

Q1 – Let’s figure out the username and password to log in to the box.(The box is not on a domain)

Bon OK, lĂ  on part sur une question sans rĂ©ponse, on doit « deviner » le nom d’utilisateur et le mot de passe Ă  utiliser pour se connecter Ă  la machine (via RDP sur le port 3389 je suppose).

La room est « simple », la question aussi puisque nous avons déjà obtenu les informations précédemment :
  • Nom d’utilisateur : SG@anthem.com
  • Mot de passe : UmbracoIsTheBest!

Q2 – Gain initial access to the machine, what is the contents of user.txt?

On nous parle d’accès initial Ă  la machine, on utilise les identifiants obtenus lors de la tâche prĂ©cĂ©dente, mais après avoir tout essayĂ© et perdu un temps fou, pas moyen de se connecter Ă  la machine.

Je relis alors les consignes et j’aperçois un dĂ©tail que j’avais jusque lĂ  nĂ©gligĂ© dans l’intitulĂ© de la première question : (The box is not on a domain)

On retente mais sans la notion de « domaine » avec les identifiants suivants :
  • Nom d’utilisateur : SG
  • Mot de passe : UmbracoIsTheBest!
Connexion RDP avec xfreerdp

It works !

Connexion RDP établie à la machine

Une fois connecté, on aperçoit le fichier racoleur demandé sur le bureau : user.txt.

On l’ouvre et on rĂ©cupère le flag :

THM{N00T_NO0T}

Flag utilisateur

Q3 – Can we spot the admin password?

A la recherche du mot de passe admin perdu (un bon titre si vous voulez mon avis).

Dans un premier temps, j’active l’affichage des fichiers cachĂ©s ainsi que des fichiers et dossiers système (ne sait-on jamais ce serait dommage de passer Ă  cĂ´tĂ© du fichier pour si peu !

On se lance dans une navigation effrĂ©nĂ©e en commençant par le dossier de l’utilisateur courant, mais rien Ă  se mettre sous la dent.

On poursuit en commençant par la racine du lecteur (C:), et là, on trouve un dossier intéressant :

backup

A l’intĂ©rieur, on retrouve un fichier Ă©nigmatique :

restore.txt

On essaie de l’ouvrir, mais lĂ  … un problème de droit d’accès.

On regarde ça de plus près.

En effet, personne n’a aucun droit d’accès Ă  ce fichier.

On va alors essayer de corriger ce problème de droits.
Pour cela, on commence par ajouter le groupe recensant tous les utilisateurs (groupe Users).

Et on configure les droits de ce groupe en leur offrant le contrĂ´le total (ne soyons pas pingres !).

On ouvre alors le fichier, et on rĂ©cupère le mot de passe admin (qui n’est plus perdu ouf !) :

ChangeMeBaby1MoreTime

Mot de passe admin « retrouvé »

Q4 – Escalate your privileges to root, what is the contents of root.txt?

On nous demande ensuite d’Ă©lever nos privilèges afin de rĂ©cupĂ©rer le contenu d’un fichier root.txt.

On lance alors un PowerShell en admin.

Lancement d’une console Powershell en tant qu’administrateur

On saisi le mot de passe fraichement trouvé.

Powershell administrateur obtenu

En me baladant dans les dossier de l’admin, je tombe sur le fichier root.txt sur son bureau

Et voici le dernier flag :

THM{Y0U_4R3_1337}


Retour d’expĂ©rience

La machine est assez simple, et on est relativement bien (trop?) guidé tout au long du challenge.

Conclusion

Une room classée comme « Easy » par TryHackMe, je confirme leur évalutation.
Le challenge est bouclĂ© en moins de 30 minutes, malgrĂ© 2 points de blocage m’ayant fait perdre du temps « bĂŞtement ».

Techniquement peu intĂ©ressant, mais un bon exercice pour dĂ©butant permettant de voir « en douceur » des sujets tels que la navigation dans les sources HTML ou de l’OSINT avec une recherche extĂ©rieure Ă  la room.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *